Bexio MCP
Integración completa de contabilidad suiza para Bexio a través de MCP. Funciona con Claude Desktop, n8n y cualquier cliente MCP. 221 herramientas para facturas, contactos, proyectos y más.
Documentación
@promptpartner/bexio-mcp-server
Integración contable suiza completa para Bexio a través del Model Context Protocol (MCP). Funciona con Claude Desktop, n8n y cualquier cliente compatible con MCP.
Gestiona facturas, contactos, proyectos, seguimiento de tiempo y más de 300 herramientas adicionales mediante conversación con IA o automatización de flujos de trabajo.
⚠️ Software en versión preliminar
Este proyecto está en desarrollo activo. Aunque es funcional y ha sido probado, es posible que encuentres errores o comportamientos inesperados. Se seguirán añadiendo y mejorando funciones con el tiempo. ¡Por favor, informa de cualquier problema que encuentres!
Compatibilidad
| Cliente | Transporte | Estado |
|---|---|---|
| Claude Desktop | stdio | ✅ Totalmente compatible |
| n8n | HTTP | ✅ Totalmente compatible |
| Otros clientes MCP | stdio/HTTP | ✅ Debería funcionar |
Inicio rápido
Para Claude Desktop
Opción A: Paquete MCPB (la más sencilla)
- Descarga el último archivo
.mcpbdesde GitHub Releases - En Claude Desktop, ve a Configuración → Extensiones
- Instala la extensión usando uno de estos métodos:
- Haz doble clic en el archivo
.mcpbdescargado, o - Arrastra y suelta el archivo sobre la ventana de Extensiones, o
- Haz clic en Configuración avanzada → Instalar extensión y selecciona el archivo
- Haz doble clic en el archivo
- Introduce tu token de API de Bexio cuando se te solicite
Opción B: npm
Añade a claude_desktop_config.json:
{
"mcpServers": {
"bexio": {
"command": "npx",
"args": ["@promptpartner/bexio-mcp-server"],
"env": {
"BEXIO_API_TOKEN": "your-token-here"
}
}
}
}
Ubicación de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Para n8n y otros clientes HTTP
Inicia el servidor en modo HTTP, con un token de portador:
BEXIO_API_TOKEN=your-token BEXIO_HTTP_TOKEN=$(openssl rand -hex 32) \
npx @promptpartner/bexio-mcp-server --mode http --host 127.0.0.1 --port 8000
Los clientes envían entonces Authorization: Bearer <BEXIO_HTTP_TOKEN> en cada solicitud (GET /,
la comprobación de salud, permanece abierta).
Seguridad: cada herramienta lee o modifica tus libros contables. Sin
BEXIO_HTTP_TOKENlos endpoints HTTP no están autenticados: en0.0.0.0(el valor predeterminado), cualquiera que pueda alcanzar el puerto puede usarlos, y debido a que CORS permite cualquier origen, incluso un servidor de solo bucle local puede ser llamado por una página web abierta en tu navegador. El servidor advierte al inicio cuando no se ha establecido ningún token. Las rutas de archivo locales (upload_filefile_path,download_fileoutput_path) son rechazadas a través de HTTP a menos queBEXIO_FILE_DIRnombre un directorio para confinarlas.
El servidor expone MCP a través de HTTP en http://localhost:8000. Configura tu cliente MCP para conectarse a este endpoint.
Para otros clientes stdio
BEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server
O compila desde el código fuente:
git clone https://github.com/promptpartner/bexio-mcp-server
cd bexio-mcp-server/src
npm install && npm run build
BEXIO_API_TOKEN=your-token node dist/index.js
Cómo obtener tu token de API de Bexio
- Ve a developer.bexio.com
- Inicia sesión con tu cuenta habitual de Bexio
- Navega a Tokens de acceso personal
- Haz clic en Crear nuevo token
- Copia el token y úsalo en tu configuración
Características
Este servidor MCP proporciona 315 herramientas en todos los dominios de Bexio:
Contactos y CRM
- Crear, actualizar y buscar contactos
- Grupos de contactos, sectores, tratamientos y títulos
- Gestión de relaciones de contacto
Facturas y ventas
- Ciclo de vida completo de la factura (crear, emitir, enviar, cancelar)
- Presupuestos con flujos de aceptación/rechazo
- Pedidos con gestión de entregas
- Seguimiento de pagos entrantes
- Vista previa interactiva de facturas (Claude Desktop)
Banca y pagos
- Soporte de pago con factura QR suiza (QR-IBAN)
- Pagos IBAN estándar (ISO 20022)
- Gestión de divisas (CHF, EUR)
- Gestión de cuentas bancarias
Proyectos y seguimiento de tiempo
- Gestión de proyectos con tipos y estados
- Hitos y paquetes de trabajo
- Entradas de hoja de tiempos con seguimiento de duración
- Actividades comerciales y tipos de comunicación
Contabilidad
- Plan contable
- Asientos de diario manuales, incl. asientos de grupo (Sammelbuchung: un comprobante, muchos asientos)
- Diario por rango de fechas y cuenta; saldos de cuenta calculados (Saldenliste)
- Ejercicios fiscales y períodos de IVA
- Grupos de cuentas
Compras y gastos
- Facturas (facturas de acreedores)
- Gastos y órdenes de compra
- Pagos salientes
Archivos y documentos
- Carga/descarga de documentos; carga directamente desde una ruta de archivo local (sin base64 a través del chat)
- Gestión de archivos
Nóminas (requiere el módulo de Nóminas de Bexio)
- Gestión de empleados
- Seguimiento de ausencias
- Documentos de nómina
Ejemplos
Aquí tienes algunos ejemplos reales de uso del servidor MCP de Bexio con Claude:
Ejemplo 1: Encontrar facturas vencidas
Solicitud:
"Muéstrame todas las facturas vencidas"
Qué sucede:
Claude usa la herramienta get_overdue_invoices para consultar a Bexio todas las facturas cuya fecha de vencimiento ha pasado.
Respuesta:
Se encontraron 3 facturas vencidas:
Factura n.º Cliente Importe Fecha de vencimiento Días de retraso INV-2024-001 Acme AG CHF 2.450,00 2024-01-15 18 días INV-2024-003 Tech GmbH CHF 890,50 2024-01-20 13 días INV-2024-007 Swiss Corp CHF 5.200,00 2024-01-25 8 días Total vencido: CHF 8.540,00
Ejemplo 2: Crear una factura
Solicitud:
"Crea una factura para el contacto 'Sunrise AG' con dos partidas: 10 horas de consultoría a CHF 150/hora y una licencia de software por CHF 500"
Qué sucede:
Claude usa find_contact_by_name para localizar al cliente y luego create_invoice con las partidas especificadas.
Respuesta:
Factura INV-2024-015 creada para Sunrise AG:
- 10x Horas de consultoría @ CHF 150,00 = CHF 1.500,00
- 1x Licencia de software @ CHF 500,00 = CHF 500,00
Subtotal: CHF 2.000,00 IVA (8,1%): CHF 162,00 Total: CHF 2.162,00
La factura está en estado de borrador. Di "emitir factura INV-2024-015" para finalizarla.
Ejemplo 3: Resumen de tiempo de proyecto
Solicitud:
"¿Cuánto tiempo se registró en el proyecto 'Rediseño del sitio web' este mes?"
Qué sucede:
Claude usa search_projects para encontrar el proyecto y luego search_timesheets para obtener las entradas de tiempo filtradas por proyecto y rango de fechas.
Respuesta:
Tiempo registrado en "Rediseño del sitio web" (enero de 2024):
Miembro del equipo Horas Actividades Anna M. 24:30 Diseño, Reuniones Marco K. 18:15 Desarrollo Lisa B. 8:00 Redacción de contenido Total: 50 horas 45 minutos
Presupuesto utilizado: 50,75 de 80 horas (63%)
Ejemplo 4: Informe de ingresos por cliente
Solicitud:
"¿Cuáles son mis ingresos de 'Tech Solutions GmbH' este año?"
Qué sucede:
Claude usa find_contact_by_name para identificar al cliente y luego get_customer_revenue_report para calcular los ingresos totales de las facturas pagadas.
Respuesta:
Ingresos de Tech Solutions GmbH (2024):
- T1: CHF 12.450,00 (3 facturas)
- T2: CHF 8.200,00 (2 facturas)
- T3: CHF 15.800,00 (4 facturas)
- T4: CHF 6.500,00 (2 facturas, 1 pendiente)
Total pagado: CHF 42.950,00 Pendiente: CHF 3.200,00
Variables de entorno
| Variable | Obligatoria | Predeterminado | Descripción |
|---|---|---|---|
BEXIO_API_TOKEN | Sí* | - | Tu token de API de Bexio (empresa única) |
BEXIO_API_TOKENS | Sí* | - | Varias empresas — consulta Varias empresas |
BEXIO_DEFAULT_COMPANY | No | primera | Qué empresa está activa al inicio |
BEXIO_BASE_URL | No | https://api.bexio.com/2.0 | URL del endpoint de API |
BEXIO_ENABLED_CATEGORIES | No | (todas) | Lista blanca de categorías de herramientas separadas por comas — ver más abajo |
BEXIO_HTTP_TOKEN | Recomendada para HTTP | - | Token de portador requerido en cada endpoint HTTP excepto GET / |
BEXIO_FILE_DIR | No | - | Directorio al que se confinan upload_file file_path / download_file output_path. Obligatorio para rutas locales a través de HTTP; confinamiento adicional opcional a través de stdio |
BEXIO_DOWNLOAD_INLINE_MAX_BYTES | No | 64000 | download_file devuelve archivos de hasta este tamaño en línea como base64; los más grandes se escriben en disco |
* Proporciona BEXIO_API_TOKEN (una empresa) o BEXIO_API_TOKENS (varias).
Reducción del presupuesto de tokens — Lista blanca de categorías
Todas las herramientas están registradas por defecto. Para flujos de trabajo centrados o modelos más pequeños,
registrar solo un subconjunto reduce el coste de tokens del mensaje del sistema. Establece
BEXIO_ENABLED_CATEGORIES a una lista separada por comas:
BEXIO_ENABLED_CATEGORIES=contacts,invoices,purchase,banking,quotes,projects
Categorías disponibles: reference, company, banking, projects,
timetracking, accounting, purchase, files, payroll, contacts,
invoices, orders, quotes, payments, reminders, deliveries,
items, reports, users, misc, notes, tasks, stock, docs,
positions. Los nombres desconocidos se ignoran (se registran en stderr); vacío/sin establecer = todas
habilitadas (compatible con versiones anteriores).
Varias empresas (mandatos)
Bexio vincula cada token de API a una empresa única (mandato) — no existe un token que
abarque varias empresas. Para trabajar con varias empresas, genera un token por empresa (cambia
a esa empresa en Bexio primero, luego Configuración → Tokens de API) y configúralos todos en una
única instancia del servidor. Dos nuevas herramientas — list_companies y select_company — te
permiten cambiar la empresa activa en la conversación ("en Globex, lista las facturas abiertas"). Esto
evita ejecutar un servidor por empresa y el contexto de herramientas duplicado que conlleva.
Establece BEXIO_API_TOKENS en lugar de (o junto a) BEXIO_API_TOKEN, como una lista separada
por comas de pares label:token (o un objeto JSON). BEXIO_DEFAULT_COMPANY elige la empresa
activa al inicio (por defecto, la primera):
{
"mcpServers": {
"bexio": {
"command": "npx",
"args": ["@promptpartner/bexio-mcp-server"],
"env": {
"BEXIO_API_TOKENS": "Acme:token-for-acme,Globex:token-for-globex",
"BEXIO_DEFAULT_COMPANY": "Acme"
}
}
}
}
Luego solo pide a Claude cosas como "cambia a Globex y muestra las facturas de este mes."
list_companies muestra las empresas configuradas y cuál está activa; en
modo multiempresa, cada respuesta también indica el active_company para que siempre quede claro
de qué empresa proviene un resultado. Los tokens nunca se registran ni se devuelven. Las dos herramientas
de control aparecen solo cuando BEXIO_API_TOKENS está establecido, por lo que las configuraciones de
empresa única no cambian.
Nota HTTP/n8n: la empresa activa es global al proceso. Para despliegues HTTP multitenedor concurrentes, ejecuta una instancia por empresa en su lugar.
Opciones de línea de comandos
npx @promptpartner/bexio-mcp-server [options]
Options:
--mode <stdio|http> Transport mode (default: stdio)
--host <address> HTTP host (default: 0.0.0.0)
--port <number> HTTP port (default: 8000)
Solución de problemas
Error de "token de API no válido"
- Verifica tu token en developer.bexio.com > Tokens de acceso personal
- Asegúrate de que el token no haya caducado
- Comprueba que el token tenga los permisos necesarios
Error de "conexión rechazada"
- Comprueba tu conexión a internet
- Verifica que BEXIO_BASE_URL sea correcta (predeterminado: https://api.bexio.com/2.0)
Las herramientas de nóminas devuelven "módulo no disponible"
- Las herramientas de nóminas requieren la suscripción al módulo de Nóminas de Bexio
- Contacta con el soporte de Bexio para activar el módulo
Claude Desktop no ve el servidor
- Reinicia Claude Desktop después de los cambios de configuración
- Verifica que la ruta del archivo de configuración sea correcta para tu sistema operativo
- Revisa los registros de Claude Desktop para ver mensajes de error
Política de privacidad
Este servidor MCP actúa como un intermediario hacia la API de Bexio y no almacena ningún dato. Para más detalles, consulta nuestra Política de privacidad.
Tus datos se procesan según la Política de privacidad de Bexio.
Soporte
- Problemas e informes de errores: GitHub Issues
- Correo electrónico: lukas@promptpartner.ai
Apoya el proyecto
Si este proyecto te ahorra tiempo o ayuda a tu negocio, ¡considera invitarme a un café! ☕
¡Tu apoyo ayuda a mantener este proyecto en desarrollo y mejora continua!
Autor
Creado por Lukas Hertig de PromptPartner.ai
Agradecimientos
Este proyecto se basa en el servidor MCP original de Bexio creado por Sebastian Bryner de bryner.tech. Su implementación v1.0 proporcionó la arquitectura fundacional y las 83 herramientas iniciales que hicieron posible esta versión ampliada v2.0.
Herramientas de desarrollo
La expansión de 83 a 314 herramientas se desarrolló utilizando:
- Marco GSD - El marco de planificación "Get Shit Done" para flujos de trabajo de desarrollo estructurados asistidos por IA
Estas herramientas ayudaron a transformar un proyecto estimado en 4 semanas en una realidad de 2 días, demostrando el potencial del desarrollo de software aumentado por IA.
Aviso legal
Este es un proyecto independiente, impulsado por la comunidad y no está afiliado, respaldado ni conectado oficialmente con Bexio AG de ninguna manera. "Bexio" es una marca comercial de Bexio AG. Este proyecto simplemente proporciona una capa de integración con la API pública de Bexio.
El uso de este software es bajo su propio riesgo. Los autores no son responsables de ningún problema que surja de su uso con su cuenta de Bexio.
Licencia
MIT - Consulte LICENSE para obtener más detalles.