Skip to main content

Elections 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

  1. Make sure the server is installed:
uv pip install elections-canada-mcp-server
  1. Open your claude_desktop_config.json and 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"]
    }
  }
}
  1. Restart Claude Desktop.

  2. 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:

  1. Clone this repository:

    git clone https://github.com/ThreeFortyThree-Canada/elections-canada-mcp-server.git
    cd elections-canada-mcp-server
    
  2. Install MCP CLI:

    uv pip install mcp
    
  3. 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

Metadata

Release files for elections-canada-mcp-server 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elections-canada-mcp-server 0.1.3
File Size Uploaded
elections_canada_mcp_server-0.1.3.tar.gz 50.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for elections-canada-mcp-server 0.1.3
File Interpreter ABI Platform
elections_canada_mcp_server-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 98.4 kB

Release files / elections_canada_mcp_server-0.1.3.tar.gz

Download URL elections_canada_mcp_server-0.1.3.tar.gz
Size 50.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0700c122a91fdc468eeb3cba361588b5879dbeb648a6310099cb8514466842d6
BLAKE2b-256 checksum
How to use checksums
b446034fa69d11dc29bf47f7d707385201976932da40d963264adb8996dc83dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / elections_canada_mcp_server-0.1.3-py3-none-any.whl

Download URL elections_canada_mcp_server-0.1.3-py3-none-any.whl
Size 47.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4e6b48ed762f83a3d42ab4fd27942498453ae6184aa500917ba30251bf273c6
BLAKE2b-256 checksum
How to use checksums
234de49d46dbb5a9f5dce2746b31cc5db6f267e418b0e39be26b5406fe96d8c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

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