GovDir MCP server
AI assistants such as Claude and ChatGPT can look things up in the GovDir directory through its MCP server: which government covers a place, which office handles each job, and official links with their last check date. Free, read only, no sign-in.
Building an app or a website? Use the GovDir API instead.
Server address
https://api.govdir.com/mcp
Model Context Protocol over Streamable HTTP with JSON responses, protocol revision 2026-07-28 and the earlier 2025-11-25, 2025-06-18 and 2025-03-26. The server never calls a language model itself: every answer comes from the same directory as the API. Its MCP Registry name is com.govdir/directory.
Connect your client
Claude Code
claude mcp add --transport http govdir https://api.govdir.com/mcp
Claude desktop app and claude.ai
In Settings, open Connectors and choose Add custom connector. Name it GovDir, paste the server address and leave the advanced settings empty. Then turn it on in a conversation from the tools menu.
ChatGPT
In Settings, under Apps and Connectors, turn on developer mode in the advanced settings. Then create a connector with the server address and no authentication.
VS Code
Run MCP: Add Server from the command palette and choose HTTP, or add this to .vscode/mcp.json in your project:
{"servers":{"govdir":{"type":"http","url":"https://api.govdir.com/mcp"}}}
Cursor
Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project:
{"mcpServers":{"govdir":{"url":"https://api.govdir.com/mcp"}}}
Other clients
Any MCP client that supports remote Streamable HTTP servers works with the address above. To list the tools from a terminal:
curl -X POST 'https://api.govdir.com/mcp' -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Keys
No key, account or sign-in is needed. The server ignores any Authorization header a client sends.
Tools
All eight tools are read only. Every link comes from the directory with verified_status and verified_at, and the office named has the final say.
| Tool | What it answers |
|---|---|
resolve_jurisdiction | Which state, county, town and city cover an address, point or place, and which body assesses, collects tax, records deeds, zones, issues permits and runs the GIS |
find_official_resource | The best official pages for a need at a place, such as the parcel map or the tax bill page, best first |
get_place_directory | Everything listed for one place: the responsible body per job, its offices with contacts and its official pages by topic |
search_directory | Places and official pages by name, such as "Hennepin County recorder"; never people |
get_guide | A plain-language guide to a topic and the state's own rules for which office does each job |
screen_location | Flood zone, wetlands, soils, elevation, radon and, in Minnesota, shoreland at a point, with the office that decides; screening only |
get_property_facts | Parcel facts for one property from PublicGIS: parcel number, acreage, value, last sale, land use and overlays; never owner names. The API has no equivalent. |
county_parcel_data | County-wide parcel answers from PublicGIS, such as the biggest or most valuable parcels; never owner names |
The resource template gisfinder://place/{jurisdiction_id} returns the same answer as get_place_directory.
Limits
| What counts | Per minute | Per day |
|---|---|---|
| Requests of any kind, per network address (an IPv6 /64 counts as one) | 120 | |
| Tool calls and resource reads, per network address | 30 | 1,000 |
| Tool calls and resource reads, all users together | 120 | 1,000 |
Responses carry the RateLimit-Policy and RateLimit headers. Over a limit the server answers 429 with Retry-After in seconds and JSON-RPC error -32000. Place directories and resource lists also count toward the API's shared limit on list requests for callers without a key.
Terms
The same rules as for the API apply: see Using the data and Terms.