paperware_mcp
Paperware MCP Server (paperware_mcp)
Un Servidor de Protocolo de Contexto de Modelo (MCP) nativo para el bench de ERPNext/Frappe de Paperware Factory (erp.paperwarefactory.com).
Esta aplicación permite que Prime AI Agent (framework NousResearch Hermes Agent, persona "Prime", alojado en Docker/Coolify) se comunique con ERPNext directamente usando el ORM de Frappe.
🌟 Características clave
Integración directa con el ORM de Frappe: No se necesitan llamadas HTTP REST API externas ni API Key/Secret. Se usan directamente
frappe.get_doc,frappe.get_list,doc.insert(),doc.submit(),doc.cancel(), etc.Suplantación de permisos por solicitud: En cada llamada de herramienta, se ejecuta
frappe.set_user()según el parámetrorequesting_usery el motor de permisos real de Frappe se activa.Seguridad de ejecución en lista blanca: La herramienta
call_methodsolo puede ejecutar funciones con el decorador@frappe.whitelist(). La ejecución de código Python no autorizada está completamente protegida y bloqueada.Integración FastMCP: Configuración de herramientas basada en
FastMCPdel paquete Pythonmcp>=1.9.0,<2.0.0. Existen facilidades de transporte tantostdiocomosse.Comando nativo de Bench: Integrado con la CLI de Frappe — el servicio se puede iniciar mediante el comando
bench --site erp.paperwarefactory.com paperware-mcp.
Related MCP server: MCP Task
🛠️ Guía de instalación (paso a paso)
Paso 1: Colocar el código fuente de la aplicación
Vaya a su directorio de Frappe Bench (/home/prime/frappe-bench/) y asegúrese de que la aplicación esté presente en la carpeta apps/paperware_mcp.
cd /home/prime/frappe-benchPaso 2: Instalar dependencias de Python
Instale los paquetes necesarios (mcp>=1.9.0,<2.0.0) en el entorno virtual de Bench:
./env/bin/pip install -r apps/paperware_mcp/requirements.txtPaso 3: Instalar la aplicación en el sitio ERPNext
Instale la aplicación paperware_mcp en su sitio deseado:
bench --site erp.paperwarefactory.com install-app paperware_mcp🚀 Ejecución del servicio y uso de comandos
Se pueden usar las siguientes opciones para ejecutar el comando CLI paperware-mcp:
Option | Type | Default | Descripción |
|
|
| Opción de transporte personalizado de MCP. |
|
|
| Número de puerto para el transporte SSE (solo aplicable con |
|
|
| Correo electrónico del usuario de Frappe de respaldo si no se proporciona |
[!WARNING]
--default-user Administratorno debe usarse en producción. En producción, pase el correo electrónico de un usuario bot específico.
Ejemplos de comandos:
1. Ejecutar en modo Standard Input/Output (stdio):
bench --site erp.paperwarefactory.com paperware-mcp --transport stdio --default-user hermes.bot@paperwarefactory.com2. Ejecutar en modo Server-Sent Events (SSE) en un puerto específico:
bench --site erp.paperwarefactory.com paperware-mcp --transport sse --port 8931 --default-user hermes.bot@paperwarefactory.com🛡️ Creación de un usuario bot dedicado de Hermes (mejores prácticas de seguridad)
Se recomienda crear un usuario bot específico en ERPNext para trabajar en el entorno de producción:
En el escritorio de ERPNext, vaya a User List y cree un New User.
Email:
hermes.bot@paperwarefactory.comFirst Name:
Hermes BotRole Profile: Proporcione solo los roles necesarios (por ejemplo: Stock User, Sales User, Accounts User) para que Hermes Agent no obtenga poder administrativo innecesario.
Use la bandera
--default-user hermes.bot@paperwarefactory.comal iniciar el servidor.
🏭 Despliegue en producción
Use Supervisor o un servicio Systemd para iniciar y mantener el servicio automáticamente en segundo plano.
Método 1: Configuración de Supervisor
Cree el archivo /etc/supervisor/conf.d/paperware_mcp.conf y escriba el siguiente código:
[program:paperware-mcp]
command=/home/prime/frappe-bench/env/bin/bench --site erp.paperwarefactory.com paperware-mcp --transport sse --port 8931 --default-user hermes.bot@paperwarefactory.com
directory=/home/prime/frappe-bench
user=prime
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
stdout_logfile=/home/prime/frappe-bench/logs/paperware_mcp.out.log
stderr_logfile=/home/prime/frappe-bench/logs/paperware_mcp.err.log
environment=PATH="/home/prime/frappe-bench/env/bin:%(ENV_PATH)s"Recargue e inicie la configuración:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status paperware-mcpMétodo 2: Configuración de unidad Systemd
Cree el archivo /etc/systemd/system/paperware-mcp.service y proporcione la siguiente configuración:
[Unit]
Description=Paperware MCP Server for Hermes AI Agent
After=network.target redis-server.service mariadb.service
[Service]
Type=simple
User=prime
WorkingDirectory=/home/prime/frappe-bench
ExecStart=/home/prime/frappe-bench/env/bin/bench --site erp.paperwarefactory.com paperware-mcp --transport sse --port 8931 --default-user hermes.bot@paperwarefactory.com
Restart=always
RestartSec=5
StandardOutput=append:/home/prime/frappe-bench/logs/paperware_mcp.out.log
StandardError=append:/home/prime/frappe-bench/logs/paperware_mcp.err.log
[Install]
WantedBy=multi-user.targetHabilite e inicie el servicio:
sudo systemctl daemon-reload
sudo systemctl enable paperware-mcp
sudo systemctl start paperware-mcp
sudo systemctl status paperware-mcp🤖 Configuración del cliente MCP de Hermes Agent
Reglas para agregar paperware_mcp al archivo mcp_config.json de Hermes Agent (o cualquier cliente MCP):
1. Para transporte SSE (recomendado para conexiones Docker/remotas):
{
"mcpServers": {
"paperware_mcp": {
"url": "http://erp.paperwarefactory.com:8931/sse"
}
}
}2. Para transporte Stdio (para ejecución local/en el mismo contenedor):
{
"mcpServers": {
"paperware_mcp": {
"command": "/home/prime/frappe-bench/env/bin/bench",
"args": [
"--site",
"erp.paperwarefactory.com",
"paperware-mcp",
"--transport",
"stdio",
"--default-user",
"hermes.bot@paperwarefactory.com"
]
}
}
}📦 Herramientas totales (Herramientas MCP expuestas - 15 herramientas)
Tool Name | Descripción |
| Leer información detallada de un Document específico. |
| Obtener una lista de Documents con filtros y paginación. |
| Crear un nuevo Document (y Auto Submit opcional). |
| Actualizar un Document existente. |
| [Irreversible] Eliminar un Document. |
| Obtener el número de Documents según el filtro. |
| Enviar un Document en borrador. |
| [Irreversible] Cancelar un Document enviado. |
| Cambiar el valor de un campo específico de un Document. |
| Conocer el esquema y la lista de campos de un DocType. |
| Buscar para campos de enlace. |
| Ejecutar cualquier informe estándar/personalizado de ERPNext. |
| Ejecutar solo métodos de Python en lista blanca. |
| Convertir el formato de preimpresión de un Document a PDF Base64. |
| Subir un archivo local al administrador de archivos de ERPNext. |
📄 Licencia
MIT License — © 2026 Prime Technology of Bangladesh
This server cannot be deployed
Maintenance
Related MCP Connectors
- odooOAuthcom.odooconsole
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
- mcpOAuthcom.formester
Give AI agents access to form submissions — read, search, update, and process file attachments.
- StackOneOAuthcom.stackone
Give AI agents 30,000+ safe, token-optimized actions across Workday, SAP, Oracle + hundreds more.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with ERPNext/Frappe instances through the REST API, allowing document management, report execution, and DocType operations using natural language.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with any ERPNext instance through comprehensive CRUD operations, advanced permissions, and a web chat interface.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI models to securely interact with Frappe Framework/ERPNext instances, supporting document CRUD, RPC methods, file management, workflows, reporting, and more via the Model Context Protocol.379 npmISC
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with ERPNext data and functionality through the Model Context Protocol, including document CRUD, report running, and API method calls.MIT