Aviation MCP demo
Ask questions about US commercial aviation — airports, fleets, operators — and get a chart back inside your chat. The demo pairs a public Parquet dataset (BTS T-100 + FAA Registry + OpenFlights) with an MCP server that hands the LLM a schema-scoped SQL surface and returns an interactive ECharts iframe.
The same server speaks two hosts: this blog's AI chat and Claude Desktop. Architecture walkthrough in the companion blog post (link below).
Add to Claude Desktop
{
"mcpServers": {
"aviation": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://chris.towles.dev/mcp/aviation"]
}
}
} Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop.
streamable-http transport before using this shape. {
"mcpServers": {
"aviation": {
"transport": {
"type": "streamable-http",
"url": "https://chris.towles.dev/mcp/aviation"
}
}
}
}How it looks
Screenshots to be captured post-deploy (tracked in the Unit 7 report).



Architecture
Companion blog post walkthrough: link TBD (Unit 8). The MCP server lives at https://chris.towles.dev/mcp/aviation and speaks JSON-RPC over Streamable HTTP. DuckDB reads Parquet from a public GCS bucket; chart options are generated by Claude Sonnet with defense-in-depth SQL safety (AST allowlist + row cap + query timeout).