Resolve any government entity worldwide and submit service requests. Open civic data for AI agents.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Report ID (from search results)
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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Report ID (from search results) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Report ID (from search results)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Entity URL slug at any depth (e.g., "us/ca/ventura", "us/ca/santa-barbara/city/carpinteria", "ie/cork", "kr/seoul") |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Entity URL slug at any depth (e.g., \"us/ca/ventura\", \"us/ca/santa-barbara/city/carpinteria\", \"ie/cork\", \"kr/seoul\")"
}
}
}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".
| Argument | Type | Description |
|---|---|---|
| jurisdiction* | string | Jurisdiction slug or entity slug at any depth (e.g., "us/ca", "us", "uk", "us/ca/ventura") |
{
"type": "object",
"required": [
"jurisdiction"
],
"properties": {
"jurisdiction": {
"type": "string",
"description": "Jurisdiction slug or entity slug at any depth (e.g., \"us/ca\", \"us\", \"uk\", \"us/ca/ventura\")"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| product* | string | Product id: "request" or "cgj" |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"enum": [
"request",
"cgj"
],
"type": "string",
"description": "Product id: \"request\" or \"cgj\""
}
}
}List all countries with government entity data in UnGovr, including entity counts and coverage metadata.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}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).
| Argument | Type | Description |
|---|---|---|
| country | string | Two-letter country code: "us", "ie", or "gb" (default: "us") |
{
"type": "object",
"required": [],
"properties": {
"country": {
"type": "string",
"description": "Two-letter country code: \"us\", \"ie\", or \"gb\" (default: \"us\")"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Hostname or URL (e.g. "ventura.org", "https://www.stadt-koeln.de/x"). IP addresses are rejected. |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Hostname or URL (e.g. \"ventura.org\", \"https://www.stadt-koeln.de/x\"). IP addresses are rejected."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| code* | string | An ISO 3166 code ("US-CA", "FR"), or the country when region is given ("US"). Never an IP address. |
| region | string | Optional. The region an edge sent beside the country: "CA" or "US-CA". An empty string means the edge sent none and the answer is at country precision. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "An ISO 3166 code (\"US-CA\", \"FR\"), or the country when region is given (\"US\"). Never an IP address."
},
"region": {
"type": "string",
"description": "Optional. The region an edge sent beside the country: \"CA\" or \"US-CA\". An empty string means the edge sent none and the answer is at country precision."
}
}
}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
| Argument | Type | Description |
|---|---|---|
| year | number | Filter by jury year (reports from that year) |
| limit | number | Maximum results to return (default 20, max 100) |
| query | string | Substring to match against report title (case-insensitive) |
| county | string | County name (e.g., "Los Angeles", "San Francisco") |
| offset | number | Number of results to skip for pagination (default 0) |
{
"type": "object",
"required": [],
"properties": {
"year": {
"type": "number",
"description": "Filter by jury year (reports from that year)"
},
"limit": {
"type": "number",
"description": "Maximum results to return (default 20, max 100)"
},
"query": {
"type": "string",
"description": "Substring to match against report title (case-insensitive)"
},
"county": {
"type": "string",
"description": "County name (e.g., \"Los Angeles\", \"San Francisco\")"
},
"offset": {
"type": "number",
"description": "Number of results to skip for pagination (default 0)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | Filter by entity type, exact match (e.g., "county", "city", "school_district", "special_district", "fire_district", "police_department", "jpa", "regulated_utility"). The parameter is named "type", not "entity_type". |
| limit | number | Maximum results to return (default 20, max 100) |
| query | string | Substring to match against entity name (case-insensitive) |
| state | string | State/province code to narrow search (e.g., "ca" for California, "on" for Ontario) |
| offset | number | Number of results to skip for pagination (default 0) |
| country* | string | Two-letter country code (e.g., "us", "ca", "ie") |
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.
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum results to return (default 20, max 100) |
| query | string | Substring to match against law name, citation, or jurisdiction (case-insensitive) |
| offset | number | Number of results to skip for pagination (default 0) |
| pillar | string | Law domain to search |
| country | string | Two-letter country code (e.g., "us", "de", "br") |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Maximum results to return (default 20, max 100)"
},
"query": {
"type": "string",
"description": "Substring to match against law name, citation, or jurisdiction (case-insensitive)"
},
"offset": {
"type": "number",
"description": "Number of results to skip for pagination (default 0)"
},
"pillar": {
"enum": [
"records",
"meetings",
"fiscal",
"accessibility",
"oversight"
],
"type": "string",
"description": "Law domain to search"
},
"country": {
"type": "string",
"description": "Two-letter country code (e.g., \"us\", \"de\", \"br\")"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| images | array | Up to 3 base64-encoded images (optional). Each item: {data: "base64...", media_type: "image/jpeg"} |
| address | string | Address to geocode (e.g., "123 Main St, Ventura, CA 93001"). Provide this OR latitude+longitude. |
| latitude | number | Latitude (-90 to 90). Provide with longitude as alternative to address. |
| longitude | number | Longitude (-180 to 180). Provide with latitude as alternative to address. |
| description* | string | Description of the issue (10-5000 characters) |
| country_code | string | Country code: "US", "IE", or "GB" (default: "US") |
{
"type": "object",
"required": [
"country"
],
"properties": {
"type": {
"type": "string",
"description": "Filter by entity type, exact match (e.g., \"county\", \"city\", \"school_district\", \"special_district\", \"fire_district\", \"police_department\", \"jpa\", \"regulated_utility\"). The parameter is named \"type\", not \"entity_type\"."
},
"limit": {
"type": "number",
"description": "Maximum results to return (default 20, max 100)"
},
"query": {
"type": "string",
"description": "Substring to match against entity name (case-insensitive)"
},
"state": {
"type": "string",
"description": "State/province code to narrow search (e.g., \"ca\" for California, \"on\" for Ontario)"
},
"offset": {
"type": "number",
"description": "Number of results to skip for pagination (default 0)"
},
"country": {
"type": "string",
"description": "Two-letter country code (e.g., \"us\", \"ca\", \"ie\")"
}
}
}| contact_email* | string | Email of the person reporting the issue |
| service_type_id | string | Service type ID from list_service_types (optional — auto-classified from description if omitted) |
{
"type": "object",
"required": [
"description",
"contact_email"
],
"properties": {
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "string",
"description": "Base64-encoded image data"
},
"media_type": {
"type": "string",
"description": "MIME type (image/jpeg, image/png)"
}
}
},
"maxItems": 3,
"description": "Up to 3 base64-encoded images (optional). Each item: {data: \"base64...\", media_type: \"image/jpeg\"}"
},
"address": {
"type": "string",
"description": "Address to geocode (e.g., \"123 Main St, Ventura, CA 93001\"). Provide this OR latitude+longitude."
},
"latitude": {
"type": "number",
"description": "Latitude (-90 to 90). Provide with longitude as alternative to address."
},
"longitude": {
"type": "number",
"description": "Longitude (-180 to 180). Provide with latitude as alternative to address."
},
"description": {
"type": "string",
"description": "Description of the issue (10-5000 characters)"
},
"country_code": {
"type": "string",
"description": "Country code: \"US\", \"IE\", or \"GB\" (default: \"US\")"
},
"contact_email": {
"type": "string",
"description": "Email of the person reporting the issue"
},
"service_type_id": {
"type": "string",
"description": "Service type ID from list_service_types (optional — auto-classified from description if omitted)"
}
}
}