berlin-transport-mcp
An MCP server for the Berlin Public Transport
Documentation
Berlin Transport MCP Server
An MCP server that provides access to Berlin's public transport data through the VBB (Verkehrsverbund Berlin-Brandenburg) API. This server wraps the v6.vbb.transport.rest API.
This server uses Code Mode: instead of exposing one MCP tool per API operation, the VBB API is described as an OpenAPI spec and the server exposes exactly two tools, `search` and `execute`. The model reads the spec, then writes and runs a short JavaScript snippet in a sandboxed Dynamic Worker to call the API — which scales far better than dumping every tool schema into the model's context window, and lets it chain multiple calls (e.g. search a stop, then fetch its departures) in a single sandbox run.
Get started
npm install
npm run devThis starts a local server at `http://localhost:8787/mcp`.
npm run deployThis deploys the Worker to a URL like: `berlin-transport-mcp..workers.dev/mcp`.
Available Tools
- `search` — Search the OpenAPI spec (`codemode.spec()`) to discover available operations, parameters, and response shapes before calling the API.
- `execute` — Run a short async JavaScript snippet that calls `codemode.request({ method, path, query })` against the VBB API. The host proxies the actual HTTP request; the sandbox has no direct network access.
Underlying API operations
The OpenAPI spec exposed to the model covers:
- `getLocations` (`GET /locations`) — search for stops, stations, addresses, and points of interest.
- `getDepartures` (`GET /stops/{id}/departures`) — upcoming departures for a stop.
- `getJourneys` (`GET /journeys`) — journey options between an origin and a destination.
For more details about the underlying API, visit v6.vbb.transport.rest/getting-started.html.
Customizing your MCP Server
The OpenAPI spec passed to `openApiMcpServer` and the `request` proxy function both live in `src/index.ts`. To wrap a different API:
1. Update `API_ORIGIN` and `openApiSpec` with the new API's paths/operations.
2. Adjust the `request` function if the upstream API needs different methods, auth headers, or response handling.
Connect to Cloudflare AI Playground
You can connect to your MCP server from the Cloudflare AI Playground, which is a remote MCP client:
1. Go to https://playground.ai.cloudflare.com/
2. Enter your deployed MCP server URL (`berlin-transport-mcp..workers.dev/mcp`)
3. You can now use the `search` and `execute` tools directly from the playground!
Connect Claude Desktop to your MCP server
You can also connect to your remote MCP server from local MCP clients, by using the mcp-remote proxy.
To connect to your MCP server from Claude Desktop, follow Anthropic's Quickstart and within Claude Desktop go to Settings > Developer > Edit Config.
Update with this configuration:
{
"mcpServers": {
"berlin-transport": {
"command": "npx",
"args": [
"mcp-remote",
"https://berlin-transport.mcp-tools.app/mcp" // or if local http://localhost:8787/mcp
]
}
}
}Restart Claude and you should see the `search` and `execute` tools become available.
Frequently asked questions
What is berlin-transport-mcp?
berlin-transport-mcp is An MCP server for the Berlin Public Transport
How do I install berlin-transport-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is berlin-transport-mcp open source?
Yes — it is hosted on GitHub at https://github.com/harshil1712/berlin-transport-mcp and has 5 stars.
Related MCP tools
Playwright MCP server TypeScript-based implementation. Trusted by 22000+ developers. Trusted by 22000+ developers. Trusted by 22000+ developers.
Official Notion MCP Server TypeScript-based implementation. Trusted by 3400+ developers. Trusted by 3400+ developers. Trusted by 3400+ developers.
Directory for Awesome MCP Servers TypeScript-based implementation. Trusted by 1900+ developers. Trusted by 1900+ developers.
🧩 MCP Gateway - A lightweight gateway service that instantly transforms existing MCP Servers and APIs into MCP servers with zero code changes.
MCP Aggregator, Orchestrator, Middleware, Gateway in one docker TypeScript-based implementation. Trusted by 1400+ developers.
MCP Server for kubernetes management commands TypeScript-based implementation. Trusted by 1100+ developers. Trusted by 1100+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP