seattle-open-data
An agent-friendly MCP server for Seattle Open Data (Socrata SODA2).
Status: alpha (0.2.0). All four tools work against the live portal, with curated guides for seven flagship datasets. See evals/results for the agent evaluation.
Tools
| Tool | Purpose |
|---|---|
seattle_data_search_datasets |
Find datasets by topic |
seattle_data_describe_dataset |
Columns, row count, time coverage, place fields, geo columns |
seattle_data_query_dataset |
Bounded reads and aggregates (SoQL clauses or raw SoQL) |
seattle_data_get_reference |
Capability summary, SoQL help, guides, error catalog |
Install
The server runs over stdio. The uvx commands below need uv.
Claude Desktop: download seattle-open-data-<version>.mcpb from the latest release and open it with Claude Desktop.
Claude Code:
claude mcp add seattle-open-data -- uvx seattle-open-data
Codex:
codex mcp add seattle-open-data -- uvx seattle-open-data
Any other MCP client: run uvx seattle-open-data as a stdio server:
{
"mcpServers": {
"seattle-open-data": { "command": "uvx", "args": ["seattle-open-data"] }
}
}
Optional app token: set SOCRATA_APP_TOKEN to use a Socrata application token, for example claude mcp add seattle-open-data -e SOCRATA_APP_TOKEN=... -- uvx seattle-open-data. The bundle asks for it in Claude Desktop's settings. A rejected token is reported as app_token_rejected, never silently dropped.
Develop
From a checkout:
uv sync
uv run seattle-open-data # run the server over stdio
uv run pytest
uv run ruff check && uv run ruff format --check && uv run ty check
UPDATE_SNAPSHOTS=1 uv run pytest tests/test_contract.py # after an intended tool-surface change
uv run pytest --run-integration -m integration # live tests against data.seattle.gov
uv run python evals/run.py [--host claude|codex] <out_dir> [task_id ...]
uv run python evals/report.py <out_dir> --answers
To build the MCPB bundle locally (needs the mcpb CLI): make mcpb.
Release
Tag vX.Y.Z after bumping the version: the release workflow builds and smoke-tests the wheel, sdist, and .mcpb, publishes to PyPI after maintainer approval, and attaches all three to a GitHub Release. See docs/releasing.md for the steps, the TestPyPI rehearsal, and one-time setup.
License
MIT
Metadata
Release files for seattle-open-data 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| seattle_open_data-0.2.0.tar.gz | 53.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| seattle_open_data-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.6 kB
Release files / seattle_open_data-0.2.0.tar.gz
| Download URL | seattle_open_data-0.2.0.tar.gz |
|---|---|
| Size | 53.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6628eb0167636334fddef9c1efb9f004477ff11c4d4c96efff1ca5ee9602f813
|
|
BLAKE2b-256 checksum How to use checksums |
c7ebcf270574efd21a1fe1cf319e2132d18c043d6f5efb09814498218f147348
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / seattle_open_data-0.2.0-py3-none-any.whl
| Download URL | seattle_open_data-0.2.0-py3-none-any.whl |
|---|---|
| Size | 62.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ea0759edb62053b434bce5f7ca524678af092f447473f073c8f7cf0982e0afc
|
|
BLAKE2b-256 checksum How to use checksums |
47300b5819846031c583a7a1c9112f87bde0c969e982965bada5ca875800a74b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log