king-county-permit-status

Live permit history + status for any King County, WA address, parcel or permit number. Read-only.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
100%
Calidad de los nombres
80%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,743Tokens (definiciones de herramientas)
~19.5 KBTamaño de respuesta típico
Impacto moderado en la atención (1.36% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "king-county-permit-status": {
      "url": "https://permits-api.secondlandings.ai/mcp"
    }
  }
}

Puntos de conexión remotos

https://permits-api.secondlandings.ai/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (1)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢king_county_permit_status(query, limit, since, types)

Look up building permit history and status for any King County, WA property. Accepts a street address, 10-digit parcel number, or permit number. Live sources: MyBuildingPermit (14 cities + unincorporated King County), Seattle and Bellevue open data, Renton EnerGov, Redmond Civic Access, Shoreline eTRAKiT, Woodinville + King County Accela, Normandy Park and Carnation SmartGov, SeaTac LAMA, WA State L&I (electrical), plus the King County Assessor's issued-permit index for every parcel (covers the 19 cities without a public portal; history only, no status). Jurisdiction is derived from the city-limits polygon, not the mailing city. Returns all matching permits sorted newest-first. Use for due diligence, permit tracking, or verifying contractor pull history.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "One of: street address ('1817 Morris Ave S, Renton WA 98055'), 10-digit parcel number (plain '7222000353' or formatted '722200-0353'), or permit number ('B25000947', 'ADDC21-0275', '23-127651-LP', '6145915-CN'). Input type is auto-detected."
    },
    "limit": {
      "type": "integer",
      "minimum": 0,
      "default": 50,
      "description": "Max permits to return (newest first). summary always covers the whole matched set, so start small and raise only if you need the rows."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only permits applied/issued on or after this date (YYYY-MM-DD)."
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Case-insensitive substrings matched against each permit's type, e.g. ['electrical', 'mechanical']."
    }
  },
  "required": [
    "query"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "found",
        "none",
        "refine",
        "reject"
      ],
      "description": "found — permits[] is populated; none — no permits found; refine — connection issue, retry; reject — bad input"
    },
    "permit_count": {
      "type": "integer",
      "description": "Unique permits found before any since/types filter (= summary.total)"
    },
    "summary": {
      "type": "object",
      "description": "Computed over every permit matching since/types (not just the returned rows): total, matched, returned, truncated, open, closed, status_unknown, by_type, by_status, by_year, years [oldest, newest], latest {permit_number,type,status,date,jurisdiction}. Answer from this; drill into permits only when you need rows."
    },
    "filters": {
      "type": "object",
      "description": "The limit/since/types that produced this response"
    },
    "permits": {
      "type": "array",
      "description": "Up to `limit` permit records, newest first (applied_date, else issued_date).",
      "items": {
        "type": "object",
        "properties": {
          "permit_number": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "description": "Permit category (e.g. 'Residential Electrical Permit')"
          },
          "status": {
            "type": "string",
            "description": "e.g. Issued, Complete, On Hold, Withdrawn, Expired"
          },
          "description": {
            "type": "string",
            "description": "Scope of work"
          },
          "address": {
            "type": "string"
          },
          "jurisdiction": {
            "type": "string"
          },
          "applied_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM-DD"
          },
          "issued_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM-DD"
          },
          "finaled_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM-DD"
          },
          "expires_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM-DD"
          },
          "portal": {
            "type": [
              "string",
              "null"
            ],
            "description": "Source permit or portal URL when available"
          },
          "record_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of this specific permit record when the source exposes one; null when portal is only a search page"
          },
          "is_open": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Normalized across vendor status vocabularies: false when finaled/closed/expired/withdrawn/etc., null when the source exposes no status"
          }
        }
      }
    },
    "trust_level": {
      "type": "string",
      "enum": [
        "live",
        "partial",
        "fallback"
      ],
      "description": "live — every applicable source answered; partial — a source errored or hit its result cap (see errors); fallback — nothing searchable, use next_step. A city needing manual follow-up (next_step) does not by itself lower trust."
    },
    "fetched_at": {
      "type": "string",
      "description": "UTC ISO-8601 timestamp of this query; records are live, not cached"
    },
    "parcel_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "County-namespaced parcel id, e.g. 'king:7222000353' or 'pierce:5985002900', when the query was or resolved to a parcel"
    },
    "jurisdiction": {
      "type": "object",
      "description": "Which authority the query was routed to and why. basis: city-limits (geocoded point inside the city's polygon — authoritative), geocoder-city (locator's city, outside King County's polygon layer), address-text (the mailing city in the query), null (none). unincorporated=true means county permits only.",
      "properties": {
        "city": {
          "type": [
            "string",
            "null"
          ]
        },
        "basis": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "city-limits",
            "geocoder-city",
            "address-text",
            null
          ]
        },
        "county": {
          "type": [
            "string",
            "null"
          ]
        },
        "unincorporated": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "address_resolution": {
      "type": "object",
      "description": "How well the geocoder matched an address query. match_type: point (exact address point), interpolated (number placed along the street; no parcel), street (street only). partial_match is true for anything but point; street_number_snapped when the matched house number differs from the one given.",
      "properties": {
        "matched_address": {
          "type": [
            "string",
            "null"
          ]
        },
        "score": {
          "type": "number"
        },
        "match_type": {
          "type": "string",
          "enum": [
            "point",
            "interpolated",
            "street"
          ]
        },
        "partial_match": {
          "type": "boolean"
        },
        "street_number_snapped": {
          "type": "boolean"
        },
        "parcel_basis": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "address-point",
            "parcel-polygon",
            "nearby-parcel",
            null
          ],
          "description": "How the parcel was found: the locator's address point; the parcel polygon under an interpolated point; or the nearest parcel within 40 ft (check candidate_parcels)"
        },
        "candidate_parcels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Present when several parcels sit within 40 ft of an interpolated point; the first was used"
        }
      }
    },
    "cite_as": {
      "type": "string",
      "description": "One-line attribution string for generated text"
    },
    "searched": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Jurisdictions searched (e.g. ['King County', 'Renton (EnerGov)'])."
    },
    "separate_portal": {
      "type": "object",
      "description": "Present when manual follow-up at a city portal is needed, including when a live city search is incomplete. Includes city, portal URL, note."
    },
    "next_step": {
      "type": "object",
      "description": "Structured twin of separate_portal: the exact follow-up an agent can take. kind=manual_portal_search; reason in no_feed|electrical_only|parcel_resolution_failed|source_incomplete; portal_url (the portal's search page when known); vendor; search_by (inputs that page accepts, empty when login-gated); query/query_type to re-use; covers_electrical; hint.",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "manual_portal_search"
          ]
        },
        "reason": {
          "type": "string",
          "enum": [
            "no_feed",
            "electrical_only",
            "parcel_resolution_failed",
            "source_incomplete"
          ]
        },
        "city": {
          "type": [
            "string",
            "null"
          ]
        },
        "portal_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "vendor": {
          "type": [
            "string",
            "null"
          ]
        },
        "search_by": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "address",
              "permit",
              "parcel"
            ]
          }
        },
        "query": {
          "type": "string"
        },
        "query_type": {
          "type": "string",
          "enum": [
            "address",
            "parcel",
            "permit"
          ]
        },
        "covers_electrical": {
          "type": "boolean"
        },
        "hint": {
          "type": "string"
        }
      }
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Source errors when a search is incomplete; may accompany permits from sources that succeeded."
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "action",
    "message"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada1 herramientas