PropertyLabs
Public building permits, property assessments, parcels and development intelligence.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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": {
"propertylabs": {
"url": "https://propertylabs.org/mcp"
}
}
}Puntos de conexión remotos
https://propertylabs.org/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (3)
🟢search_address_permits(address, city)
Look up the public PropertyLabs permit history for a specific civic address in a specific city. Use this for address-level construction history and activity. This follows the same public field boundary as PropertyLabs address pages and does not return applicant names, contractor names or permit numbers.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 4,
"maxLength": 180,
"description": "Specific civic address, for example 8882 170 Street NW."
},
"city": {
"type": "string",
"description": "Required PropertyLabs city slug, for example 'calgary', 'edmonton', 'toronto' or 'vancouver'."
}
},
"required": [
"address",
"city"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"found": {
"type": "boolean"
},
"reason": {
"type": "string"
},
"summary": {
"type": [
"object",
"null"
],
"additionalProperties": true
},
"permits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
]
},
"address": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"community": {
"type": [
"string",
"null"
]
},
"permit_type": {
"type": [
"string",
"null"
]
},
"work_class": {
"type": [
"string",
"null"
]
},
"declared_value": {
"type": [
"number",
"null"
]
},
"issued_date": {
"type": [
"string",
"null"
]
},
"applied_date": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"address",
"city",
"community",
"permit_type",
"work_class",
"declared_value",
"issued_date",
"applied_date",
"status",
"description",
"latitude",
"longitude"
],
"additionalProperties": false
}
},
"partial": {
"type": "boolean"
},
"propertylabs_url": {
"type": "string",
"format": "uri"
},
"attribution": {
"type": "string"
},
"data_note": {
"type": "string"
}
},
"required": [
"address",
"city",
"found",
"summary",
"permits",
"propertylabs_url",
"attribution",
"data_note"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"detail": {
"type": "object"
}
},
"required": [
"error"
],
"additionalProperties": true
}
]
}🟢get_public_permit(canonical_id, city)
Retrieve a permit using the numeric PropertyLabs canonical permit ID and city slug. Use this for a permit already referenced by a public PropertyLabs /permit/{city}/{id} URL. Returns only fields allowed on the public permit page; applicant and contractor identities remain gated.
Esquema de entrada
{
"type": "object",
"properties": {
"canonical_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Numeric PropertyLabs canonical permit ID from a public PropertyLabs permit URL."
},
"city": {
"type": "string",
"description": "Required PropertyLabs city slug from the public permit URL."
}
},
"required": [
"canonical_id",
"city"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"canonical_id": {
"type": "string"
},
"city": {
"type": "string"
},
"found": {
"type": "boolean"
},
"permit": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"city": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"permit_type": {
"type": [
"string",
"null"
]
},
"work_class": {
"type": [
"string",
"null"
]
},
"activity_date": {
"type": [
"string",
"null"
]
},
"issued_date": {
"type": [
"string",
"null"
]
},
"applied_date": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"declared_value": {
"type": [
"number",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"community": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"source": {
"type": [
"string",
"null"
]
},
"has_applicant": {
"type": "boolean"
},
"has_contractor": {
"type": "boolean"
}
},
"required": [
"id",
"city",
"address",
"permit_type",
"work_class",
"activity_date",
"issued_date",
"applied_date",
"status",
"declared_value",
"description",
"community",
"latitude",
"longitude",
"source",
"has_applicant",
"has_contractor"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"propertylabs_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"attribution": {
"type": "string"
},
"data_note": {
"type": "string"
}
},
"required": [
"canonical_id",
"city",
"found",
"permit",
"propertylabs_url",
"attribution",
"data_note"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"detail": {
"type": "object"
}
},
"required": [
"error"
],
"additionalProperties": true
}
]
}🟢search_company_activity(company, city)
Get an aggregate, city-scoped sample of permit activity matching a developer, applicant, builder or contractor name. Only applicant/developer/contractor party-field matches are counted. Anonymous results are aggregate only and never return company-matched project addresses, permit numbers, coordinates or raw records.
Esquema de entrada
{
"type": "object",
"properties": {
"company": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "Developer, applicant, builder or contractor name."
},
"city": {
"type": "string",
"description": "Required PropertyLabs city slug. Company activity is never queried across the full archive anonymously."
}
},
"required": [
"company",
"city"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"company": {
"type": "string"
},
"city": {
"type": "string"
},
"sample_size": {
"type": "integer",
"minimum": 0
},
"sample_limit": {
"type": "integer",
"minimum": 1
},
"disclosed_value_in_sample": {
"type": "number",
"minimum": 0
},
"disclosed_value_sample_size": {
"type": "integer",
"minimum": 0
},
"latest_activity_date_in_sample": {
"type": [
"string",
"null"
]
},
"matched_role_counts_in_sample": {
"type": "object",
"properties": {
"developer": {
"type": "integer",
"minimum": 0
},
"applicant": {
"type": "integer",
"minimum": 0
},
"contractor": {
"type": "integer",
"minimum": 0
}
},
"required": [
"developer",
"applicant",
"contractor"
],
"additionalProperties": false
},
"permit_types_in_sample": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"name",
"count"
],
"additionalProperties": false
}
},
"statuses_in_sample": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"name",
"count"
],
"additionalProperties": false
}
},
"domains_in_sample": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"name",
"count"
],
"additionalProperties": false
}
},
"sample_note": {
"type": "string"
},
"attribution": {
"type": "string"
},
"source_url": {
"type": "string",
"format": "uri"
},
"data_note": {
"type": "string"
}
},
"required": [
"company",
"city",
"sample_size",
"sample_limit",
"disclosed_value_in_sample",
"disclosed_value_sample_size",
"latest_activity_date_in_sample",
"matched_role_counts_in_sample",
"permit_types_in_sample",
"statuses_in_sample",
"domains_in_sample",
"sample_note",
"attribution",
"source_url",
"data_note"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"detail": {
"type": "object"
}
},
"required": [
"error"
],
"additionalProperties": true
}
]
}Comunidad
Evidencia