Open Source · IA Publicado

Servidor MCP Fiscal para México

Servidor MCP en TypeScript que da a un agente de IA 8 herramientas de solo lectura para validar RFC, CURP, CLABE y NSS, leer CFDI 4.0 y consultar su estado en el SAT. Sin API keys ni PAC.

Rol
Diseño y desarrollo
Año
2026
Publicado
11 de septiembre de 2026
Portada de mx-fiscal-mcp-server con una factura CFDI 4.0, un sello del SAT «Vigente» y los validadores de RFC, CURP, CLABE y NSS sobre fondo oscuro.

mx-fiscal-mcp-server es un servidor MCP (Model Context Protocol) en TypeScript que le da a un agente de IA —como Claude— las capacidades fiscales y bancarias mexicanas que casi todo el mundo acaba reimplementando mal: validar RFC, CURP, CLABE y NSS con sus dígitos verificadores reales, leer un CFDI 4.0, consultar su estado en el SAT y buscar en los catálogos del SAT. Sin API keys, sin CSD y sin contrato con un PAC.

Se instala sin clonar nada: claude mcp add mx-fiscal -- npx -y mx-fiscal-mcp-server

La mitad de lectura

La facturación electrónica mexicana tiene dos mitades. Construir y sellar un CFDI exige un certificado de sello digital y un PAC, y esa mitad ya tiene herramientas. Leer no exige nada: los algoritmos de los dígitos verificadores son públicos, los catálogos también, y el servicio de consulta del SAT —el mismo que hay detrás del QR de toda factura impresa— es público y sin autenticación. Este servidor es esa mitad, hecha con cuidado.

Es el siguiente paso de un hilo de trabajo: el validador de RFC, CURP, CLABE y NSS, el visor de CFDI y el generador de datos de prueba de este sitio. La aritmética vive en la librería mx-identifiers, publicada en npm, y el lector de CFDI es el mismo de la herramienta web.

Características

  • 8 herramientas con salida tipada: validate_rfc, validate_curp, validate_clabe, validate_nss, generate_test_data, parse_cfdi, cfdi_status y sat_catalog_lookup. Cada una declara inputSchema y outputSchema (Zod 4) y devuelve structuredContent validado por el SDK, además de markdown legible.
  • Detalles que una regex no ve: XAXX010101000 no satisface su propio dígito verificador (el SAT lo asignó por decreto), la CLABE reduce cada producto módulo 10 antes de sumar, las claves de entidad de la CURP son de RENAPO y no de INEGI, y el carácter 17 de la CURP marca el siglo.
  • parse_cfdi: convierte el XML en JSON con cada código de catálogo etiquetado, valida los dos RFC y comprueba que los totales cuadren, impuestos locales incluidos.
  • cfdi_status: consulta el ConsultaCFDIService del SAT y explica Estado, EsCancelable, EstatusCancelación y la validación EFOS en palabras. Degrada con elegancia: si el SAT no responde devuelve available: false con el motivo, nunca «factura inválida».
  • Honestidad en la salida: estructuralmente válido no es dado de alta, y los datos de prueba se generan a partir de nombres comunes, así que el servidor avisa de que pueden coincidir por azar con los de una persona real.
  • Dos transportes: stdio para clientes locales y Streamable HTTP sin estado para auto-hospedaje, seguro por defecto (escucha en loopback, valida Host y Origin, token Bearer opcional), con Dockerfile que corre como usuario sin privilegios.
  • XML no confiable acotado: un DOCTYPE se rechaza antes de parsear y hay topes de tamaño y de número de elementos.
  • Probado y publicado: 51 tests unitarios deterministas, un smoke test que llama a las 8 herramientas en las dos eras del protocolo, CI en Node 20, 22 y 24 que además arranca el paquete con npx y la imagen Docker, y publicado en npm y en el registro oficial de MCP.

Stack técnico

  • TypeScript estricto
  • SDK de MCP v2 (@modelcontextprotocol/server): sirve la revisión 2026-07-28 y a los clientes de 2025 desde la misma factoría
  • Zod 4 para validación de entrada y salida
  • @xmldom/xmldom para el lector de CFDI
  • mx-identifiers para los dígitos verificadores
  • Express 5 para el transporte HTTP sin estado
  • Docker para el despliegue self-hosted

Repositorio

Ver en GitHub → · Paquete en npm →

Objetivo

Cubrir un hueco que se comprobó antes de construirlo, en septiembre de 2026: ningún servidor MCP leía ni validaba datos fiscales mexicanos. Un agente que tiene que revisar una factura o sembrar una base de datos con RFC válidos ya no depende de que el modelo recuerde bien un algoritmo, sino de herramientas con los vectores públicos del SAT, Banxico y RENAPO como prueba.

07 / Contacto

¿Te sirvió algo de lo que leíste? Si tu empresa necesita construirlo, hablemos.

Completa el formulario y te respondo en menos de 24 horas. También puedes escribirme directo: