Skip to main content
e-conomic is a read + guardrailed write connector, called via 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.
A list result is shaped as { items: [...], pagination: { results, pageSize, skipPages, hasMore } }.
Not every list tool takes all four. list_accounting_years and list_vat_accounts accept only pagesize / skippages (no filter / sort); list_accounting_periods and list_year_account_totals take a required year plus pagesize / skippages; list_account_entries takes accountNumber
  • year + pagesize / skippages / filter but not sort. The single-resource tools (get_*, download_invoice_pdf) take their own required arguments instead.

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 with bookedInvoiceNumber, 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 carries accountNumber, 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’s accountType 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 with fromDate / 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 with productNumber, 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 that create_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_unitsunitNumber 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’s readOnly flag is a hint only; the safety lives in the tool handlers.
  1. Every write is preview-first. The first (unconfirmed) call to any write tool never writes. create_customer and create_draft_invoice build the preview purely locally without calling e-conomic at all; update_customer and duplicate_invoice first 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.
  2. confirm: true is required to apply. In accounting there is no zero-consequence write, so requiresConfirm() is always true with no exceptions. Re-run the identical call with confirm: true to write.
  3. 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.
  4. update_customer is 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.
  5. duplicate_invoice reads 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.
  6. Validation errors surface field-level detail. An e-conomic HTTP 400 is passed through with the rejected field, so the assistant can see exactly what was refused.
This is a designed-in safety default (connector-local logic), not an unbreakable platform gate. See Handlinger & guardrails for the full cross-connector policy.

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)

Write tools change data in e-conomic. Every one is preview-first: without confirm: true you get a WritePreview and no API call is made. Booking a draft and deleting records are not supported.

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.
Requires confirmation: always.

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.
Requires confirmation: always.

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.
Requires confirmation: always. On confirm, e-conomic returns the new 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.
Requires confirmation: always.

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.