Skip to main content
Glama
README.md
# BVG MCP Server

A Model Context Protocol (MCP) server for interacting with the BVG (Berlin Public Transport) API. This server provides tools to search for locations, plan journeys, get real-time departures/arrivals, and more.

## Features

This MCP server provides the following tools:

### Location Search
- **bvg_locations_search**: Search for stops, addresses, and points of interest
- **bvg_locations_nearby**: Find nearby stops and POIs by coordinates

### Stop Information
- **bvg_stop_details**: Get detailed information about a specific stop
- **bvg_stop_departures**: Get upcoming departures at a stop
- **bvg_stop_arrivals**: Get upcoming arrivals at a stop

### Journey Planning
- **bvg_journey_plan**: Plan journeys from A to B using public transport

### Trip and Vehicle Information
- **bvg_trip_details**: Get detailed information about a specific trip
- **bvg_radar**: Find vehicles in a geographic area with movement data

## Installation

1. Clone the repository:
```bash
git clone <repository-url>
cd mcp-bvg
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
npm run build
```

## Usage

### As an MCP Server

The server communicates via stdio and can be used with any MCP-compatible client.

```bash
npm start
```

### Configuration for Claude Desktop

Add this to your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "bvg-transport": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-bvg/build/index.js"]
    }
  }
}
```

### Configuration for VS Code

This project includes VS Code configuration files in the `.vscode` directory:

- **Tasks**: Build, watch, start server, and test examples
- **Launch configurations**: Debug the MCP server and examples
- **Settings**: TypeScript and editor preferences
- **MCP Config**: Ready-to-use MCP server configuration

To use with VS Code:
1. Open the project folder in VS Code
2. Use `Cmd+Shift+P` → "Tasks: Run Task" to access build tasks
3. Use `F5` to debug the MCP server
4. The MCP configuration is available in `.vscode/mcp-config.json`

## Example Queries

Here are some example queries you can make:

### Search for Locations
```
Search for "Alexanderplatz" in Berlin
```

### Find Nearby Stops
```
Find stops near coordinates 52.5200,13.4050 (Brandenburg Gate)
```

### Get Departures
```
Get the next departures from Alexanderplatz station
```

### Plan a Journey
```
Plan a journey from Alexanderplatz to Potsdamer Platz
```

## API Reference

The server uses the BVG REST API v6: https://v6.bvg.transport.rest/api.html

## Development

### Scripts

- `npm run build`: Compile TypeScript to JavaScript
- `npm run dev`: Watch mode for development
- `npm start`: Start the MCP server
- `npm test`: Run example tests
- `npm run clean`: Clean build directory

### Project Structure

```
src/
├── index.ts              # Main MCP server
├── types/
│   └── bvg.ts           # TypeScript types for BVG API
├── utils/
│   └── api.ts           # HTTP client and utilities
└── tools/               # MCP tool implementations
    ├── locations.ts
    ├── nearby.ts
    ├── stops.ts
    ├── journeys.ts
    └── additional.ts
```

## License

MIT License

MIT License