Reported issues for socrata-mcp-server
Pod holds 13 of 13 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to socrata-mcp-server.
Most discussed
bug(output): rendered content truncates rows and fields present in structuredContent
Server version
0.1.16
mcp-ts-core version
^0.13.6
Runtime
Bun
Runtime version
Bun 1.3.14
Transport
HTTP (Streamable HTTP)
Description
Four format() paths cap a value in content[] that structuredContent carries in full, so clients reading only content[] lose data with no way to retrieve it:
socrata_dataframe_query: executed SQL sliced to 200 characters, silently.socrata_get_dataset: dataset description capped at 2000 characters. -…
Read the thread · 2026-07-05 · closed · 6 comments
bug(socrata-service): 404 and 429 lose reason and recovery unless the body is SODA-shaped JSON
Server version
0.1.16
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
SocrataService.fetchJson maps 404 → not_found and 429 → rate_limited only inside if (sodaErr), which requires a JSON body with code/errorCode plus message. Any other body falls through to httpErrorFromResponse with no reason, so the tools' contract rewrap never fires and no recovery hint is sent. Three live 404…
Read the thread · 2026-07-27 · closed · 5 comments
bug(socrata_get_dataset): off-host redirect to a non-Socrata JSON page returns an empty success
Server version
0.1.16
mcp-ts-core version
^0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
data.oxnard.org no longer serves Socrata: /api/views/<id>.json redirects to oxnardca.opengov.com/data, which answers Accept: application/json with HTTP 200 and an unrelated JSON document. socrata_get_dataset accepts that as dataset metadata and returns a "successful" record with an empty name and no columns. The dataset resource already…
Read the thread · 2026-09-22 · closed · 1 comment
bug(socrata-service): URL-shaped domain builds https://https:// and retries a DNS failure to exhaustion
Server version
0.1.16
mcp-ts-core version
^0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
domain is interpolated into https://${domain}/... verbatim, so a caller who passes a URL-shaped value — the form a portal's address bar shows — builds https://https://data.cdc.gov/.... On socrata_get_dataset and socrata_query_dataset the resulting DNS failure is treated as transient and retried to exhaustion before surfacing as a raw…
Read the thread · 2026-09-22 · closed · 1 comment
bug(socrata_list_portals): dataset_count skips the Discovery alias, reporting 0 for a portal that has datasets
Server version
0.1.15
mcp-ts-core version
^0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
findDatasets comma-joins DISCOVERY_DOMAIN_ALIASES into the Discovery domains filter, but fetchPortalDatasetCount sets domains: domain with no alias expansion. For a portal whose catalog assets live under an alias tenant, the count query necessarily returns resultSetSize: 0 — the map's own doc comment records that…
Read the thread · 2026-09-20 · closed · 1 comment
feat(socrata_query_dataset): name the staged table and socrata_dataframe_describe when a result spills to canvas
Use case
When socrata_query_dataset spills to a DataCanvas, it returns a canvas_id but no table name, and it never mentions socrata_dataframe_describe, the only tool that reveals the name. A caller writing SQL has to guess the FROM target, gets table_not_found, and only then sees the hint that points at describe.
The truncation notice is also written before the spill runs. Responses that already carry a canvas_id still say to query the canvas "when…
Read the thread · 2026-08-13 · closed · 1 comment
bug(socrata_find_datasets,socrata_query_dataset): column_names are display labels, unusable as SoQL field names
Server version
0.1.16
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
socrata_find_datasets fills column_names from the Discovery API's resource.columns_name — display labels, not the API field names SoQL takes. A label matches only when it equals the field name up to case (DBA works); labels with spaces fail to parse. The describe frames the gap as types-only ("Preview column name list (no type info)"), and…
Read the thread · 2026-07-27 · closed · 1 comment
bug(socrata_get_dataset,socrata_query_dataset): not_found hides the queried domain and blames retirement for a cross-portal ID
Server version
0.1.16
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
A Socrata four-by-four ID is only meaningful relative to its portal. socrata_get_dataset and socrata_query_dataset take domain as optional and fall back to SOCRATA_DEFAULT_DOMAIN (data.seattle.gov), so an ID from any other portal is looked up on the wrong host. The not_found that follows names neither the ID nor the domain (the…
Read the thread · 2026-07-27 · closed · 1 comment
Most recent
bug(socrata-service): a non-tabular asset's 403 surfaces as bare 'Forbidden' with no reason
Server version
0.2.1
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
Related: #39
A row query against a non-tabular Socrata asset (a file, a map, or an external link that socrata_find_datasets lists by default) gets HTTP 403 with a SODA body, {"error": true, "message": "no row or column access to non-tabular tables"}. That body matches neither the app-token branch nor the gateway branch in…
Read the thread · 2026-09-29 · open · 0 comments
feat(socrata_query_dataset): no way to stage a canvas without paying for the full inline page
Use case
An agent that wants the wider result set for SQL analysis has to request a full page it will not read. The canvas spill fires only when rowCount >= limit, so staging the bounded 50,000-row copy requires asking for the maximum page — and that page comes back inline in structuredContent.rows as well.
Measured: {"limit":5000,"select":"report_number,offense_date,offense_category,precinct,neighborhood"} against a Seattle crime dataset returned 1,135,178 bytes (~284k tokens)…
Read the thread · 2026-09-20 · open · 0 comments
bug(socrata_dataframe_describe): description promises registration time but output omits it
Server version
0.1.14
mcp-ts-core version
0.10.14
Runtime
Bun
Runtime version
Bun 1.3.14
Transport
HTTP (Streamable HTTP)
OS
macOS 26.1
Description
socrata_dataframe_describe's description says it lists each table's "schema, row count, column names, and registration time," but neither the advertised output schema nor either client response path contains a registration timestamp.
Steps to reproduce
- Enable canvas and stage rows with…
Read the thread · 2026-07-16 · closed · 1 comment
bug(canvas): spilled tables lose SODA number types and drop columns null in the first 100 rows
Server version
0.2.0
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
OS
macOS 27.0
Description
When socrata_query_dataset spills to a DataCanvas, it registers the rows with no schema, so DuckDB sniffs the first 100 rows. This causes two problems:
- SODA 2.1 returns number values as strings, so every Number column lands as
VARCHAR.year > 2020then fails, even thoughsocrata_dataframe_query's description says it…
Read the thread · 2026-07-16 · closed · 1 comment
bug(socrata_query_dataset): assembled_query omits pagination offset
Server version
0.2.0
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
OS
macOS 27.0
Description
socrata_query_dataset returns assembled_query as the SoQL behind the returned rows, but drops $offset. Two pages of the same query report the same assembled_query in structuredContent and in the **Query:** line of content[]. Paging itself works: only the reported query is incomplete.
Steps to reproduce
1.…
Read the thread · 2026-07-16 · closed · 1 comment
The remaining reports are on the project's issue tracker.