Papierkram

Un servidor MCP (Model Context Protocol) para la API de contabilidad de Papierkram.de. Permite a los asistentes de IA gestionar facturas, gastos, contactos, proyectos, seguimiento de tiempo y más directamente en tu cuenta de Papierkram.

Documentación

Servidor MCP de Papierkram

License: MIT TypeScript MCP

Un servidor MCP (Model Context Protocol) para la API de contabilidad de Papierkram.de. Permite a los asistentes de IA gestionar facturas, gastos, contactos, proyectos, seguimiento de tiempo y más directamente en tu cuenta de Papierkram.

Características

  • 56 herramientas que cubren toda la API v1 de Papierkram
  • Instalación vía npm: ejecuta directamente con npx papierkram-mcp-server — sin necesidad de clonar
  • Dos transportes: stdio (para Claude Desktop, Cursor, Claude Code) y HTTP/SSE (para n8n, integraciones personalizadas)
  • Listo para Docker para un despliegue autohospedado sencillo
  • TypeScript con validación de esquemas Zod en todos los parámetros

Resumen de Herramientas

ÁreaOperacionesCantidad
ContactosEmpresas y personas de contacto: listar, obtener, crear, actualizar, eliminar10
Facturaslistar, obtener, crear, actualizar, eliminar, cancelar, archivar, enviar, descargar PDF9
Presupuestoslistar, obtener, crear, actualizar, eliminar, enviar, descargar PDF7
Gastoslistar, obtener, crear, actualizar, eliminar5
Proyectoslistar, obtener, crear, actualizar, eliminar, archivar, desarchivar7
Seguimiento de Tiempolistar, obtener, crear, actualizar, eliminar5
Tareaslistar, obtener, crear, actualizar, eliminar5
Bancalistar, obtener conexiones bancarias y transacciones (solo lectura)4
CuentaInformación de cuenta, condiciones de pago, propuestas4

Inicio Rápido

Requisitos previos

Obtén tu Clave de API

Ve a Papierkram > Einstellungen > API y crea una clave de API.

Opción A: npm (recomendado)

Sin necesidad de clonar — ejecuta directamente con npx:

npx papierkram-mcp-server

O instálalo globalmente:

npm install -g papierkram-mcp-server
papierkram-mcp-server

El servidor usa stdio por defecto; configura PAPIERKRAM_API_KEY y PAPIERKRAM_SUBDOMAIN en tu entorno o en la configuración de tu cliente MCP (ver Uso).

Opción B: Docker (HTTP/SSE autohospedado)

git clone https://github.com/Wagner-Emden-IT-Services/papierkram-mcp-server.git
cd papierkram-mcp-server
cp .env.example .env
# Edit .env with your API key and subdomain
docker compose up -d

El servidor HTTP/SSE estará disponible en http://localhost:3001/sse.

Opción C: Node.js desde el código fuente

git clone https://github.com/Wagner-Emden-IT-Services/papierkram-mcp-server.git
cd papierkram-mcp-server
npm install
cp .env.example .env
# Edit .env with your API key and subdomain
npm run build

Configuración

Crea un archivo .env (o cópialo de .env.example):

PAPIERKRAM_API_KEY=your-api-key-here
PAPIERKRAM_SUBDOMAIN=your-subdomain
PORT=3001  # optional, only for HTTP/SSE mode

Tu subdominio es la parte antes de .papierkram.de en tu URL de Papierkram.

Uso

Claude Desktop

Añade a tu claude_desktop_config.json:

{
  "mcpServers": {
    "papierkram": {
      "command": "npx",
      "args": ["-y", "papierkram-mcp-server"],
      "env": {
        "PAPIERKRAM_API_KEY": "your-api-key",
        "PAPIERKRAM_SUBDOMAIN": "your-subdomain"
      }
    }
  }
}

¿Instalado desde el código fuente? Usa "command": "node" con "args": ["/absolute/path/to/papierkram-mcp-server/dist/index.js"].

Claude Code (CLI)

Añade a tu ~/.claude.json:

{
  "mcpServers": {
    "papierkram": {
      "command": "npx",
      "args": ["-y", "papierkram-mcp-server"],
      "env": {
        "PAPIERKRAM_API_KEY": "your-api-key",
        "PAPIERKRAM_SUBDOMAIN": "your-subdomain"
      }
    }
  }
}

Cursor

Añade a la configuración de MCP de Cursor la misma configuración que en Claude Desktop.

HTTP/SSE (para n8n o clientes personalizados)

# Development
npm run dev:http

# Production
npm run start:http

# Docker
docker compose up -d

Conecta tu cliente MCP a http://localhost:3001/sse.

Desarrollo

npm run dev        # stdio mode with hot reload
npm run dev:http   # HTTP/SSE mode with hot reload
npm run build      # compile TypeScript to dist/

Estructura del Proyecto

src/
├── index.ts              # Stdio entry point
├── server/
│   ├── server.ts         # MCP server setup + tool registration
│   └── http-server.ts    # HTTP/SSE entry point
├── core/tools/           # Tool definitions (one file per API area) + shared helpers
├── api/
│   ├── client.ts         # HTTP client with auth, timeout & error handling
│   ├── errors.ts         # API/network errors -> actionable UserError messages
│   └── format.ts         # Tool-output size guard (truncation)
└── config/
    └── index.ts          # Environment configuration

Contribuciones

¡Las contribuciones son bienvenidas! Por favor, abre un issue o una pull request.

Licencia

MIT - Wagner-Emden IT Services