Skip to main content
Glama
Norman Finance MCP Server

Norman Finance MCP Server

Official

Connect Norman Finance to your AI assistant to create invoices, organize receipts, reconcile transactions, keep your books up to date and prepare tax returns. Work from the same company records you use in the Norman app.

Use the remote MCP connection with Claude, ChatGPT, Gemini, Grok, Perplexity, Cursor and other compatible clients. Client setup instructions distinguish directory installs, extensions and custom connections.

See Norman in action

https://github.com/user-attachments/assets/10718781-34f2-4640-9253-be4c82de6159

Watch the full Norman demo · Explore workflow examples · Watch the Poland introduction

Related MCP server: einvoice-mcp

What you can do

Calculator and form workflows cover public estimates and Polish PDF/DOCX preparation, with deployment prerequisites.

Workflow

Ask Norman to help you

Invoicing

Create and send invoices, quotes and recurring invoices. Use your branding, product catalog, VAT codes, discounts and service dates.

Bookkeeping

Organize receipts, categorize and verify transactions, match documents and reconcile your books.

Full accounting

Inspect accounts, journal entries, balances and reports. Follow a figure back to its source documents.

VAT and taxes

Calculate and review VAT, prepare returns and submit supported German returns after explicit confirmation. Review Polish registers, estimates and existing filing status.

Year-end preparation

Review balances, prepare a German annual-close workspace and closing adjustments, or inspect existing Polish financial statements.

Clients and reminders

Manage clients, track invoice delivery and prepare or send payment reminders when requested.

Automation

Preview bookkeeping rules, start month-end or reconciliation workflows, answer their questions and schedule recurring work.

Try asking

  • "Create a draft invoice for consulting and use my saved company branding."

  • "Which transactions are missing a receipt?"

  • "What did we spend on software this quarter?"

  • "Review my books and tell me what still needs attention before year-end."

  • "Prepare my German VAT return preview. Do not submit it yet."

  • "Show my Polish company's JPK register and explain excluded operations."

Get started

  1. Create a Norman account, or use your existing one.

  2. Add Norman in your AI client's directory or as a remote HTTP MCP server: https://mcp.norman.finance/mcp.

  3. Complete Norman OAuth, then confirm the company you want to work with.

For clients that accept an MCP configuration file:

{
  "mcpServers": {
    "norman-finance": {
      "url": "https://mcp.norman.finance/mcp"
    }
  }
}

Using Claude Code?

/plugin marketplace add norman-finance/norman-mcp-server
/plugin install norman-finance@norman-finance

All setup guides: Claude Connectors, Claude Code, ChatGPT, Gemini, Grok, Perplexity, Cursor, Replit, OpenClaw, n8n and other MCP clients.

Your company is the accounting context, not the language of the conversation. Use list_companies and switch_company to change it; company://current identifies its country, currency, legal form and chart of accounts.

Market-specific capabilities

One connection supports both Germany and Poland. The workflows differ by jurisdiction:

Germany

Poland

Bookkeeping

SKR03/SKR04, transactions and Ledger

KPiR for JDG; full books for sp. z o.o.

VAT and tax review

Finanzamt previews, VAT and annual reports

JPK registers, PIT/ZUS or CIT estimates

Year-end

Draft annual close, closing adjustments and workbook review

Review already prepared statements, notes and XML issues

Accountant handoff

DATEV EXTF exports and preflight checks

General, Optima and EPP export compatibility previews

Filing through MCP

Supported returns after preview and explicit confirmation

Existing filing status and UPO checks; no signing or submission

Germany: accounting, VAT and year-end

Keep day-to-day bookkeeping and full GmbH/UG accounting connected to the same AI workflow. Review SKR03/SKR04 accounts, reconcile transactions, calculate VAT and prepare supported VAT and annual tax returns.

For year-end, create a Draft annual-close workspace, review the workbook and post closing adjustments. Preparing that workspace does not lock the year or submit a return. Tax submission is a separate, explicitly confirmed action.

