Skip to main content

seattle-open-data

CI Python License: MIT

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)

Source distribution for seattle-open-data 0.2.0
File Size Uploaded
seattle_open_data-0.2.0.tar.gz 53.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seattle-open-data 0.2.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page