MCPサーバー

Notsy Facturación

io.github.HEUSAI/notsy-facturacion
ビジネス・業務 決済・フィンテック 公開・接続可能 MCP 2025-11-25

このMCPでできること

Resolves Mexican SAT invoice codes, previews CFDI 4.0 invoices, and issues official electronic invoices.

emitir_cfdi
Emite y timbra un CFDI 4.0 OFICIAL ante el SAT (acción real, con costo y difícil de revertir). Llama primero a preview_factura. El motor aplica los límites de la API key (puede requerir aprobación humana) y registra la acción en la bitácora. Args: iguales a preview_factura, más: observaciones: texto libre opcional en el CFDI. anticipo_id: opcional, id de un anticipo previo a aplicar (relación 07 + nota de crédito). idempotency_key: OBLIGATORIA en producción (genera un UUID por operación y reúsalo en los reintentos). Si reintentas con la misma clave, NO se timbra de nuevo: se devuelve el resultado original o el estado de verificación. Con 504 PAC_SIN_CONFIRMACION o 409 CFDI_EN_VERIFICACION, reintenta más tarde con la MISMA clave y nunca con otra; 409 OPERACION_CERRADA pide una clave nueva; 409 CFDI_YA_EMITIDO significa que ya existe.
入力スキーマ
{'type': 'object', 'title': 'emitir_cfdiArguments', 'required': ['conceptos'], 'properties': {'cliente': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Cliente', 'default': None}, 'conceptos': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Conceptos'}, 'emisor_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Emisor Id', 'default': None}, 'cliente_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cliente Id', 'default': None}, 'forma_pago': {'type': 'string', 'title': 'Forma Pago', 'default': '03'}, 'anticipo_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Anticipo Id', 'default': None}, 'metodo_pago': {'type': 'string', 'title': 'Metodo Pago', 'default': 'PUE'}, 'observaciones': {'type': 'string', 'title': 'Observaciones', 'default': ''}, 'idempotency_key': {'type': 'string', 'title': 'Idempotency Key', 'default': ''}}}
preview_factura
DRY-RUN: valida la factura y calcula los totales (subtotal, IVA, retenciones, total) SIN timbrar, reservar ni cobrar. También devuelve la cotización canónica de créditos y el saldo proyectado. Úsalo SIEMPRE antes de emitir_cfdi para confirmar el monto, el costo y que los datos pasen la validación. Aplicar un anticipo cotiza dos CFDI (ingreso + egreso). Args: conceptos: lista de conceptos. Cada uno: {descripcion, clave_prodserv, clave_unidad, cantidad, valor_unitario, precio_incluye_iva (bool), tasa_iva (0.16/0.08/0.0), objeto_imp ("02"), retencion ("honorarios"|"arrendamiento"|"comisiones"|"fletes"|"")}. cliente: datos del receptor {rfc, nombre, regimen_fiscal, cp, uso_cfdi, email, es_publico_general} — o usa cliente_id si ya está guardado. cliente_id: id de un cliente guardado (alternativa a `cliente`). forma_pago: clave SAT de forma de pago (default "03" transferencia). metodo_pago: "PUE" (de contado) o "PPD" (a crédito). emisor_id: opcional, desde qué RFC emitir (multiemisor); None = predeterminado. anticipo_id: opcional, anticipo previo a aplicar; cotiza dos CFDI.
入力スキーマ
{'type': 'object', 'title': 'preview_facturaArguments', 'required': ['conceptos'], 'properties': {'cliente': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Cliente', 'default': None}, 'conceptos': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Conceptos'}, 'emisor_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Emisor Id', 'default': None}, 'cliente_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cliente Id', 'default': None}, 'forma_pago': {'type': 'string', 'title': 'Forma Pago', 'default': '03'}, 'anticipo_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Anticipo Id', 'default': None}, 'metodo_pago': {'type': 'string', 'title': 'Metodo Pago', 'default': 'PUE'}}}
resolver_claves_sat
Convierte una descripción en lenguaje natural a las claves del SAT necesarias para facturar. Devuelve `sugerencia` con clave_prodserv, clave_unidad, objeto_imp, tasa_iva y uso_cfdi, más `candidatos` por si quieres elegir otra. Llámalo antes de armar un concepto si no conoces las claves. Args: descripcion: qué se vende, p.ej. "consultoría de marketing" o "laptop Dell". unidad_hint: opcional, unidad de medida en palabras ("servicio", "hora", "pieza", "kg"). con_iva: si el producto/servicio causa IVA 16% (default True).
入力スキーマ
{'type': 'object', 'title': 'resolver_claves_satArguments', 'required': ['descripcion'], 'properties': {'con_iva': {'type': 'boolean', 'title': 'Con Iva', 'default': True}, 'descripcion': {'type': 'string', 'title': 'Descripcion'}, 'unidad_hint': {'type': 'string', 'title': 'Unidad Hint', 'default': ''}}}
whoami
Confirma la identidad del agente: a qué negocio pertenece la API key, sus permisos (scopes), límites de emisión y uso del día. Úsalo para diagnosticar la conexión.
入力スキーマ
{'type': 'object', 'title': 'whoamiArguments', 'properties': {}}
変更
emitir_cfdi
2026年10月3日2:52
追加
emitir_cfdi
2026年9月17日12:42
追加
preview_factura
2026年9月17日12:42
追加
resolver_claves_sat
2026年9月17日12:42
追加
whoami
2026年9月17日12:42