German invoice workflows also support ZUGFeRD, cancellations (Stornorechnung), corrections (Rechnungskorrektur) and delivery notes (Lieferschein).

Additional workflows include German GmbH/UG payroll and company-formation preparation. Payroll tools cover calculation, approval, payslips and supported Lohnsteuer-Anmeldung filing; sensitive employee identifiers stay in the app. Formation tools prepare draft documents and a notary handoff, not a legal incorporation by chat. Detailed workflows.

DATEV MCP support: EXTF, SKR03 and SKR04

Prepare a DATEV EXTF Buchungsstapel with SKR03 or SKR04 for your tax advisor (Steuerberater), with linked documents when requested. The complete GmbH/UG Ledger export includes opening balances, manual entries, payroll, depreciation and closing postings.

  • trigger_datev_export: prepare the export and download package.

  • validate_ledger_datev_export: check structure, source coverage and documents before handoff.

  • get_datev_changes_since_handoff: list the bookings added, changed or left out since the advisor's last file of each period.

  • read_datev_file: inspect an EXTF/DTVF file without importing postings into your books.

Try: "Check the full GmbH Ledger export before I give it to my accountant."

DATEV details and API requirements. Validation is a handoff check, not certification of tax correctness or DATEV import acceptance.

Poland: KPiR, full books and JPK

Cześć, Polsko

https://github.com/user-attachments/assets/aea417ad-64aa-4623-896f-ff8dc4559d4a

Watch the Poland film · 24 seconds · English on-screen text with Polish subtitles built into the video.

This is a product introduction, not a recording of MCP tool calls. The Polish landing page and English landing page introduce the connection in each language.

What the Polish tools cover

  • JDG / KPiR: review monthly or annual tax books and explain why an operation is included or excluded.

  • Sp. z o.o. / full books: inspect the journal, chart of accounts, account sheets and trial balance; review prepared financial statements and their notes.

  • VAT / JPK_V7: compare sales, purchases, totals and exclusions with source operations.

  • Tax estimates and status: review PIT/ZUS or CIT estimates, existing JPK/PIT filing status and UPO availability.

  • Invoices, receipts and assets: use shared tools with Polish VAT codes, document currencies and depreciation inputs; create proforma quotes and record incoming bills in their original currency. Search receipts by supplier and date.

  • Ryczałt settings: propose a revenue category's rate for the owner to review and apply in Norman. The assistant does not change tax settings directly.

  • Import review and routines: inspect CSV import batches, preview an exact batch rollback, and confirm or dismiss detected routines. A rollback requires the user's approval and the preview token; confirming a routine does not send invoices.

  • Accountant handoff: preview General, Optima or EPP compatibility and review blockers.

Try asking:

  • "Pokaż KPiR mojej JDG za wrzesień i wyjaśnij pominięte koszty."

  • "Pokaż zestawienie obrotów i sald mojej spółki za trzeci kwartał."

  • "Sprawdź rejestr JPK_V7: sprzedaż, zakupy i pominięte operacje."

  • "Sprawdź status wysyłki JPK i dostępność UPO. Niczego nie wysyłaj."

The Polish MCP tools do not sign or submit returns to MF/KRS, create manual Polish journal postings, or generate or close annual statements. They inspect existing filing state; an XML download is not an acceptance receipt or UPO.

Polish tool guide, arguments and examples · Start with a Polish company

Interactive UI inside your AI assistant

MCP Apps-compatible hosts can show focused accounting workspaces inside the conversation:

Workspace

What you can review

Norman Inbox

Balances, bookkeeping tasks, blocked workflows and pending approvals

Document Review

Uploaded invoices, receipts and missing transaction matches

Reconciliation Cockpit

Missing documents, categories and bookkeeping issues

German Ledger Explorer

SKR accounts, balances and linked postings

German Tax Preview & Submission

Finanzamt test PDF, tax lines and readiness checks before a separate confirmed filing

