tools/call
over POST /economic/mcp. The connector is connected with a static grant token
(see Forbind e-conomic).
Endpoint:
https://mcp.consile.ai/economic/mcp. e-conomic is its own named
connector with only its own tools. Tool names are namespaced economic__<tool>
in Claude/ChatGPT; the bare names are used here for readability.Shared list parameters
The list tools (those returning a collection) accept e-conomic’s pagination, filter and sort parameters:integer
default:"20"
Rows per page. e-conomic max is
1000.integer
default:"0"
0-based page index to skip to.
string
e-conomic filter expression, e.g.
name$like:*acme* or
date$gte:2025-01-01$and:date$lte:2025-12-31.string
Sort expression, e.g.
name (asc) or -date (desc); sortable fields only.{ items: [...], pagination: { results, pageSize, skipPages, hasMore } }.
Receivables & cash-flow
get_invoice_totals
Accounts-receivable summary in one call: drafts vs booked, booked unpaid (split overdue / not overdue) and paid amounts. Arguments: none.list_invoices_overdue
Booked invoices past their due date with an outstanding balance. Arguments: shared list parameters.list_customers
Customers (debtors) with name, currency,balance (outstanding), dueAmount
(overdue), payment terms, group and VAT zone. Arguments: shared list parameters
(use filter to search).
get_customer
One customer by number, including balance and dueAmount.integer
required
The customer (debtor) number.
Invoices
list_booked_invoices
Booked (final, legal) invoices withbookedInvoiceNumber, dates, net/gross/VAT
amounts, remainder (outstanding) and customer. Arguments: shared list
parameters (filter by date range or customer).
get_booked_invoice
One booked invoice including its line items (description, quantity, prices, VAT).integer
required
The booked invoice number.
download_invoice_pdf
Download a booked invoice as a PDF, returned base64-encoded.integer
required
integer
string
application/pdf.string
The PDF bytes, base64-encoded.
list_draft_invoices
Draft (unbooked) invoices with no ledger effect yet. Arguments: shared list parameters.Accounting
list_chart_of_accounts
Chart of accounts with live balances. Each row carriesaccountNumber, name,
accountType, balance and debitCredit. Arguments: shared list parameters.
list_year_account_totals
All-account totals for an accounting year (one row per account). Join each row’saccountType to build P&L / balance-sheet lines.
string
required
Accounting year as e-conomic returns it, e.g.
"2024".integer
default:"20"
integer
default:"0"
get_account_year_total
Balance/movement of one account for a full accounting year. Answers “balance of account X in year Y”.integer
required
Ledger account number, e.g.
1010.string
required
list_accounting_years
Fiscal years withfromDate / toDate and the year string. Arguments:
pagesize / skippages.
list_accounting_periods
Periods of an accounting year (periodNumber, fromDate, toDate). Period
numbers are not necessarily 1-12.
string
required
integer
default:"20"
integer
default:"0"
list_account_entries
Posted general-ledger entries for one account in an accounting year (an account statement). Always scoped by account + year.integer
required
string
required
integer
default:"20"
integer
default:"0"
string
Products & suppliers
list_products
Products withproductNumber, name, salesPrice, costPrice and group.
Arguments: shared list parameters.
list_suppliers
Suppliers (creditors) with number, name, currency, payment terms, VAT zone and group, for accounts-payable / spend questions. Arguments: shared list parameters.Lookups (reference numbers for writes)
Most of these return reference numbers thatcreate_customer, update_customer
and create_draft_invoice take, and the connector never auto-selects them. They are
not all required, and not all feed a write: a customer or invoice write takes its VAT
zone from list_vat_zones (vatZoneNumber), whereas list_vat_accounts is
interpretive only (VAT codes and rates, consumed by no write tool), and
list_units’ unitNumber is optional on invoice lines.
list_vat_accounts
VAT codes with rates (vatCode, name, ratePercentage, account, vatType).
Arguments: pagesize / skippages.
list_customer_groups
Customer (debtor) groups.customerGroupNumber is required to create or update a
customer. Arguments: shared list parameters.
list_payment_terms
Payment terms.paymentTermsNumber is required for a customer and a draft invoice.
Arguments: shared list parameters.
list_vat_zones
VAT zones (domestic / EU / world).vatZoneNumber is required for a customer and
for an invoice recipient. Arguments: shared list parameters.
list_layouts
Invoice / document layouts.layoutNumber is required for a customer and a draft
invoice. Arguments: shared list parameters.
list_units
Units (e.g. hours or pieces) for use on invoice lines. Arguments: shared list parameters.Support
validate_connection
Connectivity/credential health check: an authenticated request to the API root. Use it after connecting and to detect a revoked grant. Arguments: none.Write safety: guardrail model
The four write tools share a connector-local guardrail. The platform’sreadOnly
flag is a hint only; the safety lives in the tool handlers.
- Every write is preview-first. The first (unconfirmed) call to any write tool
never writes.
create_customerandcreate_draft_invoicebuild the preview purely locally without calling e-conomic at all;update_customerandduplicate_invoicefirst issue a live GET to read the current record (the PUT merge / the copy source) before returning the preview, so a dry-run can surface a real upstream read error. Either way you get a WritePreview dry-run of the exact request (method + path + body) and nothing is written. confirm: trueis required to apply. In accounting there is no zero-consequence write, sorequiresConfirm()is alwaystruewith no exceptions. Re-run the identical call withconfirm: trueto write.- No booking, no deletion. There is deliberately no book-invoice tool and no delete tool (booking posts to the ledger, which is legal and irreversible; deletion destroys data). The client has no DELETE method at all.
update_customeris a full-record PUT. e-conomic has no PATCH, so the tool reads the current customer, merges only the fields you supplied, strips server-owned fields (balance,dueAmount,lastUpdated, …) and writes the whole record back.duplicate_invoicereads then re-creates. e-conomic has no native copy endpoint, so the tool reads the source invoice, strips id/amount/booking fields and creates a fresh draft; e-conomic recalculates the amounts.- Validation errors surface field-level detail. An e-conomic
HTTP 400is passed through with the rejected field, so the assistant can see exactly what was refused.
WritePreview shape
When a write is not confirmed (confirm omitted or false), the tool returns this
instead of calling e-conomic:
Write tools (4 guardrailed)
create_customer
Create a new customer (debtor). Requires a name, a currency and the four reference numbers (discover them via the lookup tools).string
required
Customer (company) name.
string
required
ISO 4217 code, e.g.
"DKK".integer
required
From
list_customer_groups.integer
required
From
list_payment_terms.integer
required
From
list_vat_zones.integer
required
From
list_layouts.integer
Optional; e-conomic auto-assigns one if omitted.
string
Email address (validated as a single email).
string
string
string
string
string
string
CVR / company registration number.
string
string
boolean
Set
true to apply; omit for a dry-run preview.update_customer
Update an existing customer. e-conomic supports only full replacement (PUT), so the tool reads the current customer, merges the fields you pass and writes the whole record back; fields you omit are preserved.integer
required
The customer to update.
string
string
string
string
string
string
string
string
string
string
integer
integer
integer
integer
boolean
Set
true to apply; omit for a dry-run preview.create_draft_invoice
Create a DRAFT (unbooked) invoice with no ledger effect. Booking it is deliberately not supported.integer
required
The customer to invoice.
string
required
ISO 4217 code.
integer
required
From
list_payment_terms.integer
required
From
list_layouts.string
required
Invoice recipient name.
integer
required
Recipient VAT zone (from
list_vat_zones).object[]
required
At least one line. Each:
productNumber (from list_products), quantity,
unitNetPrice, description?, unitNumber? (from list_units),
discountPercentage?.string
Invoice date
YYYY-MM-DD (defaults to today).string
Due date
YYYY-MM-DD (required if the payment terms type is dueDate).string
string
string
boolean
Set
true to apply; omit for a dry-run preview.draftInvoiceNumber and the calculated net/gross/VAT amounts.
duplicate_invoice
Create a new DRAFT invoice by copying an existing booked or draft invoice, then optionally overriding the customer, dates, notes or replacing the lines. Read-only id/amount/booking fields are stripped; e-conomic recalculates the amounts.string
required
booked or draft: where to copy from.integer
required
The
bookedInvoiceNumber or draftInvoiceNumber to copy from.integer
Re-target the copy to a different customer.
string
Override the invoice date (
YYYY-MM-DD).string
Override the due date (
YYYY-MM-DD).string
string
string
object[]
If set, REPLACE the copied lines entirely with these (same line shape as
create_draft_invoice).boolean
Set
true to apply; omit for a dry-run preview.Code examples
Each upstream call has a 15-second timeout; the client has no built-in
retry/backoff or rate-limit handling. A revoked or invalid grant token returns a
“reconnect required” error (the upstream responded
401/403; for writes a 403
can also mean the app role lacks write permission). See
Errors & limits.