Skip to main content
Glama
TheBlackCompany

Umbrella Terminal MCP

README.md
# 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

```bash
pip install umbrella-terminal
```

Add to your MCP config:

**Claude Code** (`~/.claude/settings.json`):
```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