Skip to main content
Glama

Server Details

Catálogo oficial de 9.400 vías de Madrid y métricas parciales de servicios a 500 m.

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
0.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP
URL
ChatGPT
–
Claude
–

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly distinct function: search_streets for discovery, get_street_context for single-point service records, compare_streets for multi-point comparison, and get_coverage for coverage metadata. Descriptions explicitly delimit scope and limitations, leaving little overlap.

Naming Consistency5/5

All tools share the callejear_ prefix and follow a predictable verb_noun or verb_noun_phrase pattern in snake_case. The convention is uniform across the set.

Tool Count5/5

Four tools cover search, context, comparison, and coverage for a focused read-only pilot, with each tool earning its place. The count sits comfortably within the ideal 3–15 range.

Completeness4/5

The read-only pilot covers discovery, single-street context, comparison, and coverage metadata, but lacks a direct street-detail operation beyond point-context and search. These are minor gaps consistent with the stated pilot limitations.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedcallejear_compare_streets26 fields changed
      • changedInput schema / properties / street_ids / items / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "out_of_coverage",
        -  "street_not_available",
        -  "invalid_cursor",
        -  "data_unavailable",
        -  "quota_exceeded",
        -  "response_too_large",
        -  "busy",
        -  "timeout",
        -  "disabled"
        -]New value: +[
        +  "out_of_coverage",
        +  "street_not_available",
        +  "invalid_cursor",
        +  "duplicate_street",
        +  "data_unavailable",
        +  "quota_exceeded",
        +  "response_too_large",
        +  "busy",
        +  "timeout",
        +  "disabled"
        +]
      • changedOutput schema / properties / result / properties / differences / items / properties / left_id / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • changedOutput schema / properties / result / properties / differences / items / properties / right_id / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • addedOutput schema / properties / result / properties / rows / items / properties / metrics / items / properties / reference_geometry / anyOf
        Added value: +[
        +  {
        +    "const": "representative_point",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / rows / items / properties / metrics / items / properties / reference_geometry / const
        Removed value: -"representative_point"
      • removedOutput schema / properties / result / properties / rows / items / properties / metrics / items / properties / reference_geometry / type
        Removed value: -"string"
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / canonical_url / anyOf
        Added value: +[
        +  {
        +    "pattern": "^https:\\/\\/callejear\\.com\\/madrid\\/madrid\\/[a-z0-9-]+\\/$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / canonical_url / pattern
        Removed value: -"^https:\\/\\/callejear\\.com\\/madrid\\/madrid\\/[a-z0-9-]+\\/$"
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / canonical_url / type
        Removed value: -"string"
      • changedOutput schema / properties / result / properties / rows / items / properties / street / properties / id / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / identity / properties / source_way_id / anyOf
        Added value: +[
        +  {
        +    "pattern": "^[0-9]+$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / identity / properties / source_way_id / pattern
        Removed value: -"^[0-9]+$"
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / identity / properties / source_way_id / type
        Removed value: -"string"
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / identity / properties / status / const
        Removed value: -"spatially_supported"
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / identity / properties / status / enum
        Added value: +[
        +  "spatially_supported",
        +  "official_register",
        +  "official_name_conflict"
        +]
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / location_method
        Added value: +{
        +  "enum": [
        +    "official_surface_interior",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / name_variants
        Added value: +{
        +  "items": {
        +    "maxLength": 180,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 8,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / point / anyOf
        Added value: +[
        +  {
        +    "prefixItems": [
        +      {
        +        "maximum": 90,
        +        "minimum": -90,
        +        "type": "number"
        +      },
        +      {
        +        "maximum": 180,
        +        "minimum": -180,
        +        "type": "number"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / point / prefixItems
        Removed value: -[
        -  {
        -    "maximum": 90,
        -    "minimum": -90,
        -    "type": "number"
        -  },
        -  {
        -    "maximum": 180,
        -    "minimum": -180,
        -    "type": "number"
        -  }
        -]
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / point / type
        Removed value: -"array"
      • addedOutput schema / properties / result / properties / rows / items / properties / street / properties / reference_geometry / anyOf
        Added value: +[
        +  {
        +    "const": "representative_point",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / reference_geometry / const
        Removed value: -"representative_point"
      • removedOutput schema / properties / result / properties / rows / items / properties / street / properties / reference_geometry / type
        Removed value: -"string"
      • removedOutput schema / properties / schema_version / const
        Removed value: -"1.0"
      • addedOutput schema / properties / schema_version / enum
        Added value: +[
        +  "1.0",
        +  "2.0"
        +]
    • Changedcallejear_get_coverage7 fields changed
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "out_of_coverage",
        -  "street_not_available",
        -  "invalid_cursor",
        -  "data_unavailable",
        -  "quota_exceeded",
        -  "response_too_large",
        -  "busy",
        -  "timeout",
        -  "disabled"
        -]New value: +[
        +  "out_of_coverage",
        +  "street_not_available",
        +  "invalid_cursor",
        +  "duplicate_street",
        +  "data_unavailable",
        +  "quota_exceeded",
        +  "response_too_large",
        +  "busy",
        +  "timeout",
        +  "disabled"
        +]
      • addedOutput schema / properties / result / properties / catalog
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "catalog_status": {
        +      "const": "complete_official_snapshot",
        +      "type": "string"
        +    },
        +    "located_records": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "name_conflicts": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "official_records": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    "represented_records": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    "retrieved_at": {
        +      "format": "date-time",
        +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +      "type": "string"
        +    },
        +    "source_rows": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    "source_sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "type": "string"
        +    },
        +    "source_updated_at": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "source_url": {
        +      "format": "uri",
        +      "maxLength": 500,
        +      "type": "string"
        +    },
        +    "unlocated_records": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "catalog_status",
        +    "official_records",
        +    "represented_records",
        +    "located_records",
        +    "unlocated_records",
        +    "name_conflicts",
        +    "source_rows",
        +    "source_url",
        +    "source_sha256",
        +    "source_updated_at",
        +    "retrieved_at"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / result / properties / reference_geometry / anyOf
        Added value: +[
        +  {
        +    "const": "representative_point",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / reference_geometry / const
        Removed value: -"representative_point"
      • removedOutput schema / properties / result / properties / reference_geometry / type
        Removed value: -"string"
      • removedOutput schema / properties / schema_version / const
        Removed value: -"1.0"
      • addedOutput schema / properties / schema_version / enum
        Added value: +[
        +  "1.0",
        +  "2.0"
        +]
    • Changedcallejear_get_street_context24 fields changed
      • changedInput schema / properties / street_id / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "out_of_coverage",
        -  "street_not_available",
        -  "invalid_cursor",
        -  "data_unavailable",
        -  "quota_exceeded",
        -  "response_too_large",
        -  "busy",
        -  "timeout",
        -  "disabled"
        -]New value: +[
        +  "out_of_coverage",
        +  "street_not_available",
        +  "invalid_cursor",
        +  "duplicate_street",
        +  "data_unavailable",
        +  "quota_exceeded",
        +  "response_too_large",
        +  "busy",
        +  "timeout",
        +  "disabled"
        +]
      • addedOutput schema / properties / result / properties / metrics / items / properties / reference_geometry / anyOf
        Added value: +[
        +  {
        +    "const": "representative_point",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / metrics / items / properties / reference_geometry / const
        Removed value: -"representative_point"
      • removedOutput schema / properties / result / properties / metrics / items / properties / reference_geometry / type
        Removed value: -"string"
      • addedOutput schema / properties / result / properties / street / properties / canonical_url / anyOf
        Added value: +[
        +  {
        +    "pattern": "^https:\\/\\/callejear\\.com\\/madrid\\/madrid\\/[a-z0-9-]+\\/$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / street / properties / canonical_url / pattern
        Removed value: -"^https:\\/\\/callejear\\.com\\/madrid\\/madrid\\/[a-z0-9-]+\\/$"
      • removedOutput schema / properties / result / properties / street / properties / canonical_url / type
        Removed value: -"string"
      • changedOutput schema / properties / result / properties / street / properties / id / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • addedOutput schema / properties / result / properties / street / properties / identity / properties / source_way_id / anyOf
        Added value: +[
        +  {
        +    "pattern": "^[0-9]+$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / street / properties / identity / properties / source_way_id / pattern
        Removed value: -"^[0-9]+$"
      • removedOutput schema / properties / result / properties / street / properties / identity / properties / source_way_id / type
        Removed value: -"string"
      • removedOutput schema / properties / result / properties / street / properties / identity / properties / status / const
        Removed value: -"spatially_supported"
      • addedOutput schema / properties / result / properties / street / properties / identity / properties / status / enum
        Added value: +[
        +  "spatially_supported",
        +  "official_register",
        +  "official_name_conflict"
        +]
      • addedOutput schema / properties / result / properties / street / properties / location_method
        Added value: +{
        +  "enum": [
        +    "official_surface_interior",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / result / properties / street / properties / name_variants
        Added value: +{
        +  "items": {
        +    "maxLength": 180,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 8,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedOutput schema / properties / result / properties / street / properties / point / anyOf
        Added value: +[
        +  {
        +    "prefixItems": [
        +      {
        +        "maximum": 90,
        +        "minimum": -90,
        +        "type": "number"
        +      },
        +      {
        +        "maximum": 180,
        +        "minimum": -180,
        +        "type": "number"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / street / properties / point / prefixItems
        Removed value: -[
        -  {
        -    "maximum": 90,
        -    "minimum": -90,
        -    "type": "number"
        -  },
        -  {
        -    "maximum": 180,
        -    "minimum": -180,
        -    "type": "number"
        -  }
        -]
      • removedOutput schema / properties / result / properties / street / properties / point / type
        Removed value: -"array"
      • addedOutput schema / properties / result / properties / street / properties / reference_geometry / anyOf
        Added value: +[
        +  {
        +    "const": "representative_point",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / street / properties / reference_geometry / const
        Removed value: -"representative_point"
      • removedOutput schema / properties / result / properties / street / properties / reference_geometry / type
        Removed value: -"string"
      • removedOutput schema / properties / schema_version / const
        Removed value: -"1.0"
      • addedOutput schema / properties / schema_version / enum
        Added value: +[
        +  "1.0",
        +  "2.0"
        +]
    • Changedcallejear_search_streets21 fields changed
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "out_of_coverage",
        -  "street_not_available",
        -  "invalid_cursor",
        -  "data_unavailable",
        -  "quota_exceeded",
        -  "response_too_large",
        -  "busy",
        -  "timeout",
        -  "disabled"
        -]New value: +[
        +  "out_of_coverage",
        +  "street_not_available",
        +  "invalid_cursor",
        +  "duplicate_street",
        +  "data_unavailable",
        +  "quota_exceeded",
        +  "response_too_large",
        +  "busy",
        +  "timeout",
        +  "disabled"
        +]
      • addedOutput schema / properties / result / properties / notice
        Added value: +{
        +  "maxLength": 2000,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedOutput schema / properties / result / properties / streets / items / properties / canonical_url / anyOf
        Added value: +[
        +  {
        +    "pattern": "^https:\\/\\/callejear\\.com\\/madrid\\/madrid\\/[a-z0-9-]+\\/$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / streets / items / properties / canonical_url / pattern
        Removed value: -"^https:\\/\\/callejear\\.com\\/madrid\\/madrid\\/[a-z0-9-]+\\/$"
      • removedOutput schema / properties / result / properties / streets / items / properties / canonical_url / type
        Removed value: -"string"
      • changedOutput schema / properties / result / properties / streets / items / properties / id / pattern
        Previous value: -"^legacy:calle:[1-9][0-9]{0,11}$"New value: +"^(?:legacy:calle:|es:28079:via:)[1-9][0-9]{0,11}$"
      • addedOutput schema / properties / result / properties / streets / items / properties / identity / properties / source_way_id / anyOf
        Added value: +[
        +  {
        +    "pattern": "^[0-9]+$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / streets / items / properties / identity / properties / source_way_id / pattern
        Removed value: -"^[0-9]+$"
      • removedOutput schema / properties / result / properties / streets / items / properties / identity / properties / source_way_id / type
        Removed value: -"string"
      • removedOutput schema / properties / result / properties / streets / items / properties / identity / properties / status / const
        Removed value: -"spatially_supported"
      • addedOutput schema / properties / result / properties / streets / items / properties / identity / properties / status / enum
        Added value: +[
        +  "spatially_supported",
        +  "official_register",
        +  "official_name_conflict"
        +]
      • addedOutput schema / properties / result / properties / streets / items / properties / location_method
        Added value: +{
        +  "enum": [
        +    "official_surface_interior",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / result / properties / streets / items / properties / name_variants
        Added value: +{
        +  "items": {
        +    "maxLength": 180,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 8,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedOutput schema / properties / result / properties / streets / items / properties / point / anyOf
        Added value: +[
        +  {
        +    "prefixItems": [
        +      {
        +        "maximum": 90,
        +        "minimum": -90,
        +        "type": "number"
        +      },
        +      {
        +        "maximum": 180,
        +        "minimum": -180,
        +        "type": "number"
        +      }
        +    ],
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / streets / items / properties / point / prefixItems
        Removed value: -[
        -  {
        -    "maximum": 90,
        -    "minimum": -90,
        -    "type": "number"
        -  },
        -  {
        -    "maximum": 180,
        -    "minimum": -180,
        -    "type": "number"
        -  }
        -]
      • removedOutput schema / properties / result / properties / streets / items / properties / point / type
        Removed value: -"array"
      • addedOutput schema / properties / result / properties / streets / items / properties / reference_geometry / anyOf
        Added value: +[
        +  {
        +    "const": "representative_point",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / result / properties / streets / items / properties / reference_geometry / const
        Removed value: -"representative_point"
      • removedOutput schema / properties / result / properties / streets / items / properties / reference_geometry / type
        Removed value: -"string"
      • removedOutput schema / properties / schema_version / const
        Removed value: -"1.0"
      • addedOutput schema / properties / schema_version / enum
        Added value: +[
        +  "1.0",
        +  "2.0"
        +]
  2. 4 tool updates
    • First observedcallejear_compare_streets
    • First observedcallejear_get_coverage
    • First observedcallejear_get_street_context
    • First observedcallejear_search_streets

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Servidor MCP (roadmap L5) sobre los endpoints públicos de emap. No existe otro MCP de movilidad hiperlocal: búsqueda semántica local ES/EU, contexto de lugar, rutas multimodales con infraestructura propia (OSRM/OTP) y "el monte en transporte público".
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to find Spanish public datasets from central, regional and local government, get their verified endpoints, required API code lists, identifier joins and build recipes, and check whether a remembered URL is a known dead route. Every record surfaces the silent traps, quirks and licence terms that corrupt a number without raising an error.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for the Spanish Cadastre, enabling local queries of official INSPIRE parcel data (area, geometry, neighboring parcels, searches) and online queries to the OVC and electronic headquarters for additional details, with rate limiting and caching.
    10
    13 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources