Skip to content
PermitBird

Documentation

MCP server

A hosted Model Context Protocol endpoint so an assistant can answer nationwide permit questions from the compiled ruleset rather than from memory. JSON-RPC 2.0 over HTTP at /api/mcp.

Connect

No account is needed. Omit the header entirely and the server assumes the sandbox tier.

{
  "mcpServers": {
    "permitbird": {
      "type": "http",
      "url": "https://permitbird.com/api/mcp",
      "headers": { "Authorization": "Bearer pb_sandbox_publickey" }
    }
  }
}

Tools

determine_permit_pathway

Screens a project against the permits mapped to its activity and returns the pathway, the notification position, the district and state layers, and the provenance for every conclusion. Arguments match the determination endpoint.

lookup_nationwide_permit

Returns one permit's compiled record. All 57 permits are present. Numbering is not contiguous, so a lookup of 26, 47 or 56 returns a structured not-found carrying the valid set.

list_reference_data

The valid argument values and the current coverage state: activity identifiers, 38 district codes, 54 state codes, ruleset metadata. Call this first and an agent never has to guess an enum.

Try it with curl

List the tools:

curl -s https://permitbird.com/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Call one:

curl -s https://permitbird.com/api/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer pb_sandbox_publickey" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "lookup_nationwide_permit",
      "arguments": { "number": 60 }
    }
  }'

What the tools will not assert

Every determination returns a coverageGaps array. District regional conditions and state Section 401 certifications are not compiled, so a result covers the federal layer only. An assistant relaying our answer should relay that qualification too: a nationwide permit can be narrowed or removed by a district, and a state can condition, waive or deny certification.

A GET on /api/mcp returns a plain description of the server and its tools, which is useful for discovery.