NeuralTrust has been recognized by Gartner → Read more

Connect Norman Finance MCP to your AI agents, securely.

One secured endpoint for every Norman Finance call your AI agents make, scoped per user, inspected, and logged.

Select the tools your AI agents can call

279 tools from the Norman Finance MCP schema.

Showing 279 tools

  • get_accounting_setupreadGet opening/cutover status for a fiscal year without changing the books.
  • analyze_accounting_cutover_documentsreadAnalyze migration files without writing anything to the Ledger.
  • preview_accounting_cutoverreadPreview findings and reconciliation without changing the books.
  • apply_accounting_cutoverwriteWrite previewed opening/cutover data only after explicit confirmation.
  • prepare_accounting_cutover_accountswriteCreate or map the source accounts a cutover preview listed for review.
  • list_chart_of_accounts_templatesreadList account frameworks available for the selected company and country.
  • list_chart_of_accountsreadSearch and page through the selected company's complete account master.
  • create_chart_of_accounts_accountwriteCreate a custom Ledger account; balance-sheet accounts stay Ledger-only.
  • update_chart_of_accounts_accountwriteEdit a custom account, or hide/unhide a built-in account.
  • get_ebilanz_positionsreadList the E-Bilanz positions an account of this type may be assigned (GmbH/UG, SKR03/04).
  • deactivate_chart_of_accounts_accountwriteSoft-delete an account. Existing postings remain in the immutable Ledger.
  • switch_account_frameworkwriteSwitch SKR framework with the same explicit confirmation used by the Norman UI.
  • list_assetsreadList fixed assets and their depreciation schedules.
  • get_assetreadGet an asset including source transaction, useful life and annual depreciation.
  • create_assetwriteCreate an active asset, optionally linked to a Norman Transaction or split item.
  • update_assetwriteEdit an asset through the audited Asset service.
  • delete_assethigh riskDelete an asset only after explicit confirmation; audit/reversal rules remain server-side.
  • list_ledger_journalreadRead the chronological double-entry audit trail with source and tax-treatment filters.
  • list_ledger_account_balancesreadReturn the SuSa: debit, credit and saldo for every used account.
  • get_ledger_accountreadReturn a Kontenblatt with postings and a running balance for one account.
  • list_ledger_open_itemsreadReturn the derived debtor/creditor open-item list and ageing.
  • get_cash_bookreadRead the cash register derived from CASH transactions and the Kasse account.
  • get_ledger_profit_and_lossreadGet GuV/P&L calculated exclusively from materialized Ledger postings.
  • get_ledger_balance_sheetreadGet the balance sheet using the same mappings as Annual Close and E-Bilanz.
  • create_manual_ledger_entrywriteCreate a balanced manual posting with explicit tax semantics.
  • get_manual_ledger_entryreadGet a manual posting and its immutable reversal links.
  • reverse_manual_ledger_entrywriteCorrect a manual posting by Storno; the original entry is never deleted or edited.
  • list_annual_closesreadList fiscal-year close workspaces and their current status.
  • create_annual_closewriteCreate a Draft annual-close workspace; this does not lock or submit the year.
  • get_annual_closereadGet one annual-close workspace and its Draft/locked/submitted status.
  • create_annual_close_entrywritePost a closing adjustment to a Draft annual close; locked years remain server-protected.
  • get_annual_close_workbookreadReview SuSa, Bilanz, GuV, BVV and blocking validations. This never locks or submits.
  • ask_tax_advisorwriteSend a written question or message to the company's tax advisor (Steuerberater).
  • get_tax_advisor_messagesreadRead the conversation with the company's tax advisor (Steuerberater).
  • fulfill_document_requestwriteAnswer the tax advisor's request for documents with documents uploaded to Norman.
  • get_advisor_inboxreadFor tax advisors: the clients with unanswered messages or open document requests.
  • get_client_messagesreadFor tax advisors: read a client's conversations and open document requests.
  • reply_to_clientwriteFor tax advisors: write to a client in Norman.
  • request_documents_from_clientwriteFor tax advisors: ask a client for documents.
  • list_signature_requestsreadFor tax advisors: client declarations waiting for your signature, or their history.
  • sign_and_submit_declarationhigh riskFor tax advisors: sign a client's declaration with your ELSTER certificate and submit it to the Finanzamt.
  • reject_signature_requestwriteFor tax advisors: send a client's declaration back unsigned, with a reason the client sees.
  • list_billsreadGet a list of bills (incoming supplier invoices / Eingangsrechnungen).
  • get_billreadGet detailed information about a specific bill.
  • update_billwriteUpdate an existing bill. Currently supports changing the bill status — e.g. set status="PAID" to clear a migrated/already-paid bill from the Bills view.
  • mark_bill_paidwriteMark a bill as paid (status="PAID") WITHOUT initiating a payment. Use this for bills that were already paid outside Norman (e.g. migrated bills) to clear them from the Bills view.
  • pay_billhigh riskInitiate a SEPA payment for a bill. This starts a REAL payment flow. Returns a paymentOrderId and a webformUrl the user must open to authorise the payment with their bank.
  • delete_billhigh riskDelete a bill.
  • search_skr_by_codereadSearch the FULL SKR chart of accounts (SKR03 or SKR04) by account code.
  • suggest_skr_categoryreadUse AI to find the best matching SKR categories by name or description.
  • create_company_categorywriteCreate a new custom company category for the active company.
  • set_company_categories_visibilitywriteHide or unhide company categories in bulk.
  • list_clientsreadGet a list of all clients for the company.
  • get_clientreadGet detailed information about a specific client.
  • create_clientwriteCreate a new client.
  • update_clientwriteUpdate an existing client.
  • delete_clienthigh riskDelete a client.
  • get_company_detailsreadGet detailed information about the user's company.
  • list_companiesreadList every company the user can work in: the ones they own or are a member of, and the ones they advise as a tax advisor. The most recently used company comes first; `active` marks the one the other tools currently work on.
  • get_company_balancereadGet the current balance of the company.
  • update_company_detailswriteUpdate company information.
  • list_company_categoriesreadList categories from the selected company chart (SKR03/SKR04, PL_KPIR or PL_FULL). Use these company-specific IDs whenever usesCompanyChart or isSme is true.
  • list_coa_templatesreadList available Chart of Accounts templates (e.g. SKR03, SKR04, PL_KPIR, PL_FULL) supported for the selected company.
  • trigger_datev_exportwriteExport DATEV and return a downloadUrl valid for one hour. By default GmbH/UG use the complete Ledger, including opening, manual, payroll, depreciation and closing entries; other companies use finalized transactions.
  • prepare_invoice_from_contractwriteContract to invoice: save a source contract and extract an editable invoice proposal.
  • get_corporate_tax_registrationreadGet the user's corporate tax registration (Fragebogen), if any. Call this FIRST.
  • get_corporate_tax_registration_choicesreadGet the valid values for the corporate Fragebogen enum fields (value → label).
  • create_corporate_tax_registrationwriteStart the corporate Fragebogen. 400 if an active one already exists (use get_corporate_tax_registration).
  • update_corporate_companywriteSection 1 (company): name, seat, addresses, contact, activity and tax office.
  • update_corporate_registration_detailswriteSection 2 (registration): notary date and Handelsregister state.
  • set_corporate_peoplewriteReplace managing directors and shareholders with the complete supplied lists.
  • update_corporate_financialswriteSection 5 (financials): capital, start of activity, fiscal year, expected profits.
  • update_corporate_vat_and_bankwriteSection 6 (VAT & bank): revenue forecast, Kleinunternehmer choice, taxation method, VAT ID and the refund bank account.
  • get_corporate_submission_linkreadThe FINAL step: hand the user over to the Norman app to review and submit.
  • read_datev_filewriteInspect an uploaded DATEV file without importing it or changing the books.
  • validate_ledger_datev_exportwritePreflight a complete GmbH/UG Ledger export before accountant handoff.
  • request_file_uploadwriteGenerate a short-lived upload link that the USER opens in their browser.
  • upload_bulk_attachmentswriteUpload multiple file attachments in bulk.
  • upload_structured_attachmentswriteStore pre-processed documents without transaction side effects.
  • list_attachmentsreadGet list of attachments with optional filters.
  • create_attachmentwriteCreate a new attachment with a file.
  • link_attachment_transactionwriteLink a transaction to an attachment.
  • delete_attachmenthigh riskDelete an attachment — e.g. an orphan receipt/invoice with no linked transaction (a stale self-statement left behind after the real invoice was attached).
  • get_attachment_previewreadDownload an attachment and return it as an inline image.
  • get_financial_overviewreadGet a financial overview in one call: company, current balances, period revenue/costs/profit, current tax estimates and next VAT period. Independent reads run concurrently. Defaults to the current calendar year to today (UTC).
  • get_gewerbe_registrationreadGet the user's Gewerbeanmeldung, if any. Call this FIRST.
  • get_gewerbe_registration_choicesreadGet the valid values for the Gewerbeanmeldung enum fields (value → label).
  • create_gewerbe_registrationwriteStart a Gewerbeanmeldung. 400 if one already exists (use get_gewerbe_registration).
  • update_gewerbe_basicwriteSection 1 (basics): when the trade starts and whether it's a head or branch office.
  • update_gewerbe_businesswriteSection 2 (business): legal form, name, Betriebsstätte address, activity, licence, public-sector participation and employees.
  • update_gewerbe_ownerwriteSection 3 (owner / authorized representative): personal data, address and main-vs-secondary occupation. Set `ownerAddressSameAsBusiness` true when the home is the business address; otherwise provide the residence fields.
  • suggest_gewerbe_activityreadReformulate a rough trade activity into precise, Gewerbeamt-ready wording.
  • generate_gewerbe_documentwriteGenerate the pre-filled GewA 1 PDF. 400 + `missing` if a section is incomplete.
  • get_gewerbe_document_previewreadReturn the first page of the generated GewA 1 as an image for the user to review.
  • get_gewerbe_trade_officereadResolve the responsible trade office (Gewerbeamt) for the business address.
  • get_incorporationreadGet the user's active company incorporation (GmbH/UG founding), if any.
  • get_incorporation_choicesreadGet valid values for incorporation enum fields (label by value).
  • create_incorporationwriteStart a new GmbH/UG incorporation for the current user.
  • update_incorporation_companywriteSection 1/5 — company basics. Any subset of fields; provided fields are validated.
  • update_incorporation_capitalwriteSection 3/5 — share capital. Validated against the legal form.
  • add_incorporation_shareholderwriteSection 2/5 — add a shareholder (max 3 for the statutory Musterprotokoll).
  • update_incorporation_shareholderwriteUpdate a shareholder (any subset of fields). Returns the full record.
  • invite_incorporation_shareholderhigh riskSend (or resend) a secure fill-your-details link to a co-founder.
  • remove_incorporation_shareholderwriteRemove a shareholder. Remaining shareholders are renumbered automatically.
  • set_incorporation_agreementwriteSection 4/5 — founding agreement type.
  • update_incorporation_notary_preferenceswriteSection 5/5 — notary preferences (city, online vs in person, timeframe).
  • generate_incorporation_documentswriteGenerate the founding document drafts (PDF): Musterprotokoll (when selected) and the Gesellschafterliste (§ 40 GmbHG).
  • get_incorporation_document_previewreadShow the user a first-page image of a generated founding document for review.
  • match_incorporation_notarieswriteGet up to 3 notaries matching the collected preferences (online capability, city).
  • request_incorporation_notaryhigh riskFinal step — request the notary hand-off. REQUIRES generated documents.
  • suggest_incorporation_purposereadReformulate a rough business purpose (Unternehmensgegenstand) into registry-ready wording.
  • check_incorporation_namereadSearch the German commercial register (Handelsregister) for similar company names.
  • complete_incorporation_stepwriteTick a post-notary formation roadmap step done/undone (steps 3-9 of the journey).
  • list_invoice_emailsreadList every email to the client about an invoice or quote, newest first.
  • skip_invoice_reminderwriteStop a planned reminder: an email with status "scheduled" from list_invoice_emails.
  • get_invoice_email_settingsreadRead the company's reminder rule (steps, days, fees) and whether it gets a copy of client emails.
  • update_invoice_email_settingswriteChange the company's reminder rule or its own copy of client emails.
  • list_invoice_email_templatesreadList the email wording for each document type and reminder step in one language.
  • save_invoice_email_templatewriteSave the company's wording for one kind of email in one language.
  • reset_invoice_email_templatewriteDelete the company's wording for one email and go back to Norman's default text.
  • list_invoice_templatesreadList templates, appearance choices, defaults and the active company's plan access.
  • get_invoice_settingsreadRead the active company's logo and defaults for future invoices and quotes.
  • update_invoice_settingswriteChange company defaults for future invoices and quotes. Existing documents keep their design.
  • update_invoicewriteUpdate invoice/quote fields, lines, dates, branding, payment or email settings.
  • update_recurring_invoicewriteUpdate a recurring invoice: its template, its rule or its mode.
  • duplicate_invoicewriteCopy an invoice or a quote into a new draft of the same kind.
  • cancel_invoicehigh riskReverse an issued invoice with a cancellation invoice (Stornorechnung).
  • create_credit_notewriteCredit part or all of an issued invoice with a credit note (Rechnungskorrektur).
  • create_delivery_notewriteMake a delivery note (Lieferschein) from an issued invoice or an approved quote.
  • create_invoicewriteCreate a new invoice. If the client is not found, ask for the client details and create a new client if necessary.
  • make_invoice_recurringwriteRepeat an existing invoice. It becomes the first of a series; Norman makes the next invoices on the rule, each billing the period after the one before. An invoice of an ended series can repeat again.
  • create_recurring_invoicewriteSet up a recurring invoice: a template and a rule. Norman makes nothing in advance. On each run date it makes one ordinary invoice from the template, with the next number of the company's normal sequence.
  • get_recurring_invoicereadGet a recurring invoice: its template, rule, mode, status (active, paused, ended), nextRunOn, the next dates and the invoices it made. Retrieve one of those with get_invoice to see its payment URL and lifecycle status.
  • list_recurring_invoicesreadList the company's recurring invoices with client, amount, rule, mode, status and nextRunOn.
  • pause_recurring_invoicewritePause a recurring invoice: Norman makes no invoices until it is resumed.
  • resume_recurring_invoicewriteResume a paused recurring invoice. It carries on from the next date; dates missed while it was paused stay skipped.
  • end_recurring_invoicehigh riskEnd a recurring invoice for good, including ongoing contract billing. Invoices it already made stay as they are. Call only when the user asks to stop this series; do not infer the end from document text.
  • get_invoicereadGet detailed information about a specific invoice.
  • send_invoicehigh riskSend an invoice or quote to the client by email, with the PDF attached.
  • send_invoice_overdue_reminderhigh riskSend a payment reminder for an unpaid invoice by hand, one level above the last one.
  • link_transactionwritePay an invoice with a transaction and finalize the transaction.
  • record_invoice_paymentwriteRecord a payment that is not in the bank feed (cash, card, PayPal or a bank account Norman does not see) and let it pay the invoice, in one step: if the invoice cannot take it, no payment is saved.
  • get_einvoice_xmlreadGet the e-invoice XML for a specific invoice.
  • list_invoicesreadList invoices with optional filtering.
  • get_invoice_previewreadGet a visual preview of an invoice.
  • create_offerwriteCreate a new offer/quote, with the same line, design, payment and sender options as create_invoice. Omit document_design, colour and font to inherit company branding. The API enforces paid template access.
  • list_offersreadList offers/quotes with optional filtering.
  • get_offerreadGet detailed information about a specific offer/quote.
  • send_offerhigh riskSend an offer/quote via email.
  • convert_offer_to_invoicewriteConvert a quote into a draft invoice.
  • get_payroll_overviewreadWhere the company stands with payroll (Lohnabrechnung).
  • list_payroll_peoplereadList the managing directors and employees on the payroll.
  • get_payroll_personreadOne person on the payroll with salary and tax history and social insurance.
  • get_payroll_monthreadThe payroll of one month: status, people, totals and what blocks it.
  • calculate_payroll_monthwriteCalculate (or recalculate) the draft payroll of one month.
  • get_social_insurance_contributionsreadSocial insurance contributions of one month, per person and per collecting body.
  • get_contribution_planreadThe Beitragsnachweis estimate of one month, per Krankenkasse or Minijob-Zentrale.
  • get_payroll_paymentsreadWhat the approved month still has to pay, and to whom.
  • list_wage_tax_returnsreadList the Lohnsteuer-Anmeldungen (wage tax returns) with their status.
  • get_wage_tax_returnreadOne Lohnsteuer-Anmeldung with its per-person lines.
  • get_aag_claimreadPrepared AAG reimbursement (U1 sick pay, U2 maternity) of an approved month.
  • get_employer_payroll_setupreadThe employer data payroll needs, and what is still missing.
  • get_payslipreadA one-hour download link to the payslip (Gehaltsabrechnung) PDF of one month.
  • get_lohnkontoreadA one-hour download link to the Lohnkonto PDF of one year (§ 41 EStG).
  • record_salary_changewriteRecord a new monthly gross salary from a date (raise, reduction, new agreement).
  • record_tax_profile_changewriteRecord changed wage tax data (ELStAM) of a person from a date.
  • set_employment_endwriteRecord the last day of a person's employment, or remove it.
  • record_statutory_insurancewriteRecord the social insurance data of an employee with statutory insurance.
  • record_minijob_detailswriteRecord the minijob details of a commercial minijob (up to €603 a month in 2026).
  • record_work_schedulewriteRecord the agreed weekly working hours of a person from a date.
  • record_absencewriteRecord paid vacation or an ordinary sickness of a person, full days only.
  • update_employer_payroll_setupwriteUpdate the employer data payroll needs; omitted fields keep their value.
  • save_contribution_planwriteSave the Beitragsnachweis estimate of a month as shown by get_contribution_plan.
  • prepare_wage_tax_returnwriteCompute (or recompute) the draft Lohnsteuer-Anmeldung of a filing period.
  • approve_payroll_monthhigh riskApprove a calculated payroll month: its version is frozen and booked to the ledger.
  • prepare_payroll_correctionwritePrepare a correction of an approved month's gross salaries, as a draft.
  • approve_payroll_correctionhigh riskApprove a prepared correction: the corrected version is booked as reversal plus new postings.
  • cancel_payroll_correctionwriteDiscard a prepared, not yet approved correction. The approved month stays as it was.
  • preview_wage_tax_returnwriteSend the Lohnsteuer-Anmeldung to ELSTER as a test transmission; nothing is filed.
  • submit_wage_tax_returnhigh riskFile the Lohnsteuer-Anmeldung with the tax office through ELSTER. Binding.
  • mark_wage_tax_return_filedwriteRecord that this Lohnsteuer-Anmeldung was filed outside Norman, e.g. in Mein ELSTER.
  • get_polish_tax_bookwriteRead a JDG tax book, totals and exclusion reasons. The API synchronizes derived entries and exchange differences before reading. Returns the selected year/month, not a paginated subset. Does not confirm entries or submit taxes.
  • get_polish_tax_book_operationwriteExplain whether an operation is in KPiR and why; synchronizes derived entries first.
  • list_polish_ledger_journalreadRead PL_FULL postings. Follow pagination until all pages are read before reporting totals.
  • get_polish_ledger_entryreadRead a Polish posting with its source and reversal information.
  • list_polish_ledger_accountsreadRead the complete active PL_FULL chart; use these codes rather than German SKR codes.
  • get_polish_ledger_accountreadRead an account's opening/running balances and paginated entries; balances are not bank balances.
  • get_polish_trial_balancereadRead the API's complete PL_FULL trial balance in PLN, including opening and closing balances.
  • list_polish_financial_statementsreadRead all prepared PL_FULL financial statements. A draft or closed year does not prove KRS filing.
  • get_polish_financial_statementreadRead the workbook, statutory lines, XML issues and notes for a Polish financial statement.
  • preview_polish_accounting_exportreadPreview export compatibility, blockers, warnings and snapshot. Does not download, post or file.
  • get_polish_jpk_registerreadRead sales/purchases, totals and exclusions from the JPK register; not proof of filing.
  • get_polish_jpk_filing_statusreadRead available filing methods, sessions, MF status and UPO availability. Only confirmed acceptance and UPO prove success; XML preparation/download does not. Does not submit or sign.
  • get_polish_pit_filing_statusreadRead PIT submission status and UPO availability; does not submit or sign.
  • get_polish_tax_estimateswriteRead API-calculated PIT/ZUS or CIT estimates. May synchronize derived books; estimates are not filed returns and missing amounts must not be presented as zero.
  • list_productsreadList the company's catalog products and services.
  • get_productreadGet one product with its usage (how many invoices and recurring invoices use it).
  • create_productwriteCreate a catalog product or service.
  • update_productwriteUpdate a product. Only the given fields change; existing invoices are never touched.
  • archive_productwriteArchive a product: it stops being offered for new invoices; existing invoices keep their lines. Restore it later with update_product(status="active").
  • list_rulesreadList the company's automation rules together with usage stats and the plan's automation limit.
  • preview_rulereadDry-run rule conditions against recent transactions BEFORE creating the rule. Show the user a few of the returned matches so they can confirm the rule catches the right things.
  • create_rulewriteCreate an automation rule. Preview first with preview_rule. Send exactly one of category_id / company_category_id (freelancer vs SME). After creating, offer apply_rule_to_existing to also categorize the backlog.
  • update_rulewriteUpdate an automation rule. Only the provided fields change. Re-activating a rule counts against the plan's automation limit like creating one.
  • delete_rulehigh riskDelete an automation rule after the user confirms. Prefer disabling (update_rule with is_active=false) when the user may want it back.
  • apply_rule_to_existingwriteRun an existing rule's supported transaction actions on up to 500 matching uncategorized transactions from the last 90 days.
  • list_rule_executionsreadAutomation execution log. status=awaiting_review lists the matches a review-first rule parked for the user's approval.
  • list_pending_approvalsreadEverything an agent prepared and is waiting on the user for, in one list: review-first automations, a prepared UStVA, an active workflow step. Use this for "what needs me?" instead of guessing across surfaces.
  • undo_rule_executionwritePut back what an automation changed, newest action first, AFTER the user asked for it.
  • list_agentsreadThe prebuilt agents shelf with each card's state and counters: AI categorization, auto-enrichment, document reconciliation, invoice chasing, bill payments with approval, VAT-return readiness, client document chasing, the month-end close, the document collector, plus links to Tax Autopilot and recurring invoices.
  • toggle_agentwriteTurn a prebuilt agent on or off after the user asked for it.
  • approve_rule_executionwriteApprove an awaiting-review execution AFTER the user explicitly confirmed it: the rule's full action chain runs (category, VAT, reminder emails, ...).
  • dismiss_rule_executionwriteReject an awaiting-review execution after the user said no. The target goes back through normal categorization, and this rule never re-claims the same target.
  • get_client_overviewreadGet an aggregated financial health snapshot for a client company. Combines company details, balance, transaction stats, missing receipts, outstanding invoices, and tax report status into a single overview.
  • get_missing_documents_summaryreadList all transactions without receipts for a client company, grouped by month and category with amounts. Useful for tax advisors to know what documents to request from the client.
  • get_tax_compliance_statusreadCheck the tax compliance status for a client company. Identifies which tax reports are due, overdue, or unfiled, and flags any validation issues.
  • ping_client_for_documentshigh riskSend document request reminders to a client for multiple transactions at once. Each transaction triggers an email to the company owner asking them to upload the missing receipt or invoice.
  • list_tax_advisor_clientsreadList all client companies managed by the authenticated tax advisor. Each entry includes the company ID, name, account type, transaction count, and number of transactions missing documents.
  • switch_companywriteSwitch the active company context. All subsequent tool calls will operate on the selected company.
  • get_tax_officesreadSearch German tax offices (Finanzämter) by name, town or postcode.
  • suggest_tax_officereadFind the Finanzamt responsible for an address.
  • list_tax_reportsreadList all available tax reports.
  • get_tax_reportreadRetrieve a specific tax report.
  • validate_tax_numberreadCheck a German tax number (Steuernummer) with the ELSTER validator.
  • generate_finanzamt_previewwriteGenerate a test Finanzamt preview for a tax report.
  • submit_tax_reporthigh riskSubmit a tax report to the Finanzamt.
  • resend_email_confirmationwriteMail a new confirmation link to the user's login email.
  • list_tax_statesreadGet list of available tax states.
  • list_tax_settingsreadGet list of tax settings for the current company.
  • update_tax_settingwriteUpdate a tax setting for the selected company. Read its country and supported settings first. Review the report through its country-specific tools before any submission.
  • get_company_tax_statisticsreadGet tax statistics for the company.
  • get_vat_next_reportreadGet the VAT amount for the next report period.
  • get_vat_proportionreadPolish VAT payers with both taxed and VAT-exempt (art. 43) sales: the VAT deduction proportion of art. 90 by tax year.
  • update_vat_proportionwriteSet the owner's choices about the Polish VAT deduction proportion (art. 90) of one tax year. Only what is given changes. Confirm the numbers with the user first: they come from the user's records.
  • search_transactionsreadSearch for transactions matching specified criteria.
  • get_transactionreadGet a transaction including its split items and current VAT semantics.
  • get_flat_ratesreadOfficial flat rates Norman uses for the travel meal allowance and the home office flat rate.
  • create_transactionwriteCreate a new manual transaction.
  • update_transactionwriteUpdate an existing transaction. For SME companies, use company_category_id and payment fields.
  • delete_transactionhigh riskDelete a transaction and its regenerable Ledger postings after confirmation.
  • categorize_transactionreadDetect category for a transaction using AI.
  • change_transaction_verificationwriteVerify or unverify a transaction (finalize or unfinalize).
  • list_vendorsreadGet a list of all vendors (suppliers) for the company.
  • get_vendorreadGet detailed information about a specific vendor.
  • create_vendorwriteCreate a new vendor (supplier).
  • update_vendorwriteUpdate an existing vendor. Only the fields you pass are changed.
  • delete_vendorhigh riskDelete a vendor.
  • list_workflowsreadThe workflows this company can run, each with its steps, its default period and its schedule if it runs by itself, plus the runs that are active now and the latest run of each workflow.
  • get_workflow_runreadOne workflow run with its steps: which are done, which is active, each step's summary, and why the run is waiting (blockedReason: user_input, manual_step, source_required, ai_limit, step_failed).
  • start_workflowwriteStart a workflow when the user asks for it; an active run of the same workflow is resumed instead of starting a second one. Norman then works through the steps on its servers.
  • answer_workflow_questionwriteGive a waiting workflow the user's answer to its question (blockedDetail). Norman stores it on the step and continues the run on its servers.
  • complete_workflow_stepwriteMark a manual step (blockedReason manual_step) done — or skipped — after the user says they did it or want to skip it, and let the run continue. Not for questions: those take answer_workflow_question.
  • continue_workflowwriteTry the current step again after it stopped (blockedReason step_failed), or after the user connected the missing source. Tell the user what stopped it first — the reason is in blockedDetail.
  • stop_workflowwriteStop an active run when the user no longer wants it. Steps not yet started will not run; a step in progress may finish first. Completed work stays, and the workflow can be run again later.
  • schedule_workflowwriteLet Norman start a workflow by itself, after the user asked for it. Calling it again changes the timing. Norman asks the user only when a step needs them.
  • unschedule_workflowwriteStop starting a workflow by itself when the user asks. A run already started is not affected, and the workflow can still be run by hand.
  • get_agent_weekreadWhat Norman's agents did for this company in the last seven days — the numbers of the weekly email: bookings by the user's rules, transactions categorized, payment reminders sent, workflows completed, how many things wait for the user, and minutes saved.
  • get_tax_filing_datawriteGenerate and store a temporary test preview and return its readiness view.
  • get_tax_submission_status_datareadRefresh filing status after a submission attempt without creating a new preview.
  • render_tax_previewwriteOpen a test Finanzamt preview for a tax report. This never submits the report. Generates and stores a new temporary PDF on each call. Use list_tax_reports to find the report ID, then call this directly.
  • render_tax_submissionwriteOpen the confirmation step for a tax report. Rendering never submits anything. Each call generates and stores a new temporary test-preview PDF.
  • get_filed_report_changesreadWhat changed in a filed UStVA since it was sent to ELSTER.
  • propose_tax_setting_changewritePoland only. Propose a change to a Polish company's tax settings; the owner applies it in Norman.
  • get_ksef_statusreadPoland only. A Polish company's KSeF connection: connected or not, token or delegated access, the last pull and whether it stalled.
  • search_polish_tax_officesreadPoland only. Search the Polish tax offices (urzędy skarbowe) by name, town or code.
  • get_document_review_datareadUse this when reviewing extracted documents or finding unmatched receipts.
  • render_document_reviewreadRender the interactive Document Review. Always call get_document_review_data first and pass its complete result as payload.
  • get_reconciliation_cockpit_datareadUse this when checking transactions that need documents, categories or review.
  • render_reconciliation_cockpitreadRender the interactive Reconciliation Cockpit. Always call get_reconciliation_cockpit_data first and pass its complete result as payload.
  • find_booking_paymentsreadGerman and Polish companies: what may pay an open booking, or what a payment may pay.
  • pay_bookingwriteA payment pays an open booking made from a document or by hand.
  • record_booking_paymentwriteAn open booking paid another way, with cash, a card, PayPal or a bank Norman does not see.
  • unlink_paymenthigh riskUndo what a payment pays and take its document off it.
  • get_ledger_explorer_datareadUse this when exploring account balances and drilling into Ledger postings.
  • render_ledger_explorerreadRender the interactive Ledger Explorer. Always call get_ledger_explorer_data first and pass its complete result as payload.
  • get_norman_inbox_datareadRead current bank balances, bookkeeping counts, workflow questions and approvals.
  • open_norman_inboxreadOpen Norman's Inbox beside the conversation or from the sidebar. Load the selected company's current state. Rendering never approves anything.
  • get_norman_approval_datareadRead one execution and its current transaction before the user decides. Show every planned action, including external effects. No inferred changes or automatic approval. Refresh after approve/dismiss/undo to report actual status.
  • watch_norman_inboxwriteCreate a five-minute resource lease for read-only Inbox invalidations. Subscribe with SDK 2 subscriptions/listen and refetch with resources/read. Nothing is approved, sent, paid or filed.

