Skip to main content
Glama
NOTE

vibe-coded ✨

hafasmcp

MCP server for real-time German public transport data via HAFAS. Lets Claude (or any MCP client) query departures, arrivals, journeys, and nearby stops — currently configured for the VBN network (Lower Saxony / Bremen).

No API key needed. Uses the same public HAFAS API as fahrplaner.vbn.de.

Tools

Tool

Description

locations

Search stops, addresses, or POIs by name

departures

Upcoming departures from a stop

arrivals

Upcoming arrivals at a stop

journeys

Route planning between two locations

nearby

Find stops near a coordinate

Related MCP server: db-mcp

Quick Start

With Claude Code (stdio)

Add to your MCP config:

{
  "mcpServers": {
    "hafas": {
      "command": "node",
      "args": ["dist/index.js"],
      "cwd": "/path/to/hafasmcp"
    }
  }
}

With Docker (HTTP + OAuth 2.1)

cp .env.example .env
docker compose up -d

This starts the HTTP server on port 3000 with a Cloudflare quick tunnel for remote access.

Local Development

npm install
npm run build
npm start              # stdio mode
npm run start:http     # HTTP mode with OAuth 2.1

Environment Variables

Variable

Default

Description

PORT

3000

HTTP server port

ISSUER_URL

http://localhost:$PORT

OAuth 2.1 issuer URL

How It Works

The server wraps hafas-client with the VBN profile and exposes it as MCP tools. Two transport modes:

  • Stdio — for local MCP clients like Claude Code, zero config

  • HTTP — for remote access, with full OAuth 2.1 (dynamic client registration, PKCE, auto-approve)

Example

Ask Claude:

"Wann fährt die nächste Straßenbahn vom Hauptbahnhof Bremen?"

Claude will use locations to find the stop ID, then departures to get real-time data — all in under a second.

Stack

TypeScript, Node.js, hafas-client, @modelcontextprotocol/sdk, Express 5

License

ISC

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for interacting with the Berlin Public Transport (BVG) API to search for locations and plan journeys. It provides real-time access to departures, arrivals, trip details, and vehicle tracking within Berlin's transit network.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that exposes the Deutsche Bahn public transport API to any MCP-compatible client (Claude Desktop, Cursor, Cline, Continue, etc.). Five tools cover station search, departures, journey planning, trip details, and nearby stations.
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that integrates with the transport12 API to provide tools for searching stops, routes, arrivals, and vehicle forecasts, enabling natural language interaction with public transport data.
    8 npm
    MIT