Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Elections Canada

FreeNot checked

MCP server for Elections Canada data

GitHubEmbed

About

MCP server for Elections Canada data

README

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

from github.com/ThreeFortyThree-Canada/elections-canada-mcp-server

Installing Elections Canada

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/ThreeFortyThree-Canada/elections-canada-mcp-server

FAQ

Is Elections Canada MCP free?

Yes, Elections Canada MCP is free — one-click install via Unyly at no cost.

Does Elections Canada need an API key?

No, Elections Canada runs without API keys or environment variables.

Is Elections Canada hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Elections Canada in Claude Desktop, Claude Code or Cursor?

Open Elections Canada on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Elections Canada with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs