Washington State Legislature MCP Server
About
Model Context Protocol (MCP) Server for Washington State Legislative Web Services
Details
- License
- MIT license
Explore
- Bill tracking and information retrieval
- Committee meeting schedules and agendas
- Legislator lookup and sponsor information
- Bill status and history tracking
- Legislative document access in XML, HTM, and PDF
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Washington State Legislature MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
- Python 3.10+
- pip package manager
pip install -e ".[dev]"
pip install .
For cloud deployment on AWS Lambda, you can use the mcp-remote adapter to enable Claude Desktop connectivity:
{
"mcpServers": {
"wa-leg": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-api-gateway-url/sse"
]
}
}
}
Create a .env file:
WSL_API_TIMEOUT=30
WSL_CACHE_TTL=300
LOG_LEVEL=INFO
SERVER_NAME="Washington State Legislature MCP Server"
1. Clone the repository:
git clone https://github.com/awalcutt/wa-leg-mcp.git
cd wa-leg-mcp
2. Create virtual environment:
python -m venv venv
source venv/bin/activate # Or venv\Scripts\activate on Windows
3. Install development dependencies:
pip install -e ".[dev]"
4. Run tests:
make test
- Run directly with Python
- Use with MCP Inspector for development
- AWS Lambda with API Gateway (supports remote connections via mcp-remote adapter)
- Google Cloud Functions
- Azure Functions
| Variable | Description | Default |
|----------|-------------|---------|
| WSL_API_TIMEOUT | API request timeout (seconds) | 30 |
| WSL_CACHE_TTL | Cache time-to-live (seconds) | 300 |
| LOG_LEVEL | Logging level | INFO |
| SERVER_NAME | Custom server name | Washington State Legislature MCP Server |
getBillInfo
Retrieve detailed information about specific bills
searchBills
Search for bills using keywords and optional filtering
getBillsByYear
Retrieve all bills from a specific year with filtering options
getCommitteeMeetings
Get committee meeting schedules and agendas
findLegislator
Find legislators by district or lookup sponsors
getBillStatus
Get current status and history of a bill
getBillDocuments
Retrieve bill document metadata with links
getBillContent
Retrieve the actual content of a bill in AI-friendly format
- getBillInfo - Retrieve detailed information about specific bills
- searchBills - Search for bills using keywords and optional filtering
- getBillsByYear - Retrieve all bills from a specific year with filtering options
- getCommitteeMeetings - Get committee meeting schedules and agendas
- findLegislator - Find legislators by district or lookup sponsors
- getBillStatus - Get current status and history of a bill
- getBillDocuments - Retrieve bill document metadata with links
- getBillContent - Retrieve the actual content of a bill in AI-friendly format
1. Create a new file in src/wa_leg_mcp/tools/
2. Implement tool using the MCP decorator:
```python
from mcp.server.fastmcp import Tool
@Tool("toolName", description="Tool description")
def tool_function(param1: str, param2: str = None):
result = await session.call_tool("getBillInfo", {
"bill_number": "HB1234",
"biennium": "2025-26"
})
print(result)
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"washington state legislature mcp server": {
"wa-leg-mcp": {
"command": "python",
"args": [
"src/wa_leg_mcp/server.py"
]
}
}
}
}
McpServers
{
"wa-leg-mcp": {
"command": "python",
"args": [
"src/wa_leg_mcp/server.py"
]
}
}
A Model Context Protocol (MCP) server that provides AI assistants with access to Washington State Legislature data, enabling civic engagement through conversational interfaces.
Overview
This MCP server connects AI assistants to the Washington State Legislative Web Services (WSLWS), providing tools for:
- Bill tracking and information retrieval
- Committee meeting schedules and agendas
- Legislator lookup and sponsor information
- Bill status and history tracking
- Legislative document access
Features
Core Tools
-getBillInfo - Retrieve detailed information about specific bills
- searchBills - Search for bills using keywords and optional filtering
- getBillsByYear - Retrieve all bills from a specific year with filtering options
- getCommitteeMeetings - Get committee meeting schedules and agendas
- findLegislator - Find legislators by district or lookup sponsors
- getBillStatus - Get current status and history of a bill
- getBillDocuments - Retrieve bill document metadata with links
- getBillContent - Retrieve the actual content of a bill in AI-friendly format
MCP Resources
-bill://xml/{biennium}/{chamber}/{bill_number} - Access bill documents in structured XML format
- bill://htm/{biennium}/{chamber}/{bill_number} - Access bill documents in HTML format
- bill://pdf/{biennium}/{chamber}/{bill_number} - Get URLs for bill PDF documents
- bill://document/{format}/{biennium}/{chamber}/{bill_number} - Generic format for accessing bill documents
Installation
Prerequisites
- Python 3.10+ - pip package managerDevelopment Installation
pip install -e ".[dev]"
Production Installation
pip install .
Quick Start
Local Development
```bashSign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



