Veriko

io.github.veriko-mx-labsPublished by GitHub account veriko-mx-labsv0.1.13Updated Nov 8, 2026

Valida y consulta transferencias SPEI mediante la API oficial de Veriko.

VerifiedSTDIODesktop onlyFinanceDeveloper Tools

Overview

AI-generated overview

Connects an assistant to Veriko's official API to validate and query SPEI transfers, check Banxico CEP status and download receipts.

What you can do
  • Validate transfers and check Banxico CEP status, list and query past validations, download receipts as veriko:// artifact resources
  • Manage webhook endpoints and their deliveries
  • Look up banks, the SPEI calendar, BIN data and Banxico status
  • List and bulk-import beneficiaries
  • Review usage, limits, exports, account profile, retry policy, dashboard, plans, aggregated metrics, finance summaries and active subscription
  • Announce only the tool families and maximum risk level you enable
When to use it
Useful when an assistant working in a Mexican payments context needs to check whether a SPEI transfer settled, follow up on an earlier validation, or pull a receipt, without leaving the chat client. Also fits teams that want webhook, beneficiary or usage administration exposed to an agent.
Requirements
Node.js 20 or later; the client starts it via npx or a built dist/index.js. A Veriko API key in VERIKO_API_KEY, obtained from the Veriko app; the public plans profile works without one. Optional VERIKO_MCP_PROFILE (default core) and VERIKO_MCP_MAX_RISK (default write) control which tools are announced. Network access to the Veriko API.
Before you install
The API key is a credential: keep it in VERIKO_API_KEY, never in tool arguments. veriko_validate_direct and veriko_validate_ocr consume plan quota and are charged when the request is accepted, so an agent loop can exhaust a monthly quota quickly. The write risk level allows validations and normal changes; destructive adds deletions, cancellations, secret rotation and import confirmation. Downloads are returned as resources rather than written to the workspace.

Installation

In SourceWeft

  1. Open Veriko in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Veriko MCP

Este servidor MCP conecta Veriko a Cursor u otro cliente MCP compatible: le pides al asistente, por ejemplo, que compruebe un pago en el CEP de Banxico, que te diga en qué quedó una validación anterior o que descargue el comprobante.

Cubre 72 de las 74 operaciones públicas de máquina a máquina. Lo que el asistente puede hacer aquí es lo que puede hacer una clave de API, salvo el borrado definitivo de una validación: no se anuncia como herramienta porque no se puede deshacer.

Instalación

Requiere Node.js 20 o posterior. Sin clonar nada, el cliente arranca el servidor con npx:

bash
npx -y @veriko-mx/mcp

En un host que acepta configuración JSON (Cursor y similares):

json
{  "mcpServers": {    "veriko": {      "command": "npx",      "args": ["-y", "@veriko-mx/mcp"],      "env": { "VERIKO_API_KEY": "veriko_..." }    }  }}

Probarlo desde el código fuente

bash
git clone https://github.com/veriko-mx-labs/veriko-mcp.gitcd veriko-mcpnpm cinpm run build

Queda un servidor ejecutable en dist/index.js. Para verlo responder sin clave de API, el perfil de planes públicos no necesita credenciales:

bash
VERIKO_MCP_PROFILE=plans VERIKO_MCP_MAX_RISK=read node dist/index.js

El proceso se queda esperando mensajes MCP por stdin; lo normal es que lo arranque tu cliente, no tú. Esta es la configuración del host, con la ruta absoluta a la copia que acabas de construir:

json
{  "mcpServers": {    "veriko": {      "command": "node",      "args": ["/ruta/a/veriko-mcp/dist/index.js"],      "env": {        "VERIKO_API_KEY": "veriko_...",        "VERIKO_MCP_PROFILE": "core",        "VERIKO_MCP_MAX_RISK": "write"      }    }  }}

La clave se obtiene en app.veriko.mx. Nunca se pasa como argumento de una herramienta: el servidor sólo la lee de VERIKO_API_KEY, de modo que un texto inyectado en una página que el modelo esté leyendo no puede pedírsela.

Lo que consume cuota

veriko_validate_direct y veriko_validate_ocr consumen cuota del plan y se descuentan al aceptar la petición. Lo dice su propia descripción, porque un bucle de un agente puede vaciar una cuota mensual en minutos. El resto del catálogo consulta, exporta o descarga sin consumir validaciones.

Perfiles

VERIKO_MCP_PROFILE acepta core, all, una familia o varias familias separadas por coma.

PerfilHerramientas anunciadas
corevalidar, listar, consultar y descargar CEP
validationsciclo completo de validaciones
webhooksendpoints y entregas
catalogbancos, calendario SPEI, BIN y estado de Banxico
beneficiarieslista e importación masiva
usageconsumo, límites y exportación
accountperfil y política de reintentos
dashboardresumen operativo
plansplanes públicos
insightsmétricas agregadas
financeresúmenes, vistas previas y descargas
billingsuscripción activa
alllas 72 herramientas disponibles

El perfil decide qué familias ve el modelo. El riesgo se controla de forma independiente con VERIKO_MCP_MAX_RISK:

  • read: sólo consultas y descargas;
  • write (predeterminado): incluye validaciones y cambios normales;
  • destructive: agrega eliminaciones, cancelaciones, rotación de secretos y la confirmación de importaciones.

Lo que cuesta anunciar cada perfil

Anunciar una herramienta gasta contexto antes de que el modelo llame a ninguna. Estas cifras salen del propio servidor: bytes de la respuesta tools/list, con npm run measure:catalog. Los tokens son una estimación a 3.6 bytes por token, no una tokenización real, y sirven para comparar perfiles entre sí.

