Normaliza y geocodifica direcciones de Argentina con el callejero oficial (georef).
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <key>. Key de prueba gratis con POST https://direcciones-ar-api-103907796853.us-east1.run.app/v1/keys o en https://direcciones-ar-api-103907796853.us-east1.run.app/
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Busca calles por nombre aproximado y devuelve nombre oficial, categoría (CALLE, AV, PJE, RUTA...), rango de alturas y a qué localidad/departamento/provincia pertenece cada tramo. Sirve para validar que una calle existe y que una altura está dentro del rango antes de normalizar, o para autocompletar. Costo: 1 crédito(s).
Filtrar por tipo: CALLE, AV, PJE, RUTA, DIAG, etc.
Localidad censal
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http direcciones-ar https://direcciones-ar-api-103907796853.us-east1.run.app/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer <key>. Key de prueba gratis con POST https://direcciones-ar-api-103907796853.us-east1.run.app/v1/keys o en https://direcciones-ar-api-103907796853.us-east1.run.app/Busca calles por nombre aproximado y devuelve nombre oficial, categoría (CALLE, AV, PJE, RUTA...), rango de alturas y a qué localidad/departamento/provincia pertenece cada tramo. Sirve para validar que una calle existe y que una altura está dentro del rango antes de normalizar, o para autocompletar. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| max | integer | |
| nombre* | string | |
| categoria | string | Filtrar por tipo: CALLE, AV, PJE, RUTA, DIAG, etc. |
| localidad | string | Localidad censal |
| provincia | string | |
| departamento | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nombre"
],
"properties": {
"max": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1
},
"nombre": {
"type": "string",
"maxLength": 80,
"minLength": 2
},
"categoria": {
"type": "string",
"maxLength": 20,
"description": "Filtrar por tipo: CALLE, AV, PJE, RUTA, DIAG, etc."
},
"localidad": {
"type": "string",
"maxLength": 80,
"description": "Localidad censal"
},
"provincia": {
"type": "string",
"maxLength": 60
},
"departamento": {
"type": "string",
"maxLength": 60
}
},
"additionalProperties": false
}Busca divisiones administrativas oficiales por nombre aproximado: provincias (24), departamentos/partidos/comunas o municipios. Devuelve id INDEC, nombre oficial, provincia a la que pertenece y centroide. Usala para resolver 'Bs As' → 'Buenos Aires' (id 06) vs 'CABA' (id 02), listar los partidos de una provincia, o conseguir el id que piden otros sistemas. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| max | integer | |
| tipo* | string | |
| nombre | string | Nombre aproximado; omitilo para listar (ej. todas las provincias) |
| provincia | string | Restringir a una provincia (para departamentos y municipios) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tipo"
],
"properties": {
"max": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 1
},
"tipo": {
"enum": [
"provincia",
"departamento",
"municipio"
],
"type": "string"
},
"nombre": {
"type": "string",
"maxLength": 80,
"description": "Nombre aproximado; omitilo para listar (ej. todas las provincias)"
},
"provincia": {
"type": "string",
"maxLength": 60,
"description": "Restringir a una provincia (para departamentos y municipios)"
}
},
"additionalProperties": false
}Busca localidades (ciudades, pueblos, barrios censales) por nombre aproximado y devuelve provincia, departamento/partido, municipio, categoría y coordenadas del centroide, con ids oficiales INDEC. Útil para desambiguar ('¿qué Rosario?'), completar formularios o resolver la ubicación de un cliente. Filtrá por provincia cuando la conozcas. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| max | integer | |
| nombre* | string | Nombre (tolera tildes y errores leves) |
| provincia | string | Nombre o id de provincia |
| departamento | string | Departamento o partido |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nombre"
],
"properties": {
"max": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1
},
"nombre": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Nombre (tolera tildes y errores leves)"
},
"provincia": {
"type": "string",
"maxLength": 60,
"description": "Nombre o id de provincia"
},
"departamento": {
"type": "string",
"maxLength": 60,
"description": "Departamento o partido"
}
},
"additionalProperties": false
}Devuelve los packs de créditos disponibles y una checkout_url (Polar, tarjeta) para recargar la key actual. Mostrá la URL al usuario: al pagar, los créditos se acreditan solos. Sin costo.
| Argument | Type | Description |
|---|---|---|
| credits | integer | Cantidad deseada; se elige el pack más chico que la cubre |
| product_id | string | Elegir un pack puntual (de la lista) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"credits": {
"type": "integer",
"description": "Cantidad deseada; se elige el pack más chico que la cubre",
"exclusiveMinimum": 0
},
"product_id": {
"type": "string",
"description": "Elegir un pack puntual (de la lista)"
}
},
"additionalProperties": false
}Corre JavaScript en un sandbox con un objeto `api` ya autenticado: una función async por tool, mismos parámetros y mismo resultado que llamarla directo. Ideal para lotes (validar 50 CBUs, armar 20 cronogramas) o para encadenar llamadas sin volver al modelo. El código puede usar await, console.log y return; el valor retornado vuelve en `resultado`. Costo: 1 crédito por ejecución + la suma de las llamadas internas. Máximo 100 llamadas y 15 s. Sin acceso a red, archivos ni módulos. Funciones disponibles: api.normalizarDireccion({"direccion":"Av. Corrientes 1234","provincia":"CABA"}) → 2 crédito(s): Normalizar y geocodificar una dirección argentina api.ubicacion({"lat":-34.6037,"lon":-58.3816}) → 1 crédito(s): Geocodificación inversa: lat/lon → provincia, departamento y municipio api.buscarLocalidad({"nombre":"Rosario","provincia":"Santa Fe"}) → 1 crédito(s): Buscar localidades argentinas api.buscarCalle({"nombre":"Santa Fe","provincia":"CABA","categoria":"AV"}) → 1 crédito(s): Buscar calles en el callejero oficial api.buscarDivision({"tipo":"provincia","nombre":"cordoba"}) → 1 crédito(s): Buscar provincias, departamentos o municipios Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| codigo* | string | JavaScript. Ej: const r = await api.validarCuit({cuit:'20-12345678-6'}); return r.valido; |
| timeout_ms | integer | Tiempo máximo total en milisegundos |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"codigo"
],
"properties": {
"codigo": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "JavaScript. Ej: const r = await api.validarCuit({cuit:'20-12345678-6'}); return r.valido;"
},
"timeout_ms": {
"type": "integer",
"default": 5000,
"maximum": 15000,
"minimum": 100,
"description": "Tiempo máximo total en milisegundos"
}
},
"additionalProperties": false
}Interpreta una dirección escrita a mano ('Av. Corrientes 1234, CABA', 'corrientes y callao', 'San Martín 450 piso 3 Rosario'), la normaliza según el callejero oficial (INDEC/IGN vía georef) y devuelve candidatos con calle, altura, localidad, departamento, provincia y coordenadas lat/lon. Pasá provincia o localidad si las conocés: reduce ambigüedad. Si `cantidad` es 0 la dirección no existe en el callejero oficial; si hay varios candidatos, elegí por localidad o pedí precisión al usuario. Costo: 2 crédito(s).
| Argument | Type | Description |
|---|---|---|
| max | integer | Cantidad máxima de candidatos |
| direccion* | string | Dirección en texto libre: 'calle altura' o 'calle y calle', opcionalmente con piso/depto |
| localidad | string | Localidad censal ('Rosario', 'Mar del Plata') |
| provincia | string | Nombre o id de provincia ('Buenos Aires', 'CABA', 'Córdoba', '02') |
| departamento | string | Partido, departamento o comuna ('Tigre', 'Comuna 1') |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"direccion"
],
"properties": {
"max": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "Cantidad máxima de candidatos"
},
"direccion": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Dirección en texto libre: 'calle altura' o 'calle y calle', opcionalmente con piso/depto"
},
"localidad": {
"type": "string",
"maxLength": 80,
"description": "Localidad censal ('Rosario', 'Mar del Plata')"
},
"provincia": {
"type": "string",
"maxLength": 60,
"description": "Nombre o id de provincia ('Buenos Aires', 'CABA', 'Córdoba', '02')"
},
"departamento": {
"type": "string",
"maxLength": 60,
"description": "Partido, departamento o comuna ('Tigre', 'Comuna 1')"
}
},
"additionalProperties": false
}Dado un punto (latitud, longitud) devuelve en qué provincia, departamento/partido y municipio de Argentina cae, con ids oficiales INDEC. Si el punto está fuera del país, `en_argentina` es false y los campos vienen null. No devuelve calle ni altura. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitud en grados decimales (Argentina: aprox. -22 a -55) |
| lon* | number | Longitud en grados decimales (Argentina: aprox. -53 a -74) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitud en grados decimales (Argentina: aprox. -22 a -55)"
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitud en grados decimales (Argentina: aprox. -53 a -74)"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.