Back to Browse

Bay Area Transit MCP Server

Developer ToolsUse Caution3.8MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Real-time SF Muni departures, routes, alerts, vehicle positions, and schedules.

About

Real-time SF Muni departures, routes, alerts, vehicle positions, and schedules.

Remote endpoints: streamable-http: https://muni-mcp.srivastsh.workers.dev/mcp

Security Report

3.8
Use Caution3.8High Risk

The servers provide transit data APIs with reasonable authentication patterns but have some concerning hardcoded credentials and error handling that exposes sensitive information. The BART server uses a hardcoded public demo API key, which is acceptable for demo purposes, but the error handling in both servers returns full stack traces to clients. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 4 high severity).

5 files analyzed · 8 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

Unverified package source

We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

Bay Area Transit MCP Servers

Two Cloudflare Workers providing MCP (Model Context Protocol) access to BART and SF Muni real-time transit data. Works with Claude, ChatGPT, Poke, Cursor, and any MCP-compatible client.

You don't need to deploy anything. Just point your MCP client at the hosted endpoints below.

Live Endpoints

  • BART: https://bart-mcp.srivastsh.workers.dev/mcp — no auth, just connect
  • Muni: https://muni-mcp.srivastsh.workers.dev/mcp — pass your free 511.org API key via x-api-key-511 header

These run on Cloudflare Workers' free tier (100k requests/day). Since the Muni server uses BYOK auth, each user's 511 rate limit is isolated to their own key.

Quick Start

BART (no auth required)

Just add the URL to your MCP client. No API key needed.

Muni (BYOK)

  1. Get a free 511.org API key at https://511.org/open-data/token
  2. Pass it via the x-api-key-511 header in your MCP config

Client Configuration

Claude Desktop / Claude Code

{
  "mcpServers": {
    "bart": {
      "url": "https://bart-mcp.srivastsh.workers.dev/mcp"
    },
    "muni": {
      "url": "https://muni-mcp.srivastsh.workers.dev/mcp",
      "headers": {
        "x-api-key-511": "YOUR_511_API_KEY"
      }
    }
  }
}

Poke

One-click setup: BART recipe | Muni recipe

Or add manually as a remote MCP server:

  • URL: https://bart-mcp.srivastsh.workers.dev/mcp or https://muni-mcp.srivastsh.workers.dev/mcp
  • For Muni, set custom header x-api-key-511 to your 511 key

Cursor / Windsurf / stdio-only Clients

Use mcp-remote as a bridge:

{
  "mcpServers": {
    "bart": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-remote", "https://bart-mcp.srivastsh.workers.dev/mcp"]
    },
    "muni": {
      "command": "npx",
      "args": [
        "-y", "@anthropic-ai/mcp-remote",
        "https://muni-mcp.srivastsh.workers.dev/mcp",
        "--header", "x-api-key-511:YOUR_511_API_KEY"
      ]
    }
  }
}

Available Tools

BART (5 tools)

ToolDescription
bart_stationsList all BART stations with codes
bart_departuresReal-time departures from a station
bart_tripPlan a trip between two stations
bart_advisoriesCurrent service advisories
bart_fareFare lookup between two stations

Muni (7 tools)

ToolDescription
transit_operatorsList all 511 transit operators
muni_routesList all Muni routes
muni_departuresReal-time departures from a stop
muni_lineLine details with stops
muni_alertsCurrent service alerts
muni_vehiclesReal-time vehicle GPS positions
muni_scheduleTimetable for a line

Deploy Your Own

Most users don't need to deploy — just use the hosted endpoints above. But if you want your own instance:

Prerequisites

  • Node.js 18+
  • Cloudflare account (free tier works)
  • wrangler CLI: npm install -g wrangler

BART Worker

cd bart-mcp
npm install
wrangler login
wrangler deploy

The public BART demo key (MW9S-E7SL-26DU-VV8V) is baked into wrangler.toml. No secrets needed.

Muni Worker

cd muni-mcp
npm install
wrangler deploy

Optionally set a fallback 511 key (used when no header key is provided):

wrangler secret put API_511_KEY

Architecture

  • Runtime: Cloudflare Workers (V8 isolates)
  • Transport: WebStandardStreamableHTTPServerTransport (stateless, one server per request)
  • Auth: BYOK via request headers, optional env secret fallback
  • Validation: Zod schemas for all tool inputs
  • CORS: Enabled for all origins
  • API Sources: api.bart.gov (BART), api.511.org (Muni/511)

Reviews

No reviews yet

Be the first to review this server!

Bay Area Transit MCP Server - Real-time SF Muni departures, routes, alerts, vehicle | MCP Marketplace