An MCP server for managing travel itineraries
Last verified
Goyondo's MCP server (npx -y goyondo-mcp) lets Claude Desktop, Claude Code, Codex, Cursor and other MCP clients manage persistent itineraries: create a trip, add or move activities, regenerate the itinerary and record bookings, and every change is kept in an edit log (get_edit_log).
Agents sign in with an OAuth device flow, so the user approves one link and the agent gets a scoped key instead of a password.
What an agent can do
- Create and read trips
- create_trip, list_trips, get_trip and update_trip.
- Edit the itinerary
- add_activity, update_activity, delete_activity, list_activities and update_day_notes. regenerate_itinerary regenerates the AI itinerary for a trip.
- Keep booking records
- create_booking records a booking made elsewhere, and list_bookings and get_booking read them back. Nothing is booked live.
- Plan with a group
- create_group_trip, join_group_trip, submit_group_preferences, run_alignment and get_alignment.
- Audit changes
- get_edit_log returns the trip's history, including which changes came from agents and which from people.
Add it, or call it over HTTPS
MCP clients run the server with npx -y goyondo-mcp; in Claude Code that is claude mcp add goyondo -- npx -y goyondo-mcp. The first tool call returns a sign-in link for the user to approve.
Agents that do not speak MCP can use the same tools over HTTPS. They are listed with JSON input schemas at /api/mcp/tools; call one with a device-flow key:
curl -X POST https://goyondo.run/api/mcp/tools/call \
-H "Authorization: Bearer $GOYONDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "list_trips", "arguments": {}}'Local today, remote later
goyondo-mcp is a local stdio server: it runs on the user's machine next to the MCP client and forwards each call to Goyondo. Web and mobile apps that only accept remote MCP connectors, such as claude.ai and ChatGPT, cannot connect yet.
Rules that keep itineraries correct
- Place activities by itinerary_id
- Use the target day's itinerary_id when adding or moving an activity. day_id may be accepted but can place the activity on the wrong day.
- Read after every write
- Call get_trip after each change and fix anything that landed in the wrong place before reporting success.
Frequently asked questions
- Is there a REST API as well?
- Yes. The same operations are described in OpenAPI at /api/openapi.json, and agents can also use the task endpoint, POST /api/agent/task.
- How do I get a key?
- Start the device flow with POST /api/agent-auth/device, show the user the approval link, and poll POST /api/agent-auth/token for a gyd_ key. /agent-quickstart.md has copy-paste scripts.
- Does it search flights or hotels?
- No. Goyondo manages the trip itself and records bookings made elsewhere. It does not search live inventory or prices.