corytitus/congress-mcp
If you are the rightful owner of congress-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Congressional Data MCP Server provides authenticated access to U.S. Congressional data through Congress.gov and GovInfo.gov APIs.
Congressional Data MCP Server
A Model Context Protocol (MCP) server providing authenticated access to U.S. Congressional data via Congress.gov and GovInfo.gov APIs.
Features
- 🔐 Token-based authentication - Secure API access with permission levels
- 📊 15+ Congressional data tools - Bills, members, votes, committees, and more
- 🚀 Local & cloud ready - Works with Claude Desktop locally or deploy to cloud
- 📈 Usage tracking - Monitor API usage and token statistics
- ⚡ Smart caching - Reduces API calls with intelligent caching
Quick Start
1. Clone the repository
git clone https://github.com/yourusername/congress-mcp.git
cd congress-mcp
2. Install dependencies
pip install mcp httpx
3. Set up authentication
cd congressional-data-mcp
./setup_auth.sh
This creates your first API token. Save it securely!
4. Configure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"enactai-data-auth": {
"command": "/path/to/congressional-data-mcp/run_auth.sh"
}
}
}
5. Authenticate in Claude
Start a new conversation and authenticate:
Use the authenticate tool with token: [your-token-here]
Available Tools
authenticate- Authenticate with API tokensearch_bills- Search congressional billsget_bill- Get detailed bill informationget_member- Get member of Congress detailsget_votes- Get recent votesget_committee- Get committee informationsearch_amendments- Search bill amendmentssearch_govinfo- Search government documentsget_public_law- Get public law informationget_congressional_record- Search floor proceedingsget_federal_register- Search rules and noticescalculate_legislative_stats- Calculate legislative statisticsget_congress_overview- Educational overview of Congressget_legislative_process- Learn how bills become laws
Token Management
Create tokens
python token_manager.py create "Token Name" --permissions standard
List tokens
python token_manager.py list
View usage
python token_manager.py stats [token_id]
Revoke tokens
python token_manager.py revoke [token_id]
Permission Levels
- read_only - Read access to data tools
- standard - Read and standard operations
- admin - Full access to all tools
API Keys (Optional)
For better rate limits, get free API keys:
Add to .env:
CONGRESS_GOV_API_KEY=your_key_here
GOVINFO_API_KEY=your_key_here
Project Structure
congressional-data-mcp/
├── enactai_server_local_auth.py # Authenticated MCP server
├── token_manager.py # Token management system
├── run_auth.sh # Server startup script
├── setup_auth.sh # Initial setup script
└── tokens.db # Token database (auto-created)
Security
- Tokens are hashed with HMAC-SHA256
- No plaintext tokens stored
- Automatic token expiration support
- Usage tracking and audit logs
- Rate limiting via caching
Support
For issues or questions, please open an issue on GitHub.
License
MIT License - See LICENSE file for details