Skip to main content

MyTown MCP server

An MCP server that gives an AI assistant grounded, source-linked access to US & Canadian local-government meetings — what your city council, county board, or school board has coming up and recently decided, in plain English, plus place context (demographics, home-value trends, federal awards, permits, campaign finance, EPA/nonprofit ties). Every record links back to the official primary source.

Data comes from MyTown's public, keyless HTTP API, so this server needs no API key and no local database — it works out of the box for anyone. Coverage: ~2,400 municipalities (US + Canada), refreshed daily.

Tools

Per-city (great for "what's happening in my town"):

tool what it does
list_cities(query, state, country, limit) find covered cities; resolve a place name → the slug the other tools need
get_city_meetings(slug) upcoming + recent meetings: date, body, plain-English headline/summary, agenda/minutes/source links
get_city_context(slug) everything for a city: meetings plus demographics, home-value trend, federal awards, permits, campaign-finance summary, and per-decision EPA/nonprofit context

Whole-dataset (cross-city — every table, no download; backed by HuggingFace's hosted dataset-viewer API):

tool what it does
dataset_tables() the 17 tables, their columns, and join keys — so you know what to search/filter
search_dataset(query, table, limit) full-text search across all cities in a table (e.g. every decisions row mentioning "rent control")
filter_dataset(table, where, order_by, descending, limit) structured SQL-style filter (e.g. federal_awards where "amount" > 5000000, sorted)
dataset_info() coverage counts + pointers to bulk Parquet / full SQLite for heavy analysis

Typical flows: list_cities("palo alto")get_city_context(slug) for one place; or dataset_tables()search_dataset("police budget", "decisions") to sweep the whole country.

Install & configure

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

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

Or run from a local checkout (no publish needed):

{
  "mcpServers": {
    "mytown": {
      "command": "/absolute/path/to/mcp-server/.venv/bin/python",
      "args": ["-m", "mytown_mcp.server"]
    }
  }
}

Claude Code

# from a local checkout:
claude mcp add mytown -- /absolute/path/to/mcp-server/.venv/bin/python -m mytown_mcp.server
# or, once published:
claude mcp add mytown -- uvx mytown-mcp

From source

python -m venv .venv && .venv/bin/pip install mcp httpx
.venv/bin/python -m mytown_mcp.server   # speaks MCP over stdio

Example questions it can answer

  • "What's the Palo Alto city council deciding this month?"
  • "Show recent school-board meetings for the Palo Alto Unified School District."
  • "For Lake Forest, CA — pull demographics, home-value trend, and any federal awards."
  • "Across the whole country, which towns passed rent-control decisions this year?" (search_dataset)
  • "Show the largest federal awards in the dataset, over $1B." (filter_dataset)
  • "Find meetings tied to EPA facilities with an identified violation." (filter_dataset on decision_echo)

Notes

  • Meeting/decision summaries are AI-generated from official documents — always verify against the linked primary source before relying on a detail.
  • License: CC BY 4.0 (attribution: mytown.theboringparts.com).
  • For research spanning many cities (training, full-text search, bulk stats), use the open dataset rather than looping these tools.

Download files

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

Source Distribution

mytown_mcp-0.1.2.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

mytown_mcp-0.1.2-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file mytown_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: mytown_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for mytown_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 529404dc278e27f92a847b9b145e8850af8dac5d2536161426fbb736920c16c8
MD5 3f03993bf884882546079ffc8e81acfe
BLAKE2b-256 8637d55b518e41391409aab560bbafe6800ce1ec6ab4b0767f0166c03a595b02

See more details on using hashes here.

File details

Details for the file mytown_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: mytown_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for mytown_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d81ce8a43e2ced89ebd5c336b04706a2826777cbfb16957c142e7217baca9379
MD5 834e75350f688fc86cb715697a9b07e2
BLAKE2b-256 bd397d769d00a658de796fef2d549c034a79205009434c080c8e5a7101ec08d1

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.3

2 files

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 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