CensusChat
Natural language interface for US Census data. Built with Claude AI, DuckDB, and MCP. Ask questions in plain English, get data back.
claude mcp add --transport stdio hollandkevint-censuschat docker run -i hollandkevint/censuschat:latest \ --env ENV="Runtime environment variables for MCP server" \ --env CENSUS_API_KEY="Your Census API key" \ --env ANTHROPIC_API_KEY="Your Anthropik (Claude) API key"
How to use
CensusChat provides a natural language interface to US Census data tailored for healthcare strategy teams. It leverages an MCP HTTP transport to accept plain-English queries, translates them into validated SQL, executes them against a DuckDB-backed dataset, and returns interactive results including sortable tables, charts, and export options. You can ask for demographic compositions, market analyses, and healthcare-oriented indicators (e.g., Medicare eligibility, population health indicators) and compare regions side-by-side. The system supports conversational follow-ups like “Show seniors in Tampa Bay” and “Now filter to income over $75K,” preserving context across steps and delivering quick exports to Excel or CSV. Parallel querying and drill-down capabilities enable rapid comparisons across counties and block groups, making it practical for strategy planning and facility placement work.
How to install
Prerequisites:
- Docker is installed and running on your machine or deployment environment.
- Access to required API keys: AnthropAI/Claude (Anthropic) and Census data API.
- Optional: a suitable deployment environment for persistent storage and logs.
Step-by-step:
- Pull and run the CensusChat MCP server container:
# Run the CensusChat MCP server container (exposes its UI/API on localhost:3000 by default)
docker run -it --rm \
-p 3000:3000 \
-e ANTHROPIC_API_KEY="<your-anthropic-key>" \
-e CENSUS_API_KEY="<your-census-key>" \
-v censuschat_data:/data \
hollandkevint/censuschat:latest
- Verify startup and access the UI:
Open http://localhost:3000 in your browser to start querying Census data.
- For local development without Docker, ensure Node.js-based components and dependencies are installed (if you have a fork or local build). The project uses Docker for deployment in this guide, so the Docker approach is recommended for a straightforward setup.
Additional notes
Tips and considerations:
- Ensure your API keys are valid and not expired before starting the container; the container must be able to reach the external APIs.
- If you need to scale queries, consider using a container orchestration platform and ensure persistent storage for audit logs.
- The MCP validation layer enforces security policies; if you encounter blocked queries, review the allowlists and query patterns.
- For production deployments, set proper TLS termination and rotate API keys regularly. Monitor query latency to maintain sub-2-second response goals.
- If you encounter port conflicts, adjust the -p flag to expose a different host port (e.g., -p 8080:3000).
Related MCP Servers
markdownify
A Model Context Protocol server for converting almost anything to Markdown
obsidian -tools
Add Obsidian integrations like semantic search and custom Templater prompts to Claude or any MCP client.
ironcurtain
A secure* runtime for autonomous AI agents. Policy from plain-English constitutions. (*https://ironcurtain.dev)
create -app
A CLI tool for quickly scaffolding Model Context Protocol (MCP) server applications with TypeScript support and modern development tooling
mcp-duckdb-memory
MCP Memory Server with DuckDB backend
grok-faf
First MCP server for Grok | FAST⚡️AF • URL-based AI context • Vercel-deployed