MCP.Market

Bexio MCP server

by PromptPartner·io.github.PromptPartner/bexio-mcp-server·v2.6.2·40 stars

Swiss accounting integration for Bexio. 315 tools: invoices, contacts, projects, account balances

A85/100grade A
What users say
No reviews yet
Be the first
Safety scan
A85/100

full report

Adoption
Growing

40 stars222 downloads/wk

Reviews

Write one

Nobody has reviewed Bexio yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Bexio tools (100, 31 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • advanced_search_contacts

    Perform advanced search on contacts using multiple criteria

  • bulk_create_contactswrite action

    Create multiple contacts in one call. Returns per-item results with success/failure status.

  • cancel_invoicewrite action

    Cancel an invoice

  • copy_invoice

    Copy an invoice

  • create_accountwrite action

    Create a new account in the chart of accounts

  • create_additional_addresswrite action

    Create an additional address for a contact

  • create_commentwrite action

    Create a new comment on a document

  • create_contactwrite action

    Create a new contact in Bexio. Set contact_type to 'person' for individuals or 'company' for organizations.

  • create_currencywrite action

    Create a new currency in Bexio. Swiss default: round_factor 0.05 (5 rappen). Common currencies: CHF, EUR, USD, GBP.

  • create_iban_paymentwrite action

    ⚠️ Creates a STANDALONE bank payment that is NOT linked to any supplier bill. To pay a supplier bill (and have it marked paid), use `create_outgoing_payment` with a `bill_id` instead — that works for both IBAN and QR and records the payment against the bill. A standalone payment created here CANNOT be attached to a bill afterward. Use this tool only for ad-hoc payments that have no underlying bill

  • create_invoicewrite action

    Create a new invoice in Bexio

  • create_itemwrite action

    Create a new item in Bexio

  • create_manual_entrywrite action

    Create a manual journal entry (double-entry bookkeeping). Provide flat params; the handler transforms to nested entries array internally. Bexio validates that debits equal credits.

  • create_manual_group_entrywrite action

    Create a manual GROUP entry (Sammelbuchung): one document holding many postings, e.g. a whole payroll run booked as a single voucher. Each line keeps its own debit account, credit account, amount and description; date and currency are inherited from the document unless the line overrides them. Prefer this over repeated create_manual_entry calls: it is one API round-trip instead of one per line, an

  • create_payment_typewrite action

    Create a new payment type for invoices and payments

  • create_qr_paymentwrite action

    ⚠️ Creates a STANDALONE bank payment that is NOT linked to any supplier bill. To pay a supplier bill (and have it marked paid), use `create_outgoing_payment` with a `bill_id` instead — that works for both IBAN and QR and records the payment against the bill. A standalone payment created here CANNOT be attached to a bill afterward. Use this tool only for ad-hoc payments that have no underlying bill

  • delete_additional_addresswrite action

    Delete an additional address from a contact

  • delete_contactwrite action

    Delete a contact (soft delete -- moves to trash). Use restore_contact to recover.

  • delete_currencywrite action

    Delete a currency by ID. Cannot delete currencies in use by documents.

  • delete_filewrite action

    Delete a file from Bexio

  • delete_invoicewrite action

    Delete an invoice

  • delete_itemwrite action

    Delete an item

  • delete_manual_entrywrite action

    Delete a manual entry

  • download_file

    Download a file's content from Bexio. Small files (<= 64 KB by default) are returned inline as a base64 string (`content_base64`). Larger files are written to a file on the server and the tool returns `file_path` instead of the base64 (this prevents context overflow). Pass `output_path` to control where the file is written, or set the BEXIO_DOWNLOAD_INLINE_MAX_BYTES env var to change the inline th

  • edit_invoice

    Edit/update an existing invoice

  • edit_item

    Edit/update an existing item

  • find_contact_by_name

    Find contacts by name (searches through all pages)

  • find_contact_by_number

    Find a specific contact by its contact number (e.g., '001008')

  • get_account

    Get a specific account by ID from the chart of accounts

  • get_account_balances

    Get account balances (Saldenliste) computed from the accounting journal. Bexio has no native balance endpoint, so balances are derived: balance = sum(debits) - sum(credits) per account over the date range. The range is filtered server-side and re-checked locally; the response reports scanned_rows, matched_rows, server_side_filter and truncated, so an incomplete scan is visible rather than silently

  • get_additional_address

    Get a specific additional address for a contact

  • get_bank_account

    Get details of a specific bank account by ID

  • get_calendar_year

    Get a specific calendar year by ID

  • get_comment

    Get a specific comment by ID from a document

  • get_company_profile

    Get the company profile including name, address, and settings

  • get_contact

    Get a specific contact by ID

  • get_contact_relation

    Get a specific contact relation by ID

  • get_currency

    Get details of a specific currency by ID

  • get_currency_exchange_rates

    Get exchange rates for a specific currency (by ID, from list_currencies), optionally for a historical date. Useful for multi-currency reporting and conversions.

  • get_delivery

    Get a specific delivery by ID

  • get_file

    Get a specific file's metadata by ID

  • get_iban_payment

    Get details of an IBAN payment by ID

  • get_invoice

    Get a specific invoice by ID

  • get_invoice_pdf

    Get an invoice as PDF (returns base64-encoded content)

  • get_item

    Get a specific item by ID

  • get_journal

    Query the accounting journal for a date range, optionally narrowed to one account. The range is filtered server-side by bexio and re-checked locally, so a period is never silently wrong; the response reports total_matched, scanned_rows and server_side_filter. Without a date range this returns a raw journal page. limit/offset apply to the filtered result.

  • get_manual_entry

    Get a specific manual entry by ID

  • get_open_invoices

    Get all open invoices (draft and sent/pending)

  • get_overdue_invoices

    Get all overdue invoices

  • get_payment_type

    Get a specific payment type by ID

  • get_qr_payment

    Get details of a QR payment by ID

  • get_tax

    Get a specific tax by ID

  • issue_delivery

    Issue a delivery

  • issue_invoice

    Issue an invoice

  • list_account_groups

    List account groups (read-only hierarchy). Account groups organize the chart of accounts into categories.

  • list_accounts

    List chart of accounts with pagination. Returns all accounts in the chart of accounts.

  • list_additional_addresses

    List additional addresses for a contact

  • list_all_invoices

    List every invoice in Bexio by paging automatically

  • list_all_statuses

    List all document statuses for invoices, quotes, and orders

  • list_bank_accounts

    List all configured bank accounts in Bexio. Returns account details including IBAN, bank name, and currency. Use this to get valid bank_account_id values before creating payments.

  • list_business_years

    List business/fiscal years (read-only). Business years define fiscal periods for accounting.

  • list_calendar_years

    List calendar years defined in the system

  • list_comments

    List all comments for a specific document (quote, order, invoice, or delivery)

  • list_companies

    List the Bexio companies (mandates) this server is configured for. Returns each company's label, its real company name, and which one is currently ACTIVE. Use this to discover the available companies before switching with select_company.

  • list_contact_relations

    List all contact relations

  • list_contacts

    List contacts from Bexio with optional pagination and filtering

  • list_currencies

    List all currencies configured in Bexio. Returns currency codes (CHF, EUR, USD, etc.) with their rounding factors for invoicing.

  • list_currency_codes

    List all ISO currency codes Bexio supports (for use when creating currencies).

  • list_deliveries

    List deliveries from Bexio with optional pagination

  • list_files

    List files from Bexio with optional pagination

  • list_invoice_statuses

    List all available invoice statuses with their meanings

  • list_invoices

    List invoices from Bexio with optional pagination

  • list_items

    List items from Bexio with optional pagination

  • list_manual_entries

    List manual journal entries

  • list_payment_types

    List all payment types available for invoices and payments

  • list_permissions

    List all available user permissions in the Bexio account (v3.0 API)

  • list_taxes

    List taxes from Bexio with optional pagination

  • list_vat_periods

    List VAT periods (read-only). VAT periods define reporting periods for value-added tax.

  • mark_invoice_as_sent

    Mark an invoice as sent

  • ping

    Test tool that returns pong - validates SDK integration

  • restore_contact

    Restore a previously deleted contact from trash.

  • revert_invoice_to_draft

    Revert an issued invoice back to draft status

  • search_accounts

    Search accounts by criteria. Use field/value/criteria pattern for flexible searching.

  • search_additional_addresses

    Search additional addresses for a contact by criteria

  • search_contacts

    Search contacts by name, email, or other fields

  • search_deliveries

    Search deliveries via the Bexio search endpoint. Use query for simple text search, or filters for advanced criteria.

  • search_invoices

    Search invoices via the Bexio search endpoint

  • search_invoices_by_customer

    Search invoices by customer name (finds contact, then invoices)

  • search_items

    Search items by name

  • select_company

    Switch the ACTIVE Bexio company (mandate). Every other tool operates on the active company, so call this first whenever the user refers to a specific company (e.g. "in Globex, list open invoices"). Pass the company's label exactly as shown by list_companies. The active company persists until you switch again.

  • send_invoicewrite action

    Send an invoice

  • update_additional_addresswrite action

    Update an additional address for a contact

  • update_company_profilewrite action

    Update company profile settings

  • update_contactwrite action

    Update an existing contact's information

  • update_currencywrite action

    Update an existing currency's settings

  • update_filewrite action

    Update a file's metadata in Bexio

  • update_iban_paymentwrite action

    Update a pending IBAN payment. Only pending payments can be modified. Note: this cannot attach the payment to a supplier bill — Bexio returns 403. To pay a bill, create the payment via `create_outgoing_payment` with a `bill_id`.

  • update_manual_entrywrite action

    Update a manual entry

  • update_qr_paymentwrite action

    Update a pending QR payment. Only pending payments can be modified.

  • upload_filewrite action

    Upload a file to Bexio and get its id/uuid (e.g. for create_bill/update_bill attachment_ids). Provide EITHER file_path (preferred: the server reads the file itself, so a PDF never passes through the conversation as base64) OR content_base64 + name + content_type. file_path works for any local path in stdio mode; in HTTP mode only inside the BEXIO_FILE_DIR directory, and not at all if that is unset

Public scan report

scanner v0.1.10 · 2026-11-08 · same rubric, same numbers if you re-run it

no findings
  • Code scan248 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 41 days ago12/15
  • Maintainer identityregistry namespace matches repository owner6/10
Overall 85/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Bexio compares

Against every graded Finance MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
85/100
higher than 82% of 1,765 Finance servers
Tools
100
the typical Finance server has 9
Tools that change things
31%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
40
more than 91% of 957 Finance servers
Downloads a week
222
more than 75% of 505 Finance servers with a package

What its tools let an agent do: 66 read · 13 create · 12 change · 8 delete · 1 send or post

Release history: 3 versions in the registry since 2026-07-01, latest 2026-09-28, typically one every 88 days.

Install Bexio in Claude Code, Cursor or VS Code

Runs npx -y @promptpartner/bexio-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add bexio-mcp-server -- npx -y @promptpartner/bexio-mcp-server
Add to Cursor

What the publisher says

From the Bexio repository's README, as published. We do not edit it. Read it on GitHub

@promptpartner/bexio-mcp-server

Complete Swiss accounting integration for Bexio via the Model Context Protocol (MCP). Works with Claude Desktop, n8n, and any MCP-compatible client.

Manage invoices, contacts, projects, time tracking, and 300+ more tools through AI conversation or workflow automation.

⚠️ Early Release Software

This project is under active development. While it's functional and tested, you may encounter bugs or unexpected behavior. Features will continue to be added and improved over time. Please report any issues you find!

Compatibility

Quick Start

For Claude Desktop

Option A: MCPB Bundle (Easiest)

  1. Download the latest .mcpb file from GitHub Releases
  2. In Claude Desktop, go to Settings → Extensions
  3. Install the extension using one of these methods:
  • Double-click the downloaded .mcpb file, or
  • Drag and drop the file onto the Extensions window, or
  • Click Advanced Settings → Install Extension and select the file
  1. Enter your Bexio API token when prompted

Option B: npm

Add to claudedesktopconfig.json:

{
  "mcpServers": {
    "bexio": {
      "command": "npx",
      "args": ["@promptpartner/bexio-mcp-server"],
      "env": {
        "BEXIO_API_TOKEN": "your-token-here"
      }
    }
  }
}

Config location:

  • macOS: ~/Library/Application Support/Claude/claudedesktopconfig.json
  • Windows: %APPDATA%\Claude\claudedesktopconfig.json

For n8n and Other HTTP Clients

Start the server in HTTP mode, with a bearer token:

BEXIO_API_TOKEN=your-token BEXIO_HTTP_TOKEN=$(openssl rand -hex 32) \
  npx @promptpartner/bexio-mcp-server --mode http --host 127.0.0.1 --port 8000

Clients then send Authorization: Bearer on every request (GET /, the health check, stays open).

Security: every tool reads or changes your books. Without BEXIOHTTPTOKEN the HTTP

endpoints are unauthenticated: on 0.0.0.0 (the default) anyone who can reach the port

can use them, and because CORS allows any origin, even a loopback-only server can be

called by a web page open in your browser. The server warns at startup when no token is

set. Local file paths (uploadfile filepath, downloadfile outputpath) are

refused over HTTP unless BEXIOFILEDIR names a directory to confine them to.

The server exposes MCP over HTTP at http://localhost:8000. Configure your MCP client to connect to this endpoint.

For Other stdio Clients

BEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server

Or build from source:

git clone https://github.com/promptpartner/bexio-mcp-server
cd bexio-mcp-server/src
npm install && npm run build
BEXIO_API_TOKEN=your-token node dist/index.js

Getting Your Bexio API Token

  1. Go to developer.bexio.com
  2. Log in with your regular Bexio account
  3. Navigate to Personal Access Tokens
  4. Click Create New Token
  5. Copy the token and use it in your configuration

Features

This MCP server provides 315 tools across all Bexio domains:

Contacts & CRM

  • Create, update, search contacts
  • Contact groups, sectors, salutations, titles
  • Contact relations management

Invoices & Sales

  • Full invoice lifecycle (create, issue, send, cancel)
  • Quotes with accept/decline workflows
  • Orders with delivery management
  • Incoming payments tracking
  • Interactive invoice preview (Claude Desktop)

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Bexio: common questions

Is Bexio MCP server safe?
Yes, by our scan: it is graded A (85/100). Read the Bexio safety report
How do I install Bexio?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Bexio need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Bexio maintained?
The last commit was 48 days ago (2026-09-28). The latest release is v2.6.2.
What can I use instead of Bexio?
Servers from other publishers that do the same job: Norman Finance — AI Bookkeeping, Accounting & Taxes MCP server, E Arveldaja MCP server and Quickbooks MCP server. Compare all Bexio alternatives.
How does Bexio compare with other Finance MCP servers?
safety score 85/100 (higher than 82% of 1,765 Finance servers); tools 100 (the typical Finance server has 9); tools that change things 31% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Bexio

Same job from other publishers: the closest match first, then the best rated.

All Bexio alternatives →