Skip to main content
Glama
sadikhossainnub

paperware_mcp

Paperware MCP Server (paperware_mcp)

Paperware Factory (erp.paperwarefactory.com) の ERPNext/Frappe bench 向けのネイティブな Model Context Protocol (MCP) サーバーです。

このアプリは、Prime AI Agent(NousResearch Hermes Agent framework、"Prime" persona、Docker/Coolify 上でホスト)が Frappe ORM を直接使用して ERPNext と通信できるようにします。


🌟 主な機能(Key Features)

  1. Direct Frappe ORM インテグレーション: 外部の HTTP REST API 呼び出しや API Key/Secret は不要です。frappe.get_doc、frappe.get_list、doc.insert()、doc.submit()、doc.cancel() などを直接使用します。

  2. Per-Request Permission Impersonation: 各ツール呼び出し時に requesting_user パラメータに応じて frappe.set_user() が実行され、実際の Frappe 権限エンジンが適用されます。

  3. Whitelisted Execution Security: call_method ツールは @frappe.whitelist() デコレータが付いた関数のみを実行できます。許可されていない Python コードの実行は完全にブロックされ、安全です。

  4. FastMCP インテグレーション: Python の mcp>=1.9.0,<2.0.0 パッケージの FastMCP に基づくツール構成です。stdio と sse の両方のトランスポートを利用できます。

  5. ネイティブ Bench コマンド: 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 の仮想環境に必要なパッケージ(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 コマンドを実行する際は、以下のオプションを使用できます:

オプション

タイプ

デフォルト

説明

--transport

stdio | sse

stdio

MCP カスタムトランスポートオプション。

--port

int

8931

SSE トランスポート用のポート番号(--transport sse の場合のみ有効)。

--default-user

string

None

requesting_user が指定されない場合のフォールバック用 Frappe ユーザーのメール。

[!WARNING] 本番環境で --default-user Administrator を使用しないでください。本番環境では必ず専用のボットユーザーのメールアドレスを渡してください。

コマンド例:

1. 標準入出力(stdio)モードで起動:

bench --site erp.paperwarefactory.com paperware-mcp --transport stdio --default-user hermes.bot@paperwarefactory.com

2. Server-Sent Event型イベント(SSE)モードで指定ポートで起動:

bench --site erp.paperwarefactory.com paperware-mcp --transport sse --port 8931 --default-user hermes.bot@paperwarefactory.com

🛡️ 専用 Hermes ボット ユーザーの作成(Security Best Practices)

本番環境で使用するために、ERPNext に専用のボットユーザーを作成することを推奨します:

  1. ERPNext デスクで User Listを開き New User を作成します。

  2. Email: hermes.bot@paperwarefactory.com

  3. First Name: Hermes Bot

  4. Role Profile: 必要なロールのみ付与します(例: Stock User, Sales User, Accounts User)。これにより Hermes Agent に不要な管理権限を持たせません。

  5. サーバ起動時に --default-user hermesBot@paperFactory.com フラグを使用します。


🏭 本番環境へのデプロイ(Production Deploy marketing)

バックグラウンドでサービスを自動起動し続動させるには、Supervisor または Systemd を使用してください。

方法 1: Supervisor 設定(Supervisor Configuration)

/etc/super/conf.d/paper_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 ユニット設定(Sysd unity Unit Configuration)

/etc/system/systemd/paper-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 設定(Hermes Agent Configuration)

Hermes Agent(また任意の MCP Client)の mcp_config.j現化ファイルに加入ent paper保存 を:

1. SSE Transsmポート用(Docker/リモート接続に推奨):

{
  "mcpServers": {
    "paperware_mcp": {
      "url": "http://erp.paperwarefactory.com:8931/sse"
    }
  }
}

2. Template モード(同一コンテテナー/ローカル実行):

{
  "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"
      ]
    }
  }
}

📦 公開済み MCP ツール一覧(Exposed MCP tools - 15 Tools)

Tool Name

説明

get_document

指定ドキュメントの詳細情報を読取りまさす。

list_documents

フィルターとぺージション付きでドキュメント一覧を取得し集ます。

create_document

新規ドキュメントを作成(及び任意の自動送信)。

update_document

既存ドキクメントを更新しす。

delete_document

[取り消し不可] ドキュメントを削除。

get_count

フィルター条件に基づくドキュメント数を取得。

submit_document

下絵ドキュメントを送信しす。

cancel_document

[取り消し不可] 送信済みドキュメントをキャンセル。

set_value

ドキュメントの指定フィールドの値を変更。

get_doctype_fields

DocType のスキーマとフィールドリストを取得。

search_link

リンクフィールドを検索。

run_report

ERPNext の標準/カスタムレポートを実行。

call_method

ホワイトリスト済み Python メソッドのみを実行。

get_document_pdf

文書のプリント措式から PDF Base64 変換。

import_file

2018 ファイルを ERP にアップロード。


📄 ライセンス

MIT ライセンス — © 2026 Prime Technology of Bangladesh

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with any ERPNext instance through comprehensive CRUD operations, advanced permissions, and a web chat interface.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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 npm
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with ERPNext data and functionality through the Model Context Protocol, including document CRUD, report running, and API method calls.
    MIT