Enterich

dev.interlusionPublished by interlusion.devv0.4.0Updated Nov 7, 2026

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

Overview

AI-generated overview

An ERPNext accounting MCP server behind OAuth: a fixed set of read and draft-only tools, limited to one ERPNext agent user's rights.

What you can do
  • List and read master data and customers/suppliers
  • List and read sales and purchase invoices, tax templates, receivables and payables
  • List and read accounts, cost centres, journal entries, general ledger and trial balance
  • List and read bank accounts, bank transactions and payment entries
  • Create and update drafts of sales invoices, sales returns, purchase invoices, purchase returns, journal entries and payment entries
When to use it
Useful when an assistant should look up ERPNext accounting data or prepare draft documents for a person to review and submit, without giving it a general ERPNext API bridge or posting rights.
Requirements
Runs as a local service (container image, Streamable HTTP) on a desktop. Needs an ERPNext site URL, public URL, company name, and an ERPNext agent user's API key and secret (ENTERICH_ERPNEXT_API_KEY, ENTERICH_ERPNEXT_API_SECRET). Also needs an external OAuth authorization server: issuer, JWKS URL, client ID, subject, resource URL, plus optional scopes and token algorithms.
Before you install
Requires ERPNext API key and secret for a dedicated agent user; the user's ERPNext roles cap everything the server can do. It creates and updates draft documents, so review drafts before submitting them in ERPNext. Access tokens are validated against an external authorization server, and ENTERICH_MAX_DRAFTS_PER_HOUR is unset by default, meaning no limit on drafts.

Installation

In SourceWeft

  1. Open Enterich in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: README.md at commit 0ff4da7

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

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

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts