Endpoints: 28,729MCP servers: 18,414Payout addresses: 2,071Paid calls: 1,564Letters: 14Defects: 1,338counted 4 min ago
teppi

Server definition

Hash
sha256:3cb1449c26855cd1b1be7e4f9621c7f12dbf294d32d355da0aee24b2760ddb3d
What it is
What a remote MCP server returned when asked what it offers: 43 tools

The blob, as servednamed by its sha256

{ "instructions": "NomadPoint holds the user's trips: journeys, flights, accommodations, activities, passports/visas, and journey members.\n\nCall list_journeys/get_journey/get_me FIRST for any task involving a trip, flight, booking, or travel document — before searching Gmail or driving a browser. It is usually faster and more accurate than reconstructing the same facts from an email or a booking site.\n\nWhat it does NOT do: it does not talk to airlines/hotels/providers, place bookings, or hold payment info — it is a record of what the user has booked or plans to, not a way to book. Use its data (dates, confirmation codes, passenger names, get_me's contact email) to drive the provider's own site/API, then write the result back here with update_flight/create_accommodation/etc. so it stays the source of truth.", "tools": [ { "description": "Record a passport from its details alone (no scan needed). Also adds the country to the user's nationalities, which is what visa answers are computed from.", "inputSchema": { "additionalProperties": false, "properties": { "country_code": { "type": "string" }, "expiry_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "is_primary": { "type": "boolean" }, "issue_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "passport_number": { "type": "string" }, "title": { "type": "string" } }, "required": [ "country_code" ], "type": "object" }, "name": "add_passport", "outputSchema": null }, { "description": "Add a booked place to stay (hotel/hostel/apartment) to a trip.", "inputSchema": { "additionalProperties": false, "properties": { "address": { "type": "string" }, "booking_url": { "type": "string" }, "check_in": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "check_out": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "confirmation_code": { "type": "string" }, "country_code": { "type": "string" }, "currency": { "type": "string" }, "journey_id": { "type": "string" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "name": { "description": "The property's own name, e.g. 'Memmo Alfama'", "type": "string" }, "notes": { "type": "string" }, "place_name": { "description": "The CITY the property is in, e.g. 'Lisbon' — not the property's name", "type": "string" }, "price_per_night": { "type": "number" }, "provider": { "description": "Who it was booked with, e.g. 'Booking.com'", "type": "string" }, "travelers": { "description": "Member user ids this is for (from list_journey_members). Omit for everyone — that's the norm.", "items": { "type": "string" }, "type": "array" }, "type": { "description": "hotel, hostel, airbnb, apartment, other", "type": "string" } }, "required": [ "journey_id", "type" ], "type": "object" }, "name": "create_accommodation", "outputSchema": null }, { "description": "Add a thing to do — or a travel leg between places — to a trip, optionally attached to a stop.", "inputSchema": { "additionalProperties": false, "properties": { "address": { "type": "string" }, "booking_url": { "type": "string" }, "category": { "type": "string" }, "country_code": { "type": "string" }, "currency": { "type": "string" }, "emoji": { "type": "string" }, "end_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "is_booked": { "description": "False = planned but not yet purchased/reserved. Set true only once payment actually went through.", "type": "boolean" }, "journey_id": { "type": "string" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "notes": { "type": "string" }, "place_name": { "type": "string" }, "price": { "type": "number" }, "start_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "stay_id": { "description": "UUID of the stop this belongs to — attaches it to that city's days", "type": "string" }, "title": { "type": "string" }, "transport_mode": { "description": "For a travel leg: walk, taxi, train, bus, ferry, drive", "type": "string" }, "travelers": { "description": "Member user ids this is for (from list_journey_members). Omit for everyone — that's the norm.", "items": { "type": "string" }, "type": "array" } }, "required": [ "journey_id", "title" ], "type": "object" }, "name": "create_activity", "outputSchema": null }, { "description": "Record a travel document (ticket, boarding pass, hotel confirmation, insurance…) and, when a file_name/mime_type is given, return a signed upload_url to PUT the file to. Use related_id to attach it to the flight, accommodation or activity it belongs to.", "inputSchema": { "additionalProperties": false, "properties": { "country_code": { "type": "string" }, "document_type": { "description": "passport, visa, boarding_pass, hotel_confirmation, travel_insurance, vaccination, national_id, drivers_license, onward_ticket, other", "type": "string" }, "file_name": { "description": "e.g. ticket-14147653.pdf — only needed when a file will be uploaded", "type": "string" }, "mime_type": { "description": "e.g. application/pdf, image/jpeg", "type": "string" }, "related_id": { "description": "UUID of the flight/accommodation/activity this document belongs to", "type": "string" }, "title": { "type": "string" }, "valid_from": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "valid_until": { "description": "ISO date, e.g. 2026-08-01", "type": "string" } }, "required": [ "title", "document_type" ], "type": "object" }, "name": "create_document", "outputSchema": null }, { "description": "Record one thing the user spent money on. Use for spend with no itinerary item of its own — meals, transport, visa fees, a booking that isn't on the trip. If the purchase IS already on the itinerary, set its price with update_flight/update_accommodation/update_activity instead; doing both counts it twice. Pass source_ref when importing so a re-run can't duplicate it.", "inputSchema": { "additionalProperties": false, "properties": { "amount": { "description": "The total actually paid. Never a deposit, a per-night rate or a single fee.", "type": "number" }, "amount_usd": { "description": "The same amount in USD, frozen at entry. Set it ONLY when the source states a USD (or already-converted home-currency) figure. Omit otherwise — the app converts at the live rate, which is honest, whereas a guessed historical rate is frozen forever.", "type": "number" }, "category": { "description": "One of the app's expense categories. Food is 'restaurant'.", "enum": [ "restaurant", "transport", "lodging", "sight", "groceries", "shopping", "coworking", "activity" ], "type": "string" }, "currency": { "description": "ISO 4217 code, e.g. USD, EUR, THB", "type": "string" }, "journey_id": { "type": "string" }, "related_event_id": { "description": "The flight/booking/activity this relates to, if any.", "type": "string" }, "source_ref": { "description": "Where this came from, e.g. 'gmail:<messageId>'. Unique per user — a repeat import is refused.", "type": "string" }, "spent_on": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "stay_id": { "description": "The stop this belongs to. Omit unless certain — an expense with a date is attributed to the stop whose dates contain it automatically.", "type": "string" }, "title": { "description": "What it was, as the user would recognise it", "type": "string" } }, "required": [ "journey_id", "title", "amount", "currency", "category", "spent_on" ], "type": "object" }, "name": "create_expense", "outputSchema": null }, { "description": "Add a flight to a trip.", "inputSchema": { "additionalProperties": false, "properties": { "airline_code": { "description": "IATA airline code, e.g. 'TP' — find it with search_airlines", "type": "string" }, "airline_name": { "type": "string" }, "arrival_airport_code": { "description": "IATA code, e.g. 'NRT' — find it with search_airports", "type": "string" }, "arrival_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "arrival_terminal": { "type": "string" }, "booking_url": { "type": "string" }, "cabin_class": { "type": "string" }, "confirmation_code": { "type": "string" }, "currency": { "type": "string" }, "departure_airport_code": { "description": "IATA code, e.g. 'JFK' — find it with search_airports", "type": "string" }, "departure_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "departure_terminal": { "type": "string" }, "flight_number": { "type": "string" }, "is_onward_ticket": { "description": "Mark it as the proof-of-onward-travel ticket for an entry requirement", "type": "boolean" }, "journey_id": { "type": "string" }, "notes": { "type": "string" }, "price": { "type": "number" }, "seat": { "type": "string" }, "travelers": { "description": "Member user ids this is for (from list_journey_members). Omit for everyone — that's the norm.", "items": { "type": "string" }, "type": "array" } }, "required": [ "journey_id", "departure_airport_code", "arrival_airport_code", "departure_datetime" ], "type": "object" }, "name": "create_flight", "outputSchema": null }, { "description": "Start a new trip. Use when the user wants a separate trip rather than adding to an existing one.", "inputSchema": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "end_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "name": { "type": "string" }, "start_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_journey", "outputSchema": null }, { "description": "Add a stay — a stop in a city — to a trip. This is how a destination gets onto the itinerary; book lodging for it with create_accommodation on the same dates.", "inputSchema": { "additionalProperties": false, "properties": { "checkin_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "checkout_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "checkout_flexible": { "type": "boolean" }, "city": { "description": "City name, e.g. 'Lisbon' — the city itself, not a neighbourhood, street or hotel", "type": "string" }, "city_code": { "description": "Optional alternative to `city` when you already know the code, e.g. 'LIS'", "type": "string" }, "country_code": { "description": "ISO country code, e.g. 'JP'", "type": "string" }, "journey_id": { "type": "string" }, "notes": { "type": "string" }, "travelers": { "description": "Member user ids this is for (from list_journey_members). Omit for everyone — that's the norm.", "items": { "type": "string" }, "type": "array" } }, "required": [ "journey_id", "country_code", "city" ], "type": "object" }, "name": "create_stay", "outputSchema": null }, { "description": "Record a visa the user holds or has applied for.", "inputSchema": { "additionalProperties": false, "properties": { "application_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "cost_currency": { "type": "string" }, "cost_paid": { "type": "number" }, "country_code": { "type": "string" }, "embassy_consulate": { "type": "string" }, "entries_allowed": { "description": "single, double, multiple", "type": "string" }, "expiry_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "issue_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "max_entries": { "type": "number" }, "notes": { "type": "string" }, "passport_country_code": { "type": "string" }, "visa_name": { "type": "string" }, "visa_number": { "type": "string" }, "visa_type": { "description": "e.g. tourist, business, student, work, digital_nomad, transit", "type": "string" } }, "required": [ "country_code", "visa_type" ], "type": "object" }, "name": "create_visa", "outputSchema": null }, { "description": "Remove a booking from the trip.", "inputSchema": { "additionalProperties": false, "properties": { "accommodation_id": { "type": "string" } }, "required": [ "accommodation_id" ], "type": "object" }, "name": "delete_accommodation", "outputSchema": null }, { "description": "Remove an activity from the trip.", "inputSchema": { "additionalProperties": false, "properties": { "activity_id": { "type": "string" } }, "required": [ "activity_id" ], "type": "object" }, "name": "delete_activity", "outputSchema": null }, { "description": "Delete one of the user's travel documents.", "inputSchema": { "additionalProperties": false, "properties": { "document_id": { "type": "string" } }, "required": [ "document_id" ], "type": "object" }, "name": "delete_document", "outputSchema": null }, { "description": "Remove a recorded expense. Irreversible.", "inputSchema": { "additionalProperties": false, "properties": { "expense_id": { "type": "string" } }, "required": [ "expense_id" ], "type": "object" }, "name": "delete_expense", "outputSchema": null }, { "description": "Remove a flight from the trip.", "inputSchema": { "additionalProperties": false, "properties": { "flight_id": { "type": "string" } }, "required": [ "flight_id" ], "type": "object" }, "name": "delete_flight", "outputSchema": null }, { "description": "Permanently delete a trip and everything on it — stops, flights, bookings, activities — for every member. Owner only. Irreversible; confirm with the user first.", "inputSchema": { "additionalProperties": false, "properties": { "journey_id": { "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "delete_journey", "outputSchema": null }, { "description": "Remove a stop from the trip. Refuses when the stop carries a booking — delete the booking instead.", "inputSchema": { "additionalProperties": false, "properties": { "stay_id": { "type": "string" } }, "required": [ "stay_id" ], "type": "object" }, "name": "delete_stay", "outputSchema": null }, { "description": "Delete a recorded visa.", "inputSchema": { "additionalProperties": false, "properties": { "visa_id": { "type": "string" } }, "required": [ "visa_id" ], "type": "object" }, "name": "delete_visa", "outputSchema": null }, { "description": "The user's own spending target for a trip, if they set one. Personal, not shared: each member of a trip has their own, and no one else's is readable.", "inputSchema": { "additionalProperties": false, "properties": { "journey_id": { "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "get_budget", "outputSchema": null }, { "description": "Country reference info and the user's visa requirement for it, based on their primary passport.", "inputSchema": { "additionalProperties": false, "properties": { "country_code": { "description": "ISO country code, e.g. 'TH'", "type": "string" } }, "required": [ "country_code" ], "type": "object" }, "name": "get_country_info", "outputSchema": null }, { "description": "Get one journey's itinerary: stays (the stops), flights, booked accommodations, and activities. A booked stay is ONE row that appears in both lists under the SAME id — the stop it is, and the booking it carries. Pass from_date/to_date to read one window of a long trip instead of all of it.", "inputSchema": { "additionalProperties": false, "properties": { "from_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "journey_id": { "type": "string" }, "to_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "get_journey", "outputSchema": null }, { "description": "The link that invites someone onto a trip as a co-editor. Anyone who opens it joins immediately, so it is the whole invite — there is no separate accept step.", "inputSchema": { "additionalProperties": false, "properties": { "journey_id": { "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "get_journey_share_link", "outputSchema": null }, { "description": "Who the user is: profile, the passports/nationalities they hold (which decide every visa answer), and their recorded passport documents. Worth reading before planning anything.", "inputSchema": { "additionalProperties": false, "properties": {}, "required": [], "type": "object" }, "name": "get_me", "outputSchema": null }, { "description": "How many days of the user's allowance in a country are used and how many remain this year — the answer to \"how much longer can I stay\".", "inputSchema": { "additionalProperties": false, "properties": { "country_code": { "type": "string" }, "year": { "type": "number" } }, "required": [ "country_code" ], "type": "object" }, "name": "get_visa_status", "outputSchema": null }, { "description": "Leave a trip someone else shared with the user. Owners can't leave their own trip — they delete it.", "inputSchema": { "additionalProperties": false, "properties": { "journey_id": { "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "leave_journey", "outputSchema": null }, { "description": "The user's travel documents (passports, visas, insurance, tickets) — metadata only, not the files.", "inputSchema": { "additionalProperties": false, "properties": { "document_type": { "description": "Filter: passport, national_id, drivers_license, boarding_pass, hotel_confirmation, travel_insurance, vaccination, visa, onward_ticket, other", "type": "string" } }, "required": [], "type": "object" }, "name": "list_documents", "outputSchema": null }, { "description": "Recorded spending on a trip — the money entered by hand or imported, NOT the booked prices on flights and hotels (those come back from get_journey). Includes each row's source_ref, so an importer can see what it already brought in.", "inputSchema": { "additionalProperties": false, "properties": { "from_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "journey_id": { "type": "string" }, "to_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "list_expenses", "outputSchema": null }, { "description": "Who is on a trip: user ids, roles, and profiles. Use it to get the ids that set_item_travellers takes.", "inputSchema": { "additionalProperties": false, "properties": { "journey_id": { "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "list_journey_members", "outputSchema": null }, { "description": "List the user's trips (journeys) they own or have joined, with dates and whether they own it.", "inputSchema": { "additionalProperties": false, "properties": {}, "required": [], "type": "object" }, "name": "list_journeys", "outputSchema": null }, { "description": "Visas the user holds — type, number, validity, entries used.", "inputSchema": { "additionalProperties": false, "properties": {}, "required": [], "type": "object" }, "name": "list_visas", "outputSchema": null }, { "description": "Remove someone from a shared trip. Owner only.", "inputSchema": { "additionalProperties": false, "properties": { "journey_id": { "type": "string" }, "user_id": { "type": "string" } }, "required": [ "journey_id", "user_id" ], "type": "object" }, "name": "remove_journey_member", "outputSchema": null }, { "description": "Find airlines by name or IATA code.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "type": "number" }, "query": { "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_airlines", "outputSchema": null }, { "description": "Find airports by city, name or IATA code. Use this to get the codes create_flight requires — never guess them.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "type": "number" }, "query": { "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_airports", "outputSchema": null }, { "description": "Find cities by name. Use it to confirm the exact city name create_stay expects.", "inputSchema": { "additionalProperties": false, "properties": { "country_code": { "type": "string" }, "limit": { "type": "number" }, "query": { "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_cities", "outputSchema": null }, { "description": "Set or replace the user's own spending target for a trip. 'month' means per month of the trip; 'journey' means the whole trip. Replaces any existing target.", "inputSchema": { "additionalProperties": false, "properties": { "amount": { "type": "number" }, "currency": { "description": "ISO 4217 code, e.g. USD, EUR, THB", "type": "string" }, "journey_id": { "type": "string" }, "period": { "description": "Defaults to 'month'.", "enum": [ "month", "journey" ], "type": "string" } }, "required": [ "journey_id", "amount", "currency" ], "type": "object" }, "name": "set_budget", "outputSchema": null }, { "description": "Say which people on a shared trip an item is for — one person's separate flight, one person's room. Omitting travelers (or passing an empty list) means everyone, which is the default and right for most items.", "inputSchema": { "additionalProperties": false, "properties": { "item_id": { "type": "string" }, "item_type": { "enum": [ "stay", "accommodation", "flight", "activity" ], "type": "string" }, "travelers": { "description": "Member user ids this is for (from list_journey_members). Omit for everyone — that's the norm.", "items": { "type": "string" }, "type": "array" } }, "required": [ "item_type", "item_id" ], "type": "object" }, "name": "set_item_travellers", "outputSchema": null }, { "description": "Change a booking's property, dates, price, confirmation or notes.", "inputSchema": { "additionalProperties": false, "properties": { "accommodation_id": { "type": "string" }, "address": { "type": "string" }, "booking_url": { "type": "string" }, "check_in": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "check_out": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "confirmation_code": { "type": "string" }, "country_code": { "type": "string" }, "currency": { "type": "string" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "name": { "description": "The property's own name, e.g. 'Memmo Alfama'", "type": "string" }, "notes": { "type": "string" }, "place_name": { "description": "The CITY the property is in, e.g. 'Lisbon' — not the property's name", "type": "string" }, "price_per_night": { "type": "number" }, "provider": { "description": "Who it was booked with, e.g. 'Booking.com'", "type": "string" }, "type": { "description": "hotel, hostel, airbnb, apartment, other", "type": "string" } }, "required": [ "accommodation_id" ], "type": "object" }, "name": "update_accommodation", "outputSchema": null }, { "description": "Change an activity's title, timing, place or notes.", "inputSchema": { "additionalProperties": false, "properties": { "activity_id": { "type": "string" }, "address": { "type": "string" }, "booking_url": { "type": "string" }, "category": { "type": "string" }, "country_code": { "type": "string" }, "currency": { "type": "string" }, "emoji": { "type": "string" }, "end_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "is_booked": { "description": "False = planned but not yet purchased/reserved. Set true only once payment actually went through.", "type": "boolean" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "notes": { "type": "string" }, "place_name": { "type": "string" }, "price": { "type": "number" }, "start_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "stay_id": { "description": "UUID of the stop this belongs to — attaches it to that city's days", "type": "string" }, "title": { "type": "string" }, "transport_mode": { "description": "For a travel leg: walk, taxi, train, bus, ferry, drive", "type": "string" } }, "required": [ "activity_id" ], "type": "object" }, "name": "update_activity", "outputSchema": null }, { "description": "Correct a recorded expense — its amount, currency, date, title, category or which stop it belongs to.", "inputSchema": { "additionalProperties": false, "properties": { "amount": { "type": "number" }, "amount_usd": { "description": "The same amount in USD, frozen at entry. Set it ONLY when the source states a USD (or already-converted home-currency) figure. Omit otherwise — the app converts at the live rate, which is honest, whereas a guessed historical rate is frozen forever.", "type": "number" }, "category": { "description": "One of the app's expense categories. Food is 'restaurant'.", "enum": [ "restaurant", "transport", "lodging", "sight", "groceries", "shopping", "coworking", "activity" ], "type": "string" }, "currency": { "description": "ISO 4217 code, e.g. USD, EUR, THB", "type": "string" }, "expense_id": { "type": "string" }, "related_event_id": { "type": "string" }, "spent_on": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "stay_id": { "type": "string" }, "title": { "type": "string" } }, "required": [ "expense_id" ], "type": "object" }, "name": "update_expense", "outputSchema": null }, { "description": "Change a flight's route, times, seat, confirmation or notes.", "inputSchema": { "additionalProperties": false, "properties": { "airline_code": { "description": "IATA airline code, e.g. 'TP' — find it with search_airlines", "type": "string" }, "airline_name": { "type": "string" }, "arrival_airport_code": { "description": "IATA code, e.g. 'NRT' — find it with search_airports", "type": "string" }, "arrival_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "arrival_terminal": { "type": "string" }, "booking_url": { "type": "string" }, "cabin_class": { "type": "string" }, "confirmation_code": { "type": "string" }, "currency": { "type": "string" }, "departure_airport_code": { "description": "IATA code, e.g. 'JFK' — find it with search_airports", "type": "string" }, "departure_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "departure_terminal": { "type": "string" }, "flight_id": { "type": "string" }, "flight_number": { "type": "string" }, "is_onward_ticket": { "description": "Mark it as the proof-of-onward-travel ticket for an entry requirement", "type": "boolean" }, "notes": { "type": "string" }, "price": { "type": "number" }, "seat": { "type": "string" } }, "required": [ "flight_id" ], "type": "object" }, "name": "update_flight", "outputSchema": null }, { "description": "Rename a trip, change its dates or description, archive it, or set its home-base countries (countries where the user has their own place — no missing-stay warnings there). Owner only.", "inputSchema": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "end_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "home_base_country_codes": { "description": "ISO country codes", "items": { "type": "string" }, "type": "array" }, "is_archived": { "type": "boolean" }, "journey_id": { "type": "string" }, "name": { "type": "string" }, "start_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" } }, "required": [ "journey_id" ], "type": "object" }, "name": "update_journey", "outputSchema": null }, { "description": "Set the standing facts every trip should respect: where home is, the home airport, the currency to quote in, nightly budget, travel pace, and preferred working hours.", "inputSchema": { "additionalProperties": false, "properties": { "budget_max": { "type": "number" }, "budget_min": { "type": "number" }, "currency": { "type": "string" }, "home_airport_code": { "type": "string" }, "home_city": { "type": "string" }, "home_country_code": { "type": "string" }, "temperature_preference": { "type": "string" }, "travel_pace": { "description": "e.g. slow, moderate, fast", "type": "string" }, "work_end_hour": { "type": "number" }, "work_start_hour": { "type": "number" }, "work_timezone": { "description": "IANA zone, e.g. Europe/Lisbon", "type": "string" } }, "required": [], "type": "object" }, "name": "update_preferences", "outputSchema": null }, { "description": "Change a stop's city, country, dates or notes.", "inputSchema": { "additionalProperties": false, "properties": { "checkin_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "checkout_datetime": { "description": "ISO-8601 datetime, e.g. 2026-08-01T14:30:00Z", "type": "string" }, "checkout_flexible": { "type": "boolean" }, "city": { "description": "City name, e.g. 'Lisbon' — the city itself, not a neighbourhood, street or hotel", "type": "string" }, "city_code": { "description": "Optional alternative to `city` when you already know the code, e.g. 'LIS'", "type": "string" }, "country_code": { "description": "ISO country code, e.g. 'JP'", "type": "string" }, "notes": { "type": "string" }, "stay_id": { "type": "string" } }, "required": [ "stay_id" ], "type": "object" }, "name": "update_stay", "outputSchema": null }, { "description": "Change a recorded visa, or archive it by setting is_active to false.", "inputSchema": { "additionalProperties": false, "properties": { "application_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "cost_currency": { "type": "string" }, "cost_paid": { "type": "number" }, "embassy_consulate": { "type": "string" }, "entries_allowed": { "type": "string" }, "expiry_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "is_active": { "type": "boolean" }, "issue_date": { "description": "ISO date, e.g. 2026-08-01", "type": "string" }, "max_entries": { "type": "number" }, "notes": { "type": "string" }, "visa_id": { "type": "string" }, "visa_name": { "type": "string" }, "visa_number": { "type": "string" }, "visa_type": { "type": "string" } }, "required": [ "visa_id" ], "type": "object" }, "name": "update_visa", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:3cb1449c26855cd1b1be7e4f9621c7f12dbf294d32d355da0aee24b2760ddb3d | sha256sum