Did we forget to bill anyone?
One order shipped and was never invoiced, and $1,700 of goods arrived that no supplier has billed yet. The order carries delivered and invoiced quantities, and the goods sit in the GRNI account until a bill clears them.
Open sourceApache 2.0Self-hosted
OpenERP is an open-source ERP with an MCP server. Purchasing, stock and sales post to a double-entry ledger. A bill that doesn't match its order and the goods received is refused, and stock can't go below zero.
Explore the demoSample business, no sign-up
The demo app is part of a deployment Attri runs for you. The MCP server and the SQLite database are the open-source repo.
Nobody checks every order an agent raises. In OpenERP, every document posts as it happens, so the records answer these three questions.
One order shipped and was never invoiced, and $1,700 of goods arrived that no supplier has billed yet. The order carries delivered and invoiced quantities, and the goods sit in the GRNI account until a bill clears them.
The three-way match. A bill must agree with the purchase order on price and with the goods received on quantity, or it's refused with every discrepancy listed and nothing written.
Every stock move names the document behind it. Two brackets were written off after a count, with the reason, and their cost moved to expenses in the same transaction.
How it works
Agent requests
OpenERP
Checks every document
Stock value = Inventory account
create_purchase_order · PO-0004 · $1,800.00
Read back as
Claude reads them through the same 47 MCP tools it writes with. Read-only SQL covers anything else.
Your agent creates the order, receipt, bill or delivery. Partners and items resolve by code or name, so it can pass "Northwind Components" or "SKU-100" directly.
The server runs the rules before anything is written: the three-way match on bills, the stock floor on deliveries, the balance on every journal entry. A failure returns the reason and writes nothing.
The document, its stock moves, its journal entry and its audit row commit in one transaction. A posting is never edited; reverse_entry adds a contra entry instead.
Compared with an ERP behind a connector
An MCP connector puts your agent in front of an ERP built for people clicking through forms. The call goes through, with whatever checks that system has switched on.
An ERP behind an MCP connector
Your agent calls someone else's API
Use cases
Sample: a parts distributor
Purchase orders, receipts and supplier bills raised by agents. A bill posts only when its price matches the order and its quantity matches what arrived.
Sample: one warehouse, three products
Receipts, deliveries and count adjustments, each one a stock move at average cost that names the document behind it.
Sample: two wholesale customers
Orders, deliveries, invoices and payments, each posting to the ledger as it happens. Receivables aging and the open orders come from the same records.
Sample: a Claude Code session
47 MCP tools for purchasing, sales, stock and the ledger. The rules live in the server, not in your prompt.
Enterprise
Self-hosted
Run OpenERP on your own machine and connect your agents to it today.
Hosted by you
Managed by Attri
The rules are open source. Attri runs OpenERP inside your infrastructure, next to the systems your operations team already uses.
In your environment, run by Attri
Price against the purchase order, quantity against the goods received. A mismatch is refused.
A delivery or write-off larger than what's on hand is refused.
Every document posts a journal entry whose debits equal its credits, in whole cents.
Each document and its audit row commit together, so the log can't fall behind.
Open source
Seeds a small business, mid-cycle, with one command. Access control, approval rules and connectors to your systems come with an Attri deployment.
Read the README on GitHubOpen source by Attri
Purchasing, stock and sales your AI can't fudge. Bills must match; stock can't go below zero.
Books your agents can write to, and can't break. Every posting balances; corrections are reversals.
Traces every AI session, tool call and dollar to the person behind it.
CRM memory for AI agents where every fact links to the email or transcript behind it.
Run OpenERP on a sample business in minutes, or have Attri deploy it inside your environment with access control and approval rules.