Notsy Facturación
Emite CFDIs 4.0 y resuelve claves del SAT para agentes de IA (México), con permisos por API key.
Should I use this
Quality & Safety
Findings (4)
- HIGH
- MEDIUMin preview_factura
- LOWin resolver_claves_sat
- INFOin preview_factura
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"notsy-facturacion": {
"url": "https://mcp.notsy.com.mx/mcp"
}
}
}Remote endpoints
https://mcp.notsy.com.mx/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
⚪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.
Input Schema
{
"type": "object",
"properties": {},
"title": "whoamiArguments"
}⚪resolver_claves_sat(descripcion, unidad_hint, con_iva)
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).
Input Schema
{
"type": "object",
"properties": {
"descripcion": {
"title": "Descripcion",
"type": "string"
},
"unidad_hint": {
"default": "",
"title": "Unidad Hint",
"type": "string"
},
"con_iva": {
"default": true,
"title": "Con Iva",
"type": "boolean"
}
},
"required": [
"descripcion"
],
"title": "resolver_claves_satArguments"
}⚪preview_factura(conceptos, cliente, cliente_id, forma_pago, metodo_pago, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"conceptos": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Conceptos",
"type": "array"
},
"cliente": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Cliente"
},
"cliente_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cliente Id"
},
"forma_pago": {
"default": "03",
"title": "Forma Pago",
"type": "string"
},
"metodo_pago": {
"default": "PUE",
"title": "Metodo Pago",
"type": "string"
},
"emisor_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Emisor Id"
},
"anticipo_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Anticipo Id"
}
},
"required": [
"conceptos"
],
"title": "preview_facturaArguments"
}⚪emitir_cfdi(conceptos, cliente, cliente_id, forma_pago, metodo_pago, ...)
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 (evita CFDIs duplicados ante el SAT).
Input Schema
{
"type": "object",
"properties": {
"conceptos": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Conceptos",
"type": "array"
},
"cliente": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Cliente"
},
"cliente_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cliente Id"
},
"forma_pago": {
"default": "03",
"title": "Forma Pago",
"type": "string"
},
"metodo_pago": {
"default": "PUE",
"title": "Metodo Pago",
"type": "string"
},
"observaciones": {
"default": "",
"title": "Observaciones",
"type": "string"
},
"emisor_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Emisor Id"
},
"anticipo_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Anticipo Id"
},
"idempotency_key": {
"default": "",
"title": "Idempotency Key",
"type": "string"
}
},
"required": [
"conceptos"
],
"title": "emitir_cfdiArguments"
}Community
Evidence