Skip to main content

MCP server exposing Storywrangler documentation and the dataset registry to AI agents

Project description

storywrangler-mcp

MCP server that lets AI agents work with the Storywrangler platform. Modeled on the Svelte team's @sveltejs/mcp and vcsi-starter's @the-vcsi/scrolly-mcp: the server holds no content — it fetches documentation from the docs site's llms.txt exports and dataset metadata from the live registry API, so nothing can drift.

Tools

Tool Source Purpose
list-sections docs site /sections.json Discover documentation sections (guides + per-tag API reference)
get-documentation docs site /{slug}/llms.txt Fetch section markdown, with fuzzy matching
list-datasets API /registry/ List registered datasets with queryable dimensions
get-dataset API /registry/{domain}/{dataset_id} Ground-truth metadata: level_order, filter_values, availability
validate-submission local (storywrangler-schemas) Dry-run a DatasetCreate payload: real Pydantic contract, mirrored server guards, conflation lints, on-disk hive layout checks when reachable

Usage

Remote (streamable HTTP) — the backend mounts this same server at /mcp (see backend/app/main.py). No install needed:

{
  "mcpServers": {
    "storywrangler": {
      "type": "http",
      "url": "https://storywrangler.uvm.edu/mcp/"
    }
  }
}

Keep the trailing slash — /mcp works but costs a 307 redirect per request. On the server, set STORYWRANGLER_DOCS_URL/STORYWRANGLER_URL to localhost addresses so tool fetches don't loop through the public proxy. Note: remote clients validate TLS strictly; this endpoint is unusable externally until the uvm.edu certificate mismatch is fixed.

Local (stdio) — works offline and pins a version:

{
  "mcpServers": {
    "storywrangler": {
      "command": "uvx",
      "args": ["storywrangler-mcp"]
    }
  }
}

CLI mode

Every tool also works as a shell command — the fallback for subagents and CI where no MCP connection exists:

uvx storywrangler-mcp list-sections
uvx storywrangler-mcp get-documentation register querying
uvx storywrangler-mcp list-datasets
uvx storywrangler-mcp get-dataset wikimedia ngrams --full
uvx storywrangler-mcp validate-submission payload.json   # '-' reads stdin

validate-submission exits non-zero on blocking errors, so a pipeline can gate its submit step on it (add --no-disk to skip layout checks).

Configuration

Env var Default Meaning
STORYWRANGLER_DOCS_URL https://storywrangler.uvm.edu Docs site base URL
STORYWRANGLER_URL https://storywrangler.uvm.edu API base URL (same var the SDK uses)
STORYWRANGLER_INSECURE unset Set to 1 to skip TLS verification (the uvm.edu deployment currently serves a mismatched certificate — fix pending)

Point both at http://localhost:5173 / http://localhost:8000 for local development.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

storywrangler_mcp-0.1.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

storywrangler_mcp-0.1.1-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file storywrangler_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: storywrangler_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for storywrangler_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ee6ff884ecfb2fe2f87f6bc3751205eeb921f3cd973e9854003eaea9af388039
MD5 aa78428c264512c75dd5e3fce1c86b0d
BLAKE2b-256 83fbf44c95a878fec061750ab4b0151a766731f414ca0d70d7c025643ee689ff

See more details on using hashes here.

File details

Details for the file storywrangler_mcp-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for storywrangler_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0fe60e9a82074612636d0add0cc635f98ef51d01c1d20dc975e45b2972ebf69a
MD5 078bfdac9305abb42655155d04338893
BLAKE2b-256 fc7fa911a063a34fea74dd72c4abda14a5d9f3bdf548998e1bfa82a508322285

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page