Elections Canada MCP Server
LocalAbout Elections Canada MCP Server
Elections Canada MCP Server gives MCP clients access to Canadian federal election data for 2021 and 2025, with queries and summaries organized by riding, province, and party.
Key features
- 01Search ridings
- 02Retrieve party votes by riding
- 03Summarize provincial and national results
- 04Find the closest ridings
- 05Compare party best and worst results
Use cases
- 01Look up an election result for a riding
- 02Summarize party results by province or nationally
- 03Identify ridings with the narrowest margins
MCP support
The server exposes riding and province resources, along with tools for querying and summarizing election results to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEElections Canada MCP Server
This is a Model Context Protocol (MCP) server that provides access to Canadian federal election data. It currently supports results from the 2021 and 2025 elections. Future updates will include past elections, census demographics, and ThreeFortyThree real-time projections.
Brought to you by ThreeFortyThree, this server powers ThreeFortyThree Chat and is available for use with MCP clients such as Claude Desktop.
🛠 Setup
Installation (via PyPI)
uv pip install elections-canada-mcp-server
Usage with Claude Desktop
- Make sure the server is installed:
uv pip install elections-canada-mcp-server
- Open your
claude_desktop_config.jsonand add the following block:
uv
{
"mcpServers": {
"elections_canada_data_and_predictions": {
"command": "{PATH_TO_UVX}", // Replace with output of: which uvx
"args": ["elections-canada-mcp"]
}
}
}
-
Restart Claude Desktop.
-
Now you can ask Claude questions such as:
- "What were the 2021 election results in Toronto Centre?"
- "Which ridings were closest for the NDP?"
- "Show me the highest-margin wins for the Conservatives in 2021."
Local Development
To test the server using MCP Inspector:
-
Clone this repository:
git clone https://github.com/ThreeFortyThree-Canada/elections-canada-mcp-server.git cd elections-canada-mcp-server -
Install MCP CLI:
uv pip install mcp -
Test the server:
mcp dev elections_canada_mcp/server.py
This opens a web UI to test the server locally.
🧰 Tools
| Tool | Description | Input | Returns |
|---|---|---|---|
search_ridings | Search ridings by name (accent-insensitive) | search_term: str | List of matching ridings |
get_party_votes | Get vote share in a riding (optionally by party) | riding_code: str, party_code: str (optional) | Votes and percentage |
get_winning_party | Get the winning party in a riding | riding_code: str | Winning party |
summarize_province_results | Province-wide summary of votes/seats | province_name_or_code: str | Party results |
summarize_national_results | Canada-wide election summary | — | National party results |
find_closest_ridings | Find most competitive ridings | num_results: int, party: str (optional) | Closest margins |
best_and_worst_results | Best/worst ridings for a party | party: str, num_entries: int | 4-category performance summary |
📚 Resources
| Resource | URI |
|---|---|
| All ridings | elections-canada://ridings |
| Single riding | elections-canada://riding/{riding_code} |
| Province | elections-canada://province/{province_code} |
📌 Province Codes
AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT
📌 Party Codes
LPC, CPC, NDP, BQ, GPC, PPC
📄 License
This project is licensed under the MIT License.
© ThreeFortyThree Canada – threefortythree.ca
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.