Skip to main content
Glama

FedMCP - Federal Parliamentary Information

FedMCP - Federal Parliamentary Information MCP Server

An MCP (Model Context Protocol) server providing access to Canadian federal parliamentary and legal information sources through Claude and other LLM applications.

Features

FedMCP provides tools for accessing:

  • OpenParliament API - Debates, votes, MPs, bills, and committees

  • House of Commons Hansard - Official transcripts of parliamentary proceedings

  • LEGISinfo - Current and historical Canadian legislation

  • CanLII API - Canadian Legal Information Institute case law and legislation (requires API key)

Installation

# Clone the repository git clone https://github.com/matthewdufresne/FedMCP.git cd FedMCP # Install in development mode pip install -e .

Configuration

For CanLII access, you need an API key (free for research and non-commercial use):

  1. Request a key from https://www.canlii.org/en/feedback/feedback.html

  2. Copy .env.example to .env

  3. Add your CanLII API key to the .env file

cp .env.example .env # Edit .env and add: CANLII_API_KEY=your_key_here

Usage

Running the MCP Server

fedmcp

Or run directly with Python:

python -m fedmcp.server

Available Tools

The MCP server exposes the following tools:

Parliamentary Data:

  • search_debates - Search House of Commons debates by keyword

  • search_bills - Search Canadian bills by number or keywords

  • search_hansard - Search Hansard transcripts for quotes and statements

  • list_debates - List recent parliamentary debates

  • get_bill - Get details for a specific bill

  • list_mps - List Members of Parliament

  • list_votes - List parliamentary votes

Legal Data (requires CanLII API key):

  • search_cases - Search Canadian case law by database and keywords

  • get_case - Get metadata for a specific case

  • get_case_citations - Get citing/cited cases and legislation

  • search_legislation - Browse Canadian federal and provincial legislation

MCP Client Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "fedmcp": { "command": "python", "args": ["-m", "fedmcp.server"], "env": { "CANLII_API_KEY": "your_key_here" } } } }

Architecture

FedMCP is built on the existing canfedinfo library clients, adapted for the MCP protocol:

  • OpenParliamentClient - Pagination-aware API client for openparliament.ca

  • OurCommonsHansardClient - XML parser for House of Commons Hansard transcripts

  • LegisInfoClient - Access to LEGISinfo bill and legislation data

  • CanLIIClient - REST API client for Canadian case law and legislation

  • RateLimitedSession - Built-in retry logic with exponential backoff

All clients use a shared rate-limited HTTP session to ensure reliable API access.

Development

# Install with development dependencies pip install -e ".[dev]" # Run tests pytest

License

MIT License - see LICENSE file for details

Credits

Based on the canfedinfo library from the broadcast-os project.

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Provides access to Canadian federal parliamentary data (debates, bills, MPs, votes, Hansard transcripts) and legal information (case law and legislation through CanLII) for research and analysis.

  1. Features
    1. Installation
      1. Configuration
        1. Usage
          1. Running the MCP Server
          2. Available Tools
        2. MCP Client Configuration
          1. Claude Desktop
        3. Architecture
          1. Development
            1. License
              1. Credits

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/northernvariables/FedMCP'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server