Metro MCP
Provides real-time train arrival predictions, service alerts, station information, route details (express/local, operating hours), and transfer walk times for the New York City Subway (MTA).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Metro MCPWhen is the next Red Line train at Dupont Circle?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Metro MCP
Metro MCP is an anonymous, read-only Model Context Protocol server for live DC Metro and NYC Subway information.
Connect
The production endpoint is https://metro-mcp.anuragd.me/mcp. No login is required. No client credentials, bearer token, or OAuth flow is required; Metro MCP does not collect client credentials. Stale Authorization headers are ignored.
Claude
claude mcp add --transport http metro-mcp https://metro-mcp.anuragd.me/mcpCodex
codex mcp add metro-mcp https://metro-mcp.anuragd.me/mcpGeneric Streamable HTTP client
{
"mcpServers": {
"metro-mcp": {
"type": "http",
"url": "https://metro-mcp.anuragd.me/mcp"
}
}
}POST /mcp is the recommended stateless Streamable HTTP endpoint. POST and OPTIONS /sse are a compatibility alias; legacy GET SSE, DELETE, session-message URLs, and slash variants return 405.
Related MCP server: marta-mcp
What it provides
Metro MCP exposes 13 MCP tools across WMATA and MTA data, including arrivals, service incidents, stations, elevator outages, bus operations, train positions, transfer detail, and route information.
It also provides three transit:// URI templates (stations, routes, and incidents) and three canned templates (service-briefing, commute-planner, and accessibility-check). Tool calls are read-only, idempotent, and open-world. Every result includes typed structuredContent and a JSON text fallback.
An Apps-capable host can render the Transit Board resource for all 13 tools. Clients without Apps support receive the same text fallback and structured result; the Apps enhancement does not alter a transit call. See the Apps verification record.
Runtime and safety boundaries
Protocol: MCP
2026-07-28stateless Streamable HTTP. The server does not advertise sessions, resumability, or server push.Request trust: public origin and host/origin allowlists are validated at startup. The signed MRTR request-state codec is bound to the MCP method and expires after five minutes.
Cancellation: client disconnects propagate request cancellation to MCP handlers and upstream transit fetches.
Caching: discovery and tool metadata are publicly cacheable for 24 hours. Station and route resources are public-cacheable; live incident resources are not. WMATA uses Cloudflare edge cache windows appropriate to each feed, while MTA real-time feeds use a 30-second in-memory cache.
Rate limiting: roughly 300 requests per 60-second window per source-IP key per Cloudflare location. Shared egress IPs group clients, and enforcement is eventually consistent. This is abuse protection, not a dedicated user quota.
Rollback: the inactive
MetroMcpAgentclass and originalv1Durable Object migration remain for rollback. Do not add a deletion migration during stabilization.
Deploy your own
Client access is anonymous. A self-hosted Worker still needs its own WMATA API key and a stable MCP_REQUEST_STATE_KEY of at least 32 bytes for signed MRTR state.
bun install --frozen-lockfile
cp .dev.vars.example .dev.vars
bun run devUse the checked-in loopback origin, hostname allowlists, and ENVIRONMENT=development values together. Keep .dev.vars out of source control. Production and preview use their own origins, allowlists, state keys, WMATA keys, and MCP_RATE_LIMITER bindings.
Before an approved deployment, run only dry-runs:
bunx wrangler deploy --dry-run --outdir /tmp/metro-mcp-production
bunx wrangler deploy --env preview --dry-run --outdir /tmp/metro-mcp-previewVerification
Run the suite with bun run test. The direct conformance runner requires only a target URL:
export MCP_CONFORMANCE_TARGET_URL=https://metro-mcp-preview.anuragd.me/mcp
./scripts/run-conformance.shSee MCP 2026 verification for protocol coverage and security architecture for the public-request and rate-limit boundaries.
Support and legal
License
MIT. See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
SEPTA MCP — Philadelphia SEPTA real-time transit (www3.septa.org/api, keyless)
Amtrak MCP — live Amtrak train tracking via the community Amtraker API
Washington Metro real-time + static rail/bus data. Free key required.
MBTA MCP — Boston real-time transit via the MBTA v3 API (api-v3.mbta.com)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that provides tools for querying live transit data (stops, departures, routes, vehicles, alerts) from any WP GTFS Pro site, enabling AI assistants to answer rider questions.21GPL 2.0
- AlicenseAqualityBmaintenanceMCP server for Atlanta MARTA real-time transit data, enabling queries about train arrivals and bus positions via natural language.4MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Japanese public transit journey planning with interactive map UI, enabling station search, route planning, and departure lookups via natural language.MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides real-time Hong Kong public transport ETA information.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Aarekaz/metro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server