MCP server for accessing Kenyan Parliament hansard data. Exposes tools to list sittings, fetch transcripts, and look up member profiles for use with any MCP-compatible LLM client.
Source routing is automatic: archive (info.mzalendo.com) is used for sittings before 2013-03-28, current (mzalendo.com) for those after, and both are merged in parallel for ranges that span the cutoff.
| Tool | Description |
|---|---|
list_sittings |
List parliamentary sittings with automatic source routing. Supports date range filtering, house filtering, and pagination. Cross-era ranges merge both sources in parallel. |
get_sitting |
Fetch the full transcript of a sitting including sections, contributions, and procedural notes. Source is detected automatically from the URL. |
list_members |
List MPs by house and parliament session. Set all: true to fetch all pages at once. |
get_all_members |
Fetch all members from both houses in parallel for a given parliament session. parliament defaults to "13th-parliament". |
get_member_profile |
Fetch a member's full profile: biography, positions, committees, voting patterns, and sponsored bills. Set all_activity or all_bills to paginate fully. |
cargo install --git https://github.com/mwananchi-tech/odnelazm odnelazm-mcp-localFor the HTTP/SSE server:
cargo install --git https://github.com/mwananchi-tech/odnelazm odnelazm-mcp-webodnelazm-mcp-localodnelazm-mcp-webThe server listens on 127.0.0.1:8055 by default. Override with BIND_ADDRESS:
BIND_ADDRESS=0.0.0.0:8080 odnelazm-mcp-webThe SSE endpoint is available at /sse.
Uses the stdio transport. Add the following to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"odnelazm": {
"command": "/full/path/to/odnelazm-mcp-local"
}
}
}Find the full path after installing:
which odnelazm-mcp-localRestart Claude Desktop after saving.
A hosted instance is available at:
https://odnelazm.c12i.xyz/sse
To connect:
- Go to Settings > Connectors > Add Custom Connector
- Enter the SSE endpoint:
https://odnelazm.c12i.xyz/sse
To self-host instead, build the Docker image and deploy it to any cloud host, then point your connector at your own /sse endpoint.
Most MCP-compatible clients (Cursor, Windsurf, Zed, etc.) support either stdio or SSE. For stdio, point to the odnelazm-mcp-local binary. For SSE, use the hosted endpoint above or your own deployment.
Hansard transcripts and member profiles are large. Fetching multiple sittings or the full member list in a single conversation can easily exceed the context window of most models.
- Prefer narrow date ranges when listing sittings rather than fetching all at once.
- Fetch one sitting transcript at a time when analysing debate content.
all_activity: trueandall_bills: trueon member profiles can return a large volume of data. Only use these when exhaustive detail is necessary.
For broad cross-sitting queries, a local model with a large context window (1M+ tokens) handles it significantly better than a standard cloud model.
| Variable | Default | Description |
|---|---|---|
BIND_ADDRESS |
127.0.0.1:8055 |
Bind address for HTTP server |
RUST_LOG |
debug |
Log level |
docker build -t odnelazm-mcp .
docker run -p 8055:8055 -e BIND_ADDRESS=0.0.0.0:8055 odnelazm-mcp