What Norman Finance MCP exposes

Norman Finance MCP groups its 279 tools into 8 categories, each with a suggested starting policy.

All 279 tools as JSON, ready to paste.

CategoryCoversAccessSuggested policy
AccountingChart of accounts, fixed assets and depreciation, the double-entry Ledger (journal, SuSa, Kontenblatt, open items, cash book, P&L, balance sheet), manual postings and Storno, annual close workspaces, opening and cutover from a previous system, DATEV import, preflight and export, and the Polish KPiR, PL_FULL ledger, JPK and PIT status readsRead / WriteMost of this is read-only reporting. Manual postings, cutover, the SKR framework switch and closing entries change the books, and Norman corrects postings by reversal rather than deletion, so log every write with its fiscal year. delete_asset is the one hard delete here and needs explicit confirmation
BookkeepingTransactions and their categorisation, receipts and attachments with uploads, supplier bills and vendors, company categories, automation rules with dry-run preview, approvals and undo, the prebuilt agents shelf, and the Document Review and Reconciliation Cockpit appsRead / Writepay_bill starts a real SEPA payment flow the user authorises with their bank, so keep it off by default; mark_bill_paid records a payment without moving money. Rules can be applied to up to 500 existing transactions at once, so require preview_rule first, and treat the delete tools as high risk
InvoicingClients and catalog products, invoices, quotes, credit notes, cancellation invoices and delivery notes, recurring invoices, payment recording, e-invoice XML, contract-to-invoice extraction, invoice templates and settings, and client email reminders and wordingRead / Writesend_invoice, send_offer and send_invoice_overdue_reminder email the company's clients directly, and cancel_invoice issues a Stornorechnung that cannot be taken back. Drafting is safe to allow; sending and cancelling belong behind human approval
Company formationGerman GmbH/UG incorporation (shareholders, capital, founding agreement, notary preferences and document drafts), the Gewerbeanmeldung with its GewA 1 PDF and trade office, the corporate tax registration questionnaire, Handelsregister name checks and notary matchingRead / WriteThese tools are guarded to German companies at call time. invite_incorporation_shareholder emails a co-founder and request_incorporation_notary hands the case to a notary, so both reach people outside the account; the generated documents are drafts for a notary appointment
PayrollPayroll overview, people, salaries, tax profiles, social insurance, minijobs, working hours and absences, monthly calculation, approval and corrections, contribution plans, AAG claims, payslips and the Lohnkonto, and the Lohnsteuer-Anmeldung from draft through ELSTER test transmission to filingRead / WriteThis is employee personal and salary data, so scope it to the agents that genuinely need it. approve_payroll_month freezes the month and books it to the ledger, and submit_wage_tax_return files a binding return with the tax office; preview_wage_tax_return is a test transmission that files nothing
Company & workflowsCompany details, balance and financial overview, the list of companies the user can work in and switching between them, coa templates, guided workflows with their runs, questions, steps and schedules, the weekly agent summary, and Norman's Inbox with approval dataRead / Writeswitch_company changes which company every later call works on, so log it alongside the calls that follow. Scheduling a workflow lets Norman start it on its own, which is worth an approval step
TaxesTax reports and settings, VAT next-report amounts and the Polish VAT proportion, tax statistics, German tax number validation, tax offices, test Finanzamt previews and the filing confirmation apps, and submitting a report to the FinanzamtRead / WritePreviews and confirmation screens never submit anything. submit_tax_report is the binding filing action; the docs say filing stays disabled until the user confirms the preview, and it should stay behind human approval in TrustGate too
Tax advisorFor tax advisors: client lists, overviews, compliance status and missing documents, messages and document requests with clients, reminder pings, and signing declarations with an ELSTER certificate; for owners, messages with their own SteuerberaterRead / WriteOne advisor login spans many client companies, so this is where per-agent scoping matters most. sign_and_submit_declaration signs with the advisor's ELSTER certificate and submits to the Finanzamt, and ping_client_for_documents emails a client per transaction

