{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_5r2ysxz3bm2q","handle":"caltrain-mcp","url":"https://wellknown.network/agents/caltrain-mcp","links":{"self":"https://wellknown.network/agents/caltrain-mcp/record.json","html":"https://wellknown.network/agents/caltrain-mcp","markdown":"https://wellknown.network/agents/caltrain-mcp/record.md","api":"https://wellknown.network/api/v1/agents/caltrain-mcp","status":"https://wellknown.network/api/v1/agents/caltrain-mcp/status","claim":"https://wellknown.network/agents/caltrain-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/caltrain-mcp/claim.json","badge":"https://wellknown.network/agents/caltrain-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/caltrain-mcp/history","tools":"https://wellknown.network/api/v1/agents/caltrain-mcp/tools"},"ard":{"identifier":"urn:air::server:caltrain-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"caltrain-mcp","summary":"Model Context Protocol server for Caltrain schedules","description":"# 🚂 Caltrain MCP Server (Because You Love Waiting for Trains)\n\n[![PyPI](https://img.shields.io/pypi/v/caltrain-mcp)](https://pypi.org/project/caltrain-mcp/)\n[![CI & Semantic release](https://github.com/davidyen1124/caltrain-mcp/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/davidyen1124/caltrain-mcp/actions/workflows/ci.yml)\n\n![Caltrain MCP Demo](assets/caltrain-mcp-demo.png)\n\nA Model Context Protocol (MCP) server that promises to tell you _exactly_ when the next Caltrain will arrive... and then be 10 minutes late anyway. Uses real GTFS data, so at least the disappointment is official!\n\n## Features (Or: \"Why We Built This Thing\")\n\n- 🚆 **\"Real-time\" train schedules** - Get the next departures between any two stations (actual arrival times may vary by +/- infinity)\n- 📍 **Station lookup** - Because apparently 31 stations is too many to memorize 🤷‍♀️\n- 🕐 **Time-specific queries** - Plan your commute with surgical precision, then watch it all fall apart\n- ✨ **Smart search** - Type 'sf' instead of the full name because we're all lazy here\n- 📊 **GTFS-based** - We use the same data Caltrain does, so when things go wrong, we can blame them together\n\n## Setup (The Fun Part 🙄)\n\n1. **Install dependencies** (aka \"More stuff to break\"):\n\n   ```bash\n   # Install uv if you haven't already (because pip is apparently too mainstream now)\n   curl -LsSf https://astral.sh/uv/install.sh | sh\n\n   # Install dependencies using uv (fingers crossed it actually works)\n   uv sync\n   ```\n\n2. **Get that sweet, sweet GTFS data**:\n   The server expects Caltrain GTFS data in the `src/caltrain_mcp/data/caltrain-ca-us/` directory. Because apparently we can't just ask the trains nicely where they are.\n\n   ```bash\n   uv run python scripts/fetch_gtfs.py\n   ```\n\n   This magical script downloads files that contain:\n\n   - `stops.txt` - All the places trains pretend to stop\n   - `trips.txt` - Theoretical journeys through space and time\n   - `stop_times.txt` - When trains are _supp…","publisher":null,"homepage":null,"repository":null,"version":"0.8.11","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:caltrain-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.825,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.802,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"caltrain-mcp","registry":"pypi","observedAt":"2026-09-15T11:22:39.430Z","publishedAt":"2026-09-03T04:34:56.876089Z","latestVersion":"0.8.11"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"caltrain-mcp","url":"https://pypi.org/project/caltrain-mcp/","firstSeenAt":"2026-09-09T11:29:27.645Z","fetchedAt":"2026-09-15T11:20:34.360Z","normalizedAt":"2026-09-15T11:20:34.360Z"}]},"firstSeenAt":"2026-09-09T11:29:27.645Z","updatedAt":"2026-09-15T11:22:39.430Z"}