Clients without MCP Apps support receive structured or text results. Polish accounting uses the dedicated structured tools; the German workspaces do not imply equivalent Polish filing functionality.

Skills

Ready-to-use skills compatible with Claude Code, OpenClaw, and the Agent Skills standard.

Skill

What it does

financial-overview

Full dashboard : balance, transactions, invoices, and tax status

create-invoice

Step-by-step invoice creation and sending

manage-clients

List, create, and update client records

manage-products

List, create, update, and archive catalog products; fill invoice lines from them

tax-report

German reports: review, preview, and file with the Finanzamt

run-payroll-month

German payroll : changes, calculation, approval, social insurance, payment, and Lohnsteuer-Anmeldung

categorize-transactions

Categorize and verify bank transactions

find-receipts

Find missing receipts from Gmail or email and attach them

overdue-reminders

Identify overdue invoices and send payment reminders

expense-report

Expense breakdown by category, top vendors, and trends

tax-deduction-finder

Scan transactions for missed deductions and suggest fixes

monthly-reconciliation

Full monthly close : transactions, invoices, receipts, and taxes

run-workflow

Start a Norman workflow, answer its questions, and schedule it to run by itself

company-incorporation

Found a German GmbH/UG : data, documents, name check, and notary hand-off

Browse the skills directory. Each skill guides an accounting task while the Norman API enforces access and action permissions.

Control and privacy

  • You choose the company. Company-scoped records stay in the selected accounting context.

  • Review before binding actions. Tax filing, payments, external messages and automation approvals require their own decision.

  • Keep sensitive identifiers in Norman. Complete restricted identity and payment setup in the app, not in chat.

  • Check the result. A draft, preview, queued request or downloaded XML is not proof of filing or payment success.

Polish KPiR and estimate reads can synchronize derived records and therefore declare readOnlyHint=false. Country and book-type guards prevent German procedures from being applied to Polish books. Technical rollout and tool-specific limits are documented in the linked guides.

Documentation

Guide

Contents

Connect your AI client

Hosted OAuth and client installs

All tools

Every tool the hosted server offers, by area

Polish accounting

KPiR, full books, JPK, estimates, filing status and limits

Tool workflows

Invoice settings, emails, uploads, company formation and DATEV details

German VAT item workflows

Mixed VAT, input tax, refunds and corrections

Workflow gallery

Invoices, transactions, documents and VAT examples

Changelog

What changed in each release

This repository holds the documentation, skills and client manifests of the hosted Norman MCP server. Issues and skill suggestions are welcome; see Contributing and Security.

Invoice appearance and updates

Client emails and payment reminders

Mixed VAT and documented input tax

Norman Inbox and MCP Events

DATEV files and complete Ledger exports


Website · Report an issue or suggest a feature · MIT license

Available Tools

34 tools
categorize_transactionBInspect
Detect category for a transaction using AI.

Args:
    transaction_amount: Amount of the transaction
    transaction_description: Description of the transaction
    transaction_type: Type of transaction ("income" or "expense")
    
Returns:
    Suggested category information for the transaction

Inputs: transaction_amount (required), transaction_description (required), transaction_type (required).

create_attachmentBInspect
Create a new attachment.

Args:
    file_path: Path to file to upload
    transactions: List of transaction IDs to link
    attachment_type: Type of attachment (invoice, receipt)
    amount: Amount related to attachment
    amount_exchanged: Exchanged amount in different currency
    attachment_number: Unique number for attachment
    brand_name: Brand name associated with attachment
    currency: Currency of amount (default EUR)
    currency_exchanged: Exchanged currency (default EUR)
    description: Description of attachment
    supplier_country: Country of supplier (DE, INSIDE_EU, OUTSIDE_EU)
    value_date: Date of value
    vat_sum_amount: VAT sum amount
    vat_sum_amount_exchanged: Exchanged VAT sum amount
    vat_rate: VAT rate percentage
    sale_type: Type of sale
    additional_metadata: Additional metadata for attachment
    
Returns:
    Created attachment information

Inputs: file_path (required), additional_metadata, amount, amount_exchanged, +13 more.

create_clientBInspect
Create a new client.

Args:
    name: Client name or business name
    client_type: Type of client (defaults to "business"), Options: "business", "private"
    address: Client physical address
    zip_code: Client postal/zip code
    email: Client email address
    country: Client country code (e.g. "DE")
    vat_number: Client VAT number
    city: Client city
    phone: Client phone number
    
Returns:
    Newly created client record

Inputs: name (required), address, city, client_type, +5 more.

create_invoiceAInspect
Create a new invoice. Ask for additional information if needed, for example:
- If the client is not found, ask for the client details and create a new client if necessary.
- If pyament reminder should be sent, ask for the reminder settings.
- If the invoice type is GOODS, ask for the delivery date.
- If the invoice type is SERVICES, ask for the service start and end dates.
- If the invoice should be sent to the client, ask for the email data.

Args:
    client_id: ID of the client for the invoice
    items: List of invoice items, each containing name, quantity, rate, vatRate and total. 
           Example: [{"name": "Software Development", "quantity": 3, "rate": 30000, "vatRate": 19, "total": 1071}] // VAT rates might be 0, 7, 19. By default it's 19. Rate and total are in cents.
    invoice_number: Optional invoice number (will be auto-generated if not provided)
    issued: Issue date in YYYY-MM-DD format
    due_to: Due date in YYYY-MM-DD format
    currency: Invoice currency (EUR, USD), by default it's EUR
    payment_terms: Payment terms text
    notes: Additional notes
    language: Invoice language (en, de)
    invoice_type: Type of invoice (SERVICES, GOODS)
    is_vat_included: Whether prices include VAT
    bank_name: Name of the bank (gets from company details if exists)
    iban: IBAN for payments (gets from company details if exists)
    bic: BIC/SWIFT code (gets from company details if exists)
    create_qr: Whether to create payment QR code (only if BIC and IBAN provided)
    color_schema: Invoice style color (hex code)
    font: Invoice font (e.g. "Plus Jakarta Sans", "Inter")
    is_to_send: Whether to send invoice automatically to client
    mailing_data: Email data if is_to_send is True. Example: {
        "emailSubject": "Invoice No.{invoice_number} for {client_name}",
        "emailBody": "Dear {client_name},...",
        "customClientEmail": "client@example.com" // email to send the invoice to, if not provided, it will be sent to the client email address
    }
    settings_on_overdue: Configuration for overdue notifications. Example: {
        "isToAutosendNotification": true, // whether to send notification automatically
        "customEmailSubject": "Reminder: Invoice {invoice_number} is overdue", // custom email subject
        "customEmailBody": "Dear {client_name},...", // custom email body
        "notifyAfterDays": [1, 3], // days to notify after the due date
        "notifyInParticularDays": [] // days to notify in particular dates [2025-05-23", "2025-05-24"]
    }
    service_start_date: Service period start date (YYYY-MM-DD) by default it's today, should be provided if invoice_type is SERVICES
    service_end_date: Service period end date (YYYY-MM-DD) by default it's one month from today, should be provided if invoice_type is SERVICES
    delivery_date: Delivery date for goods (YYYY-MM-DD) by default it's today, should be provided if invoice_type is GOODS

Returns:
    Information about the created invoice and always include the generated invoice pdf url from reportUrl field

Inputs: client_id (required), items (required), bank_name, bic, +19 more.

create_recurring_invoiceAInspect
Create a recurring invoice that will automatically generate new invoices based on specified frequency.
Useful for contracts or services that bill on a regular basis.
Always ask for reccurring configuration, for example:
    - How often to generate invoices (weekly, monthly)
    - Number of units for frequency (e.g. 1 for monthly = every month, 2 = every 2 months)
    - Start date
    - End date
    - End invoice count (optional)
    
