FrancodesystemsFrancodesystems
IA / LLMsIntegración a medida

Cómo conectar Holded con Claude (Anthropic)

Claude consultando tu Holded por MCP: qué ofrece el conector oficial, dónde se queda corto y cómo se monta con permisos que no den sustos.

Por Juan Cantón Rodríguez · Actualizado el

Solicitar esta integración
HoldedHolded
↔
Claude (Anthropic)

Tiempo de implantación · 6-12 días laborables

Diagnóstico

El problema

Conectar un modelo de lenguaje al ERP es fácil; conectarlo bien no tanto. El modelo puede leer mal un importe y presentarlo con total seguridad, proponer una cuenta que no existe en tu plan contable o, si la clave tiene permisos de escritura sobre facturas, crear, reemplazar o borrar documentos: la API v2 de Holded permite eliminar hasta 100 facturas en una sola llamada. Una factura emitida no se corrige editándola, se rectifica, y con Verifactu esa disciplina deja de ser opcional. Además, todo lo que el asistente lee de Holded (nombres, NIF, importes de clientes) viaja al proveedor del modelo, y no rige lo mismo en una cuenta personal de Claude que en un plan de empresa. La mayoría de estos riesgos no se ven en la demo: aparecen el día que alguien pide algo ambiguo.

Propuesta

La solución

