ERP Report Engine MCP Server

Read-only MCP for the SQL database behind an ERP: provably read-only guard, public benchmark.

Local serverstdioPython

What is the ERP Report Engine MCP server?

ERP Report Engine MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. Read-only MCP for the SQL database behind an ERP: provably read-only guard, public benchmark.

What you get

One scheduled run executes 9 audited SELECT statements and delivers a self-contained HTML report: four KPIs against an 8-week baseline, findings with named drivers, a data-quality gate, and row counts reconciled against the source. No BI license, no agent installed on the ERP server, and no writes — enforced in four layers (lexical, parse-tree, a side-effecting-function guard, and a read-only session), not promised in prose.

What the assistant can call

Once ERP Report Engine is connected, these are the calls the assistant has available:

  • Section — What it answers
  • Findings"Revenue +6.5% week-over-week — main driver: region 'Ege' (54% of the week's movement, partly offset by Marmara (−14,697))" — driver named, the
  • Trends — 13 full weeks of revenue and on-time %, inline SVG (no external assets)
  • Layer — Enforced by
  • describe_model — the canonical semantic layer — each entity's grain, and each column's type + what it means (e.g. actual_ship_date is NULL until shipment, so a
  • weekly_report — the full KPI briefing — findings, data-quality gate, reconciliation, SQL audit trail
  • reconcile — fetched rows vs an independent COUNT(*) per entity, with a trust verdict
  • aging — receivables aging — open balances by days-past-due bucket, overdue %, and the customers who owe the most overdue (aggregates only)
  • check_query — whether a SQL statement would pass the guard — without running it
  • query — run a read-only SELECT/WITH, capped and audited; rows returned as untrusted data

Setting it up

erp-report-engine on PyPI is all you need. Most clients run it directly, so configuration is a few lines and a restart.

Configuration and credentials

You will need one environment variable: ERP_DB_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

Choosing this one

Among the database access options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. ERP Report Engine's toolset — Section, Findings, Trends and 7 more — is a fair guide to whether it matches your workflow. It is maintained by gulmezeren2-byte; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Before you rely on it

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 10 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch ERP Report Engine.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the erp report engine mcp server does with a few real requests.

Available tools

ToolWhat it does
SectionWhat it answers
Findings*"Revenue +6.5% week-over-week — main driver: region 'Ege' (54% of the week's movement, partly offset by Marmara (−14,697))"* — driver named, the segment pulling the other way named too, action suggested
Trends13 full weeks of revenue and on-time %, inline SVG (no external assets)
LayerEnforced by
describe_modelthe canonical **semantic layer** — each entity's grain, and each column's type + what it *means* (e.g. actual_ship_date is NULL until shipment, so a late unshipped order isn't counted against on-time), plus runnable exam
weekly_reportthe full KPI briefing — findings, data-quality gate, reconciliation, SQL audit trail
reconcilefetched rows vs an independent COUNT(*) per entity, with a trust verdict
agingreceivables aging — open balances by days-past-due bucket, overdue %, and the customers who owe the most overdue (aggregates only)
check_querywhether a SQL statement would pass the guard — *without running it*
queryrun a read-only SELECT/WITH, capped and audited; rows returned as **untrusted data**

How to install the ERP Report Engine MCP server

{
  "mcpServers": {
    "erp-report-engine": {
      "command": "uvx",
      "args": ["erp-report-engine"],
      "env": {
        "ERP_DB_URL": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
ERP_DB_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use ERP Report Engine to Section.
  • Use ERP Report Engine to Findings.
  • Use ERP Report Engine to Trends.

Frequently asked questions

It connects ERP Report Engine to MCP-compatible AI assistants such as Claude and Cursor, exposing 10 tools (Section, Findings, Trends, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with ERP Report Engine directly.