Park & Keep MCP Server
# Park & Keep MCP server
MCP server (local stdio or remote Streamable HTTP, stateless, read-only, no account) answering questions about the
[Park & Keep airport parking index](https://parkandkeep.com/en/data/airport-parking-index): car parks serving European
airports, their services and airport-level price ranges for 3, 7 and 14-day stays.
Endpoint once deployed: `https://parkandkeep-mcp.vercel.app/mcp` (registry name `io.github.tresor4k/parkandkeep-mcp`).
## Local (stdio)
```sh
npx -y parkandkeep-mcp
```
Claude Desktop (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"parkandkeep": {
"command": "npx",
"args": ["-y", "parkandkeep-mcp"]
}
}
}
```
The stdio server registers the same tools as the remote endpoint and reads the index bundled in the package.
## Remote
Streamable HTTP endpoint: `https://parkandkeep-mcp.vercel.app/mcp`.
| Tool | Returns |
|---|---|
| `airport_parking_options` | Car parks of an airport: services (shuttle, valet, covered, 24 h, keys kept, EV charging, online booking), distance, date checked. No price. |
| `airport_price_snapshot` | Min / median / max public price per stay length and currency, only from 3 prices, with the dates read. Never a price per operator. |
| `airport_market_snapshot` | Number of car parks, shares with shuttle / valet / covered parking, median and shortest distance, number with prices. |
Each tool takes `airport` = IATA code or airport name. The only outbound link is the airport page on parkandkeep.com
(`utm_source=mcp`); no affiliate or partner link.
```sh
npm install
npm test # build + local HTTP smoke test (tools/list and every tool on 3 airports) + stdio smoke test
npm start # http://127.0.0.1:8787/mcp
```
Data: `src/data/index.json` and `src/data/hubs.json` are written by `../sync.mjs`; do not edit them by hand.
Licences: code MIT ([LICENSE](LICENSE)); data CC BY 4.0, credit Park & Keep.
TDQS
Scored across 3 tools
Each tool answers a different question: what car parks exist at an airport, what a stay costs, and how competitive the local market is. The two 'snapshot' tools share the same underlying index and could be momentarily confused, but the descriptions sharply separate consumer price questions from operator/analyst market questions, and each explicitly cross-references the others.
All three tools use the same airport_<subject>_<noun> snake_case pattern with no deviations. The suffixes (options, price_snapshot, market_snapshot) are predictable and self-describing.
Three tools is on the lean side but appropriate for a narrow, read-only data index where each tool maps to a distinct user intent. Nothing feels padded and no obvious query type is missing from the surface.
Coverage is reasonable for a read-only price/listing index, but there are dead ends: no way to look up a single named car park's details, no airport/country browse or discovery tool, and no per-operator pricing. Agents asking about one specific lot or an unsupported airport have nowhere to go.