Merit MCP
The Merit MCP server provides an unofficial MCP interface to the Merit Aktiva accounting system, enabling AI assistants to read and write live accounting data via natural language, with a two-step preview/confirm flow for all write operations.
Read Operations
Master data: customers, customer groups, vendors, items, taxes, banks, accounts, projects, cost centers, departments, units of measure, financial years, and dimensions
Sales: invoices, offers, recurring invoices, recurring invoice addresses, and invoice PDFs
Purchases: purchase invoices and purchase orders
Financial: payments, payment types, payment imports, expense/income payments, and GL batches
Inventory: locations, movements, fixed assets, fixed asset locations, prices, and discounts
Reports: customer debts, customer payments, profit/loss, balance sheets, inventory, sales, and purchase reports
Write Operations (two-step preview → confirm required)
Customers & Vendors: create or update customers and vendors
Sales: create/delete sales invoices, create credit invoices, send invoices by email or e-invoice
Purchases: create purchase invoices
Financial: create purchase invoice payments (including multi-currency), upsert tax rates, add/update items, and add dimensions
Safety & Utility
Two-step confirmation: all write tools return a
confirmation_codethat must be explicitly confirmed before changes are appliedSetup check:
get_setup_instructionsreports API credential status and configuration guidanceTool catalog:
merit://tools/cataloglists all available tools and their required inputsBuilt-in prompts: guided workflows for setup, creating sales invoices, and finding/creating customers
Merit Unofficial MCP Server
English summary: Unofficial MCP server and Python SDK for the Merit Aktiva accounting REST API. Exposes 11 tools (6 read tools with 50 read actions, 2 preview/confirm write tools), 3 workflow prompts, and 2 resources to AI coding assistants (Claude Code, Cursor, Windsurf, Gemini CLI, etc.). The write surface is intentionally minimal — customer create/update and restricted unsent sales invoice creation only. Confirmation creates a real accounting invoice that can affect the ledger before delivery—not an unposted draft. Payments, credit forms, item-creation fields, delivery flags, and other unsupported fields are rejected. Full read access to accounting data, write operations gated behind a two-step preview/confirm flow. Requires a Merit Aktiva Premium account and API credentials (
MERIT_API_ID,MERIT_API_KEY). Run/install instantly viauvx. Experimental and unofficial — use at your own risk.
MCP server ja Pythoni SDK Merit Aktiva REST API jaoks. MCP server eksponeerib praegu 11 tööriista (6 lugemis-tööriista 50 action'iga, 2 kirjutamis-tööriista eelvaate/kinnituse vooluga), 3 töövoo prompti ja 2 ressurssi. See on mõeldud töötama MCP klientidega nagu Claude Code, Codex CLI, Cursor, Windsurf, Cline, Gemini CLI ja sarnased tööriistad.
Aktiivne arendus. See projekt areneb endiselt. MCP kiht on kasutatav, kuid see ei ole veel täisfunktsionaalne raamatupidamise töövoosüsteem. Kontrolli iga kirjutava operatsiooni tulemust live-raamatupidamisandmete vastu enne selle usaldamist.
Vastutusest loobumine
See on eksperimentaalne ja mitteametlik projekt. See ei ole seotud AS Merit Tarkvaraga, ei ole nende poolt toetatud ega ametlikult kinnitatud.
Kasutad seda täielikult omal vastutusel. See tarkvara saab lugeda ja muuta live-raamatupidamisandmeid, sh kliente, hankijaid, artikleid, arveid, makseid, makse ja dimensioone. Autorid ei vastuta vigaste kannete, kustutatud kirjete ega muu kaudse kahju eest.
Seda tarkvara kasutades nõustud, et:
vastutad ise kõigi loodud või muudetud raamatupidamisandmete kontrollimise eest
peaksid enne tähtsate live-andmete vastu kasutamist põhjalikult testima
tegemist on eksperimentaalse tarkvaraga ilma igasuguse garantiita
Related MCP server: e-arveldaja MCP Server
Kasutaja API võtmed
Server vajab järgmisi võtmeid, mille saab Meriti Aktivast Ettevõtte andmete > API Seadistustes, vajalik piisav kasutaja õiguste tase (haldaja) ja pakett (Premium või parem):
MERIT_API_IDMERIT_API_KEYMERIT_API_COUNTRYon valikuline,EEvõiPL, vaikimisiEE
Käsurea-vahendites saab need panna keskkonda (environment variables):
export MERIT_API_ID=your-api-id
export MERIT_API_KEY=your-api-key
export MERIT_API_COUNTRY=EEKui MERIT_API_ID või MERIT_API_KEY puudub, võib käivituda server seadistusrežiimis, aga kindlam on need seadistada json failis nagu kirjas allpool. Seadistusrežiimis:
get_setup_instructionsjääb kättesaadavaksressursid jäävad kättesaadavaks
promptid jäävad kättesaadavaks
API-põhised tööriistad tagastavad seadistusjuhise ega kutsu Merit API-t
Paigaldus ja seadistus
Eeltingimused
Arvutisse peab olema paigaldatud uv — kaasaegne ja kiire Pythoni pakihaldur.
1. Lisa MCP server
Server käivitatakse lokaalselt taustal ja ühendub otse Meriti pilveteenusega. Kolmandaid osapooli ei kaasata.
Claude Code: (käsurealt)
claude mcp add merit-api -- uvx merit-unofficial-mcp-serverTeised tööriistad JSON-konfiguratsiooniga (nt. Claude Desktop, Cursor, Cline):
{
"mcpServers": {
"merit-api": {
"command": "uvx",
"args": ["merit-unofficial-mcp-server"],
"env": {
"MERIT_API_ID": "your-api-id-here",
"MERIT_API_KEY": "your-api-key-here",
"MERIT_API_COUNTRY": "EE"
}
}
}
}Seadistusfail Claude Desktop-is:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Codex CLI TOML-konfiguratsiooniga:
[mcp_servers.merit-api]
command = "uvx"
args = ["merit-unofficial-mcp-server"]uvx tõmbab ja käivitab serveri otse PyPI registrist, tagades et alati on olemas vajalikud Pythoni moodulid ilma masinat risustamata.
Tööriist | Konfiguratsioonifail |
Claude Code |
|
Codex CLI |
|
Gemini CLI |
|
Cursor | projekti |
Windsurf |
|
Cline | VS Code seadetes |
2. Käivitamine lähtekoodist (arenduseks)
Kui soovite serverit lokaalselt muuta või testida, kloonige repositoorium ja käivitage see uv workspace toel:
git clone https://github.com/jaakla/merit_api.git
cd merit_api
# Paigalda lokaalsed sõltuvused (sh pytest arendustestide jaoks)
uv sync --all-extras
# Käivita MCP server otse lokaalsest koodist
uv run --package merit-unofficial-mcp-server merit-unofficial-mcpMCP promptid
Server sisaldab kolme lihtsat näidisprompti, kuid kasutada saab ka mistahes teistsuguseid, keerukamaid käske:
Prompt | Kirjeldus |
| Selgitab, kuidas seadistada vajalikud keskkonnamuutujad ja server käivitada |
| Juhendab assistenti kliendi leidmisel ja müügiarve loomisel |
| Juhendab assistenti kliendi andmete otsimisel ja loomisel |
Ressursid
Ressurss | Kirjeldus |
| Serveri metaandmed, seadistusrežiimi staatus, toetatud env muutujad ja hoiatus |
| Tööriistade kataloog koos konsolideeritud tööriistade, nende action'ite ja nõutud väljadega |
Tööriistad (tools)
Merit võimaldab kümneid erinevaid käske, see MCP server koondab need üldistatud tööriistadeks, et vältida liiga pikka nimekirja käskudest. Üldine tööriist kasutab action välja, et valida konkreetne Merit'i workflow.
Lugemise, Read-only tööriistad:
merit_read_master_datamerit_read_salesmerit_read_purchasesmerit_read_financialmerit_read_inventorymerit_read_reports
Muutmise/kirjutamise tööriistad toimivad kahe käsuna, et vältida vigaste andmete sisestust:
merit_write_customers(eelvaade) jamerit_write_customers_confirm(kinnitatud muutmine) — ainultcustomer_upsertmerit_write_sales(eelvaade) jamerit_write_sales_confirm(kinnitatud muutmine) — ainultsales_invoice_create(saatmata raamatupidamisarve, mitte konteerimata mustand)
Kirjutamispind on tahtlikult minimaalne. Müügiarve saatmine (e-post/e-arve), kustutamine, kreeditarved, ostuarved, maksed ning maksude, dimensioonide ja artiklite muutmine ei ole MCP kirjutamistoimingutena saadaval. Kuluarvete jaoks kasuta näiteks Costpocketi integratsiooni või Meriti kasutajaliidest. SDK (merit-api pakett) säilitab kõik meetodid; piirang kehtib MCP kihile.
Saatmata arve ei ole konteerimata mustand. Eelvaade ei kirjuta midagi. *_confirm loob aga Meritis päris raamatupidamisarve, mis võib mõjutada pearaamatut ja aruandeid juba enne saatmist. Kontrolli andmeid enne kinnitamist. Kui vajad üksnes ilma raamatupidamismõjuta ettevalmistust, jää eelvaate juurde ja ära kinnita loomist.
Restricted sales-invoice profile
EUR and VAT-exclusive prices (
PriceInclVat=false) only.Existing customer by GUID; existing non-stock items by exact code, checked again at confirmation. Missing, ambiguous, stock, and unrecognized item records are refused.
Positive quantities, non-negative prices/taxes, positive net total; valid calendar dates and cent-rounded row/total consistency.
Unknown fields are rejected at every level, including embedded
Payment,AccountingDoc,DelivNote,Item.Type, discounts, and rounding adjustments. These restrictions also apply to JSON-string payloads and confirmation calls.Item lookup is not an atomic reservation. The integration relies on Merit's documented requirement for
Item.Typewhen adding an item; this field is never forwarded. Live API behavior and company-specific VAT/accounting rules still require verification.
Merit's create-invoice documentation describes general-ledger records on invoice rows and does not document an unposted-draft mode for this endpoint. The MCP therefore promises an unsent accounting invoice, not a harmless saved draft. DelivNote is not treated as a draft-state switch.
Kirjutavad tööriistad on kahe sammuga. Esimene merit_write_* kutse ei tee Merit'is muudatusi: see tagastab eelvaate, confirmation_tool nime ja unikaalse confirmation_code väärtuse. Pärast eelvaate ülevaatamist tuleb sama action'i ja samade argumentidega kutsuda vastavat *_confirm tööriista ning anda kaasa confirmation_code ja confirmed=true. Kood on seotud konkreetsete argumentidega ja seda ei saa kasutada teise muudatuse kinnitamiseks.
NB! mõned AI mudelid püüavad olla "abivalmid" ja proovivad teha _confirm käsku automaatselt ise. Ole tähelepanelik, enne kui vajutad "Allow".
Kõigi tööriistade täielik action-kataloog on ressursis merit://tools/catalog.
Kasutusnäited
Kui MCP server on ühendatud, saad AI assistendiga suhelda eesti, inglise (tegelikult enamvähem mistahes) keeles.
Uuri põhiandmeid
"Näita kliente, mis vastavad nimele Acme"
Töövahend peaks kasutama merit_read_master_data tööriista action'iga customers_list ja filters={"Name": "Acme"}.
Loo või uuenda kliendi andmeid
"Loo uus klient Example OÜ"
Töövahend peaks koostama kliendi andmete faili ja kutsuma merit_write_customers tööriista action'iga customer_upsert.
Merit nõuab teatud (ja kahjuks mitte dokumenteeritud) minimaalset komplekti andmeid, seega esimene katse võib ebaõnnestuda. Siiski paremad AI mudelid oskavad neid automaatselt juurde otsida veebist, küsida kasutajalt ja ka mitu korda erinevalt andmeid proovida, kuni toimib.
Loo müügiarve
"Loo kliendile Acme müügiarve aprilli konsultatsiooniteenuse eest"
Töövahend saab kasutada merit_read_master_data action'iga customers_list, vajadusel find-or-create-customer, ja seejärel merit_write_sales action'iga sales_invoice_create.
merit_write_sales tagastab eelvaate; arve luuakse alles merit_write_sales_confirm kutsega, kui kasutaja on eelvaate üle vaadanud.
Uuri sisestatud andmeid
"Mis pangad, kulukohad, projektid ja maksud Merit'is olemas on?"
Assistant saab kasutada merit_read_master_data tööriista action'eid banks_list, cost_centers_list, projects_list ja taxes_list.
Kontrolli seadistuse seisu
"Kontrolli, kas Merit MCP server on õigesti seadistatud ja saan Meritiga ühenduda"
Assistant saab kasutada get_setup_instructions ja merit://server/info.
SDK kasutamine
See repository sisaldab ka eraldi avatud koodiga Pythoni SDK projekti kataloogis merit_api/. Siit saad kontrollida, mida täpselt tarkvara teeb, ja arendusoskuse korral pakkuda välja koodiparandusi ja -täiendusi.
Näide:
from merit_api import MeritAPI
client = MeritAPI(api_id="YOUR_API_ID", api_key="YOUR_API_KEY")
customers = client.customers.get_list()
invoices = client.sales.get_invoices(
PeriodStart="2024-01-01",
PeriodEnd="2024-01-31",
)SDK sisaldab praegu:
deterministlikku request body serialiseerimist signeerimiseks
seadistatavat timeouti ja retry käitumist (kordusi tehakse ainult idempotentsetele päringutele; muteerivaid kirjutusi nagu arve või makse loomine ei korrata, sest aegunud, kuid serveris juba kinnitatud päringu kordamine looks duplikaadi)
request/response logger hooke koos saladuste redaktsiooniga
valikulist idempotency headeri genereerimist (tähelepanu: Merit API ei dedubleeri selle headeri põhjal — see ei ole duplikaadivastane garantii, vaid valmidus juhuks, kui server seda kunagi toetab)
ostuarvete ja maksete duplikaadikaitset: vaikimisi ei looda sama tarnija +
BillNoostuarvet ega samaBillNo+ summaga makset teist korda; möödaminekuks annaallow_duplicate=TrueAPI taseme vigade haldust, eristust HTTP 200 vastustest
Uuendamine
Uuendamise viis sõltub sellest, kuidas serverit käivitad.
Kui kasutad uvx
Kuna server on avaldatud PyPI-s, laadib uvx automaatselt alla uusima versiooni. Kui soovite olemasolevat paigaldust käsitsi viimasele versioonile uuendada, käivitage:
uvx --upgrade merit-unofficial-mcp-serverSeejärel taaskäivita oma AI töövahend.
Kui jooksutad algkoodist, lokaalsest GIT checkout'ist
git pull
# Kuna kasutusel on uv workspace, siis uv sync teeb kõik automaatselt korda:
uv syncSeejärel taaskäivita oma AI töövahend.
Arendus
Repositoorium on jaotatud ühisesse uv workspace'i kuuluvateks alamprojektideks:
merit_api/ SDK jaoks (pakett:
merit-api)mcp/ Pythoni MCP serveri jaoks (pakett:
merit-unofficial-mcp-server)root
pyproject.tomlworkspace seadete jaoks
SDK testid:
uv run --package merit-api pytestMCP testid:
uv run --package merit-unofficial-mcp-server pytestSDK live integratsioonitestid on opt-in:
MERIT_API_INTEGRATION_TEST=true uv run --package merit-api pytestIga Merit päringu ja vastuse väljatrükkimiseks lisa MERIT_API_VERBOSE=true ja pytesti -s lipp:
MERIT_API_INTEGRATION_TEST=true MERIT_API_VERBOSE=true uv run --package merit-api pytest -sVersiooni avaldamine (hooldajale)
Mõlemad paketid — merit-api (SDK) ja merit-unofficial-mcp-server (MCP server) — avaldatakse PyPI-sse käsitsi; automaatset CI avaldusvoogu ei ole. Versioonid hoitakse lukus, st kõik tõstetakse korraga samale numbrile.
Tõsta versioon samale numbrile kõigis neljas kohas:
package.json— väliversionmcp/pyproject.toml—versionning sõltuvuse pinmerit-api>=X.Y.Zmerit_api/pyproject.toml—version
Lisa muudatused
CHANGELOG.md-sse uue versiooni pealkirja alla.Värskenda lukufaili:
uv lockJooksuta testid:
uv run --package merit-api pytest uv run --package merit-unofficial-mcp-server pytestTee commit ja silt:
git add -A git commit -m "release: vX.Y.Z" git tag -a vX.Y.Z -m "vX.Y.Z"Lükka GitHubi:
git push origin main git push origin vX.Y.ZEhita paketid (tulemused tekivad kausta
dist/):uv build --package merit-api uv build --package merit-unofficial-mcp-serverAvalda PyPI-sse — kõigepealt SDK (
merit-api), sest MCP server sõltub sellest, ja alles siis MCP server. Vajab PyPI API tokenit (UV_PUBLISH_TOKENkeskkonnamuutuja või lipp--token):uv publish dist/merit_api-X.Y.Z* uv publish dist/merit_unofficial_mcp_server-X.Y.Z*
Pärast avaldamist laadib uvx merit-unofficial-mcp-server automaatselt uue versiooni.
npm pakett
merit-unofficial-mcpon aegunud ega vaja enam avaldamist — kasutajad suunatakseuvxpeale.
Hea teada
Kasuta tipptasemel AI/LLM mudeleid, kuigi need on pisut kallimad : Opus/Pro tase, ja mitte Light, mini või Haiku tase.
Praegune MCP server toetab ainult ühte ühendust korraga, ehk siis ühe ettevõttega tööd. Kui sa oled raamatupidamisfirma, kes soovib selle tasuta ja garaantiita koodi ning AI abil kõikide oma klientide raamatupidamist automaatselt hallata, siis olgu Jumala arm sinuga (loe: ei ole hea mõte).
Auditeerimiseks logi püsisalvestust ei ole
Dry-run kirjutusvooge veel ei ole — aga kirjutus käib läbi kontrolli, see peaks asendama dry-run enamuse juhtudel
Dokumentide sisestust mis nõuaks OCR töövoogu veel ei ole - nt ostuarvete sisestuseks kasuta muud AI tööriista või -mudelit, mis teeb selle tekstiks. PDF faili saab manusega ostuarvele lisada küll.
Litsents - tasuta, omal vastutusel
Available Tools
11 toolsget_setup_instructionsGet Setup InstructionsARead-onlyIdempotent
Report whether MERIT_API_ID and MERIT_API_KEY are configured, and explain how to set them when they are not.
Inputs: no named parameters. Returns: object
merit_read_financialMerit Read FinancialBRead-onlyIdempotent
Read-only tool. Read payments, banks, and GL information. Actions: payments_list: List payments.; payment_types_list: List payment types.; payment_imports_list: List payment imports for a bank.; expense_payments_list: List expense payments for a bank.; income_payments_list: List income payments for a bank.; gl_batches_list: List GL batches.; gl_batch_get: Fetch one GL batch by id.; gl_batches_full_list: List GL batches with full details.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_read_inventoryMerit Read InventoryCRead-onlyIdempotent
Read-only tool. Read inventory, fixed asset, and pricing data. Actions: locations_list: List inventory locations.; movements_list: List inventory movements.; fixed_asset_locations_list: List fixed asset locations.; fixed_asset_responsible_persons_list: List fixed asset responsible persons.; fixed_assets_list: List fixed assets.; prices_list: List prices.; discounts_list: List discounts.; price_get: Fetch an effective price.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_read_master_dataMerit Read Master DataCRead-onlyIdempotent
Read-only tool. Read common master and reference data from Merit. Actions: customers_list: List customers with optional filters.; customer_groups_list: List customer groups.; vendors_list: List vendors with optional filters.; vendor_groups_list: List vendor groups.; items_list: List items with optional filters.; item_groups_list: List item groups.; taxes_list: List tax rates.; dimensions_list: List dimensions.; banks_list: List banks.; accounts_list: List accounts.; projects_list: List projects.; cost_centers_list: List cost centers.; departments_list: List departments.; units_list: List units of measure.; financial_years_list: List financial years.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_read_purchasesMerit Read PurchasesARead-onlyIdempotent
Read-only tool. Read purchase invoices and purchase orders. Actions: invoices_list: List purchase invoices.; invoice_get: Fetch one purchase invoice by id.; orders_list: List purchase orders.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_read_reportsMerit Read ReportsCRead-onlyIdempotent
Read-only tool. Read Merit reports and report continuations. Actions: customer_debts_get: Get customer debts report.; customer_payments_get: Get customer payment report.; more_data_get: Get continuation page for a report.; profit_report_get: Get statement of profit or loss.; balance_report_get: Get statement of financial position.; inventory_report_get: Get inventory report.; sales_report_get: Get sales report.; purchase_report_get: Get purchase report.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_read_salesMerit Read SalesARead-onlyIdempotent
Read-only tool. Read sales invoices, offers, and recurring invoice data. Actions: invoices_list: List sales invoices.; invoice_get: Fetch one sales invoice by id.; invoice_pdf_get: Fetch one sales invoice PDF by id.; offers_list: List sales offers.; offer_get: Fetch one sales offer by id.; recurring_invoices_list: List recurring invoices.; recurring_invoice_get: Fetch one recurring invoice by id.; recurring_invoice_addresses_list: List recurring invoice addresses.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_write_customersMerit Write CustomersARead-only
Preview-only write tool. Does not execute changes; returns intended operation details and a confirmation_code for merit_write_customers_confirm. Create or update customers. Actions: customer_upsert: Create or update a customer.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_write_customers_confirmMerit Write Customers ConfirmADestructive
Confirmed mutating tool. Executes a previously previewed write operation from merit_write_customers when called with confirmation_code and confirmed=true. Create or update customers. Actions: customer_upsert: Create or update a customer.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_write_salesMerit Write SalesARead-only
Preview-only write tool. Does not execute changes; returns intended operation details and a confirmation_code for merit_write_sales_confirm. Create unsent accounting invoices, not unposted drafts. Delivery (email/e-invoice), deletion, and credit invoices are handled manually in Merit and are not exposed by this server. Actions: sales_invoice_create: Create an unsent accounting invoice through Merit v1 /sendinvoice, NOT an unposted draft. Restricted schema: Customer={Id: customer GUID}; DocDate, TransactionDate, DueDate as YYYYMMDD; InvoiceNo (string), CurrencyCode='EUR', PriceInclVat=false, singular InvoiceRow list, TaxAmount, TotalAmount (VAT-exclusive). Optional FComment and HComment text. Each row requires Item={Code, Description, UOMName}, Quantity>0, Price>=0, TaxId GUID, Account. Read items_list first; Code must exactly match an existing non-stock item. The server verifies items again at confirmation and refuses missing, stock, or unrecognized items. Do not supply Item.Type. Use InvoiceRow (singular), not InvoiceRows; UOMName belongs inside Item, not on the row. Resolve company-specific TaxId GUIDs via taxes_list; never invent them. TaxAmount entries are {TaxId, Amount>=0} and must cover exactly the row TaxIds. TotalAmount must be positive and match the sum of row Quantity × Price, rounded per row to cents. Unknown fields are rejected at every level, including Payment, AccountingDoc, DelivNote, discounts, rounding adjustments, and item-creation fields. Negative quantities/prices are not supported. Choose InvoiceNo using the company's numbering convention; no automatic allocation is provided. Confirmation creates a real, unsent accounting invoice in Merit. It can affect the ledger and reports before delivery; this is NOT an unposted draft. Only the preview is non-writing. Review before confirming; send manually in Merit.
Inputs: action (required), id, bank_id, filters, +5 more.
merit_write_sales_confirmMerit Write Sales ConfirmADestructive
Confirmed mutating tool. Executes a previously previewed write operation from merit_write_sales when called with confirmation_code and confirmed=true. Create unsent accounting invoices, not unposted drafts. Delivery (email/e-invoice), deletion, and credit invoices are handled manually in Merit and are not exposed by this server. Actions: sales_invoice_create: Create an unsent accounting invoice through Merit v1 /sendinvoice, NOT an unposted draft. Restricted schema: Customer={Id: customer GUID}; DocDate, TransactionDate, DueDate as YYYYMMDD; InvoiceNo (string), CurrencyCode='EUR', PriceInclVat=false, singular InvoiceRow list, TaxAmount, TotalAmount (VAT-exclusive). Optional FComment and HComment text. Each row requires Item={Code, Description, UOMName}, Quantity>0, Price>=0, TaxId GUID, Account. Read items_list first; Code must exactly match an existing non-stock item. The server verifies items again at confirmation and refuses missing, stock, or unrecognized items. Do not supply Item.Type. Use InvoiceRow (singular), not InvoiceRows; UOMName belongs inside Item, not on the row. Resolve company-specific TaxId GUIDs via taxes_list; never invent them. TaxAmount entries are {TaxId, Amount>=0} and must cover exactly the row TaxIds. TotalAmount must be positive and match the sum of row Quantity × Price, rounded per row to cents. Unknown fields are rejected at every level, including Payment, AccountingDoc, DelivNote, discounts, rounding adjustments, and item-creation fields. Negative quantities/prices are not supported. Choose InvoiceNo using the company's numbering convention; no automatic allocation is provided. Confirmation creates a real, unsent accounting invoice in Merit. It can affect the ledger and reports before delivery; this is NOT an unposted draft. Only the preview is non-writing. Review before confirming; send manually in Merit.
Inputs: action (required), id, bank_id, filters, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Read tools are cleanly partitioned by domain (financial, inventory, master_data, purchases, reports, sales) with little overlap, and the preview/confirm write pairs are clearly distinguished by the _confirm suffix. Only minor conceptual overlap exists between merit_read_financial and merit_read_reports, which both surface monetary data.
Names follow a strong merit_read_<domain> / merit_write_<domain> / merit_write_<domain>_confirm pattern throughout. The lone outlier is get_setup_instructions, which breaks both the merit_ prefix and the verb-noun domain convention.
Eleven tools is well-scoped for an ERP surface, and reads are sensibly aggregated into multi-action domain tools (each carrying many sub-actions) rather than exploding into dozens of endpoints. Every tool earns its place.
Read coverage is broad across financials, inventory, master data, purchases, reports, and sales. However write operations are limited to customer upsert and sales invoice creation, with no vendor/purchase-order/item writes, no update/delete for existing records, and manual handling of delivery and credit notes leaving notable gaps.
Maintenance
Related MCP Connectors
Read Merit Aktiva invoices, customers, vendors, items, payments and reports; create a customer.
Connect Claude or Cursor to books, invoices, bills, payroll, and sealed closes.
Read staff, projects, clients, time, expenses and invoices; create time entries in BigTime.
Bookkeeping for owner-operated businesses. Query transactions, invoices, and reports.
Related MCP Servers
- AlicenseCqualityDmaintenanceConnect to a sales recorder system (or POS, cash register).1711 npm3GPL 3.0
- AlicenseBqualityAmaintenanceEnables interaction with the Estonian e-arveldaja (RIK e-Financials) REST API to manage financial records like invoices and journal entries using natural language. It supports automating purchase invoice entry from PDFs, reconciling bank transactions, and generating financial reports.1301,409 npm39Apache 2.0
- AlicenseNot gradedqualityCmaintenanceExposes ~60 tools for the Merit Aktiva accounting API, covering sales/purchase invoices, payments, customers, vendors, items, general ledger, offers, reference data, and reports with both read and write operations.13 npmMIT
- AlicenseNot gradedqualityDmaintenanceHosted MCP server for Exact Online. Ask questions, pull reports, and prepare bookings you approve first.MIT