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

B
Description quality
83%
Schema completeness
62%
Naming quality
90%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'preview_factura' description contains placeholder textin preview_factura
  • LOWTool 'resolver_claves_sat' description lacks action verbin resolver_claves_sat
  • INFOTool description contains placeholder or incomplete textin preview_factura

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,355Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (1.06% of 128k context)

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-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools