elba-mcp: an MCP server for Kontur.Elba
elba-mcp
Invoices, acts and UPD in Elba from an agent chat, public document links for clients and a summary of unpaid bills
- 0 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The API key creates invoices, acts and UPD on behalf of the organization and sees its clients data
- The invoice journal on disk stores client details and amounts
Install
- Works in
- Services
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/elba-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The API key creates invoices, acts and UPD on behalf of the organization and sees its clients data
- The invoice journal on disk stores client details and amounts
This is third-party code. Review the repository files before installing.
What it does
The MCP server connects Claude Code, Claude Desktop, Cursor and other clients to the public Kontur.Elba API. The agent finds a client by tax ID or name, creates a new one, issues an invoice, act or UPD, including one modeled on a previous invoice, and gets a public link to the document with a stamp, a signature and a payment QR code. Elba does not return a list of invoices, so the server keeps its own journal of issued invoices in a state directory. From the journal and the Elba news feed it shows payments since the last check, unpaid invoices with the total debt and a summary by project and period. For routine jobs there are the MCP prompts `elba_invoice`, `elba_close_work` and `elba_remind_debtors`; they prepare client emails as drafts only. Company details by tax ID come from the Federal Tax Service registers, and no key is needed for that.
Who it is for. Freelancers, sole proprietors and small studios that keep their books in Elba and issue invoices from the project where an agent already works.
Good fit when
- An invoice for finished work has to be issued with one phrase while the project is open in Claude Code
- A support invoice repeats every month and is easier to create from the previous one
- By the month end you need to see who paid and who owes for more than a week, and draft reminders
- A client gets a link to an act or UPD with a signature and a payment QR code
Not a fit when
- You need an invoice PDF on disk: the Elba API does not return the file, the client downloads it by link
- Accounting runs in another system: the server works only with the Elba API
- Invoices include VAT: by default the server issues them without VAT, so the rate has to be set explicitly
Example request
Issue an invoice to Romashka LLC for 40,000 for the site rework, project romashka.ru, and prepare an emailMCP
- Transport
- stdio
- Authentication
- API key
Environment variables
ELBA_API_KEYrequired, secret- Kontur.Elba API key
ELBA_ORG_ID- Organization when the key covers several
ELBA_STATE_DIR- Directory for the invoice journal
Limitations
The project is unofficial and not affiliated with SKB Kontur. An API key from the Elba settings and the uv package manager are required. The Elba API cannot download a PDF, so the client receives a public link. The invoice journal lives in `~/.local/state/elba-mcp` and holds client data, so it should be kept like accounting documents; invoices issued in Elba by hand reach it only through `elba_track_bill`. An offer template may describe a different contract than your services, so check the template text before the first invoice.
How to disable. Run `claude mcp remove elba` or delete the `elba` block from the client configuration, and revoke the API key in the Elba settings.
FAQ
How do I connect elba-mcp to Claude Code?
Run `claude mcp add --scope user elba -e ELBA_API_KEY=key -- uvx elba-mcp`. The key is issued in Elba under billing settings, service settings, API.
How do I see which invoices are paid?
Call `elba_payment_news`: the first call only sets a mark in the news feed, then the server shows payments since the previous call. `elba_unpaid` computes the total debt.
Will the server create a duplicate invoice?
No: the same client and the same amount within a week produce no invoice without `allow_duplicate=true`. A second act or UPD for one invoice is blocked too.
How do I call a tool without an MCP connection?
From the shell with a command like `uvx elba-mcp call elba_find_contractor args.json`, where `args.json` holds the arguments, for example the client tax ID.
Which documents does the server create?
Invoices, acts and UPD: `elba_create_bill`, `elba_create_act` and `elba_create_upd`, and from a ready invoice `elba_act_from_bill` and `elba_upd_from_bill` make the act and UPD.
Discussion
No questions or reviews yet.
Related
All Kontur toolsKontur Elba MCP server
Elba MCP Server
An MCP server over the Kontur Elba public API: counterparties, products, bills, delivery notes and acts for sole proprietors and small businesses
Kontur.Elba MCP server
Kontur.Elba MCP
An MCP server over the official Elba Public API: counterparties, products, invoices, acts, waybills and UPD for sole proprietors and small business
Kontur.Diadoc MCP
kontur-diadoc-mcp
MCP server for Kontur.Diadoc EDI: organization lookup by INN, document lists and contents, sending and signing
A monorepo of MCP servers for Russian and CIS APIs: payments, CRM, marketplaces, delivery, HR and reference data
A skill pack for small business operations in Russia: simplified tax, cash flow, receivables, contracts, hiring and counterparty checks by INN
The official Xero MCP server: an agent reads invoices, contacts, journals and reports and creates invoices, payments and timesheets
README in short
The README covers installation with `uvx`, environment variables, a table of 19 tools, the invoice journal, three prompt scenarios and shell use without MCP. Tests run against an API mock, and CI runs them on macOS, Linux and Windows.