PerfilHerramientasBytes de tools/listTokens estimados
core56,645~1,846
validations1415,761~4,378
webhooks1018,945~5,263
catalog52,845~790
beneficiaries1410,343~2,873
usage73,756~1,043
account31,953~543
dashboard1557~155
plans21,017~283
insights42,337~649
finance119,609~2,669
billing1503~140
all7267,616~18,782

Medido con Node 22 y riesgo destructive, para no ocultar herramientas. all cuesta 9.7 veces lo que core; por eso el perfil predeterminado es core y se amplía por familia cuando hace falta.

Arquitectura

  • Usa el SDK oficial de JavaScript como única capa de transporte hacia la API. El código lo importa mediante @veriko-mx/sdk-runtime, un alias estable que permite cambiar la fuente de distribución sin reescribir el servidor.
  • El SDK runtime viaja incluido en el tarball del MCP.
  • Anuncia herramientas según perfil y riesgo.
  • Las descargas se devuelven como recursos veriko://artifact/...; nunca como base64 dentro de texto ni como escrituras automáticas en el workspace.
  • Valida base64 canónico y los límites públicos antes de invocar el SDK: 12 MB para comprobantes OCR (imagen o PDF) y 20 MB para importaciones de beneficiarios. El transporte stdio admite completa una importación máxima.
  • Los errores usan error.code, estado, puntero, requestId y retryAfter cuando existen; el texto traducible de la API no se usa como contrato.

Idempotencia

Si se pasa idempotencyKey, se conserva. Si falta, el servidor calcula veriko_mcp_v1_<sha256> sobre el operationId y los argumentos canónicos. En entradas binarias usa el hash del contenido, no una ruta local. La misma acción produce la misma clave; cambiar un dato relevante produce otra.

Desarrollo

bash
npm installnpm run checknpm run check:surfacenpm run measure:catalog

check:surface compara el catálogo completo contra el spec público del SDK y fija su SHA-256. Las operaciones que el catálogo no anuncia, el borrado definitivo de una validación, se declaran aparte en NOT_EXPOSED_OPERATIONS. Una operación nueva, retirada o escondida, un esquema de autenticación distinto de la clave de API o cualquier cambio contractual falla esta comprobación. El workflow de sincronización deja el PR del contrato nuevo como borrador, con el CI corrido y un resumen del cambio en el cuerpo, para revisión antes de aceptarlo.

La API real no se usa en las pruebas. test/server.test.ts conecta cliente y servidor MCP en memoria con un SDK falso; test/http.test.ts levanta el modo HTTP en un puerto local.

Transportes

El núcleo vive en createVerikoServer() y no depende del transporte. Hay dos:

  • stdio (veriko-mcp): el cliente lo arranca como proceso local y la clave se lee de VERIKO_API_KEY. Las descargas son recursos veriko://artifact/....
  • Streamable HTTP sin estado (veriko-mcp-http): un endpoint que se puede poner detrás de un proxy. No hay sesiones ni memoria entre peticiones.

Modo HTTP

bash
npm run buildVERIKO_MCP_HTTP_PORT=3000 node dist/http-index.js

Escucha en 127.0.0.1:3000/mcp; GET /healthz responde sin autenticación.

  • Autenticación. Cada petición lleva la clave de API del integrador como Authorization: Bearer <clave>. Sin ella, responde 401. El servidor crea un cliente nuevo por petición, no guarda ni registra la clave e ignora VERIKO_API_KEY del entorno, para que nunca se use una clave del servidor en nombre de otro.
  • Descargas. Como la siguiente petición puede caer en otro proceso, el archivo no se guarda: viaja incrustado en la respuesta como recurso con blob en base64, con un tope de 8 MB. Más allá devuelve el error artifact_too_large; para archivos grandes usa stdio o la API.
  • Perfiles y riesgo. Valen VERIKO_MCP_PROFILE y VERIKO_MCP_MAX_RISK para todo el servidor, igual que en stdio.
VariableDescripciónPredeterminado
VERIKO_MCP_HTTP_PORTPuerto3000
VERIKO_MCP_HTTP_HOSTDirección de escucha127.0.0.1
VERIKO_MCP_HTTP_PATHRuta del endpoint/mcp
VERIKO_MCP_ALLOWED_ORIGINSOrígenes permitidos, separados por coma; vacío no restringevacío
VERIKO_MCP_HTTP_MAX_BODY_BYTESTamaño máximo del cuerpo32 MiB
VERIKO_MCP_HTTP_MAX_INLINE_BYTESTope de un archivo incrustado8 MiB

El servidor no termina TLS: se despliega detrás de un proxy HTTPS. Hasta que exista OAuth para cuentas de cliente, la clave de API es la única credencial.

Seguridad

Consulta SECURITY.md. Nunca abras issues con claves de API, payloads reales, comprobantes, números de cuenta o respuestas sin sanitizar.

Licencia

MIT.

Source: README.md at commit a8af225

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the server did not start.

Version history

11
  1. v0.1.13LatestNov 8, 2026
  2. v0.1.12Oct 29, 2026
  3. v0.1.11Oct 15, 2026
  4. v0.1.9Oct 2, 2026
  5. v0.1.8Oct 2, 2026
  6. v0.1.7Sep 30, 2026
  7. v0.1.6Sep 29, 2026
  8. v0.1.5Sep 27, 2026
  9. v0.1.4Sep 26, 2026
  10. v0.1.3Sep 25, 2026
  11. v0.1.2Sep 23, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts