paperware_mcp
Paperware MCP Server (paperware_mcp)
Нативный Model Context Protocol (MCP) Server для ERPNext/Frappe bench компании Paperware Factory (erp.paperwarefactory.com).
Это приложение позволяет Prime AI Agent (фреймворк NousResearch Hermes Agent, персона "Prime", размещённый в Docker/Coolify) напрямую взаимодействовать с ERPNext через Frappe ORM.
🌟 Ключевые возможности (Key Features)
Прямая интеграция с Frappe ORM: не требуются внешние HTTP REST API вызовы или API Key/Secret. Напрямую используются
frappe.get_doc,frappe.get_list,doc.insert(),doc.submit(),doc.cancel()и т.д.Имперсонация прав на каждый запрос: при каждом вызове инструмента выполняется
frappe.set_user()в соответствии с параметромrequesting_user, и действует настоящий механизм разрешений Frappe.Безопасность выполнения через белый список: инструмент
call_methodможет выполнять только функции с декоратором@frappe.whitelist(). Несанкционированное выполнение Python-кода полностью защищено и заблокировано.Интеграция FastMCP: настройка инструментов на основе
FastMCPиз пакета Pythonmcp>=1.9.0,<2.0.0. Доступны оба транспорта:stdioиsse.Нативная команда Bench: интегрирована с CLI Frappe — сервис можно запустить командой
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-зависимостей
Установите необходимые пакеты (mcp>=1.9.0,<2.0.0) в виртуальное окружение Bench:
./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)
Для запуска CLI-команды paperware-mcp доступны следующие опции:
Option | Type | Default | Описание |
|
|
| Опция пользовательского транспорта MCP. |
|
|
| Номер порта для SSE-транспорта (применимо только при |
|
|
| Email пользователя Frappe, используемый по умолчанию, если не указан |
[!WARNING] Не следует использовать
--default-user Administratorв продакшене. В продакшене обязательно передавайте email конкретного бот-пользователя.
Примеры команд:
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 специального бот-пользователя:
В 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 (Supervisor Configuration)
Создайте файл /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 (Systemd Unit Configuration)
Создайте файл /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🤖 Конфигурация MCP-клиента Hermes Agent (Конфигурация агента Hermes)
Правила добавления paperware_mcp в файл mcp_config.json агента Hermes (или любого MCP-клиента):
1. Для SSE-транспорта (рекомендуется для Docker/удалённого подключения):
{
"mcpServers": {
"paperware_mcp": {
"url": "http://erp.paperwarefactory.com:8931/sse"
}
}
}2. Для Stdio-транспорта (для выполнения в том же контейнере/локально):
{
"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. |
| [Необратимо] Удаление Document. |
| Получение количества Document по фильтру. |
| Отправка (submit) Document в статусе Draft. |
| [Необратимо] Отмена (cancel) Document в статусе Submitted. |
| Изменение значения конкретного поля Document. |
| Получение схемы DocType и списка полей. |
| Поиск для полей-ссылок (link fields). |
| Запуск любого standard/custom отчёта ERPNext. |
| Выполнение только Whitelisted Python-методов. |
| Преобразование 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