# org.ungovr/mcp

> Resolve any government entity worldwide and submit service requests. Open civic data for AI agents.

- name: org.ungovr/mcp
- version: 1.2.1
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 88/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/org.ungovr%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/org.ungovr%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "ungovr": {
      "type": "http",
      "url": "https://mcp.ungovr.org/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-21d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 88/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 12 of 12 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 1 of 12 tools declare all four hints; missing: resolve_jurisdiction (destructiveHint, idempotentHint); search_cgj_reports (destructiveHint, idempotentHint); get_cgj_report (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 2,613 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 12, about 2,613 tokens to load them all
- tool set hash: 2541ed6eaa2e43c8aad74b4093e181cb
- tools last changed: 2026-10-05T20:09:23.144Z
- badge: [![protogrid quality](https://protogrid.dev/badge/org.ungovr/mcp.svg)](https://protogrid.dev/servers/org.ungovr/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-05 `resolve_jurisdiction` added
  - Maps an ISO 3166 code to the UnGovr jurisdictions whose law reaches the place, from the published crosswalk (https://data.ungovr.org/v1/crosswalk/iso-3166/index.json, CC BY 4.0). Accepts a country (FR, PR, EU, XK), a first-level subdivision (US-CA, GB-ENG), or the country and region an edge emits as two arguments (country US, region CA). Returns the canonical URN, the stack of governing layers (the place, its sovereign, a union or treaty area that reaches it), OCD-ID, Wikidata QID, precision, a reason when a code cannot be placed, and the crosswalk version. It maps what an edge already knows: it never resolves an IP address (those are refused and not echoed), a city or a postal code, and Cloudflare's XX and T1 answer with a reason, not a guess. Free, rate-limited per IP.

Full history: https://api.protogrid.dev/v1/servers/org.ungovr%2Fmcp/changes

## Remotes

- https://mcp.ungovr.org/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (12)

- `get_cgj_report`: Get full details for a specific California Grand Jury report by ID. Includes findings, recommendations, and responses. Requires X-API-Key header (50 req/day shared with data.ungovr.org). Get a key at https://www.ungovr.org/open-data/api-keys.
- `get_entity`: Get full details for a specific government entity by its URL slug (e.g., "us/ca/ventura"). Works at any depth of the hierarchy, including cities, school districts and special districts (e.g., "us/ca/santa-barbara/spd/carpinteria-valley"). Returns name, type, website, parent, children, domain status, and metadata.
- `get_open_records_law`: Get the open records law (FOIA/RTI equivalent) governing a jurisdiction: name, citation, response deadlines, fees, exemptions, appeal process, records retention rules and RTI rating. Accepts a jurisdiction slug ("us/ca", "ie", "in/mh") or any UnGovr entity slug at any depth ("us/ca/santa-barbara/city/carpinteria" resolves to the California law). US federal FOIA is jurisdiction "us". When the answer comes from a parent jurisdiction the response includes "resolved_from".
- `get_product_coverage`: Get the full hierarchy of government entities where an UnGovr product is available. product="request" returns the worldwide UnGovr Request coverage footprint (where you can file a government service request); product="cgj" returns Civil Grand Jury coverage. Public, no API key required.
- `list_countries`: List all countries with government entity data in UnGovr, including entity counts and coverage metadata.
- `list_service_types`: List available service request categories and types for a country. Returns service types grouped by category (e.g., Infrastructure, Utilities, Parks). Use this to discover valid service_type_id values for submit_service_request. Supported countries: US, IE (Ireland), GB (United Kingdom).
- `resolve_domain_jurisdiction`: Best-effort mapping from a domain to the jurisdiction whose law governs its OPERATOR. Authoritative for government domains in the UnGovr corpus (method "entity_domains"); otherwise an inference from suffix or country-code TLD, or "unknown". Never uses server or edge-node location: a CDN PoP's geography is not the legal signal, the operator's establishment is. IP addresses are refused for the same reason. Requires X-API-Key header (50 req/day, shared with data.ungovr.org). Get a key at https://www.ungovr.org/open-data/api-keys.
- `resolve_jurisdiction`: Maps an ISO 3166 code to the UnGovr jurisdictions whose law reaches the place, from the published crosswalk (https://data.ungovr.org/v1/crosswalk/iso-3166/index.json, CC BY 4.0). Accepts a country (FR, PR, EU, XK), a first-level subdivision (US-CA, GB-ENG), or the country and region an edge emits as two arguments (country US, region CA). Returns the canonical URN, the stack of governing layers (the place, its sovereign, a union or treaty area that reaches it), OCD-ID, Wikidata QID, precision, a reason when a code cannot be placed, and the crosswalk version. It maps what an edge already knows: it never resolves an IP address (those are refused and not echoed), a city or a postal code, and Cloudflare's XX and T1 answer with a reason, not a guess. Free, rate-limited per IP.
- `search_cgj_reports`: Search California Grand Jury reports by county, year, and/or title keyword. Returns report metadata (title, year, county, themes). Requires X-API-Key header (50 req/day). Get a key at https://www.ungovr.org/open-data/api-keys. For the list of valid county names, query the UnGovr entity API: GET https://data.ungovr.org/v1/entities/us/ca.json
- `search_entities`: Search government entities by country, optional state/province, name query, and entity type. Searches every tier of government in the jurisdiction, not just the top one: counties, cities, school districts, special districts, fire and police districts, joint powers authorities and regulated utilities are all reachable. Returns matching entities with slugs, types, and website URLs, plus a "scope" field — "full" means every tier was searched, "direct_children" means only the top tier was (narrow by state and search again). Unrecognised arguments are rejected, not ignored.
- `search_transparency_laws`: Search government transparency laws across five domains: open records, open meetings, fiscal transparency, digital accessibility, and oversight bodies. Filter by country, pillar, and/or a substring of the law name, citation, or jurisdiction. Returns compact records with jurisdiction slugs; use get_open_records_law for full open-records detail.
- `submit_service_request`: Submit a government service request (e.g., report a pothole, broken streetlight, illegal dumping). The request is validated, geocoded, classified, routed to the correct government entity, and recorded. Delivery is enabled per-entity: where the target channel is live, the request is transmitted (response delivery.state = "sent", or "held" when queued for review); for entities not yet enabled it is recorded and routable but not transmitted (delivery.state = "dry_run", or "handoff" with a redirect_url the user finishes). Always check delivery.state. Requires X-API-Key header. Rate limit: 2 requests/hour. Supported countries: US, IE (Ireland), GB (United Kingdom).
