paperware_mcp
Paperware MCP Server (paperware_mcp)
为 Paperware Factory(erp.paperwarefactory.com)的 ERPNext/Frappe bench 提供的原生 Model Context Protocol(MCP)Server。
此应用使 Prime AI Agent(NousResearch Hermes Agent framework,"Prime" persona,托管于 Docker/Coolify)能够直接使用 Frappe ORM 与 ERPNext 通信。
🌟 核心特性(Key Features)
Direct Frappe ORM Integration:无需任何外部 HTTP REST API 调用或 API Key/Secret。直接使用
frappe.get_doc、frappe.get_list、doc.insert()、doc.submit()、doc.cancel()等。Per-Request Permission Impersonation:每次工具调用时根据
requesting_user参数执行frappe.set_user(),并让真实的 Frappe 权限引擎生效。Whitelisted Execution Security:
call_method工具只能运行带有@frappe.whitelist()装饰器的函数。未经授权的 Python 代码执行完全受到保护并被阻止。FastMCP Integration:基于 Python
mcp>=1.9.0,<2.0.0包中的FastMCP进行工具设置。同时支持stdio和sse两种传输方式。Native Bench Command:与 Frappe CLI 集成 — 可通过
bench --site erp.paperwarefactory.com paperware-mcp命令启动服务。
Related MCP server: MCP Task
🛠️ 安装指南(Step-by-Step Installation)
步骤 1:放置应用源码
进入您的 Frappe Bench 目录(/home/prime/frappe-bench/),确保应用已存在于 apps/paperware_mcp 文件夹中。
cd /home/prime/frappe-bench步骤 2:安装 Python 依赖
在 Bench 虚拟环境中安装必需的 packages(mcp>=1.9.0,<2.0.0):
./env/bin/pip install -r apps/paperware_mcp/requirements.txt步骤 3:在 ERPNext 站点上安装应用
在您指定的站点上安装 paperware_mcp 应用:
bench --site erp.paperwarefactory.com install-app paperware_mcp🚀 服务运行与命令用法(Usage & Command Options)
运行 paperware-mcp CLI 命令时,可以使用以下选项:
Option | Type | Default | 说明 |
|
|
| MCP 自定义传输选项。 |
|
|
| SSE 传输的端口号(仅在 |
|
|
| 未提供 |
[!WARNING] 生产环境中不应使用
--default-user Administrator。在生产环境中,必须传入一个专用的机器人用户邮箱。
命令示例:
1. 以 Standard Input/Output(stdio)模式运行:
bench --site erp.paperwarefactory.com paperware-mcp --transport stdio --default-user hermes.bot@paperwarefactory.com2. 以 Server-Sent Events(SSE)模式在指定端口运行:
bench --site erp.paperwarefactory.com paperware-mcp --transport sse --port 8931 --default-user hermes.bot@paperwarefactory.com🛡️ 创建专用 Hermes Bot 用户(Security Best Practices)
建议在生产环境中于 ERPNext 内创建一个专用的 Bot User:
在 ERPNext Desk 中进入 User List,创建 New User。
Email:
hermes.bot@paperwarefactory.comFirst Name:
Hermes BotRole Profile:仅授予必要的角色(例如:Stock User、Sales User、Accounts User),以确保 Hermes Agent 不会获得不必要的管理权限。
启动服务器时,请使用
--default-user hermes.bot@paperwarefactory.com标志。
🏭 生产部署(Production Deployment)
请使用 Supervisor 或 Systemd 服务,让服务在后台自动启动并持续运行。
方法 1:Supervisor Configuration(Supervisor 配置)
创建 /etc/supervisor/conf.d/paperware_mcp.conf 文件并写入以下代码:
[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"重新加载并启动配置:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status paperware-mcp方法 2:Systemd Unit Configuration(Systemd 服务)
创建 /etc/systemd/system/paperware-mcp.service 文件并给出以下配置:
[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.target启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable paperware-mcp
sudo systemctl start paperware-mcp
sudo systemctl status paperware-mcp🤖 Hermes Agent MCP Client Config(Hermes Agent 配置)
向 Hermes Agent(或任何 MCP Client)的 mcp_config.json 文件中添加 paperware_mcp 的规则:
1. 适用于 SSE Transport(推荐用于 Docker/远程连接):
{
"mcpServers": {
"paperware_mcp": {
"url": "http://erp.paperwarefactory.com:8931/sse"
}
}
}2. 适用于 Stdio Transport(同一容器/本地执行的情况):
{
"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"
]
}
}
}📦 全部工具(Exposed MCP Tools - 15 Tools)
Tool Name | 说明 |
| 读取指定 Document 的详细信息。 |
| 获取带筛选和分页的 Document 列表。 |
| 创建新 Document(并可选择自动提交 Auto Submit)。 |
| 更新现有 Document。 |
| [Irreversible] 删除 Document。 |
| 根据筛选条件获取 Document 数量。 |
| 提交 Draft(草稿)Document。 |
| [Irreversible] 取消(Cancel)已提交的 Document。 |
| 修改 Document 中指定字段的值。 |
| 获取 DocType 的架构(Schema)与字段列表。 |
| 对链接(Link)字段进行搜索。 |
| 运行 ERPNext 中的任意 standard/custom 报表。 |
| 仅执行 Whitelisted(白名单)Python Method。 |
| 将 Document 从打印格式转换为 PDF Base64。 |
| 将本地文件上传到 ERPNext 文件管理器。 |
📄 许可证
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