Validaciones y datos de Argentina para agentes: CUIT/CUIL, CBU/CVU, teléfonos y dólar.
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://ar-tools-api-103907796853.us-east1.run.app/v1/keys o en https://ar-tools-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.
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.
Cantidad deseada; se elige el pack más chico que la cubre
Elegir un pack puntual (de la lista)
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 ar-tools https://ar-tools-api-103907796853.us-east1.run.app/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer <key>. Key de prueba gratis con POST https://ar-tools-api-103907796853.us-east1.run.app/v1/keys o en https://ar-tools-api-103907796853.us-east1.run.app/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
}Devuelve la cotización actual del dólar en Argentina (compra y venta en pesos) para una casa en particular o para todas: oficial, blue, MEP (bolsa), contado con liquidación, mayorista, cripto y tarjeta. Costo: 2 crédito(s).
| Argument | Type | Description |
|---|---|---|
| casa | string | Casa de cambio. Si se omite, devuelve todas. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"casa": {
"enum": [
"oficial",
"blue",
"bolsa",
"contadoconliqui",
"mayorista",
"cripto",
"tarjeta"
],
"type": "string",
"description": "Casa de cambio. Si se omite, devuelve todas."
}
},
"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.validarCuit({"cuit":"30-50001091-2"}) → 1 crédito(s): Validar CUIT/CUIL api.validarCbu({"cbu":"0070999000004012345672"}) → 1 crédito(s): Validar CBU/CVU api.normalizarTelefonoAr({"telefono":"011 15 2345-6789"}) → 1 crédito(s): Normalizar teléfono argentino api.cotizacionDolar({"casa":"blue"}) → 2 crédito(s): Cotización del dólar en Argentina 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
}Toma un teléfono argentino escrito de cualquier forma (con 0, con 15, con +54, con espacios o guiones) y devuelve el formato E.164, el formato para WhatsApp, el formato nacional y si es celular o fijo. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| telefono* | string | Teléfono, ej. 011 15 2345-6789 o +54 9 11 2345 6789 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"telefono"
],
"properties": {
"telefono": {
"type": "string",
"maxLength": 30,
"minLength": 6,
"description": "Teléfono, ej. 011 15 2345-6789 o +54 9 11 2345 6789"
}
},
"additionalProperties": false
}Valida un CBU o CVU argentino de 22 dígitos: chequea ambos dígitos verificadores e identifica la entidad bancaria (o billetera virtual si es CVU), la sucursal y el número de cuenta. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| cbu* | string | CBU/CVU de 22 dígitos, con o sin espacios |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"cbu"
],
"properties": {
"cbu": {
"type": "string",
"maxLength": 30,
"minLength": 22,
"description": "CBU/CVU de 22 dígitos, con o sin espacios"
}
},
"additionalProperties": false
}Valida un CUIT o CUIL argentino (11 dígitos, con o sin guiones): chequea el dígito verificador y devuelve el tipo (persona física o jurídica) y el formato canónico XX-XXXXXXXX-X. Costo: 1 crédito(s).
| Argument | Type | Description |
|---|---|---|
| cuit* | string | CUIT/CUIL, ej. 20-12345678-6 o 20123456786 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"cuit"
],
"properties": {
"cuit": {
"type": "string",
"maxLength": 13,
"minLength": 11,
"description": "CUIT/CUIL, ej. 20-12345678-6 o 20123456786"
}
},
"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.