Model Context Protocol (MCP) server for freee API integration
Conecto Bookkeeping is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Double-entry bookkeeping with bank matching, reports and DATEV export. Pay per action.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http conecto-bookkeeping-mcp https://api.conecto.chat/mcp/books
# 2 — ask your agent for something these tools do
# books_setup, books_get, books_list_accounts and 58 more
Its address takes API_KEY (Your Conecto key, sent as Bearer conecto_sk_... One POST to https://api.conecto.chat/v1/signup returns a key with $1 of free credit. Chat apps that sign in…) in the Authorization header: add it to the entry your client keeps for it.
Conecto Bookkeeping costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it. Its publisher asks you to sign in with OAuth: run /mcp in Claude Code and pick this server, and it opens a browser for that once.
claude mcp add --scope user --transport http conecto-bookkeeping-mcp https://api.conecto.chat/mcp/booksReconnect, or start a new session, and the tools appear in the model’s tool list.
It reaches a system of yours, so it needs your own credential rather than the publisher’s: Authorization header — Your Conecto key, sent as Bearer conecto_sk_... One POST to https://api.conecto.chat/v1/signup returns a key with $1 of free credit. Chat apps that sign in with OAuth add https://api.conecto.chat/v1/mcp instead: one connection for every area.. You set it in your own client’s config, on your machine — this marketplace never holds it.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
61 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Start the business's double-entry books, or change their settings. The first call needs currency (the base currency of every report; it can't change once something is booked) and makes the chart: "starter" (cash, bank, receivables, tax, equity, sales and common costs, numbered 1000-8000) or "minimal" (only the eight accounts the books post to on their own). The books start on start_date (default:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| currency | string | no | ISO 4217, e.g. "EUR". |
| start_date | string | no | The first day the books cover. |
| chart | string | no | Only on the first call. |
| fiscal_year_start | integer | no | The month the fiscal year starts. Default 1 (January). |
| post_invoices | boolean | no | — |
| payment_accounts | object | no | Payment method -> account code, e.g. {"card": "1020"}; null goes back to the default. Methods: bank_transfer, card, cash, check, online, other. |
| rates | object | no | Currency -> one unit of it in the base currency, e.g. {"AED": "0.2486"}; null removes one. Used instead of the ECB's rate. |
The base currency, start date, fiscal year, locked period, which accounts hold which role, where invoice payments land, the taxes, how many entries there are and how many bank lines wait to be matched. Free.
No parameter schema on file.
Every account with its code, type, role and balance on as_of (default today). Balance sheet accounts show their balance; income and expense accounts show the fiscal year so far. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| as_of | string | no | YYYY-MM-DD |
| include_archived | boolean | no | — |
Add accounts or change them, matched by code: name, type (only while unused), description, a new code, archived (only with no balance and no role), a bank account's IBAN and BIC, and role. Roles are the accounts the books post to on their own: bank, cash, receivable, inventory, input_tax, sales_tax, payable, retained_earnings, opening_balances, sales, cost_of_sales, exchange, depreciation, accumul
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accounts | array | yes | — |
A tax rate the books use (VAT, GST, sales tax), matched by name. Tax charged on sales is owed on sales_account (default: the sales tax account); tax paid on purchases is reclaimed on purchase_account (default: the tax to reclaim account; null when it can't be reclaimed, and it stays part of the cost). A rate in use can't change: add a new tax and archive the old one. Invoices make the taxes they n
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| rate | number/string | no | Percent, e.g. 19. |
| sales_account | string | no | An account code from the chart, e.g. "6600". |
| purchase_account | string/null | no | — |
| archived | boolean | no | — |
| new_name | string | no | — |
| kind | string | no | For a new tax: VAT the business owes itself, or import VAT. |
Book an entry: two or more lines, each a debit or a credit on an account, which must balance. For anything the other tools don't cover: opening balances, a loan, depreciation, owner's drawings, moving money between accounts, a correction. Entries are never edited; undo one with books_reverse_entry. Lines can carry a tax so the tax report counts them. Costs $0.01 per call; nothing if it fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | yes | YYYY-MM-DD |
| memo | string | no | — |
| reference | string | no | — |
| party | string | no | Who paid or was paid. |
| lines | array | yes | — |
| currency | string | no | When it is not the base currency, e.g. "USD". The rate is then rate, a standing rate, or the European Central Bank's for the date. |
| rate | number/string | no | One unit of currency in the base currency, e.g. "0.9241". Default: a standing rate, else the European Central Bank's reference rate for the date. |
| receipt_file_id | string | no | A file_id from the file store. |
Book a cost the business paid: account is what it was for (an expense, or an asset like equipment), paid_from where the money came from (default the bank account; a card, cash or the owner's account). paid_by instead (an email) makes it an expense claim, like Xero's: someone paid with their own money and is paid back with books_repay_claims. With a tax, the tax to reclaim is split off (amount incl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | yes | YYYY-MM-DD |
| amount | number/string | yes | e.g. "119.00". |
| account | string | yes | An account code from the chart, e.g. "6600". |
| paid_from | string | no | An account code from the chart, e.g. "6600". |
| tax | string | no | A tax by name (books_get lists them), e.g. "VAT 19%". |
| amount_includes_tax | boolean | no | — |
| vendor | string | no | — |
| memo | string | no | — |
| reference | string | no | e.g. the receipt number. |
| receipt_file_id | string | no | A file_id from the file store. |
| currency | string | no | When it is not the base currency, e.g. "USD". The rate is then rate, a standing rate, or the European Central Bank's for the date. |
| rate | number/string | no | One unit of currency in the base currency, e.g. "0.9241". Default: a standing rate, else the European Central Bank's reference rate for the date. |
| tracking | object | no | Tracking options by category, e.g. {"Department": "Service"} (books_list_tracking). |
| paid_by | string | no | The email of whoever paid it privately and is paid back: an expense claim. Not with paid_from. |
| paid_by_name | string | no | — |
Pay back what someone paid for the business with their own money (expense claims, from books_record_expense with paid_by), like Xero's: all their open claims in one currency, or the claims named, in one entry from paid_from (default the bank account) against Expense claims to repay. sepa_file: true adds a SEPA credit transfer file to their iban, to upload to the bank. Costs $0.01 per call; nothing
| Parameter | Type | Required | Notes |
|---|---|---|---|
| person | string | yes | Their email, as paid_by had it. |
| claims | array | no | Only these claims (claim_id). |
| currency | string | no | When it is not the base currency, e.g. "USD". The rate is then rate, a standing rate, or the European Central Bank's for the date. |
| date | string | no | When it was paid. Default today. |
| paid_from | string | no | An account code from the chart, e.g. "6600". |
| reference | string | no | — |
| sepa_file | boolean | no | — |
| iban | string | no | — |
| bic | string | no | — |
Expense claims: what people paid for the business with their own money, still to repay (the default), repaid, void or all, newest first, with what each person is owed per currency; person keeps to one. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| person | string | no | — |
| status | string | no | — |
| limit | integer | no | — |
| offset | integer | no | — |
Undo an entry by booking its mirror image (entries are never edited or deleted). It is dated like the entry, or today when that period is locked, unless date is given. Bank lines matched to the entry wait to be matched again. Entries posted from invoices follow the invoice: void it, or record a refund. Costs $0.01 per call; nothing if it fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entry | integer | yes | The entry number. |
| date | string | no | YYYY-MM-DD |
| memo | string | no | — |
Attach a receipt or invoice from the file store to an entry that has none. It stays with the books: the file can't be deleted while the entry has it. Costs $0.01 per call; nothing if it fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entry | integer | yes | The entry number. |
| file_id | string | yes | A file_id from the file store. |
Entries newest first, each with its lines, filtered by dates, an account, where it came from (manual, expense, bank, invoice, invoice_payment, invoice_void, reversal) or text in the memo, reference or party. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | YYYY-MM-DD |
| to | string | no | YYYY-MM-DD |
| account | string | no | An account code from the chart, e.g. "6600". |
| source | string | no | — |
| text | string | no | — |
| entry | integer | no | The entry number. |
| limit | integer | no | — |
| offset | integer | no | — |
Read a bank statement from the file store onto a bank account (default the bank account): CSV as the bank exports it, CAMT.053 (.052, .054) or OFX/QFX. CSV columns are found by their headers in several languages; when they aren't, name them with columns. Lines imported before are skipped, so overlapping statements are fine. Each line then waits in books_bank_lines to be matched. Charged per line a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file_id | string | yes | A file_id from the file store. |
| account | string | no | An account code from the chart, e.g. "6600". |
| columns | object | no | CSV header names, e.g. {"date": "Buchungstag", "amount": "Betrag", "description": "Verwendungszweck"}. money_in and money_out are for files with two amount columns; direction for a debit/credit marker |
| date_format | string | no | — |
| decimal | string | no | The CSV's decimal mark. |
| currency | string | no | The statement's currency when the file doesn't say. Default the base currency. |
| max_lines | integer | no | The most lines this call may add (and hold the price for). |
Imported bank lines, by default those still to match, oldest first, each with up to three suggestions of what it was: entries already booked (same amount, close in date), an open invoice it pays (money in) or an open supplier bill it pays (money out), or the account earlier lines from the same party went to. Suggestions are plain rules; you decide, with books_match_bank_lines (pass a suggestion's
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account | string | no | An account code from the chart, e.g. "6600". |
| status | string | no | — |
| from | string | no | YYYY-MM-DD |
| to | string | no | YYYY-MM-DD |
| limit | integer | no | — |
| offset | integer | no | — |
Say what bank lines were, up to 100 at a time, each one of: entries (entry numbers already booked whose lines on the bank account add up to the line), invoices (the open invoices money in pays: their payments are recorded and posted, the amount spread in the order given unless amounts are given), bills (the open supplier bills money out pays, the same way), account (book it there now, with an opti
| Parameter | Type | Required | Notes |
|---|---|---|---|
| matches | array | yes | — |
A bank rule, like Xero's: which new bank lines it matches and how to book them, so lines that come every month (bank fees, rent, the phone bill) book themselves. when: conditions on the counterparty, description or reference (contains, equals, starts_with, ends_with; any case), all of them or any (match). Narrow it with direction (in, out), amount_min and amount_max (the line's size, no sign) and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The rule's name, e.g. "Bank fees". |
| new_name | string | no | — |
| when | array | no | — |
| match | string | no | — |
| direction | string | no | — |
| amount_min | number/string | no | — |
| amount_max | number/string | no | — |
| bank_account | string | no | Only lines on this bank account (its code); "" for any. |
| account | string | no | An account code from the chart, e.g. "6600". |
| tax | string | no | A tax by name (books_get lists them), e.g. "VAT 19%". |
| tracking | object | no | Tracking options by category, e.g. {"Department": "Service"} (books_list_tracking). |
| split | array | no | — |
| description | string | no | The memo of the entries it books. Default: the line's own text. |
| position | integer | no | — |
The bank rules, in the order they are tried: their conditions, where they book, and how often and when each was last used. Free.
No parameter schema on file.
Delete a bank rule. What it booked stays booked. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The rule's name, e.g. "Bank fees". |
Book every new bank line a rule matches, oldest first, each by the first rule that matches (up to limit), on one bank account or all. Run it after books_import_bank. Lines no rule matches wait for books_match_bank_lines; a line the books can't take (a locked month) is listed under skipped with why. $0.02 per line booked, as matching it by hand. Costs $0.02 per bank line booked; nothing if none are
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bank_account | string | no | Only lines on this bank account (its code). |
| limit | integer | no | — |
A tracking category, like Xero's: a department, a region or a project line, with its options. Up to two at a time. Any line can then carry one option of each (tracking: {"Department": "Service"}): journal entry lines, expenses, bank lines booked to an account, invoice and bill lines; profit and loss splits by a category with books_report by_tracking, or keeps to one option with tracking. Matched b
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| new_name | string | no | — |
| options | array | no | — |
| rename | array | no | — |
| archive | array | no | — |
| archived | boolean | no | Archive (or bring back) the whole category. |
The tracking categories with their options, archived ones marked. Free.
No parameter schema on file.
A budget, like Xero's budget manager: an amount per income or expense account for each month from start (12 months unless months says otherwise). Each line gives amounts (one per month), monthly (the same every month) or yearly (spread evenly); a line for an account already in it replaces that line, and remove takes one out. Hold it against what happened with books_report budget_variance. Matched
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The budget's name, e.g. "2026". |
| new_name | string | no | — |
| start | string | no | Its first month, like 2026-01. |
| months | integer | no | — |
| lines | array | no | — |
The budgets with their months and every line's amounts and total. Free.
No parameter schema on file.
Delete a budget. The books don't change. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The budget's name, e.g. "2026". |
Put an asset the business bought in the register, like Xero's fixed assets: a van, a machine, a laptop, with its cost, purchase date and the asset account its purchase was booked to (registering books nothing). method: straight_line over its life down to residual, declining_balance at rate_percent of its book value at the start of each fiscal year, full (all of it in the month it starts, for somet
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset | string | no | The asset to change, by its number. Leave out to register one. |
| number | string | no | A new asset's number. Default: the next FA-0001. |
| name | string | no | — |
| purchase_date | string | no | YYYY-MM-DD |
| cost | number/string | no | What it cost before tax, in the base currency. |
| account | string | no | The asset account its purchase was booked to, e.g. "1500". |
| method | string | no | — |
| averaging | string | no | — |
| life_years | number | no | — |
| life_months | integer | no | — |
| rate_percent | number/string | no | Declining balance: the share of its book value a year. |
| residual | number/string | no | What it is worth at the end of its life. Default 0. |
| depreciation_start | string | no | When it was first used, if after the purchase date. |
| opening_accumulated | number/string | no | Depreciation booked before the books started. |
| expense_account | string | no | An account code from the chart, e.g. "6600". |
| accumulated_account | string | no | An account code from the chart, e.g. "6600". |
| tracking | object | no | Tracking options by category, e.g. {"Department": "Service"} (books_list_tracking). |
| description | string | no | — |
| serial_number | string | no | — |
| warranty_until | string | no | YYYY-MM-DD, "" for none. |
The asset register: each asset's cost, accumulated depreciation, book value, how it depreciates and through which month that is booked, with totals. due: what books_depreciate would book through the end of last month. check: the register held against the books per account, like Xero's fixed asset reconciliation; a difference is a purchase not registered yet, or an asset booked out another way. ass
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset | string | no | The asset's number, like "FA-0001" (books_list_assets). |
| status | string | no | — |
| limit | integer | no | — |
| offset | integer | no | — |
Book the depreciation of every registered asset through a month's end (default: the end of last month), like Xero's run depreciation: one entry per month, dated its last day, from the month after the last one booked, so running it again books nothing twice. Months in a locked period are refused; catch_up: true books them in the first open month instead. undo_after books the opposite of what was bo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| through | string | no | YYYY-MM-DD |
| catch_up | boolean | no | — |
| undo_after | string | no | Undo the months after this date. |
| asset | string | no | Only this asset. |
Take an asset out of the books, sold or written off, like Xero's dispose. Its depreciation is booked through the month it goes first (to the day with actual_days; what was booked for later months is undone), then one entry takes its cost and accumulated depreciation out, books price to paid_to and the difference as a gain or a loss on gain_account (made as 4950 Gains and losses on assets sold when
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset | string | yes | The asset's number, like "FA-0001" (books_list_assets). |
| date | string | no | YYYY-MM-DD |
| price | number/string | no | What it sold for before tax. Default 0, a write-off. |
| paid_to | string | no | Where the price went, e.g. "1010". |
| gain_account | string | no | An account code from the chart, e.g. "6600". |
| catch_up | boolean | no | — |
| undo | boolean | no | Bring a sold or written off asset back. |
Take an asset registered by mistake out of the register. Only while none of its depreciation is booked and it is not sold or written off: else undo its depreciation first (books_depreciate undo_after with asset). The books don't change. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset | string | yes | The asset's number, like "FA-0001" (books_list_assets). |
A report in the base currency. profit_and_loss and tax cover from-to (default: this fiscal year so far); balance_sheet and trial_balance are as of to (default today); general_ledger lists each account's lines from-to with running balances (one account, or all, paged); oss is a quarter's sales to consumers in other EU countries for the One Stop Shop return, per country and VAT rate in euros (quarte
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report | string | yes | — |
| from | string | no | YYYY-MM-DD |
| to | string | no | YYYY-MM-DD |
| account | string | no | An account code from the chart, e.g. "6600". |
| compare | string | no | For profit_and_loss: add columns for the same days periods months, quarters or years before. |
| periods | integer | no | With compare; default 1. |
| budget | string | no | For budget_variance: the budget's name (books_list_budgets). |
| by_tracking | string | no | For profit_and_loss: a tracking category to split by, one column per option and one for what is not tracked. |
| tracking | object | no | For profit_and_loss: only lines with these options, e.g. {"Department": "Service"}. |
| quarter | string | no | For oss: like 2026-Q3. |
| country | string | no | For vat_return: whose form. Default the business's country. |
| days | integer | no | For cash_forecast: how many days ahead. |
| limit | integer | no | — |
| offset | integer | no | — |
Lock the books through a date (a closed month, a filed tax return): nothing new can be booked on or before it, by any tool or invoice. null unlocks. Every change is kept in the books' history. Costs $0.001 per call; nothing if it fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| through | string/null | yes | — |
| reason | string | no | — |
Close a fiscal year once its accounts and tax returns are final: nothing can be booked on or before its last day again, by any tool, invoice or unlock, and every earlier year is closed with it. It can't be undone; a correction found later is booked in the open year. Monthly work uses books_lock instead. Costs $0.001 per call; nothing if it fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year_end | string | yes | The fiscal year's last day, like 2025-12-31. |
| reason | string | no | — |
A file in the file store, with a download link: journal (a CSV of every line of every entry from-to, for an accountant or another program), accounts (the chart with balances on to) or datev (a DATEV Buchungsstapel for a German tax adviser: one fiscal year, from-to, default the year so far; needs the datev settings once) or fec (the French Fichier des Écritures Comptables for a tax audit: the fisca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| what | string | yes | — |
| from | string | no | YYYY-MM-DD |
| to | string | no | YYYY-MM-DD |
| datev | object | no | For what: datev, kept for the next export. adviser (Beraternummer) and client (Mandantennummer) from the tax adviser; chart "03" (SKR03) or "04" (SKR04); account_length (4 to 8, default 4); accounts: |
| fec | object | no | For what: fec, kept for the next export. siren (9 digits; read from a French VAT ID when left out); accounts: each account code used to its plan comptable général number, like {"4000": "706000", "1010 |
The account balance, how much of it is credit bought (AI visibility and the phone run only on that) and how much free and bonus credit, what running calls are holding, this key's daily budget, the auto-reload state, and how much of this month's free reads and downloads is used. Free.
No parameter schema on file.
One call by id: its status (queued, running, succeeded, failed), cost and result. Use it to poll a background call until it finishes. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| call_id | string | yes | — |
Recent calls on this account, newest first, optionally only failed or succeeded ones, or one area's. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | — |
| area | string | no | — |
| limit | integer | no | — |
Refund a top-up paid in the last 24 hours that none of has been used yet: its credit, with the first top-up's bonus, leaves the balance, and the card gets the credit back with its tax. The service fee is kept. Without topup_id, the newest top-up (GET /v1/topups lists them with their ids). Free. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topup_id | integer | no | — |
When the account was made without the owner's email: send that person a link to confirm they own it. Once they confirm, the owner gets the account's warnings and approval requests, and only the owner raises limits. Nothing changes until they open the link. Free. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — |
A link that signs the business owner into their Conecto page, with no password: the balance, adding credit, auto-reload, limits, what the bots did, people, rentals and keys. page opens it where the owner is needed, like people for a role only the owner gives, or settings for joining by email domain. It works once, within 30 minutes; hand it to the owner. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | string | no | — |
A one-time link to a page showing one area as it is when the page opens, for when the person you work for asks to see it themselves: a recruiter looks at the applicants, a bookkeeper at what is due. Do the work and answer with the area's own tools first; a link never replaces that. When an answer would be a long list they would rather look through, offer a link and make it once they say yes. The p
| Parameter | Type | Required | Notes |
|---|---|---|---|
| area | string | yes | — |
The limits a business can ask Conecto to raise (calls a minute, new email addresses a day, phone numbers and more): each one's standard and current value and the most that can be asked for, and the business's requests with their answers. Free.
No parameter schema on file.
Ask Conecto to raise one of the business's limits: which one (or other, saying which), the number it needs, and why, in 40 to 2,000 characters. Conecto reviews it and approves (maybe with less) or declines; the answer comes as the account.limit_request_answered event and by email to the owner, who is also told now. For an account that has topped up; one request per limit at a time, five in 30 days
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | string | yes | The limit, as account_get_limits names it, or other. |
| amount | integer | yes | The number the business needs, in the limit's unit (5000 calls a minute). |
| reason | string | yes | What the business does that needs it, and why the current limit is too low. |
| other | string | no | With limit other: which limit, like "rows in one table". |
What happened in this account that someone outside the bot did, oldest first: applications, bookings, form responses, signatures, replies, emails received, goals reached on the website; and the custom events bots sent with account_emit_event. Kept 30 days. Poll with after = the last event_id you saw. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| after | integer | no | Only events after this event_id. |
| kinds | array | no | Event names or areas ("hiring.*"); all when left out. |
| limit | integer | no | — |
Send an event you name, custom.<name> (custom.lead_qualified, custom.order_shipped), to every channel subscribed to it (notify_subscribe with "custom.*" or its name: Slack, Teams, a webhook to Zapier, Make, n8n or the business's own systems) and to account_events, where another team's bot can pick it up. data is any JSON object (up to 10 KB); sent_by is added with this bot's name and team. $0.005
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | custom. and a name of lowercase letters, digits, dots, dashes and _. |
| title | string | yes | — |
| text | string | no | — |
| data | object | no | — |
| link | string | no | — |
One search over what this account holds: what its files say (PDFs, Word, Excel, PowerPoint, text), table rows, help center articles, CRM contacts, companies and deals, emails, tickets, quotes and invoices, book entries, stock items and project tasks. Every word must appear (any case); titles rank first, then the newest. Each result says which tool opens it. Narrow it with areas. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| areas | array | no | — |
| limit | integer | no | — |
The name, logo, colour and footer line the business's emails and published pages carry. Free.
No parameter schema on file.
The business's name as the sender, its logo (a PNG, JPEG, WebP or GIF from the file store), its colour and a footer line (an address, a legal line), on every email to its customers (bookings, applications, tests, signatures, invoices, newsletters, replies) and on its published pages (forms, booking, careers, newsletters, status, views). Only what you pass changes; an empty string clears it. Mail f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sender_name | string | no | — |
| logo_file_id | string | no | — |
| remove_logo | boolean | no | — |
| colour | string | no | Hex, like #1a73e8; empty for none. |
| footer | string | no | — |
Every email Conecto sends to the business's customers (bookings, applications, interviews, tests, signatures, invoices and quotes, newsletter sign-ups), with when it goes out and its subject, headline and opening words as they are now, and the {variables} each can use. Free.
No parameter schema on file.
Change an email's subject, headline or opening words in the business's own voice, with {variables} from account_list_email_templates (like {name} or {when}). The facts under them (times, places, amounts, links and buttons) stay as they are. Only what you pass changes; an empty string brings back the original words. Plain text; a blank line starts a new paragraph. Costs $0.001 per call; nothing if
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Like booking_booked or invoice_sent. | |
| subject | string | no | — |
| headline | string | no | — |
| opening | string | no | — |
Everything this account holds, in ZIP files of up to 24 MB saved to its file store: every record of every area as JSON Lines, and the stored files themselves, with a README saying what is where. Credentials are left out. Runs in the background: poll the call with account_get_call; the result has a download link for each part. The parts open only for this key and for the owner's and admins' own key
No parameter schema on file.
The account's admin and security actions, newest first: keys made and revoked, limits and auto-reload, the owner's sign-ins, connectors, exports, vault reads and writes, credentials set and everything deleted. Ordinary work is in the call log (account_list_calls). verify: true also checks the hash chain, which breaks where an entry was changed or removed. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | no | Only actions starting with this, like "key." or "tool.vault_". |
| since | string | no | — |
| limit | integer | no | — |
| verify | boolean | no | — |
A department, location or project group of the account, like Support, Finance or the Hamburg shop. Its keys (POST /v1/keys with "team") can only work in its areas, only read when read_only is on, and spend against its budget (monthly_budget_usd per budget_period: a month, a fiscal quarter or year, or a project total): a hard budget refuses the call that would pass it, a soft one only warns. At ale
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| new_name | string | no | Renames the team; its keys, spend and budget stay with it. |
| areas | array/null | no | The areas its keys may work in (account tools always); null for every area. |
| read_only | boolean | no | Its keys only read, and get links that act for whoever opens them as "[redacted]". |
| monthly_budget_usd | number/null | no | null counts the spend without a cap. |
| budget | string | no | hard refuses calls past the budget; soft only warns. |
| alert_percent | integer | no | — |
| erp_code | string/null | no | — |
| drafts_only | boolean | no | Every write of its keys waits for a person, and they get links that act for whoever opens them as "[redacted]". |
| mailboxes | array/null | no | The Microsoft 365 or Google mailboxes its keys may act as; null for every mailbox the connection lists. |
| budget_period | string | no | What the budget is for: a month, a quarter or a year of the account's fiscal calendar, or a project total until budget_ends_on. |
| budget_ends_on | string/null | no | The last day of a project budget, like 2026-12-31. |
| sees_sensitive | boolean | no | false hides suppliers' bank details and HR notes and contracts from its keys; only the owner turns it on. |
The account's teams, the company-wide one first: each with its areas, whether it only reads, its budget (hard or soft, and its period) and alert line, this period's spend, its ERP code, whether it is paused, its keys, and its people with who manages it. A person's own assistant works within their teams. Free.
No parameter schema on file.
Stops every key of a team at once, this one too if it is the team's: their calls are refused until the owner starts the team again on their account page. For a bot that misbehaves or a team that spends too fast. Free. Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| team | string | yes | — |
Move a form, a meeting type, a job, an inbox, a phone number, a newsletter, the website chat, a rental, a pipeline, a table or a website to a team. What happens through it is charged to that team from now on (a form's responses, a number's calls, an inbox's tickets), and its rental moves with it. Something a bot makes already belongs to the bot's team. Only a key of the company-wide team without l
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | — |
| id | string | no | Its id, slug, name, address or number; not needed for the chat. |
| team | string | yes | — |
Make a tool wait for a person: every call of it, those whose argument is over a number (like invoices_create_credit_note when amount is over 500), or those whose argument is one of some values (like connect_call when method is POST, PUT, PATCH or DELETE). A held call answers approval_required with an approval_id and asks the approver; when they approve, call again with the same arguments, once (a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tool | string | yes | — |
| argument | string | no | An argument of the tool (or total, for purchasing_create_bill). |
| over | number | no | Calls with argument over this are held. |
| values | array | no | Calls with argument equal to one of these (any case) are held. |
| approver_email | string | no | — |
| approver_channel | string | no | A saved notify channel. |
| approver_team | string | no | A team (account_list_teams). |
| approvers | string | no | Who in approver_team approves. |
| two_people_over | number | no | Calls whose argument is over this need two people; higher than over. |
The tools that wait for a person's approval, with their thresholds and approvers. Free.
No parameter schema on file.
Every record this account holds about one person, by their email address or phone number, across every area: CRM, chats, emails, tickets, forms, bookings, calls, applications, invoices, orders, newsletters, HR and the call log, with their chats and CRM history. For a person who asks what the business keeps about them (GDPR Art. 15). Shows each kind with its count and ids; account_export_person giv
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | no | The person's email address. | |
| phone | string | no | Their phone number in international format, like +1 503 555 0145. |
Everything account_find_person finds about one person in one ZIP in the file store: their records as JSON Lines (credentials left out) and the files those records point to, like a CV. Give the person the download link when they ask for a copy of their data (GDPR Art. 15 and 20), once you know it is them. The ZIP opens only for this key and for the owner's and admins' own keys that neither only rea
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | no | The person's email address. | |
| phone | string | no | Their phone number in international format, like +1 503 555 0145. |
Erases one person across every area when they ask (GDPR Art. 17), once you know it is them (they wrote from that address, or confirmed it). Their CRM contact, chat visitor, past meetings and calls are anonymised, so deals stay without them, and a meeting they were only a guest at drops them; their chats, CRM history, form and routing form answers, job applications with the CV, newsletter subscript
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | no | The person's email address. | |
| phone | string | no | Their phone number in international format, like +1 503 555 0145. |
| correspondence | boolean | no | Also delete their emails and tickets, when no law requires keeping them. |
Where each area's data is stored and processed: the company that runs each place, the country or region, and what it holds. Every area keeps its records in the database and runs on Conecto's servers; some also use a service named here (email, phone, PDFs, search). For the business's records of processing and its transfer assessments (GDPR Art. 30 and 44). Free.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| areas | array | no | Areas to show, like ["email", "phone"]; all when left out. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Conecto Bookkeeping or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| books_setup | state-write | state-write: declares readOnlyHint: false |
| books_get | no tags | |
| books_list_accounts | no tags | |
| books_save_accounts | state-write | state-write: declares readOnlyHint: false |
| books_save_tax | state-write | state-write: declares readOnlyHint: false |
| books_record_entry | state-write | state-write: declares readOnlyHint: false |
| books_record_expense | state-write | state-write: declares readOnlyHint: false |
| books_repay_claims | state-write | state-write: declares readOnlyHint: false |
| books_list_claims | no tags | |
| books_reverse_entry | state-write | state-write: declares readOnlyHint: false |
| books_attach_receipt | state-write | state-write: declares readOnlyHint: false |
| books_list_entries | no tags | |
| books_import_bank | state-write | state-write: declares readOnlyHint: false |
| books_bank_lines | no tags | |
| books_match_bank_lines | state-write | state-write: declares readOnlyHint: false |
| books_save_bank_rule | state-write | state-write: declares readOnlyHint: false |
| books_list_bank_rules | no tags | |
| books_delete_bank_rule | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| books_apply_bank_rules | state-write | state-write: declares readOnlyHint: false |
| books_save_tracking | state-write | state-write: declares readOnlyHint: false |
| books_list_tracking | no tags | |
| books_save_budget | state-write | state-write: declares readOnlyHint: false |
| books_list_budgets | no tags | |
| books_delete_budget | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| books_save_asset | state-write | state-write: declares readOnlyHint: false |
| books_list_assets | no tags | |
| books_depreciate | state-write | state-write: declares readOnlyHint: false |
| books_dispose_asset | state-write | state-write: declares readOnlyHint: false |
| books_delete_asset | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| books_report | no tags | |
| books_lock | state-write | state-write: declares readOnlyHint: false |
| books_close_year | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| books_export | untrusted-inputstate-write | untrusted-input: keyword "download"; state-write: declares readOnlyHint: false |
| account_balance | no tags | |
| account_get_call | no tags | |
| account_list_calls | no tags | |
| account_refund_topup | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| account_set_owner_email | state-write | state-write: declares readOnlyHint: false |
| account_owner_link | no tags | |
| account_dashboard_link | no tags | |
| account_get_limits | no tags | |
| account_request_limit | state-write | state-write: declares readOnlyHint: false |
| account_events | no tags | |
| account_emit_event | external-sinkstate-write | external-sink: keyword "webhook"; state-write: declares readOnlyHint: false |
| account_search | no tags | |
| account_get_brand | no tags | |
| account_set_brand | state-write | state-write: declares readOnlyHint: false |
| account_list_email_templates | no tags | |
| account_set_email_template | state-write | state-write: declares readOnlyHint: false |
| account_export_all | untrusted-inputstate-write | untrusted-input: keyword "download"; state-write: declares readOnlyHint: false |
| account_audit_log | no tags | |
| account_save_team | state-write | state-write: declares readOnlyHint: false |
| account_list_teams | no tags | |
| account_pause_team | state-write | state-write: declares readOnlyHint: false |
| account_assign_team | state-write | state-write: declares readOnlyHint: false |
| account_add_approval_rule | state-write | state-write: declares readOnlyHint: false |
| account_list_approval_rules | no tags | |
| account_find_person | no tags | |
| account_export_person | untrusted-inputstate-write | untrusted-input: keyword "download"; state-write: declares readOnlyHint: false |
| account_erase_person | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| account_data_locations | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Conecto Bookkeeping can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.