mcpField
E
Enterich

Enterich

ローカル
github.com金融データ01 日前に更新

Enterich について

Enterichは、外部OAuth認証と専用ERPNextユーザーの権限で動作する、ERPNext会計向けMCPサーバーです。読み取りと書き込みを分けた固定ツールを備え、伝票は下書きまで作成・更新し、ERPNextでの登録は人が行います。

主な機能

  1. 01会計操作用の固定ツール群
  2. 02読み取りと書き込みの分離
  3. 03伝票の下書き作成・更新のみ
  4. 04ERPNext専用ユーザーの権限内で動作
  5. 05外部認可サーバーによるトークン検証

活用シーン

  1. 01請求書、勘定、銀行記録の照会
  2. 02売掛金・買掛金・総勘定元帳のレポート
  3. 03人が確認する会計下書きの準備

MCP 対応

Streamable HTTPで固定のERPNext会計ツールをMCPクライアントに提供します。保護リソース認可に対応し、アクセスごとにトークンを検証します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dev-interlusion-enterich": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ENTERICH_RESOURCE_URL",
"-e",
"ENTERICH_ISSUER",
"-e",
"ENTERICH_JWKS_URL",
"-e",
"ENTERICH_CLIENT_ID",
"-e",
"ENTERICH_SUBJECT",
"-e",
"ENTERICH_REQUIRED_SCOPES",
"-e",
"ENTERICH_TOKEN_ALGORITHMS",
"-e",
"ENTERICH_CLOCK_LEEWAY",
"-e",
"ENTERICH_ERPNEXT_URL",
"-e",
"ENTERICH_ERPNEXT_HOST",
"-e",
"ENTERICH_ERPNEXT_PUBLIC_URL",
"-e",
"ENTERICH_ERPNEXT_API_KEY",
"-e",
"ENTERICH_ERPNEXT_API_SECRET",
"-e",
"ENTERICH_COMPANY",
"-e",
"ENTERICH_TOOLS",
"-e",
"ENTERICH_MAX_DRAFTS_PER_HOUR",
"-e",
"ENTERICH_TIMEZONE",
"-e",
"ENTERICH_HOST",
"-e",
"ENTERICH_PORT",
"-e",
"ENTERICH_LOG_LEVEL",
"ghcr.io/interlusion/enterich:0.5.0"
],
"env": {
"ENTERICH_RESOURCE_URL": "<ENTERICH_RESOURCE_URL>",
"ENTERICH_ISSUER": "<ENTERICH_ISSUER>",
"ENTERICH_JWKS_URL": "<ENTERICH_JWKS_URL>",
"ENTERICH_CLIENT_ID": "<ENTERICH_CLIENT_ID>",
"ENTERICH_SUBJECT": "<ENTERICH_SUBJECT>",
"ENTERICH_REQUIRED_SCOPES": "<ENTERICH_REQUIRED_SCOPES>",
"ENTERICH_TOKEN_ALGORITHMS": "<ENTERICH_TOKEN_ALGORITHMS>",
"ENTERICH_CLOCK_LEEWAY": "<ENTERICH_CLOCK_LEEWAY>",
"ENTERICH_ERPNEXT_URL": "<ENTERICH_ERPNEXT_URL>",
"ENTERICH_ERPNEXT_HOST": "<ENTERICH_ERPNEXT_HOST>",
"ENTERICH_ERPNEXT_PUBLIC_URL": "<ENTERICH_ERPNEXT_PUBLIC_URL>",
"ENTERICH_ERPNEXT_API_KEY": "<ENTERICH_ERPNEXT_API_KEY>",
"ENTERICH_ERPNEXT_API_SECRET": "<ENTERICH_ERPNEXT_API_SECRET>",
"ENTERICH_COMPANY": "<ENTERICH_COMPANY>",
"ENTERICH_TOOLS": "<ENTERICH_TOOLS>",
"ENTERICH_MAX_DRAFTS_PER_HOUR": "<ENTERICH_MAX_DRAFTS_PER_HOUR>",
"ENTERICH_TIMEZONE": "<ENTERICH_TIMEZONE>",
"ENTERICH_HOST": "<ENTERICH_HOST>",
"ENTERICH_PORT": "<ENTERICH_PORT>",
"ENTERICH_LOG_LEVEL": "<ENTERICH_LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e ENTERICH_RESOURCE_URL -e ENTERICH_ISSUER -e ENTERICH_JWKS_URL -e ENTERICH_CLIENT_ID -e ENTERICH_SUBJECT -e ENTERICH_REQUIRED_SCOPES -e ENTERICH_TOKEN_ALGORITHMS -e ENTERICH_CLOCK_LEEWAY -e ENTERICH_ERPNEXT_URL -e ENTERICH_ERPNEXT_HOST -e ENTERICH_ERPNEXT_PUBLIC_URL -e ENTERICH_ERPNEXT_API_KEY -e ENTERICH_ERPNEXT_API_SECRET -e ENTERICH_COMPANY -e ENTERICH_TOOLS -e ENTERICH_MAX_DRAFTS_PER_HOUR -e ENTERICH_TIMEZONE -e ENTERICH_HOST -e ENTERICH_PORT -e ENTERICH_LOG_LEVEL ghcr.io/interlusion/enterich:0.5.0
設定が必要な環境変数
ENTERICH_RESOURCE_URLThe MCP endpoint exactly as clients enter it, https; its path is the one served
ENTERICH_ISSUERThe authorization server's issuer, https
ENTERICH_JWKS_URLThe authorization server's signing keys, https
ENTERICH_CLIENT_IDThe OAuth client the agent's tokens are issued to
ENTERICH_SUBJECTThe agent identity's sub
ENTERICH_REQUIRED_SCOPESScopes required in the token, space-separated
ENTERICH_TOKEN_ALGORITHMSシークレットToken signing algorithms accepted, comma-separated
ENTERICH_CLOCK_LEEWAYSeconds of clock leeway for token times, 0 to 60
ENTERICH_ERPNEXT_URLThe base URL Enterich calls ERPNext at
ENTERICH_ERPNEXT_HOSTThe Host header sent to ERPNext, by default the URL's host
ENTERICH_ERPNEXT_PUBLIC_URLThe base URL people open ERPNext at, for links in results
ENTERICH_ERPNEXT_API_KEYシークレットThe ERPNext agent user's API key
ENTERICH_ERPNEXT_API_SECRETシークレットThe ERPNext agent user's API secret
ENTERICH_COMPANYThe assigned company, exactly as named in ERPNext
ENTERICH_TOOLSThe operations to offer, comma-separated; by default all
ENTERICH_MAX_DRAFTS_PER_HOURMost drafts of each type the agent may create in an hour; unset, no limit
ENTERICH_TIMEZONEIANA time zone for today's date, the ERPNext site's
ENTERICH_HOSTThe listen address
ENTERICH_PORTThe listen port
ENTERICH_LOG_LEVELThe level for libraries' log lines: DEBUG, INFO, WARNING or ERROR

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/interlusion/enterich:0.5.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Enterichのロゴ:帽子をかぶり、マイクを持ったドレイクとMCPチェーン

Enterich

ERPNext向けのMCP サーバーです。利用できるツールは短い固定リストに限定され、トークンは外部のOAuth認可サーバーから取得し、権限は1人のERPNextユーザーが持つものに限られます。

ステータス: すべての操作をERPNext v16のAPIモデルに対してテストしており、実際のERPNext v16サイトでも毎週テストしています。変更履歴にリリース一覧を記載しています。

概要

  • 独立したサービスであり、Frappeアプリではありません。専用のエージェントユーザーのAPIキーを使ってERPNextのREST APIを呼び出し、それ以外のERPNext認証情報は保持しません。このサービスが何を行っても、そのユーザーに割り当てられたERPNextのロールが上限となります。
  • MCP認可仕様に対応するリソースサーバーです。保護されたリソースのメタデータを提供し、トークンがない場合は401を返し、すべてのアクセストークン(発行者、対象者、クライアント、サブジェクト)を自身で検証します。サインインはKeycloakなどの外部認可サーバーで行います。
  • 操作は固定リストで、それぞれ固有の目的と入力スキーマを持ち、読み取りと書き込みが分かれています。汎用的なドキュメントアクセス、メソッド呼び出し、ファイルアクセスはありません。
  • クライアントに依存しません。 通常のMCP(Streamable HTTP)で通信し、書き込み前の確認をクライアントに求めることはありません。

対象外

  • 汎用的なERPNext APIブリッジではありません。DocType、レポート名、メソッド名、フィールドリスト、フィルター式、ファイルパスを入力として受け取るツールは対象外です。
  • 投稿するための手段ではありません。ドキュメントを送信、キャンセル、修正、削除、破棄するツールはありません。エージェントが下書きを作成し、人がERPNextで確認して送信します(下書きの確認)。
  • Frappe Technologiesとは提携関係になく、同社から推奨も受けていません。ERPNextとFrappeは同社の商標です。

ツール

Enterichでは37個のツールを利用できます。デプロイ環境によっては、利用できるツールが少なくなる場合があります(ENTERICH_TOOLS)。各ツールは1つの会社を対象に動作し、エージェントユーザーにERPNextが許可する権限の範囲内で実行されます。

マスターデータ(REQ-003)

品目。

ツールタイトル種類
list_items品目を一覧表示読み取り
get_item品目を取得読み取り
受注から入金まで(REQ-004)

顧客、売上請求書、売掛金。

ツールタイトル種類
list_customers顧客を一覧表示読み取り
get_customer顧客を取得読み取り
list_sales_invoices売上請求書を一覧表示読み取り
get_sales_invoice売上請求書を取得読み取り
list_sales_tax_templates売上税テンプレートを一覧表示読み取り
report_accounts_receivable売掛金読み取り
create_draft_sales_invoice売上請求書の下書きを作成下書き作成
update_draft_sales_invoice売上請求書の下書きを更新下書き更新
create_draft_sales_return売上返品の下書きを作成下書き作成
update_draft_sales_return売上返品の下書きを更新下書き更新
調達から支払いまで(REQ-005)

仕入先、仕入請求書、買掛金。

ツールタイトル種類
list_suppliers仕入先を一覧表示読み取り
get_supplier仕入先を取得読み取り
list_purchase_invoices仕入請求書を一覧表示読み取り
get_purchase_invoice仕入請求書を取得読み取り
list_purchase_tax_templates仕入税テンプレートを一覧表示読み取り
report_accounts_payable買掛金読み取り
create_draft_purchase_invoice仕入請求書の下書きを作成下書き作成
update_draft_purchase_invoice仕入請求書の下書きを更新下書き更新
create_draft_purchase_return仕入返品の下書きを作成下書き作成
update_draft_purchase_return仕入返品の下書きを更新下書き更新
記録からレポートまで(REQ-006)

勘定科目、原価センター、仕訳、元帳、試算表。

ツールタイトル種類
list_accounts勘定科目の一覧読み取り
list_cost_centers原価センターの一覧読み取り
list_journal_entries仕訳の一覧読み取り
get_journal_entry仕訳の取得読み取り
report_general_ledger総勘定元帳読み取り
report_trial_balance試算表読み取り
create_draft_journal_entry仕訳の下書きの作成下書きの作成
update_draft_journal_entry仕訳の下書きの更新下書きの更新
銀行と現金(REQ-007)

銀行口座、銀行取引、支払い。

ツールタイトル種類
list_bank_accounts銀行口座の一覧読み取り
list_bank_transactions銀行取引の一覧読み取り
get_bank_transaction銀行取引の取得読み取り
list_payment_entries支払い項目の一覧読み取り
get_payment_entry支払い項目の取得読み取り
create_draft_payment_entry支払い項目の下書きの作成下書きの作成
update_draft_payment_entry支払い項目の下書きの更新下書きの更新

対象範囲

Enterichは自社利用のために保守されています。貢献を歓迎します(貢献方法)。サポートはお約束できません。セキュリティポリシーに記載のとおり、脆弱性は非公開で報告してください。

ドキュメント

docs/README.mdから始めてください。特に重要な内容は次のとおりです。

ライセンス

Apache-2.0。理由:ADR-006。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。