Ask for additional information if needed, for example:
    - If the client is not found, ask for the client details and create a new client if necessary.
    - If the invoice number is not provided, ask for it.
    - If the due date is not provided, ask for it.
    - If the payment terms are not provided, ask for it.
    - If the bank details are not provided, ask for it.

Args:
    client_id: ID of the client for the invoice
    items: List of invoice items, each containing name, quantity, rate, vatRate and total
    frequency_type: How often to generate invoices ("weekly", "monthly")
    frequency_unit: Number of units for frequency (e.g. 1 for monthly = every month, 2 = every 2 months)
    starts_from_date: Date to start generating invoices from (YYYY-MM-DD)
    ends_on_date: Optional end date for recurring invoices (YYYY-MM-DD). Either ends_on_date or ends_on_invoice_count should be provided.
    ends_on_invoice_count: Optional number of invoices to generate before stopping. Either ends_on_date or ends_on_invoice_count should be provided.
    invoice_number: Base invoice number (will be auto-generated if not provided)
    issued: Issue date in YYYY-MM-DD format
    due_to: Due date in YYYY-MM-DD format
    currency: Invoice currency (EUR, USD), by default it's EUR
    payment_terms: Payment terms text
    notes: Additional notes
    language: Invoice language (en, de)
    invoice_type: Type of invoice (SERVICES, GOODS)
    is_vat_included: Whether prices include VAT
    bank_name: Name of the bank
    iban: IBAN for payments
    bic: BIC/SWIFT code
    create_qr: Whether to create payment QR code
    color_schema: Invoice style color (hex code)
    font: Invoice font (e.g. "Plus Jakarta Sans", "Inter")
    is_to_send: Whether to send invoices automatically to client
    settings_on_overdue: Configuration for overdue notifications
    service_start_date: Service period start date (for SERVICES type)
    service_end_date: Service period end date (for SERVICES type)
    delivery_date: Delivery date (for GOODS type)

Returns:
    Information about the created recurring invoice setup and always include the generated invoice pdf url from reportUrl field

Inputs: client_id (required), frequency_type (required), frequency_unit (required), items (required), +23 more.

create_transactionBInspect
Create a new manual transaction.

Args:
    amount: Transaction amount (positive for income, negative for expense)
    description: Transaction description
    category: Transaction category
    date: Transaction date in YYYY-MM-DD format (defaults to today)
    vat_rate: VAT rate (0, 7, 19)
    sale_type: Sale type (GOODS, SERVICES)
    supplier_country: Country of the supplier (DE, INSIDE_EU, OUTSIDE_EU)
    cashflow_type: Cashflow type of the transaction (INCOME, EXPENSE)
    category_id: Category ID of the transaction (If not provided, the transaction will be categorized automatically using AI)
Returns:
    Information about the created transaction

Inputs: amount (required), cashflow_type (required), description (required), supplier_country (required), +4 more.

delete_clientCInspect
Delete a client.

Args:
    client_id: ID of the client to delete
    
Returns:
    Confirmation of deletion

Inputs: client_id (required).

generate_finanzamt_previewCInspect
Generate a test Finanzamt preview for a tax report.

Args:
    report_id: Public ID of the tax report
    
Returns:
    Generate a PDF preview of the tax report. 
    Always suggest to check the preview before sending it to the Finanzamt.
    Always include the path to the generated PDF file as a link to open the file from local file system.
    Get the report data from @get_tax_report and show line items and totals.
      You could add short summary based on the report data.
    Ask follow up question to file the tax report to the Finanzamt @submit_tax_report. Don't send the report to the Finanzamt without the user confirmation.

Inputs: report_id (required).

get_clientCInspect
Get detailed information about a specific client.

Args:
    client_id: ID of the client to retrieve
    
Returns:
    Detailed client information

Inputs: client_id (required).

get_company_balanceCInspect
Get the current balance of the company.

Returns:
    Company balance information

Inputs: no named parameters.

get_company_detailsBInspect

Get detailed information about the user's company.

Inputs: no named parameters.

get_company_tax_statisticsCInspect
Get tax statistics for the company.

Returns:
    Company tax statistics data

