Umbrella Terminal MCP
MCP server for Colorado legislative intelligence. Provides 67 tools for querying bills, statutes, rules, legislators, votes, attribution chains, stakeholders, lobbying data, campaign finance, hearings, and district representation.
Built for AI agents — works with Claude Code, Cursor, and any MCP-compatible client.
Quick Start
pip install umbrella-terminal
Add to your MCP config:
Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"umbrella-terminal": {
"command": "python",
"args": ["-m", "umbrella_terminal", "--quiet"],
"env": {
"TERMINAL_API_URL": "https://terminal-api-m4d6.onrender.com",
"TERMINAL_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cursor (.cursor/mcp.json): same structure.
Restart your IDE. You now have 67 legislative intelligence tools.
Getting an API Key
Contact the Umbrella team to request an API key. Keys are provisioned per-user with rate limits based on tier.
What You Can Do
| Category | Tools | Examples |
|---|---|---|
| Search | search, search_summaries | Semantic search across bills, statutes, rules |
| Bills | get_bill, get_bill_text, get_bill_votes, list_bills | Full bill records, text, vote breakdowns |
| Statutes | get_statute, get_statute_summary, get_statute_mechanisms | Statute text, summaries, regulatory mechanisms |
| Legislators | get_legislator, get_legislator_votes, list_legislators | Legislator profiles, voting records |
| Rules | get_rule, get_rule_text, get_rule_summary | Administrative rules and regulatory text |
| Attribution | trace_chain, find_path | Trace from rule → statute → bill → legislator |
| Stakeholders | get_bill_stakeholders, get_stakeholder_taxonomy | Who is affected by legislation |
| Lobbying | get_bill_lobby_positions, get_lobby_client | Lobbyist positions on bills |
| Finance | get_legislator_contributors, get_bill_funding | Campaign contributions, funding sources |
| Hearings | get_hearing, list_open_hearings, get_hearing_calendar | Committee hearing schedules |
| Districts | list_districts, get_district_legislators, lookup_districts | District-to-legislator mapping, geocoding |
Configuration
The MCP server needs two environment variables:
| Variable | Description |
|---|---|
TERMINAL_API_URL | Terminal API endpoint (provided with your key) |
TERMINAL_API_KEY | Your API key |
These are set in the MCP config env block — you don't need a .env file.
Requirements
- Python 3.10+
- An API key from the Umbrella team
License
MIT