En honor a Luca Pacioli (1447–1517), fraile franciscano y matemático italiano, considerado el padre de la contabilidad moderna. En 1494 publicó Summa de arithmetica, geometria, proportioni et proportionalita, donde describió por primera vez de forma sistemática la partida doble — el sistema que sigue siendo la base de toda la contabilidad mundial cinco siglos después.
MCP Server para Holded + Skill PGC Español
Servidor MCP read-only (stdio) que conecta Claude Code con la API de Holded. Permite realizar consultas financieras, contables y de facturación en lenguaje natural sobre los datos de tu cuenta de Holded. Incluye una skill del Plan General Contable español (PGC 2007) para contexto contable.
- Node.js 18+
- API key de Holded (Settings > Developers > New API Key)
- Claude Code
git clone <repo>
cd pacioli
npm install
npm run buildCrea un fichero .env en la raíz del proyecto:
HOLDED_API_KEY=tu_key
Nota: El servidor lee la API key de la variable de entorno
HOLDED_API_KEY. Si usasmcp.jsonpara configurar Claude Code, la key se pasa directamente viaenv. El fichero.enves útil para desarrollo y pruebas manuales (node --env-file=.env dist/index.js).
Añade la siguiente entrada a ~/.claude/mcp.json:
{
"mcpServers": {
"holded": {
"command": "node",
"args": ["/ruta/absoluta/a/pacioli/dist/index.js"],
"env": {
"HOLDED_API_KEY": "tu_api_key"
}
}
}
}Copia el directorio de la skill al directorio de skills de Claude Code:
cp -r skills/pgc-espanol/ ~/.claude/skills/pgc-espanol/| Tool | Descripción | Parámetros |
|---|---|---|
holded_list_accounts |
Lista las cuentas del Plan General Contable configuradas en Holded | group? (string): Grupo PGC (1-9) para filtrar por primer dígito |
holded_list_daily_ledger |
Obtiene los asientos del libro diario | startDate? (string): YYYY-MM-DD, endDate? (string): YYYY-MM-DD, accountNumber? (string) |
holded_list_documents |
Lista documentos de facturación por tipo | docType (enum): invoice, salesreceipt, creditnote, salesorder, proform, waybill, estimate, purchase, purchaseorder, purchaserefund; startDate?, endDate?, contactId?, paid? (enum 0/1/2), sort? (enum created-asc/created-desc) |
holded_get_document |
Obtiene el detalle de un documento por tipo e ID | docType (enum), documentId (string) |
holded_list_contacts |
Lista todos los contactos (clientes y proveedores) | type? (enum client/supplier/debtor/creditor) |
holded_get_contact |
Obtiene el detalle de un contacto por su ID | contactId (string) |
holded_list_treasuries |
Lista las cuentas de tesorería (bancos, cajas, etc.) | ninguno |
holded_list_payments |
Lista los pagos registrados | startDate? (string): YYYY-MM-DD, endDate? (string): YYYY-MM-DD |
holded_get_taxes |
Obtiene la lista de impuestos configurados | ninguno |
holded_get_balance_sheet |
Balance de situación calculado desde cuentas PGC | ninguno |
holded_get_profit_loss |
Cuenta de pérdidas y ganancias | startDate?, endDate? |
holded_get_vat_summary |
Resumen de IVA soportado/repercutido | startDate?, endDate? |
Consultas en lenguaje natural que Claude Code puede resolver con este servidor:
- "¿Cuánto hemos facturado este trimestre?"
- "¿Cuál es el saldo de la cuenta 430?"
- "¿Cuánto tenemos en banco?"
- "¿Qué facturas tenemos pendientes de cobro?"
Apache 2.0 -- ver LICENSE.