Inputs: no named parameters.

get_einvoice_xmlBInspect
Get the e-invoice XML for a specific invoice.

Args:
    invoice_id: ID of the invoice to get XML for
    
Returns:
    E-invoice XML data

Inputs: invoice_id (required).

get_invoiceCInspect
Get detailed information about a specific invoice.

Args:
    invoice_id: ID of the invoice to retrieve
    
Returns:
    Detailed invoice information

Inputs: invoice_id (required).

get_tax_reportBInspect
Retrieve a specific tax report.

Args:
    report_id: Public ID of the tax report to retrieve
    
Returns:
    Tax report details

Inputs: report_id (required).

get_vat_next_reportCInspect
Get the VAT amount for the next report period.

Returns:
    VAT next report amount data

Inputs: no named parameters.

list_attachmentsBInspect
Get list of attachments with optional filters.

Args:
    file_name: Filter by file name (case insensitive partial match)
    linked: Filter by whether attachment is linked to transactions
    attachment_type: Filter by attachment type (invoice, receipt, contract, other)
    description: Filter by description (case insensitive partial match)
    brand_name: Filter by brand name (case insensitive partial match)
    
Returns:
    List of attachments matching the filters

Inputs: attachment_type, brand_name, description, file_name, +1 more.

list_clientsBInspect
Get a list of all clients for the company.

Returns:
    List of clients with their details

Inputs: no named parameters.

list_invoicesBInspect
List invoices with optional filtering.

Args:
    status: Filter by invoice status (draft, pending, sent, paid, overdue, uncollectible)
    name: Filter by invoice (client) name
    from_date: Filter invoices created after this date (YYYY-MM-DD)
    to_date: Filter invoices created before this date (YYYY-MM-DD)
    limit: Maximum number of invoices to return (default 100)
    
Returns:
    List of invoices matching the criteria

Inputs: from_date, limit, name, status, +1 more.

list_tax_reportsBInspect

List all available tax reports.

Inputs: no named parameters.

list_tax_settingsBInspect
Get list of tax settings for the current company.

Returns:
    List of company tax settings

Inputs: no named parameters.

list_tax_statesBInspect
Get list of available tax states.

Returns:
    List of tax states

Inputs: no named parameters.

search_transactionsAInspect
Search for transactions matching specified criteria.

Args:
    description: Text to search for in transaction descriptions
    from_date: Start date in YYYY-MM-DD format
    to_date: End date in YYYY-MM-DD format
    min_amount: Minimum transaction amount
    max_amount: Maximum transaction amount
    category: Transaction category
    limit: Maximum number of results to return (default 100)
    no_invoice: Whether to exclude invoices
    no_receipt: Whether to exclude receipts
    status: Status of the transaction (UNVERIFIED, VERIFIED)
    cashflow_type: Cashflow type of the transaction (INCOME, EXPENSE)
Returns:
    List of matching transactions with sensitive data removed

Inputs: cashflow_type, category, description, from_date, +7 more.

send_invoiceBInspect
Send an invoice via email.

Args:
    invoice_id: ID of the invoice to send
    subject: Email subject line
    body: Email body content
    additional_emails: List of additional email addresses to send to
    is_send_to_company: Whether to send the copy to the company email (Owner)
    custom_client_email: Custom email address for the client (By default the email address of the client is used if it is set)
    
Returns:
    Response from the send invoice request

Inputs: body (required), invoice_id (required), subject (required), additional_emails, +2 more.

send_invoice_overdue_reminderBInspect
Send an overdue payment reminder for an invoice via email.

Args:
    invoice_id: ID of the invoice to send reminder for
    subject: Email subject line
    body: Email body content
    additional_emails: List of additional email addresses to send to
    is_send_to_company: Whether to send the copy to the company email (Owner)
    custom_client_email: Custom email address for the client (By default the email address of the client is used if it is set)
    
Returns:
    Response from the send overdue reminder request

Inputs: body (required), invoice_id (required), subject (required), additional_emails, +2 more.

submit_tax_reportBInspect
Submit a tax report to the Finanzamt.

Args:
    report_id: Public ID of the tax report to submit
    
Returns:
    Response from the submission request and a link to the tax report from reportFile to download.
    If response status is 403, it means a paid subscription is required to file the report.

Inputs: report_id (required).

update_clientBInspect
Update an existing client.

Args:
    client_id: ID of the client to update
    name: Updated client name
    client_type: Updated client type ("business" or "private")
    address: Updated client physical address
    zip_code: Updated client postal/zip code
    email: Updated client email address
    country: Updated client country code (e.g. "DE")
    vat_number: Updated client VAT number
    city: Updated client city
    phone: Updated client phone number
    
Returns:
    Updated client record

Inputs: client_id (required), address, city, client_type, +6 more.

update_company_detailsDInspect

Update company information.

Inputs: activity_start, address, city, country, +7 more.

update_tax_settingAInspect
Update a tax setting. Always generate a preview of the tax report @generate_finanzamt_preview before submitting it to the Finanzamt.

Args:
    setting_id: Public ID of the tax setting to update
    tax_type: Type of tax (e.g. "sales")
    vat_type: VAT type (e.g. "vat_subject")
    vat_percent: VAT percentage
    start_tax_report_date: Start date for tax reporting (YYYY-MM-DD)
    reporting_frequency: Frequency of reporting (e.g. "monthly")
    
Returns:
    Updated tax setting

Inputs: setting_id (required), reporting_frequency, start_tax_report_date, tax_type, +2 more.

update_transactionCInspect

Update an existing transaction.

Inputs: transaction_id (required), amount, cashflow_type, category, +6 more.

upload_bulk_attachmentsBInspect
Upload multiple file attachments in bulk.

Args:
    file_paths: List of paths to files to upload
    cashflow_type: Optional cashflow type for the transactions (INCOME or EXPENSE)
    
Returns:
    Response from the bulk upload request

Inputs: file_paths (required), cashflow_type.

validate_tax_numberCInspect
Validate a tax number for a specific region.

Args:
    tax_number: Tax number to validate
    region_code: Region code (e.g. "BE" for Belgium)
    
Returns:
    Validation result for the tax number

Inputs: region_code (required), tax_number (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 34 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between create_transaction and categorize_transaction, and between send_invoice and send_invoice_overdue_reminder, which could cause minor confusion. However, descriptions clarify their specific roles, and the majority of tools target unique resources or actions.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with a clear verb_noun structure, such as create_client, list_invoices, and update_transaction. This uniformity makes the tool set predictable and easy to navigate.

    Tool Count3/5

    With 34 tools, the count is borderline high for a finance server, potentially overwhelming for an agent. While the domain is broad (clients, invoices, transactions, taxes, attachments), some tools might be redundant or overly specialized, making the set feel heavy.

    Completeness5/5

    The tool set provides comprehensive coverage for financial management, including full CRUD operations for clients, invoices, transactions, and attachments, plus tax reporting, validation, and email functionalities. There are no obvious gaps, and tools support end-to-end workflows.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      MCP server for DACH accounting automation. Connect AI assistants to sevDesk and Lexoffice — create invoices, manage contacts, handle bookings and vouchers for German-speaking businesses.
      15
      59 npm
      -
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for DACH e-invoicing. Create XRechnung (UBL) and ZUGFeRD 2.3 (Factur-X CII) invoices, validate against EN 16931 rules, extract data from XML, and convert between UBL, CII and JSON formats.
      6
      61 npm
      2
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for German e-invoice compliance (XRechnung 3.0 & ZUGFeRD 2.x) enabling AI agents to validate, generate, parse, and check compliance of electronic invoices per EN 16931.
      6
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server for Spanish accounting for freelancers and SMEs, enabling AI agents to issue invoices, OCR expense PDFs, reconcile bank transactions, and prepare quarterly VAT (Modelo 303).
      23
      4
      MIT