MCP
Servidor MCP
Conecta agentes de IA con Exac mediante el servidor Model Context Protocol de producción, con permisos y los mismos contratos de dominio que la API REST.
Servidor MCP
¿Qué es Exac MCP?
Exac MCP es un servidor remoto Streamable HTTP, disponible únicamente en producción, para la organización activa. OAuth respeta el rol del usuario; una API key de organización de producción concede acceso completo a la API.
https://adventurous-moose-616.convex.site- Buscar documentos y registros operativos de la organización
- Crear y administrar recursos mediante contratos de dominio compartidos
- Consultar reportes fiscales y sincronizar datos permitidos del SAT
Conectar un cliente
Usa el origen de producción del sitio Convex de Exac como endpoint Streamable HTTP. OAuth es la opción recomendada para agentes interactivos; las API keys de organización de producción funcionan mejor para integraciones fijas. MCP no acepta claves de prueba.
Configuración OAuth (recomendada)
{ "mcpServers": { "exac": { "url": "https://adventurous-moose-616.convex.site" } }}Configuración con API key de organización
{ "mcpServers": { "exac": { "url": "https://adventurous-moose-616.convex.site", "headers": { "Authorization": "Bearer <EXAC_API_KEY>" } } }}Ejemplo CFDI en tres pasos
Crea un borrador, revisa su documentRef público y timbra solo después de revisarlo. El flujo completo de REST y MCP permanece en la introducción.
{ "steps": [ { "tool": "create_cfdi_draft", "arguments": { "idempotencyKey": "workflow-create-cfdi", "input": { "customerId": "customer-example", "items": [ { "kind": "custom", "description": "Consultoría administrativa · julio 2026", "quantity": 1, "unitPrice": 10000, "satProductCode": "84111506", "satUnitCode": "E48", "taxRate": 0.16, "taxability": "standard" } ], "kind": "income", "cfdiUse": "G03", "payment": { "timing": "deferred_or_installments", "formCode": "99", "conditions": "Crédito a 30 días" } } }, "environments": [ "production" ] }, { "tool": "get_document", "arguments": { "documentRef": "cfdi:invoice-example" }, "environments": [ "production" ] }, { "tool": "get_document_file", "arguments": { "documentRef": "cfdi:invoice-example", "file": "preview_pdf" }, "environments": [ "production" ] } ]}Semántica de resultados y errores MCP
Toda herramienta JSON ordinaria devuelve un sobre data. Los fallos esperados devuelven un sobre error con un código estable; los archivos binarios permanecen como recursos MCP.
Sobre de éxito
JSON Schema{ "data": {}}Sobre de error
JSON Schema{ "error": { "code": "validation_error", "message": "La validación de la solicitud falló", "details": {} }}Recuperación por código
validation_error- Corrige cada elemento de details.issues usando su path y código estable.
unauthenticated- Proporciona una API key o un token de acceso OAuth válido.
forbidden- Usa una credencial con el permiso requerido.
not_found- Verifica el identificador del recurso dentro de la organización.
method_not_allowed- Usa el método HTTP documentado.
conflict- Actualiza el recurso y resuelve su estado actual.
idempotency_conflict- Usa otra clave de idempotencia para una solicitud modificada.
operation_in_progress- Espera el tiempo de Retry-After y repite la misma solicitud.
recovery_required- No reintentes automáticamente; reconcilia el resultado del proveedor.
rate_limited- Espera el tiempo de Retry-After antes de reintentar.
provider_unavailable- Reintenta solo cuando la respuesta marque la falla como reintentable.
internal- Reintenta después y contacta a soporte si el error persiste.
Herramientas disponibles
El servidor publica únicamente las herramientas permitidas para la credencial activa. Cada cliente MCP recibe el esquema de entrada autoritativo mediante tools/list.
Organización y acceso
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
get_organization | Lee el perfil, la configuración fiscal y la disponibilidad de la organización activa. | Solo lectura |
update_organization | Actualiza una sección coherente de la configuración de la organización. | Efecto externo |
get_employees | Busca empleados y consulta un empleado específico de la organización. | Solo lectura |
save_employee | Crea o actualiza un empleado de la organización. | Modifica datos |
Configuración inicial
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
get_configuration | Busca o recupera sucursales, categorías de gastos y campos de recibos de la organización. | Solo lectura |
search_sat_product_catalog | Busca claves oficiales de productos y servicios del catálogo del SAT. | Solo lectura |
save_configuration | Crea o actualiza una sucursal, categoría de gastos o campo de recibo de la organización. | Modifica datos |
get_fiscal_series | Consulta las series fiscales configuradas para la organización. | Solo lectura |
update_fiscal_series | Actualiza una serie fiscal existente de la organización. | Destructivo y externo |
Descubrimiento y entrega de documentos
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
search_documents | Busca una familia de documentos usando referencias públicas estables. | Solo lectura |
get_document | Recupera un documento mediante su documentRef público. | Solo lectura |
send_document | Entrega un CFDI, retención, recibo de venta o cotización a un destinatario. | Efecto externo |
get_document_file | Descarga un archivo como recurso binario. Usa preview_pdf para renderizar un borrador CFDI sin timbrar; la vista previa no tiene validez fiscal. | Solo lectura |
CFDI y retenciones
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
create_withholding | Crea y timbra inmediatamente un documento de retención del SAT. | Destructivo y externo |
create_cfdi_draft_from_sales_receipts | Crea un borrador CFDI a partir de recibos de venta compatibles. | Efecto externo |
create_cfdi_draft | Crea un borrador CFDI con impuestos canónicos. En complementos, Exac puede calcularlos o aceptar el taxObject y las filas del pago. | Efecto externo |
update_cfdi_draft | Reemplaza un borrador CFDI y vuelve a validar su contrato fiscal. | Efecto externo |
stamp_cfdi | Timbra un borrador revisado solo si conserva su contrato fiscal canónico. | Destructivo y externo |
refresh_cfdi_status | Consulta al SAT el estado actual de un CFDI timbrado y concilia el estado local. | Efecto externo |
cancel_fiscal_document | Solicita al SAT la cancelación de un CFDI o documento de retención timbrado. | Destructivo y externo |
archive_fiscal_document | Archiva o restaura un CFDI o documento de retención sin eliminar su historial. | Modifica datos |
Ventas y cotizaciones
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
save_quote | Crea una cotización en borrador o actualiza una cotización existente. | Modifica datos |
publish_quote | Publica una cotización en el portal del cliente. | Efecto externo |
cancel_quote | Cancela una cotización en borrador o enviada. | Destructivo |
record_quote_payment | Registra un pago manual de una cotización aceptada. | Destructivo y externo |
create_sales_receipt | Crea un recibo de venta de caja sin timbrar un CFDI. | Modifica datos |
cancel_sales_receipt | Cancela un recibo abierto y conserva su historial operativo. | Destructivo |
refund_sales_receipt | Registra un reembolso de recibo y, cuando corresponda, crea una nota de crédito CFDI. | Destructivo y externo |
Catálogo comercial e inventario
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
get_products | Busca productos, consulta un producto, sus proveedores vinculados o las clasificaciones requeridas para guardar productos. | Solo lectura |
get_contacts | Busca contactos y consulta un contacto específico de la organización. | Solo lectura |
get_inventory | Consulta existencias, movimientos u operaciones agrupadas de inventario. | Solo lectura |
save_contact | Crea o actualiza un cliente o proveedor de la organización. | Modifica datos |
save_product | Crea o actualiza un producto del catálogo de la organización. | Modifica datos |
update_inventory | Establece o repone la existencia de un producto. | Destructivo |
receive_inventory | Registra una entrega de inventario de proveedor con varios productos. | Destructivo |
get_price_overrides | Consulta precios configurados por cliente o sucursal. | Solo lectura |
set_price_override | Crea o actualiza una regla de precio para cliente o sucursal. | Modifica datos |
Cuentas y gastos
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
create_expense | Crea un gasto operativo de la organización. | Modifica datos |
get_accounts | Busca cuentas por cobrar o por pagar y consulta sus movimientos. | Solo lectura |
correct_expense_settlement | Establece si un gasto está pagado o permanece como crédito del proveedor. | Modifica datos |
record_payment | Registra dinero recibido o pagado y lo asigna a saldos abiertos. | Modifica datos |
adjust_account_balance | Corrige un saldo por cobrar o por pagar con un motivo auditable. | Destructivo |
reschedule_receivable_plan | Reemplaza el calendario de parcialidades de un plan por cobrar impago. | Destructivo |
set_payable_payment_plan | Crea o reemplaza el plan de pagos de una factura PPD recibida. | Destructivo |
Reportes y sincronización
| Herramienta MCP | Propósito | Seguridad |
|---|---|---|
get_cfdi_summary | Consulta agregados financieros de documentos CFDI por periodo. | Solo lectura |
get_sales_receipt_summary | Consulta agregados de ventas de recibos de caja por periodo. | Solo lectura |
get_expense_cash_summary | Consulta salidas de efectivo operativas por periodo. | Solo lectura |
get_cfdi_collection_summary | Consulta actividad y saldos de cobranza de CFDI por periodo. | Solo lectura |
get_tax_summary | Consulta totales fiscales provenientes de declaraciones analizadas. | Solo lectura |
sync_sat_data | Programa una sincronización autorizada de datos fiscales del SAT, incluida la descarga masiva de CFDI. | Efecto externo |
Recomendaciones de seguridad