Claude se conecta a Holded mediante MCP (Model Context Protocol), el estándar abierto que publicó Anthropic y que hoy gestiona la Agentic AI Foundation de la Linux Foundation. Holded tiene un servidor MCP oficial (https://mcp.holded.com/mcp) que se añade como conector personalizado en Claude y en otros asistentes compatibles, con dos perfiles: analítico, de solo lectura, y operativo, que puede crear contactos, presupuestos, pedidos o proyectos pero deja siempre en solo lectura la contabilidad, las facturas y los impuestos. Para muchas pymes con eso basta. Cuando no, montamos la pieza que falta: reglas de tu negocio, validaciones antes de escribir, procesos que corren solos sin nadie delante del chat y registro de cada llamada.

Scope

Qué automatizamos

  • Puesta en marcha del conector MCP oficial de Holded en perfil analítico, con usuarios y permisos revisados
  • Consultas en lenguaje natural sobre datos reales: facturas pendientes, tesorería, stock, gastos por proveedor
  • Servidor MCP propio sobre la API v2 cuando el oficial no basta: herramientas acotadas a lo que tu equipo necesita
  • Claves de API con el mínimo permiso por recurso (por ejemplo, sales:invoices.read sin sales:invoices.write)
  • Escritura solo en borradores (presupuestos, pedidos) y nunca en facturas aprobadas
  • Procesos desatendidos con la API de Anthropic: revisar la bandeja de entrada de Holded y proponer proveedor, cuenta e importes
  • Validación de cada importe y cada cuenta contra Holded antes de dar nada por bueno
  • Registro de cada llamada (quién, qué herramienta, qué datos) para auditar después
Para quién encaja

Casos de uso típicos

Perfiles en los que la integración Holded ↔ Claude (Anthropic) suele encajar y qué cambia con ella. Son ejemplos ilustrativos, no clientes concretos.

Ejemplo 01

Escenario típico: gerencia que pregunta y administración que responde

Antes: Cada consulta del tipo cuánto nos deben o qué facturamos este trimestre acaba en un mensaje a administración, que entra a Holded a buscarlo.

Después: Gerencia lo pregunta a Claude con el conector en solo lectura. No puede tocar nada y la respuesta sale de los datos de Holded.

Ejemplo 02

Escenario típico: muchos tickets y facturas de proveedor por revisar

Antes: Los documentos de compra se acumulan en la bandeja de entrada de Holded y alguien tiene que asignar proveedor, cuenta e importes uno a uno.

Después: Un proceso propone proveedor, cuenta e importes para cada documento, comprobados contra Holded. La persona revisa y confirma, no teclea.

Ejemplo 03

Escenario típico: equipo comercial que prepara presupuestos

Antes: Para cada presupuesto hay que buscar el contacto, la tarifa y el histórico del cliente en varias pantallas.

Después: Claude prepara el presupuesto en borrador con el perfil operativo y alguien lo revisa antes de enviarlo. Las facturas siguen fuera de su alcance.

Antes / Después

Qué cambia exactamente

El día a día sin la integración y con ella, lado a lado.

✕

Sin la integración

  • Claves de API con permiso total pegadas en un archivo de configuración
  • Un asistente que puede crear, reemplazar o borrar facturas
  • Importes que nadie contrasta con Holded antes de usarlos
  • Datos de clientes en cuentas personales de Claude sin revisar qué condiciones aplican
✓

Con la integración

  • Permisos mínimos por recurso y token revocable desde Holded
  • Solo lectura por defecto; escritura solo en borradores y con revisión
  • Cada importe y cada cuenta validados contra Holded
  • Plan de Claude y flujo de datos revisados antes de conectar datos personales
Arquitectura

Cómo lo construimos

Empezamos por lo que ya existe. Si tu caso es consultar, configuramos el conector oficial de Holded en perfil analítico: se autoriza por OAuth con tu usuario de Holded, nunca da más permisos de los que ese usuario ya tiene y el token que crea queda visible en Desarrolladores → Credenciales para revocarlo. Cuando hace falta más, construimos un servidor MCP propio sobre la API v2 de Holded, la misma especificación que usamos en nuestro nodo de n8n verificado: cada herramienta corresponde a una operación concreta, las de borrado no se exponen, la clave lleva solo los permisos por recurso que pide el caso y cada escritura pasa por validaciones (que el contacto exista, que la cuenta esté en tu plan contable, que el total cuadre con las líneas) antes de llegar a Holded. Para tareas que corren solas, como repasar la bandeja de entrada cada mañana, usamos la API de Anthropic desde un servicio propio con herramientas definidas, y el resultado queda como propuesta para que una persona la apruebe. Las claves viven en variables de entorno o en un gestor de secretos, nunca en el chat ni en el repositorio.

flow.ts
webhook claude (anthropic).event
→ queue.enqueue(jobId)
→ worker.handle() // idempotente
→ holded.api.call() // retries con backoff
→ log.emit({ status: 'ok' })
Opciones

¿Qué conectores hay para Holded y Claude (Anthropic)?

Todas las opciones que existen, no solo la nuestra. Si tu caso lo resuelve un módulo de 50 €, cógelo: te lo decimos aquí antes de que nos escribas.

Oficial

Conector MCP oficial de Holded

Se añade como conector personalizado en Claude (web, escritorio o Claude Code) y en otros asistentes con MCP remoto, como ChatGPT. Perfil analítico de solo lectura, que por defecto excluye tokens de desarrollador, nóminas y mandatos bancarios, o perfil operativo para contactos, CRM, presupuestos, proformas, proyectos, inventario y bandeja de entrada.

Dónde se queda corto: Requiere la API activada en la cuenta de Holded. Contabilidad, facturas, impuestos, equipo y ajustes son siempre de solo lectura. No conoce tus reglas internas y solo funciona mientras alguien conversa. En Claude Free solo cabe un conector personalizado, y en Team o Enterprise lo tiene que añadir un Owner de la organización.

Open source

mcp-holded de Nubiia (@nubiia/mcp-holded)

Servidor MCP de código abierto (licencia MIT, TypeScript) con más de cien herramientas sobre la API v2: documentos, contactos, productos, tesorería, contabilidad, RR. HH. y control horario. Funciona con una clave de API de Holded.

Dónde se queda corto: Incluye operaciones de escritura y borrado: lo que pueda hacer depende de los permisos de la clave que le des. La clave, su custodia y las actualizaciones corren de tu cuenta.

De terceros

Pasarelas MCP genéricas (Zapier MCP, Pipedream)

Exponen acciones de Holded a Claude junto a las de muchas otras aplicaciones, sin programar.

Dónde se queda corto: Tus datos pasan por un intermediario más, y solo tienes las acciones de Holded que ese proveedor haya implementado.

A medida

Integración a medida (MCP propio o API de Anthropic)

Herramientas recortadas a tu caso, validaciones antes de escribir, procesos que corren sin nadie delante, registro de auditoría y despliegue en tu infraestructura.

Lo que nadie te cuenta

Qué se rompe al conectar Holded con Claude (Anthropic)

Los fallos que aparecen de verdad, casi siempre semanas después de dar la integración por buena.

  1. 01

    Una clave con escritura sobre facturas puede borrarlas

    En la API v2 de Holded, el permiso sales:invoices.write permite crear, reemplazar entero, cancelar y eliminar facturas, incluido el borrado de hasta 100 en una sola petición. Un servidor MCP que expone todo con esa clave deja esas acciones a una frase mal entendida.

  2. 02

    Las facturas emitidas no se editan, se rectifican

    Corregir un error en una factura emitida exige una factura rectificativa, y con Verifactu no hay atajos. Por eso el perfil operativo del conector oficial deja las facturas en solo lectura, y nosotros tampoco las abrimos a escritura desde un asistente.

  3. 03

    Importes inventados con mucha seguridad

    Un modelo puede sumar mal, mezclar dos clientes con nombres parecidos o completar un dato que no ha leído. Cualquier cifra que vaya a usarse fuera del chat se vuelve a leer de Holded antes de darla por buena.

  4. 04

    La cuenta de Claude importa para el RGPD

    En los planes comerciales (Team, Enterprise y la API), Anthropic no entrena con el contenido por defecto. En los planes personales (Free, Pro y Max) depende de un ajuste de privacidad de cada usuario. Conectar Holded con datos de clientes a cuentas personales sin revisarlo es un riesgo evitable.

  5. 05

    Servidores MCP de procedencia dudosa

    Anthropic avisa de que un servidor MCP malicioso puede llevar instrucciones ocultas para que Claude haga lo que no debe. Antes de pulsar Permitir siempre en una herramienta que escribe, conviene saber quién mantiene ese servidor.

  6. 06

    El conector remoto se conecta desde la nube de Anthropic

    Un conector personalizado se llama desde la infraestructura de Anthropic, no desde tu ordenador. Un servidor MCP propio que solo es accesible dentro de tu red o tras una VPN no funcionará como conector remoto.

FAQ

Preguntas frecuentes

¿Holded tiene conector oficial para Claude?

Sí. Holded publica un servidor MCP en https://mcp.holded.com/mcp que se añade desde Personalizar → Conectores → Añadir conector personalizado, se autoriza con tu usuario de Holded y permite elegir entre un perfil de solo lectura y otro operativo. Necesitas tener la API activada en tu cuenta de Holded.

Entonces, ¿para qué os necesito?

Puede que no nos necesites. Si quieres consultar tus datos desde Claude, el conector oficial en perfil analítico lo resuelve y te ayudamos a configurarlo bien. Tiene sentido algo a medida cuando quieres procesos que corran solos, validaciones con las reglas de tu empresa, combinar Holded con otros sistemas o un registro de auditoría de cada llamada.

¿Claude puede emitir o modificar facturas en Holded?

Con el conector oficial, no: facturas, contabilidad e impuestos se quedan en solo lectura incluso en el perfil operativo. Técnicamente la API sí lo permite, pero en nuestras integraciones las facturas aprobadas no se tocan desde un asistente: como mucho se prepara un borrador que una persona revisa y aprueba en Holded.

¿Anthropic entrena con los datos de mi Holded?

En los planes comerciales (Team, Enterprise y la API) no lo hace por defecto. En los planes personales (Free, Pro y Max) depende del ajuste de privacidad que tenga cada usuario. Si el asistente va a ver datos de clientes, recomendamos un plan de empresa o la API, y revisarlo con quien lleve el RGPD en tu empresa.

¿Funciona solo con Claude?

No. MCP es un estándar abierto, y el conector oficial de Holded también funciona en ChatGPT (planes Plus, Pro, Business, Enterprise y Edu) y en otros asistentes que admitan servidores MCP remotos. Un servidor MCP propio sirve igualmente para varios clientes.

¿Cómo se quita el acceso si algo no cuadra?

Desde Claude, en Conectores → Holded → Desconectar. En Holded, el token que se creó al autorizar aparece en Desarrolladores → Credenciales y se puede revocar. En un servidor propio, basta con retirar o rotar la clave de API.

Francodesystems

¿Hablamos de tu integración con Claude (Anthropic)?

Llamada de 30 minutos sin compromiso. Salimos con alcance y precio.