get_journeys
Plan public transport journeys in Berlin by specifying origin, destination, and departure time. Retrieve multiple route options using the Berlin Transport MCP Server.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| departure | No | Departure time (e.g. tomorrow 2pm) | |
| from | Yes | Origin stop ID | |
| results | No | Number of results to return | |
| to | Yes | Destination stop ID |
Implementation Reference
- src/index.ts:68-84 (handler)The handler function for the 'get_journeys' tool. It builds a URL for the VBB journeys endpoint with provided parameters (from, to, departure, results), fetches the data, and returns it as a JSON-formatted text content.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 (stop ID), to (stop ID), 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 using server.tool(name, inputSchema, handler).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) }], }; } );