Enterich

dev.interlusion由 interlusion.dev 发布v0.4.0更新于 Nov 7, 2026

A service for ERPNext accounting behind OAuth: fixed tools, drafts only, one agent user's rights

概览

AI 生成的概览

基于 OAuth 的 ERPNext 会计 MCP 服务器:提供固定的读取与仅草稿工具,权限限于单个 ERPNext 代理用户。

可以做什么
  • 列出并读取物料等主数据以及客户、供应商
  • 列出并读取销售发票、采购发票、税模板、应收与应付
  • 列出并读取科目、成本中心、日记账分录、总账与试算平衡表
  • 列出并读取银行账户、银行交易与付款单
  • 创建和更新销售发票、销售退货、采购发票、采购退货、日记账分录与付款单的草稿
适用场景
适合让助手查询 ERPNext 会计数据,或准备草稿单据交由人工审核并提交,而不必给它通用的 ERPNext API 桥接或过账权限。
运行要求
以本地服务方式运行(容器镜像,Streamable HTTP),仅限桌面。需要 ERPNext 站点地址、公开地址、公司名称,以及 ERPNext 代理用户的 API key 与 secret(ENTERICH_ERPNEXT_API_KEY、ENTERICH_ERPNEXT_API_SECRET)。还需要外部 OAuth 授权服务器:issuer、JWKS 地址、client ID、subject、resource URL,以及可选的 scope 与签名算法。
安装前请注意
需要专用代理用户的 ERPNext API key 与 secret,该用户在 ERPNext 中的角色决定服务器能力上限。它会创建和更新草稿单据,提交前应在 ERPNext 中人工审核。访问令牌由外部授权服务器校验;ENTERICH_MAX_DRAFTS_PER_HOUR 默认未设置,即不限制草稿数量。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Enterich,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Enterich's logo: a drake in a cap, holding a microphone, with an MCP chain]

Enterich

An MCP server for ERPNext with hard limits: a short, fixed list of tools, tokens from an external OAuth authorization server, and only the rights of one ERPNext user.

Status: Every operation is tested against a model of ERPNext v16's API, and weekly against a real ERPNext v16 site. The changelog lists the releases.

What it is

  • A separate service, not a Frappe app. It calls ERPNext's REST API with the API key of a dedicated agent user and holds no other ERPNext credential. Whatever the service does, ERPNext's role for that user is the upper limit.
  • A resource server for the MCP authorization spec. It serves the protected resource metadata, answers a missing token with 401, and checks every access token itself (issuer, audience, client, subject). Sign-in happens at an external authorization server such as Keycloak.
  • A fixed list of operations, each with its own purpose and input schema, read and write separated. No generic document access, method calls or file access.
  • Client-neutral. It speaks plain MCP (Streamable HTTP) and doesn't rely on any client asking before a write.

What it is not

  • Not a general ERPNext API bridge: tools that take a DocType, report name, method name, field list, filter expression or file path as input are out of scope.
  • Not a way to post: no tool submits, cancels, amends, deletes or discards a document. The agent prepares drafts; a person reviews and submits them in ERPNext (reviewing drafts).
  • Not affiliated with or endorsed by Frappe Technologies. ERPNext and Frappe are their trademarks.

Tools

Enterich offers 37 tools. A deployment may offer fewer (ENTERICH_TOOLS); every tool works on one company, within the rights ERPNext gives the agent user.

Master data (REQ-003)

Items.

ToolTitleKind
list_itemsList itemsread
get_itemGet itemread

Order to cash (REQ-004)

Customers, sales invoices, receivables.

ToolTitleKind
list_customersList customersread
get_customerGet customerread
list_sales_invoicesList sales invoicesread
get_sales_invoiceGet sales invoiceread
list_sales_tax_templatesList sales tax templatesread
report_accounts_receivableAccounts receivableread
create_draft_sales_invoiceCreate draft sales invoicecreate draft
update_draft_sales_invoiceUpdate draft sales invoiceupdate draft
create_draft_sales_returnCreate draft sales returncreate draft
update_draft_sales_returnUpdate draft sales returnupdate draft

Procure to pay (REQ-005)

Suppliers, purchase invoices, payables.

ToolTitleKind
list_suppliersList suppliersread
get_supplierGet supplierread
list_purchase_invoicesList purchase invoicesread
get_purchase_invoiceGet purchase invoiceread
list_purchase_tax_templatesList purchase tax templatesread
report_accounts_payableAccounts payableread
create_draft_purchase_invoiceCreate draft purchase invoicecreate draft
update_draft_purchase_invoiceUpdate draft purchase invoiceupdate draft
create_draft_purchase_returnCreate draft purchase returncreate draft
update_draft_purchase_returnUpdate draft purchase returnupdate draft

Record to report (REQ-006)

Accounts, cost centres, journal entries, ledger, trial balance.

ToolTitleKind
list_accountsList accountsread
list_cost_centersList cost centresread
list_journal_entriesList journal entriesread
get_journal_entryGet journal entryread
report_general_ledgerGeneral ledgerread
report_trial_balanceTrial balanceread
create_draft_journal_entryCreate draft journal entrycreate draft
update_draft_journal_entryUpdate draft journal entryupdate draft

Bank and cash (REQ-007)

Bank accounts, bank transactions, payments.

ToolTitleKind
list_bank_accountsList bank accountsread
list_bank_transactionsList bank transactionsread
get_bank_transactionGet bank transactionread
list_payment_entriesList payment entriesread
get_payment_entryGet payment entryread
create_draft_payment_entryCreate draft payment entrycreate draft
update_draft_payment_entryUpdate draft payment entryupdate draft

Scope

Enterich is maintained for our own use. Contributions are welcome (contributing); support isn't promised. Report vulnerabilities privately, as the security policy describes.

Documentation

Start at docs/README.md. The most important parts:

Licence

Apache-2.0. Why: ADR-006.

来源:README.md,提交 0ff4da7

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v0.4.0最新Nov 7, 2026
  2. v0.3.0Nov 3, 2026
  3. v0.2.1Nov 1, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分