# socrata-mcp-server MCP server

Search and query government open-data portals (Socrata SODA API).

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-socrata-mcp-server
- Repository: https://github.com/cyanheads/socrata-mcp-server

## Install
- Command: `npx -y @cyanheads/socrata-mcp-server`
- Endpoint: https://socrata.caseyjhand.com/mcp
- Auth: Not captured

## Setup notes
- Package: Npm @cyanheads/socrata-mcp-server v0.1.7
- Environment variable: SOCRATA_APP_TOKEN
- Environment variable: SOCRATA_DEFAULT_DOMAIN (default data.seattle.gov)
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/socrata-mcp-server v0.1.7
- Environment variable: SOCRATA_APP_TOKEN
- Environment variable: SOCRATA_DEFAULT_DOMAIN (default data.seattle.gov)
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- Remote endpoint: https://socrata.caseyjhand.com/mcp

## Tools
- socrata_find_datasets (Find Socrata Datasets) - Search for datasets across all Socrata-powered government open-data portals, or scope to one portal with the domain parameter. Returns dataset IDs, names, abbreviated column lists, domains, and update timestamps. Use socrata_get_dataset to fetch the full typed column schema before writing queries — columnNames here are preview-only and lack type information. Endpoint: https://socrata.caseyjhand.com/mcp
- socrata_get_dataset (Get Dataset Schema) - Fetch 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'). Endpoint: https://socrata.caseyjhand.com/mcp
- socrata_query_dataset (Query Dataset) - Execute 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. All SODA 2.1 row values are strings even for numeric columns — check dataType 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 CANVAS_PROVIDER_TYPE=duckdb and rows fill the limit, results spill to a DataCanvas table for SQL-based analysis. Endpoint: https://socrata.caseyjhand.com/mcp
- socrata_list_portals (List Socrata Portals) - List known Socrata-powered government open-data portals with their domain, organization name, and approximate dataset count. The catalog is a curated list of 40 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. Endpoint: https://socrata.caseyjhand.com/mcp
- socrata_dataframe_describe (Describe DataCanvas Tables) - List registered tables in a DataCanvas session — schema, row count, column names, and registration time. Shows what datasets are available for SQL queries via socrata_dataframe_query. Only meaningful when CANVAS_PROVIDER_TYPE=duckdb is set. Use after socrata_query_dataset spills a large result set to canvas. Endpoint: https://socrata.caseyjhand.com/mcp
- socrata_dataframe_query (Query DataCanvas Table) - Run SELECT-only SQL against a DataCanvas table populated by socrata_query_dataset. DuckDB infers types from spilled data, so numeric columns that SODA returned as strings become queryable with numeric comparisons (year > 2020, amount < 500). Only works when CANVAS_PROVIDER_TYPE=duckdb is set. Use socrata_dataframe_describe to see registered tables and their schemas. Endpoint: https://socrata.caseyjhand.com/mcp

## Resources
- socrata://portals - Socrata Portal Catalog List of known Socrata-powered government open-data portals with organization name and approximate dataset count. The catalog is a curated list of 40 well-known portals; dataset counts are fetched from the Discovery API and cached for ~24 hours (null when temporarily unavailable). Paginated — default 50 per page. Use the domain values with socrata_find_datasets to search a specific portal. MIME type: application/json
- socrata://datasets/data.seattle.gov/kzjm-xkqj - Socrata Dataset Metadata Fetch full metadata and column schema for a Socrata dataset addressable by stable URI. Same payload as socrata_get_dataset. Name, description, and column descriptions are upstream-provided portal metadata, not server-authored text. URI format: socrata://datasets/{domain}/{datasetId} (e.g. socrata://datasets/data.seattle.gov/kzjm-xkqj). MIME type: application/json

## Prompts
- explore_open_data - Structured workflow for investigating a civic data question. Guides: discover relevant datasets on the right portal, inspect schemas, query for baseline data, group/aggregate for trends, and synthesize findings with data-freshness caveats. Arguments: topic, portal, geography

## Metadata
- Owner: io.github.cyanheads
- Version: 0.1.7
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 4, 2026
- Source: https://registry.modelcontextprotocol.io
