How userharun/metro-mcp works
Houston METRO MCP provides transit lookups through a locally launched stdio MCP server: an AI client invokes tools, the server delegates to a local provider, and results come from cached static GTFS data or live METRO feeds. The repository also includes a browser showcase backed by a Worker API and D1 catalog. The README documents MCP tools and resources; sampled source verifies the local provider and several Worker, web, and core relationships. Unsampled MCP dispatch details are not expanded.
Main entry points: provider.ts Local Provider · metro-client.ts Live Client · index.ts CLI Entry · catalog.ts GTFS Catalog
Components 20
Local MCP
- CLI Entry
apps/cli/src/index.ts - MCP Tools
packages/mcp/src/index.ts - Local Provider
packages/local/src/provider.ts
Transit Data
- GTFS Catalog
packages/local/src/catalog.ts - Local Cache
- Live Client
packages/core/src/metro-client.ts - Arrival Parsing
packages/core/src/arrivals.ts - Alert Parsing
packages/core/src/alerts.ts - Data Contracts
packages/core/src/schemas.ts
Worker API
- Worker Routes
apps/worker/src/api.ts - Worker Provider
apps/worker/src/provider.ts - D1 Catalog
apps/worker/src/catalog.ts - D1 Database
Web Showcase
- Showcase UI
apps/web/src/App.tsx - Transit Demo
apps/web/src/Showcase.tsx - Web API Client
apps/web/src/api.ts - Saved Routes
apps/web/src/saved-routes.ts
Other components
- AI Client
- METRO Feeds
- Web Visitor
Connections 21
- AI Client → CLI Entry: launches
README.md - CLI Entry → MCP Tools: starts server
apps/cli/src/index.ts - CLI Entry → Local Provider: creates provider
apps/cli/src/index.ts - MCP Tools → Local Provider: uses provider
- Local Provider → GTFS Catalog: delegates catalog
packages/local/src/provider.ts - GTFS Catalog → Local Cache: reads and writes
packages/local/src/catalog.ts - GTFS Catalog → METRO Feeds: downloads GTFS
packages/local/src/catalog.ts - Local Provider → Live Client: creates client
packages/local/src/provider.ts - Live Client → METRO Feeds: fetches feeds
packages/core/src/metro-client.ts - Local Provider → Arrival Parsing: normalizes arrivals
packages/local/src/provider.ts - Local Provider → Alert Parsing: normalizes alerts
packages/local/src/provider.ts - Arrival Parsing → Live Client: requests updates
packages/core/src/arrivals.ts - Alert Parsing → Live Client: requests alerts
packages/core/src/alerts.ts - Web Visitor → Showcase UI: visits
- Showcase UI → Transit Demo: renders
apps/web/src/App.tsx - Transit Demo → Web API Client: requests data
apps/web/src/Showcase.tsx - Transit Demo → Saved Routes: uses saved routes
apps/web/src/Showcase.tsx - Web API Client → Worker Routes: fetches API
apps/web/src/api.ts - Worker Routes → Worker Provider: dispatches requests
apps/worker/src/index.ts - Worker Provider → D1 Catalog: queries catalog
apps/worker/src/provider.ts - D1 Catalog → D1 Database: queries
apps/worker/src/catalog.ts