socrata-mcp-server
io.github.cyanheads/socrata-mcp-serverVersion 0.7.0Search and query government open-data portals (Socrata SODA API).
Status
Responds601 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:48 UTC
- Latency
- 601 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://socrata.caseyjhand.com/mcpResponds601 msNo sign-in
Claude Code
claude mcp add --transport http socrata-mcp-server https://socrata.caseyjhand.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: socrata-mcp-server
Remote MCP server URL: https://socrata.caseyjhand.com/mcpCursor
{
"mcpServers": {
"socrata-mcp-server": {
"url": "https://socrata.caseyjhand.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"socrata-mcp-server","type":"http","url":"https://socrata.caseyjhand.com/mcp"}'Streamable HTTP
npm: @cyanheads/socrata-mcp-server 0.7.0Package only
npm (npx)
claude mcp add socrata-mcp-server -- npx -y @cyanheads/socrata-mcp-server@0.7.0Streamable HTTP
npm: @cyanheads/socrata-mcp-server 0.7.0Package only
npm (npx)
claude mcp add socrata-mcp-server -- npx -y @cyanheads/socrata-mcp-server@0.7.0Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
6 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
socrata_dataframe_describeList registered tables in a DataCanvas session — schema, row count, and column names. Shows what datasets are available for SQL queries via socrata_dataframe_query. Meaningful when the server has a DataCanvas. Use after socrata_query_dataset spills a large result set to canvas. | Not declared | Yes | Yes | No |
socrata_dataframe_queryRun SELECT-only SQL against a DataCanvas table populated by socrata_query_dataset. Columns SODA types as number (including aggregate aliases like count(*) as n) are staged as DOUBLE, so numeric comparisons work without a cast (year > 2020, amount < 500). Text and timestamp columns stay VARCHAR — compare times with CAST(date AS TIMESTAMP). Works when the server has a DataCanvas. Use socrata_dataframe_describe to see registered tables and their schemas. | Not declared | Yes | Yes | No |
socrata_find_datasetsSearch for datasets across all Socrata-powered government open-data portals, or scope to one portal with the domain parameter. Returns dataset IDs, names, domains, update timestamps, and column_names — the API field names SoQL takes, not display labels. Use socrata_get_dataset to fetch the typed column schema before writing queries — column_names carry no type information. | Not declared | Yes | Yes | Yes |
socrata_get_datasetFetch full metadata and column schema for a Socrata dataset by ID. Returns field names, data types, descriptions, row count, and licensing. Always call this before writing a socrata_query_dataset — the column types determine correct WHERE clause syntax: Number columns accept bare literals (year=2023) while Text columns require single-quoted strings (year='2023'). | Not declared | Yes | Yes | Yes |
socrata_list_portalsList known Socrata-powered government open-data portals with their domain, organization name, and approximate dataset count. The catalog is a curated list of 39 well-known portals; dataset counts are fetched from the Discovery API and cached for ~24 hours. Filtering is client-side substring match on the query parameter. Use this first when you do not know which portal to target, then pass the domain to socrata_find_datasets. | Not declared | Yes | Yes | Yes |
socrata_query_datasetExecute a SoQL query against any dataset on any Socrata portal. Use the search parameter for quick full-text lookup, or combine select/where/group/having/order for full analytical control. Returns rows plus the assembled SoQL string so you can learn the pattern. Columns are referenced by API field name (field_name from socrata_get_dataset, e.g. cuisine_description), never the display label. All SODA 2.1 row values are strings even for numeric columns — check data_type from socrata_get_dataset to determine correct WHERE quoting: Number columns use bare literals (year=2023), Text columns use single-quoted strings (year='2023'). To enumerate distinct values, use select="col, count(*) as n" with group="col" and order="n DESC". When the server has a canvas and more rows match past a full page, up to 50,000 matching rows spill to a DataCanvas table whatever the limit: list its columns with socrata_dataframe_describe, then run SQL with socrata_dataframe_query. Pass stage false to return the page alone, without staging. | Not declared | Yes | Yes | Yes |
Details
- Registry status
- Active
- Published
- Nov 8, 2026
- Updated
- Nov 8, 2026
- Website
- Not given
- Categories (suggested)
- Data and analyticsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared