# MCP server

Connect any Model Context Protocol client to `https://www.chicagopolitics.org/mcp` (Streamable HTTP). Clients that support OAuth ask you to sign in; others can send an API key as a Bearer token.

## Connect

In clients configured with JSON, the entry usually looks like this:

```json
{
  "mcpServers": {
    "chicago-politics": {
      "url": "https://www.chicagopolitics.org/mcp",
      "headers": { "Authorization": "Bearer cp_live_..." }
    }
  }
}
```

Leave out `headers` if your client signs in with OAuth.

## Tools

| Tool | What it does |
| --- | --- |
| `graphql` | Run any GraphQL query against the full data graph |
| `search_documents` | Semantic search across City documents and meeting transcripts |
| `answer_question` | An AI answer with citations (uses an AI call) |
| `search_legislation`, `get_legislation` | Find and read legislation |
| `get_alderperson`, `list_votes`, `find_ward` | A member's record, how they voted, which ward contains a location |
| `get_campaign_finance`, `search_donations` | A member's campaign money, and donations by donor or employer |
| `list_meetings`, `get_meeting`, `get_committee`, `get_page` | Meetings, committees, and any page as Markdown |
| `contribute_data` | Share data, documents, sources, or corrections (reviewed by a person) |
| `get_usage` | Today's usage and limits |

Server card: [/.well-known/mcp/server-card.json](https://www.chicagopolitics.org/.well-known/mcp/server-card.json). In the browser, the site also registers WebMCP tools for agents that support them.

---
Source: https://www.chicagopolitics.org/developers/mcp · Chicago Politics, an independent, nonpartisan tracker of the Chicago City Council. Guide for agents: https://www.chicagopolitics.org/llms.txt
