What MCP is, briefly
MCP is how an AI assistant (Claude, Cursor, or another compatible client) can request tools from an app. At RIVIL that app is your company ERP. The client does not get the database or anyone’s password. It gets an URL, a key, and a short tool list: what data exists, field shapes, search, open a record, look up a company by id, and propose create or update.
The key is the boundary. It picks company and modules, and tools have no parameter to jump to another company. “Show customers” means customers for the key’s company, only if the module is on and the key allows read.
Which clients you connect
Cursor uses a config file, global or per project, with server URL and Authorization header. Claude Code configures from the terminal with the same URL and header. Claude Desktop has its own config and needs Node.js on the machine. Other MCP clients follow the same pattern; only the config file differs.
Do not put the key in a shared git repo. The key is like a company password: keep it in local config or an environment variable and rotate if it leaked.
What it can read
The client can see resources the key allows, learn fields for each, search, and open a record. Search returns a limited number of rows per call so it does not pull the whole database in one response.
Given a company id it can look up the firm in RIVIL Firme: name, address, status, VAT, activity codes, and balance sheet figures. What a disabled module hides from users is hidden from the client too: if stock is off for your company, there is no stock resource for it.
What it can propose and what it never saves alone
Writes do not go straight into data. The client sends a create or update proposal on a short list of resources: expenses, customers, suppliers, products, services, cost centers, and projects. There is no delete tool.
A proposal can include many rows, up to a hundred at once. Sending the same proposal twice is treated as duplicate; rows that fail validation return reasons, not half-saved data. You approve or reject in ERP; approval runs the same checks as in-app forms.
MCP and in-app chat
ERP also has its own chat with your AI provider key. There you can attach an Excel of expenses or a photo of an invoice, and the assistant still prepares records as proposals. MCP is for working in Cursor or Claude with your own model on company data.
Proposals from both land in the same list, so one place to approve. MCP setup is for whoever administers API; a user with chat only does not see the company key.
Safety and limits
The model is instructed to treat database and file text as data, not commands, to search before creating to avoid duplicates, and not to invent values. Those are instructions, not a guarantee a model never misstates a proposal. That is why proposals wait for approval and you see rows before they enter data.
The server does not send invoices to tax authority, does not email customers, and does not delete anything. There is no server “across all companies”: each key belongs to one company. For automation that actually writes data, use the classic API with per-module keys.