seattle-open-data
An agent-friendly MCP server for Seattle Open Data (Socrata SODA2).
Status: alpha (0.1.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 |
Run
uv run seattle-open-data # stdio
Claude Code:
claude mcp add seattle-open-data -- uv run --directory /path/to/seattle-open-data seattle-open-data
Optional: set SOCRATA_APP_TOKEN to use a Socrata application token. A rejected token is reported as app_token_rejected, never silently dropped.
To build the installable MCPB bundle (needs the mcpb CLI): make mcpb.
Develop
uv sync
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
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.1.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.1.0.tar.gz | 48.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| seattle_open_data-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 105.5 kB
Release files / seattle_open_data-0.1.0.tar.gz
| Download URL | seattle_open_data-0.1.0.tar.gz |
|---|---|
| Size | 48.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c17830ea4aea3b21d2eb1af31aec96601092b7aa20d5fafc1412eb6f5cc5213b
|
|
BLAKE2b-256 checksum How to use checksums |
b228b4bc63b72f2a5a80d45ffecedf6e429fbac0ef40a98087c26040060ebcc3
|
| 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 16, 2026.
Transparency logRelease files / seattle_open_data-0.1.0-py3-none-any.whl
| Download URL | seattle_open_data-0.1.0-py3-none-any.whl |
|---|---|
| Size | 57.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f6d421555392b7e29118b76f375aafc40966d52ac02079c0a1a469960d64057
|
|
BLAKE2b-256 checksum How to use checksums |
fa86f395c1e99d12137e5f541b34d4caf473319c0028930dafe0f174d20e68b4
|
| 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 16, 2026.
Transparency log