La llave de prueba es gratuita y sale por correo. Timbra 2 CFDI de prueba en el sandbox del SAT y caduca a los 7 días. No tiene validez fiscal: sirve para ver el circuito completo antes de pagar nada.
curl -X POST https://mcp.factumatico.com/api/mcp/trial/issue \
-H 'Content-Type: application/json' \
-d '{"email":"tu@correo.com"}'
Respuesta: un JSON con api_key que empieza por sk_test_. Se muestra una sola vez y también llega al correo.
Endpoint: https://mcp.factumatico.com/mcp · JSON-RPC 2.0 sobre HTTP · protocolo MCP 2025-06-18 · autenticación Authorization: Bearer <TU_LLAVE>.
Elige tu cliente y salta a su apartado. La columna «cómo» dice de qué va cada uno:
| Tu cliente | Cómo se conecta | Cuánto cuesta |
|---|---|---|
| Claude Code | Un comando en la terminal | 1 minuto |
| Claude Desktop | Editar un archivo de configuración | 5 minutos |
| ChatGPT (escritorio) | Rellenar su formulario de MCP | 5 minutos |
| ChatGPT (navegador) | Todavía no se puede | — |
| Cursor, n8n, otros | URL + cabecera, o el mismo puente | 5 minutos |
claude mcp add --transport http factumatico https://mcp.factumatico.com/mcp \
--header "Authorization: Bearer TU_LLAVE"
Comprueba con /mcp dentro de Claude Code, o claude mcp get factumatico. Debe decir
connected; si dice failed, el detalle trae el código HTTP —un 401 es llave inválida o caducada—.
Añade --scope user si lo quieres en todos tus proyectos.
1. Abre el archivo de configuración. En Claude Desktop: menú Ajustes → Desarrollador → botón Editar configuración. Eso abre la carpeta con el archivo:
| Sistema | Ruta |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
Ábrelo con el Bloc de notas o cualquier editor de texto.
"mcpServers" y un { de más, y entonces Claude Desktop no arranca
ningún servidor. Va una sola lista "mcpServers", con tus servidores separados por coma dentro.
El apartado de abajo tiene el ejemplo.2. Pega esto y cambia TU_LLAVE por la que te llegó por correo (empieza por sk_test_):
{
"mcpServers": {
"factumatico": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.factumatico.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer TU_LLAVE" }
}
}
}
Qué es cada cosa, por si tienes que adaptarlo:
| Campo | Qué es |
|---|---|
"factumatico" | El nombre con el que lo verás en Claude. Puedes cambiarlo |
command y args | npx arranca mcp-remote, un puente que habla con nuestro servidor por HTTP y le añade tu cabecera. Requiere Node.js instalado |
-y | Instala el puente sin preguntar. Sin él, la primera vez npx se queda esperando una confirmación que nadie puede darle y el servidor no arranca |
--header | La cabecera de autenticación. Sin espacio después de los dos puntos: ver el aviso de abajo |
env | Donde vive tu llave. Aquí sí puede llevar espacio, por eso el token va aquí y no en args |
"Authorization: Bearer sk_test_..." —con espacios— hace que Claude Desktop lo parta al invocar
npx y el servidor nunca recibe la cabecera. Por eso el argumento va sin espacio
(Authorization:${AUTH_HEADER}) y la llave viaja en env. Si copias el bloque tal cual, ya
está bien.2b. Si ya tenías otros servidores, añade factumatico como una entrada más dentro de la
lista que ya existe — fíjate en la coma después de la llave de cierre del servidor anterior, y en que el archivo
conserva lo demás (coworkUserFilesPath, preferences…) tal cual estaba:
{
"mcpServers": {
"otro-servidor": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ejemplo.com/mcp"]
}, <-- coma entre servidores
"factumatico": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.factumatico.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer TU_LLAVE" }
}
},
"coworkUserFilesPath": "C:\Users\TuUsuario\Claude",
"preferences": { }
}
Fíjate en que "mcpServers" aparece una sola vez y en que todo el archivo empieza con un { y
termina con un }. Si el editor te marca error, pega el contenido en un validador de JSON: te dirá la
línea exacta.
3. Cierra Claude Desktop del todo y vuelve a abrirlo. No basta con cerrar la ventana: en Windows,
click derecho en el icono de la bandeja → Salir; en macOS, Cmd+Q. La configuración solo se lee
al arrancar.
4. Comprueba que quedó. En una conversación, pulsa el icono de «Añadir archivos, conectores y más» (abajo a la izquierda del cuadro de texto) → Conectores. Debe aparecer factumatico con sus herramientas. Pídele entonces: «lista las herramientas de factumatico».
Si no aparece: el registro dice por qué. En Windows,
%APPDATA%\Claude\logs\mcp-server-factumatico.log; en macOS,
~/Library/Logs/Claude/mcp-server-factumatico.log. Lo más común, por orden: el JSON quedó
con dos "mcpServers" o una coma de más, falta Node.js, o la llave
está mal copiada.
Authorization: Bearer), que ahí no se puede escribir. Si lo intentas, verás un error de conexión o
una pantalla de inicio de sesión que no lleva a ninguna parte; bórralo de la lista y usa el archivo de
configuración de arriba. Cuando publiquemos OAuth, esa pantalla será el camino corto y lo diremos aquí.En Ajustes → Conexiones/Complementos → MCP → Conectar a un MCP personalizado, con Tipo: STDIO:
| Campo | Qué poner |
|---|---|
| Nombre | factumatico |
| Tipo | STDIO |
| Comando para iniciar | npx |
| Argumentos | uno por línea, en este orden: -y · mcp-remote · https://mcp.factumatico.com/mcp · --header · Authorization:${AUTH_HEADER} |
| Variables del entorno | AUTH_HEADER = Bearer TU_LLAVE |
Si eliges HTTP con transmisión en tiempo real, la URL es la misma
(https://mcp.factumatico.com/mcp), pero solo servirá si esa pantalla te deja añadir la cabecera
Authorization. Si no, quédate con STDIO: el resultado es el mismo.
mcp-remote con esta cabecera está
comprobado contra nuestro servidor —conecta y establece el proxy— y es el mismo que funciona en Claude
Desktop. Lo que no hemos podido probar es la pantalla de ChatGPT pasando esos argumentos y esa variable de
entorno. Si algo falla ahí, será en cómo ese formulario los entrega, no en el servidor: escríbenos y lo miramos
contigo.Los conectores del ChatGPT web (Modo desarrollador) piden URL y un método de autenticación entre OAuth, sin autenticación o mixta: no hay hueco para una cabecera Bearer. Todavía no lo soportamos por esa vía y no lo hemos probado; usa la aplicación de escritorio o Claude Code. Cuando publiquemos OAuth lo diremos aquí.
Si el cliente acepta servidores HTTP con cabeceras, apúntalo a https://mcp.factumatico.com/mcp con
Authorization: Bearer TU_LLAVE. Si solo acepta comandos locales, usa el mismo bloque de
mcp-remote de arriba.
# 1. initialize
curl -X POST https://mcp.factumatico.com/mcp -H 'Authorization: Bearer TU_LLAVE' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"mi-agente","version":"1.0"}}}'
# 2. tools/list — devuelve exactamente las herramientas de las tablas de abajo
curl -X POST https://mcp.factumatico.com/mcp -H 'Authorization: Bearer TU_LLAVE' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# 3. tools/call — un CFDI de prueba
curl -X POST https://mcp.factumatico.com/mcp -H 'Authorization: Bearer TU_LLAVE' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"factumatico_stamp_test_invoice","arguments":{"total":116.00,"concepto":"Prueba de integracion"}}}'
La respuesta del paso 3 trae el folio fiscal (UUID) del CFDI de prueba y descuenta uno de tus timbrados. Si algo falla, el mensaje dice qué falta.
Esto es todo lo que el servidor MCP expone hoy. Factumático tiene por dentro cientos de herramientas; ninguna otra está disponible por esta vía.
| Herramienta | Qué hace | Parámetros | Ambiente |
|---|---|---|---|
factumatico_stamp_test_invoice | Timbra un CFDI de PRUEBA (sandbox SAT, sin validez fiscal). Consume 1 timbrado de tu trial. Ambiente sandbox forzado. | total, concepto, receptor_rfc | Prueba |
factumatico_trial_status | Muestra el estado de tu trial: timbrados usados, limite y restantes, y fecha de expiracion de tu key. | sin parámetros | Prueba |
factumatico_help | Explica que puedes hacer con tu llave de Factumatico y cuales son tus limites. | sin parámetros | Prueba |
| Herramienta | Qué hace | Parámetros | Ambiente |
|---|---|---|---|
factumatico_stamp_invoice | Timbra un CFDI 4.0 REAL con validez fiscal usando tu propio CSD. Consume un timbre de tu plan. Tipo ingreso, IVA 16% trasladado. | receptor, conceptos, forma_pago, serie | Producción |
factumatico_cancel_invoice | Cancela ante el SAT un CFDI REAL emitido por ti. Solo puedes cancelar facturas de tu propia cuenta. | uuid, motivo, uuid_sustituto | Producción |
Estas herramientas operan sobre los datos de tu propia empresa y están disponibles con la llave de producción, en cuanto tu CSD queda validado. No gastan timbrados: dar de alta un cliente no es timbrar.
Dar de alta, actualizar, buscar y consultar el saldo y el historial de tus clientes.
| Herramienta | Qué hace | Parámetros | Ambiente |
|---|---|---|---|
factumatico_crm_client_create | Crea un nuevo cliente/contacto en el CRM. Requiere al menos el nombre. Soporta datos fiscales (RFC, regimen fiscal), contacto (email, telefono), direccion y configuracion CFDI. | name, type, rfc, tax_regime, email, phone, address, cfdi_use, payment_method, trade_name, tags, notes | Producción |
factumatico_crm_client_update | Actualiza los datos de un cliente existente. Se actualizan solo los campos proporcionados; los demas permanecen sin cambio. | id, uuid, search_name, name, type, rfc, tax_regime, email, phone, address, cfdi_use, payment_method, trade_name, tags, notes | Producción |
factumatico_crm_client_get | Obtiene el detalle completo de un cliente por su UUID, incluyendo conteo de facturas y estadisticas de pagos. | uuid | Producción |
factumatico_crm_client_list | Lista los clientes del tenant con filtros opcionales por tipo, estado activo y busqueda. Soporta paginacion. | type, is_active, search, page, per_page, sort | Producción |
factumatico_crm_client_search | Busca clientes por nombre, RFC, telefono o email. Retorna hasta el limite especificado de coincidencias. | query, limit | Producción |
factumatico_crm_client_balance | Calcula el resumen financiero de un cliente: total facturado, total pagado, saldo pendiente y numero de facturas. | uuid | Producción |
factumatico_crm_client_history | Obtiene el historial de facturas y pagos de un cliente como una linea de tiempo ordenada por fecha. | uuid, limit | Producción |
factumatico_crm_client_tag | Agrega o elimina etiquetas de un cliente. Permite gestionar las tags para clasificar y organizar clientes. | uuid, add, remove | Producción |
Tu catálogo: altas, precios, imágenes, existencias y estadísticas.
| Herramienta | Qué hace | Parámetros | Ambiente |
|---|---|---|---|
factumatico_products_create | Crea un producto o servicio en el catalogo. Solo nombre y precio son obligatorios; los datos fiscales (clave SAT) se completan automaticamente. | name, description, sat_product_code, sat_unit_code, unit_name, price, currency, tax_rate, tax_included, category, internal_code, barcode, default_discount, image_url | Producción |
factumatico_products_update | Actualiza los datos de un producto existente: precio, nombre, descripcion, datos SAT. | product_id, name, description, sat_product_code, sat_unit_code, unit_name, price, currency, tax_rate, tax_included, category, internal_code, barcode, default_discount, is_active, image_url | Producción |
factumatico_products_get | Muestra el detalle completo de un producto: datos, precios, datos SAT y estadisticas de venta. | product_id | Producción |
factumatico_products_list | Lista los productos del catalogo con filtros por categoria, estado y rango de precio. | category, is_active, price_min, price_max, sort_by, page, per_page | Producción |
factumatico_products_search | Busca productos por nombre, descripcion, codigo interno, codigo de barras o clave SAT. | query, limit | Producción |
factumatico_products_price_update | Actualiza el precio de un producto. Opcionalmente puede actualizar multiples productos por porcentaje. | product_id, new_price, category, percentage | Producción |
factumatico_products_set_image | Asigna una imagen a un producto. Sube el archivo (foto del usuario o imagen generada) a Cloudflare R2 y guarda la URL publica en el producto. Antes de usar: confirma con el usuario si quiere usar una foto real o la imagen generada por IA. | product_id, source_path, source_type | Producción |
factumatico_products_stats | Estadisticas de productos: mas vendidos, mayor ingreso, categorias populares y tendencias. | period, limit | Producción |
factumatico_products_inventory_check | Consulta el stock actual de uno o varios productos. Muestra alertas si el stock esta bajo. | product_id, category, low_stock_only | Producción |
El logo que sale en tus facturas: subirlo, mejorarlo o generarlo con IA.
| Herramienta | Qué hace | Parámetros | Ambiente |
|---|---|---|---|
factumatico_branding_logo_upload | Guarda el logotipo del negocio a partir de una imagen que el usuario envió al chat (PNG, JPG o WebP). El logo aparecerá en cotizaciones, facturas, recibos y emails. Recibe el file_path local donde está la imagen. | file_path, url, remove_background | Producción |
factumatico_branding_logo_generate | Genera un logotipo profesional con IA basado en el nombre del negocio y una descripción visual. Optimizado para cotizaciones, facturas y emails. El logo se aplica automáticamente al tenant. Estilos: minimalist (líneas limpias), classic (formal), modern (vibrante), elegant (alta gama). | description, style | Producción |
factumatico_branding_logo_improve | Genera una variante mejorada del logo actual con IA aplicando ajustes (más limpio, más moderno, otro color, otro estilo). Útil cuando el usuario quiere refinar su logo sin empezar de cero. | adjustment | Producción |
factumatico_branding_logo_get | Devuelve el logotipo actual del negocio (si existe) para previsualizarlo o reenviarlo al usuario. | sin parámetros | Producción |
factumatico_branding_logo_remove | Elimina el logotipo personalizado del negocio. Las cotizaciones y facturas volverán a usar solo texto (sin logo). | sin parámetros | Producción |
Series de facturación, el siguiente folio y los datos por omisión de tus CFDI.
| Herramienta | Qué hace | Parámetros | Ambiente |
|---|---|---|---|
factumatico_config_invoice_series | Gestiona las series de facturacion del negocio (FA, NC, PG, COT, REC). Permite listar, crear, activar o desactivar series. | action, series, description, type | Producción |
factumatico_config_invoice_folio | Consulta o configura el ultimo folio de una serie de facturacion. Permite ajustar el folio inicial para nuevas series. | series, set_folio | Producción |
factumatico_config_invoice_defaults | Configura los valores predeterminados para facturas nuevas: uso CFDI, metodo de pago, forma de pago, moneda, lugar de expedicion. | cfdi_use, payment_method, payment_form, currency, expedition_place, conditions | Producción |
Una cuenta de Factumático tiene dos credenciales distintas, y el modo lo eliges según cuál pongas en tu agente. No hay ningún interruptor escondido: cambiar de pruebas a producción es cambiar esa línea de tu configuración.
| Llave de pruebas | Llave de producción | |
|---|---|---|
| Empieza por | sk_test_ | sk_live_ |
| Qué timbra | CFDI contra el sandbox del SAT: sin validez fiscal | CFDI reales ante el SAT, con tu firma |
| Emisor | El RFC público de pruebas del SAT | Tu RFC, con tu CSD |
| Cuándo la tienes | Desde que te das de alta, gratis | Cuando cargas tu CSD y lo validamos |
| Cupo | Contador aparte: probar no gasta el cupo de tu plan | El cupo del plan: hasta 10,000 por periodo |
| Concepto | Detalle |
|---|---|
| Precio | $499 MXN IVA incluido por 30 días |
| Emisor | Un (1) RFC emisor. Es la empresa que factura con su CSD |
| Receptores | Los que quieras: el límite es del emisor, no de a quién le facturas |
| Timbrados | Hasta 10,000 por periodo |
| Importe por CFDI | Máximo $50,000.00 MXN |
| Renovación | Manual. Al terminar los 30 días se vuelve a pagar desde la página |
| Factura de la suscripción | La emite Grupo Factumático y Soluciones S.A. de C.V. |
| Respuesta | Qué pasó | Qué hacer |
|---|---|---|
authentication_required | No mandaste la cabecera Authorization | Añade Bearer y tu llave |
invalid_trial_key | La llave no existe o fue sustituida por otra | Revisa cuál de tus dos llaves estás usando. Si la perdiste, pide otra desde tu panel: te llega un enlace al correo registrado |
| Timbra en sandbox cuando esperabas real | Estás usando tu llave sk_test_ | Cambia la cabecera Authorization por tu llave sk_live_. Ver tus dos llaves |
trial_key_expired | Se acabó la vigencia | Contrata o renueva el Plan Agente |
trial_limit_reached | Agotaste los timbrados del periodo | Renueva. Pagar sigue funcionando aunque el cupo esté agotado |
| Timbra pero sin validez fiscal | Tu llave sigue en pruebas | Sube tu CSD en /activar; hasta entonces el ambiente es sandbox |
Si prefieres que lo haga él, este bloque le dice qué hacer sin exponer secretos:
Vas a integrar Factumatico MCP (timbrado de CFDI 4.0 en Mexico).
1. Lee https://mcp.factumatico.com/documentacion
2. Conecta al servidor MCP https://mcp.factumatico.com/mcp con la credencial
que te dare por un canal seguro. NO la escribas en el chat ni en el codigo.
3. Llama a tools/list y dime exactamente que herramientas te autoriza.
4. Ejecuta UNA prueba en sandbox: factumatico_stamp_test_invoice con
total 116.00 y concepto "Prueba de integracion". Enseñame el resultado.
Reglas: no emitas ni canceles ningun CFDI real sin que yo lo confirme antes,
y no me pidas el CSD ni su contraseña por chat: eso se carga en la web.
Son dos cosas distintas y conviene no mezclarlas:
El CSD se comprueba de verdad: que el certificado y la llave se correspondan, que la contraseña abra la llave y que el RFC del certificado sea el que nos diste. Eso es validar el certificado; no es una consulta al SAT sobre tu situación fiscal.