get_journeys
Plan public transport routes in Berlin by entering origin and destination stop IDs to receive journey options with departure times.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | Origin stop ID | |
| to | Yes | Destination stop ID | |
| departure | No | Departure time (e.g. tomorrow 2pm) | |
| results | No | Number of results to return |
Implementation Reference
- src/index.ts:68-84 (handler)Handler function that fetches journeys from origin to destination using the VBB Transport API by constructing the appropriate URL and returning JSON data as text.async ({ from, to, departure, results }) => { const url = new URL("/journeys", VBB_API_BASE); url.searchParams.set("from", from); url.searchParams.set("to", to); if (departure) { url.searchParams.set("departure", departure); } if (results) { url.searchParams.set("results", String(results)); } const response = await fetch(url); const data = await response.json(); return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }], }; }
- src/index.ts:59-67 (schema)Zod input schema defining parameters for the get_journeys tool: from (origin), to (destination), optional departure time, and optional number of results.{ from: z.string().describe("Origin stop ID"), to: z.string().describe("Destination stop ID"), departure: z .string() .optional() .describe("Departure time (e.g. tomorrow 2pm)"), results: z.number().optional().describe("Number of results to return"), },
- src/index.ts:57-85 (registration)Registration of the get_journeys tool on the MCP server, including name, input schema, and handler function.this.server.tool( "get_journeys", { from: z.string().describe("Origin stop ID"), to: z.string().describe("Destination stop ID"), departure: z .string() .optional() .describe("Departure time (e.g. tomorrow 2pm)"), results: z.number().optional().describe("Number of results to return"), }, async ({ from, to, departure, results }) => { const url = new URL("/journeys", VBB_API_BASE); url.searchParams.set("from", from); url.searchParams.set("to", to); if (departure) { url.searchParams.set("departure", departure); } if (results) { url.searchParams.set("results", String(results)); } const response = await fetch(url); const data = await response.json(); return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }], }; } );