
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
contadeo-mcp
Advanced tools
Servidor MCP de Contadeo: emite y consulta comprobantes electrónicos del SRI (Ecuador) desde asistentes de IA como Claude
Servidor MCP de Contadeo™: conecta tu asistente de IA (Claude Desktop, Claude Code, Cursor…) a la facturación electrónica del SRI (Ecuador).
— "Emite una factura de 2 horas de consultoría a $75 para Juan Pérez, pago por transferencia, y mándale el PDF a su correo"
El asistente busca (o crea) al cliente, el servidor calcula el IVA y cuadra los totales con las reglas oficiales del SRI, te muestra el resumen, y tras tu confirmación emite, espera la autorización del SRI y te entrega el RIDE.
La matemática tributaria no la hace el modelo de IA — la hace este servidor, con las mismas reglas que valida Contadeo:
preparar_factura solo calcula y
devuelve un resumen; emitir_factura re-valida el cuadre y rechaza
payloads hechos a mano.ambiente viaja
en las respuestas y el resumen que confirmas encabeza con un banner
(⚠️ Producción = documento tributario real). Nunca se describe "de memoria".confirmToken: preparar_* firma el resumen y emitir_* lo verifica —
ata la emisión al resumen exacto que confirmaste y bloquea payloads
modificados o resúmenes rancios (se activa con MCP_CONFIRM_SECRET).preparar_nota_credito / emitir_nota_credito) — la vía del SRI
cuando ya no aplica la anulación (fuera del plazo del día 7, o consumidor
final). La anulación interna (estado ANULADO) sigue haciéndose desde el
panel; su trámite formal ante el SRI es en SRI en línea.Las respuestas de estas tools pueden contener datos personales de terceros: los compradores y proveedores del emisor (identificación, nombre, email, teléfono, dirección). Eso significa que la facturación pasa a tratarse mediante un sistema de IA, con un reparto de roles que conviene tener claro (LOPDP y resolución SPSP-SPD-2026-0009-R de la SPDP):
| Quién | Rol |
|---|---|
| La empresa emisora (tenant) | Responsable del tratamiento de los datos de sus compradores y desplegador del sistema de IA: es quien decide conectar el asistente y a cuál |
| Contadeo | Encargado del tratamiento: entrega los datos por el canal MCP bajo instrucciones del tenant. No elige el asistente ni consume ningún modelo de lenguaje |
| El proveedor del modelo (Anthropic, OpenAI, el que sea) | Lo elige y contrata el tenant con su cliente de IA. No es subencargado de Contadeo: la transferencia la ejecuta el asistente, bajo responsabilidad del tenant |
Qué hace el servidor por su parte: las instructions incluyen la regla (10),
que ordena al asistente usar esos datos solo para la tarea en curso y no
retenerlos ni reutilizarlos fuera de ella; la auditoría (mcp_auditoria)
registra la llamada sin PII; y el catálogo y los comprobantes siguen
acotados por la credencial y por RLS al tenant conectado.
Qué le toca al tenant: decirlo en su aviso de privacidad. Hay un texto
modelo listo para copiar en
docs/legal/TEXTO-MODELO-AVISO-IA.md.
Si el asistente va a manejar datos de compradores, ese aviso es parte de la
transparencia que la LOPDP exige hacia el titular.
.p12 configuradosemisor basta)Sin API keys: el cliente abre el login de Contadeo, autorizas con un clic y listo (OAuth 2.1 con PKCE y registro dinámico de clientes).
# Claude Code
claude mcp add --transport http contadeo https://contadeo.com/api/mcp
# dentro de la sesión: /mcp → authenticate (abre el navegador)
En claude.ai: Settings → Connectors → Add custom connector →
https://contadeo.com/api/mcp.
Para clientes que solo hablan stdio pero soportan OAuth vía proxy:
claude mcp add contadeo -- npx -y mcp-remote https://contadeo.com/api/mcp
Revocar el acceso: cambia tu contraseña en Contadeo (invalida los tokens de todos los clientes conectados).
Útil para automatizaciones machine-to-machine o clientes sin MCP remoto.
La API key se crea en el panel (Configuración → API; el rol emisor
basta).
claude_desktop_config.json){
"mcpServers": {
"contadeo": {
"command": "npx",
"args": ["-y", "contadeo-mcp"],
"env": { "CONTADEO_API_KEY": "cdo_tu_api_key" }
}
}
}
claude mcp add contadeo -e CONTADEO_API_KEY=cdo_tu_api_key -- npx -y contadeo-mcp
| Variable | Requerida | Default |
|---|---|---|
CONTADEO_API_KEY | ✅ | — |
CONTADEO_API_URL | — | https://contadeo.com/api |
Los metadatos del servidor para el
MCP Registry oficial viven en
server.json, bajo el nombre com.contadeo/mcp. Ese es el identificador
con el que lo resuelven los clientes que leen el registro. Si el tuyo no lo
encuentra, se instala igual desde npm como contadeo-mcp o se conecta como
servidor remoto (ver arriba).
Recomendado: deja tu cuenta en ambiente de Pruebas (Configuración → Empresa) hasta dominar el flujo — los comprobantes de Pruebas no tienen validez tributaria.
Una conversación real se ve así:
Tú: Factúrale a María García, cédula 1723456784, 3 cajas de té a $4.50 cada una, pago en efectivo. Su correo es maria@correo.com
Asistente: (usa contexto_emision, crear_cliente y preparar_factura) Te muestro el resumen antes de emitir:
Factura para: MARIA GARCIA (Cédula 1723456784) Detalle: • 3 × Caja de té @ $4.50 = $13.50 [IVA 15% (tarifa general vigente)] Subtotal (sin impuestos): $13.50 IVA: $2.03 TOTAL: $15.53 Forma de pago: Sin utilización del sistema financiero (efectivo) RIDE se enviará a: maria@correo.com¿Confirmas la emisión?
Tú: Sí
Asistente: (emitir_factura → esperar_autorizacion) ✅ AUTORIZADA por el SRI en 8 segundos. Clave de acceso 2306…947. Aquí tienes el PDF: [descargar RIDE]. María también lo recibirá en su correo.
En clientes MCP que soportan prompts, el comando facturar arranca
este flujo guiado automáticamente.
| Categoría | Tool | Qué hace |
|---|---|---|
| Cuenta | consultar_cuenta | Plan, consumo del mes y ambiente (Pruebas/Producción) |
| Contexto | contexto_emision | Emisores, establecimientos, puntos y certificados (los IDs para emitir) |
| Catálogo | buscar_clientes / buscar_productos | Búsqueda por texto |
| Catálogo | crear_cliente / crear_producto | Altas (valida cédula/RUC y tarifas antes de enviar) |
| Catálogo | ajustar_stock | Ajusta las existencias de un producto (entrada, salida o corrección de inventario) |
| Catálogo | consultar_ruc | Autocompleta al comprador por RUC/cédula (directorio + catastro SRI); alerta de contribuyente fantasma/inactivo |
| Emisión | preparar_factura | Calcula y cuadra todo; devuelve resumen + payload (con idempotencyKey). fechaEmision opcional: default hoy, hasta 5 días atrás. No emite |
| Emisión | emitir_factura | Emite tras confirmación; re-valida el cuadre localmente |
| Emisión | preparar_lote | Hasta 25 facturas de una vez: datos comunes al lote + override por factura; devuelve resumenAgregado (tabla por factura + totales). No emite |
| Emisión | emitir_lote | Emite el lote en secuencia tras UNA confirmación; pre-vuelo todo-o-nada y estado por factura (ENCOLADA/FALLO/NO_INTENTADA) |
| Reverso | preparar_nota_credito | Nota de crédito (04) que revierte una factura: reverso TOTAL desde comprobanteId + motivo, o explícito/parcial con items. Calcula y cuadra; no emite |
| Reverso | emitir_nota_credito | Emite la nota de crédito tras confirmación; re-valida cuadre y confirmToken |
| Emisión | esperar_autorizacion | Polling hasta AUTORIZADO/RECHAZADO (el SRI tarda 5–30 s); acepta id o ids (hasta 25, para lotes). Los AUTORIZADO incluyen los links de descarga del RIDE y XML |
| Consulta | listar_comprobantes / consultar_comprobante | Estados y detalle; con eventos: true incluye el timeline paso a paso de la emisión |
| Descarga | descargar_ride / descargar_xml | URLs temporales (1 h) del PDF y XML |
| Acción | anular_comprobante / reenviar_comprobante | Anula una factura autorizada (registro interno; si no aplica, orienta a nota de crédito) o reenvía el RIDE/XML por email |
| Reportes | reporte_ventas | Agregados del período |
| Multi-cuenta | (sin tool propia) | Si tu cuenta administra varias empresas (un RUC = una empresa), consultar_cuenta, contexto_emision y mi_situacion_tributaria traen el bloque multiempresa: cuál está activa y cuáles son las otras. Desde v0.23.0 todas las tools aceptan cuenta con el tenantId de otra empresa, emisión incluida: el resumen que confirmas nombra la razón social y el RUC emisor, y el confirmToken ata la empresa. Requiere conexión OAuth autorizada con 'operar todas mis cuentas' |
| Referencia | consultar_reglas_sri | Tablas oficiales: tarifas IVA, formas de pago, identificaciones, reglas |
| Asesor | consultar_calendario_tributario | Próximos vencimientos según el 9.º dígito del RUC y el régimen |
| Asesor | consultar_semaforo_rimpe | Proyección de ingresos vs límites RIMPE: VERDE/AMARILLO/ROJO |
| Asesor | consultar_obligaciones | Checklist de obligaciones del perfil (declaraciones, anexos, contabilidad) |
| Asesor | consultar_f104 | Borrador del F104 de IVA explicado: cifras + resumen en español llano, desglose por casillero (429, 564, 601, 605, 609, 902/615), alertas proactivas y proyección del arrastre — no es la declaración oficial |
| Asesor | explicar_f104 | Narra la declaración casillero por casillero para quien nunca ha declarado; también explica cifras pegadas de una declaración ya presentada |
| Asesor | simular_f104 | "¿Si facturo $500 más, cuánto más pago?": escenarios de ventas/compras/retenciones/ventas a crédito sobre el borrador, con la tarifa vigente del servidor |
| Asesor | validar_f104 | Chequeo previo a declarar: cruza el borrador contra los libros, detecta compras sin autorización, notas de crédito por compensar y diferencias con lo que piensas declarar |
| Asesor | consultar_libro_ventas / consultar_libro_compras | Libros de ventas y de compras del período (líneas + totales, insumo de declaración y ATS) |
| Asesor | consultar_retenciones | Retenciones practicadas por el emisor (no las que le practican a él) en el período |
| Asesor | consultar_f103 | Auxiliar del F103 (retenciones en la fuente de RENTA): agrupa por código de retención del SRI (base, valor, cantidad) + vencimiento del catálogo; excluye IVA (va al F104/ATS). No es la declaración oficial: el mapeo código→casillero lo confirma el contador |
| ATS (módulo sin publicar) | consultar_ats | Borrador de solo lectura del Anexo Transaccional Simplificado: conteos por sección, totales de cabecera, informe de validación (V1-V17/N1-N9), exclusiones, brechas del producto y si el período ya tiene un anexo archivado (snapshot). NUNCA devuelve el XML ni el ZIP — llevan la identificación de todos los clientes y proveedores del período; eso se descarga solo desde el panel. Requiere el módulo ats (402 sin él) |
| Asesor | registrar_compra / clasificar_proveedor | Registro de una compra con su base y tarifa (el IVA lo deriva el servidor) y clasificación de IVA de un proveedor en dos fases: primero el impacto, y solo con confirmar se aplica |
| Orientación | mi_situacion_tributaria | «¿Cómo voy?» en una llamada: qué falta para emitir, alertas, semáforo RIMPE y obligaciones, con el resumen ya redactado |
| Orientación | explicar_termino | Glosario del SRI (RIDE, RIMPE, retención, clave de acceso…) para no definir de memoria |
Los tools del Asesor son informativos: el servidor calcula con sus catálogos legislativos vigentes y toda respuesta incluye un
disclaimer(«no constituye asesoría tributaria») que el asistente siempre muestra. 39 tools en total, las mismas para todas las cuentas: el catálogo ya no se filtra por perfil (las 3 tools de despacho multiempresa se retiraron en la v0.19.0).
Campos de respuesta (v0.7.0):
preparar_*incluye el objetoambiente,preparadoEny unconfirmTokenen cada payload (reenvíalo tal cual, junto alidempotencyKey);emitir_*devuelve elambientelegible yencoladoEn(y en el loteestadoComprobante);esperar_autorizacionyconsultar_comprobantetraen elambientelegible, y coneventos:trueel timeline incluye firmado → enviado → autorizado → notificado. El detalle interno de arquitectura vive endocs/MCP.md.
Para emitir hasta 25 facturas en una sola pasada (p. ej. la facturación mensual a toda la cartera):
preparar_lote — construye el lote con la matemática hecha por el
servidor: comprador, forma de pago y fechaEmision comunes al lote, con
override por factura. Devuelve el resumenAgregado (tabla por factura +
totales del lote).emitir_lote — emite en secuencia con pre-vuelo todo-o-nada (si un
payload no cuadra, no se emite ninguna); si una factura falla continúa
con las demás, salvo 401/402/429 que corta el lote.esperar_autorizacion con ids — sigue todos los comprobantes hasta el
estado terminal (timeout sugerido: 90 s).Reintentos seguros: cada payload lleva su idempotencyKey (lo genera
preparar_lote); reintentar la emisión con la misma clave devuelve el
comprobante original — no quema secuenciales ni duplica facturas.
| Regla | Detalle |
|---|---|
| Tarifas de IVA (Tabla 18) | '4' = 15% (general vigente) · '0' = 0% · '5' = 5% · '7' = exento · '6' = no objeto |
| Formas de pago (Tabla 24) | '01' efectivo · '20' transferencia · '19' t. crédito · '16' t. débito · más en consultar_reglas_sri |
| Identificación (Tabla 7) | '04' RUC · '05' cédula · '06' pasaporte · '07' consumidor final — con dígito verificador validado |
| Consumidor final | Identificación fija 9999999999999, importe máximo $50 |
| Cuadre | línea = cantidad×precio−descuento; IVA = base×tarifa/100; total = subtotal+IVA+propina — redondeo half-up a 2 decimales |
| Fecha de emisión | Default: hoy (calendario de Ecuador). fechaEmision opcional acepta hasta 5 días atrás; nunca futura (la API la rechaza — error 65 SRI) |
La carpeta skill/facturacion-contadeo/
contiene un Agent Skill que le enseña a Claude el flujo completo, las
reglas de oro (nunca emitir sin confirmación, nunca calcular de cabeza,
verificar el ambiente) y el manejo de errores del SRI. Instalación en Claude
Code:
mkdir -p ~/.claude/skills && cp -r node_modules/contadeo-mcp/skill/facturacion-contadeo ~/.claude/skills/
(o copia la carpeta a .claude/skills/ de tu proyecto).
| Síntoma | Causa probable | Solución |
|---|---|---|
401 API key inválida o revocada | Key mal copiada o revocada | Genera otra en Configuración → API |
402 Cupo mensual agotado | Límite del plan | contadeo.com/precios |
RECHAZADO con error 62 | Identificación inválida | El flujo normal lo previene; revisa el número con el comprador |
RECHAZADO con error 52 | Totales descuadrados | Usa siempre preparar_factura; no edites el payload |
Queda en ENVIADO/CONTINGENCIA | SRI lento o caído | Reintentos automáticos; consulta en unos minutos |
| La factura salió "de verdad" sin querer | Cuenta en Producción | Cambia a Pruebas en Configuración → Empresa para experimentar |
# desde la raíz del monorepo (el paquete vive en el workspace)
pnpm install
pnpm --filter contadeo-mcp test # vitest: identificación + cálculo/cuadre
pnpm --filter contadeo-mcp build # tsc → dist/
CONTADEO_API_KEY=cdo_... node mcp/dist/index.js # corre por stdio
El paquete exporta crearServidorContadeo({ apiUrl, token, confirmSecret?, onAuditoria? }): la misma factoría que usa el backend de Contadeo para montar
el servidor remoto en https://contadeo.com/api/mcp. Arquitectura interna
(protocolo, garantías, modelo de datos): docs/MCP.md; transporte/OAuth y
despliegue: docs/MCP-REMOTO.md.
Documentación completa de la API REST: https://contadeo.com/desarrolladores
FAQs
Servidor MCP de Contadeo: emite y consulta comprobantes electrónicos del SRI (Ecuador) desde asistentes de IA como Claude
The npm package contadeo-mcp receives a total of 85 weekly downloads. As such, contadeo-mcp popularity was classified as not popular.
We found that contadeo-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.