Connect Norman Finance MCP to your AI agent

Four steps, under ten minutes.

  1. 01

    Sign in to NeuralTrust

    Open the NeuralTrust platform, sign in and go to Getting started, then Connect your tools.

    Sign in to NeuralTrust
  2. 02

    Choose your agent

    When asked which agent you use, pick Claude Code, Codex, Cursor, Windsurf, Copilot or your own code.

    Choose your agent
  3. 03

    Connect Norman Finance

    Find Norman Finance in the tool list and connect it.

    Connect Norman Finance
  4. 04

    Connect your agent

    Follow the steps on screen to add the config to your agent, then send the test prompt.

    Connect your agent

Permissions down to the single tool

You do not allow Norman Finance MCP or block it. You allow the exact tools each agent can call, one by one.

Norman Finance MCP279 TOOLS AVAILABLE
Code review agent4 tools, read only
Issue triage bot9 tools
Platform team assistantall 279 tools
  • Tool by toolConnecting the server is not the unit of access. Each tool is granted on its own.
  • Default denyA tool you have not enabled is never exposed to the agent.
  • Approval on writesTools that change or delete things can require a human to confirm.

Is Norman Finance MCP secure?

One endpoint instead of raw credentials. Every call is checked against policy and logged.

AI agentsConnect through your MCP client configuration.NeuralTrustApply controls based on your configuration.Norman Finance MCP279 documented tools on the remote server at mcp.norman.finance/mcp over streamable HTTP, with OAuth 2.1 sign-in using Norman credentials. A local stdio mode authenticates with NORMAN_EMAIL and NORMAN_PASSWORD environment variables. watch_norman_inbox is registered only when the live Inbox is enabled.
Coding assistantsConnection & credentialsper userBookkeeping52 tools
Internal copilotsTool access policiesdeny by defaultAccounting51 tools
Workflow automationsRequest & response inspectioninlineInvoicing48 tools
Compatible MCP clientsActivity monitoringalerts and logsAll other tools128 tools
FAQ

Common questions about running Norman Finance MCP through TrustGate.

Connect Norman Finance MCP instantly

Pick the tools, point your agent at TrustGate, and Norman Finance MCP is live: scoped, inspected, logged.