Bexio MCP server
io.github.PromptPartner/bexio-mcp-server·v2.6.2·40 starsSwiss accounting integration for Bexio. 315 tools: invoices, contacts, projects, account balances
40 stars222 downloads/wk
Reviews
Write oneNobody 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 postsRead from the package source without running it. The installed server may list more.
advanced_search_contactsPerform advanced search on contacts using multiple criteria
bulk_create_contactswrite actionCreate multiple contacts in one call. Returns per-item results with success/failure status.
cancel_invoicewrite actionCancel an invoice
copy_invoiceCopy an invoice
create_accountwrite actionCreate a new account in the chart of accounts
create_additional_addresswrite actionCreate an additional address for a contact
create_commentwrite actionCreate a new comment on a document
create_contactwrite actionCreate a new contact in Bexio. Set contact_type to 'person' for individuals or 'company' for organizations.
create_currencywrite actionCreate 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 actionCreate a new invoice in Bexio
create_itemwrite actionCreate a new item in Bexio
create_manual_entrywrite actionCreate 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 actionCreate 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 actionCreate 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 actionDelete an additional address from a contact
delete_contactwrite actionDelete a contact (soft delete -- moves to trash). Use restore_contact to recover.
delete_currencywrite actionDelete a currency by ID. Cannot delete currencies in use by documents.
delete_filewrite actionDelete a file from Bexio
delete_invoicewrite actionDelete an invoice
delete_itemwrite actionDelete an item
delete_manual_entrywrite actionDelete a manual entry
download_fileDownload 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_invoiceEdit/update an existing invoice
edit_itemEdit/update an existing item
find_contact_by_nameFind contacts by name (searches through all pages)
find_contact_by_numberFind a specific contact by its contact number (e.g., '001008')
get_accountGet a specific account by ID from the chart of accounts
get_account_balancesGet 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_addressGet a specific additional address for a contact
get_bank_accountGet details of a specific bank account by ID
get_calendar_yearGet a specific calendar year by ID
get_commentGet a specific comment by ID from a document
get_company_profileGet the company profile including name, address, and settings
get_contactGet a specific contact by ID
get_contact_relationGet a specific contact relation by ID
get_currencyGet details of a specific currency by ID
get_currency_exchange_ratesGet exchange rates for a specific currency (by ID, from list_currencies), optionally for a historical date. Useful for multi-currency reporting and conversions.
get_deliveryGet a specific delivery by ID
get_fileGet a specific file's metadata by ID
get_iban_paymentGet details of an IBAN payment by ID
get_invoiceGet a specific invoice by ID
get_invoice_pdfGet an invoice as PDF (returns base64-encoded content)
get_itemGet a specific item by ID
get_journalQuery 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_entryGet a specific manual entry by ID
get_open_invoicesGet all open invoices (draft and sent/pending)
get_overdue_invoicesGet all overdue invoices
get_payment_typeGet a specific payment type by ID
get_qr_paymentGet details of a QR payment by ID
get_taxGet a specific tax by ID
issue_deliveryIssue a delivery
issue_invoiceIssue an invoice
list_account_groupsList account groups (read-only hierarchy). Account groups organize the chart of accounts into categories.
list_accountsList chart of accounts with pagination. Returns all accounts in the chart of accounts.
list_additional_addressesList additional addresses for a contact
list_all_invoicesList every invoice in Bexio by paging automatically
list_all_statusesList all document statuses for invoices, quotes, and orders
list_bank_accountsList 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_yearsList business/fiscal years (read-only). Business years define fiscal periods for accounting.
list_calendar_yearsList calendar years defined in the system
list_commentsList all comments for a specific document (quote, order, invoice, or delivery)
list_companiesList 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_relationsList all contact relations
list_contactsList contacts from Bexio with optional pagination and filtering
list_currenciesList all currencies configured in Bexio. Returns currency codes (CHF, EUR, USD, etc.) with their rounding factors for invoicing.
list_currency_codesList all ISO currency codes Bexio supports (for use when creating currencies).
list_deliveriesList deliveries from Bexio with optional pagination
list_filesList files from Bexio with optional pagination
list_invoice_statusesList all available invoice statuses with their meanings
list_invoicesList invoices from Bexio with optional pagination
list_itemsList items from Bexio with optional pagination
list_manual_entriesList manual journal entries
list_payment_typesList all payment types available for invoices and payments
list_permissionsList all available user permissions in the Bexio account (v3.0 API)
list_taxesList taxes from Bexio with optional pagination
list_vat_periodsList VAT periods (read-only). VAT periods define reporting periods for value-added tax.
mark_invoice_as_sentMark an invoice as sent
pingTest tool that returns pong - validates SDK integration
restore_contactRestore a previously deleted contact from trash.
revert_invoice_to_draftRevert an issued invoice back to draft status
search_accountsSearch accounts by criteria. Use field/value/criteria pattern for flexible searching.
search_additional_addressesSearch additional addresses for a contact by criteria
search_contactsSearch contacts by name, email, or other fields
search_deliveriesSearch deliveries via the Bexio search endpoint. Use query for simple text search, or filters for advanced criteria.
search_invoicesSearch invoices via the Bexio search endpoint
search_invoices_by_customerSearch invoices by customer name (finds contact, then invoices)
search_itemsSearch items by name
select_companySwitch 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 actionSend an invoice
update_additional_addresswrite actionUpdate an additional address for a contact
update_company_profilewrite actionUpdate company profile settings
update_contactwrite actionUpdate an existing contact's information
update_currencywrite actionUpdate an existing currency's settings
update_filewrite actionUpdate a file's metadata in Bexio
update_iban_paymentwrite actionUpdate 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 actionUpdate a manual entry
update_qr_paymentwrite actionUpdate a pending QR payment. Only pending payments can be modified.
upload_filewrite actionUpload 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
- 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
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
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)
- Download the latest .mcpb file from GitHub Releases
- In Claude Desktop, go to Settings → Extensions
- 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
- 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 8000Clients 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-serverOr 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.jsGetting Your Bexio API Token
- Go to developer.bexio.com
- Log in with your regular Bexio account
- Navigate to Personal Access Tokens
- Click Create New Token
- 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.
Norman Finance — AI Bookkeeping, Accounting & TaxesBookkeeping, invoices and tax workflows for European businesses, including Polish KPiR and JPK.not reviewedEstablishedA- E ArveldajaEstonian e-arveldaja (RIK e-Financials) accounting — invoices, bank import, reports.not reviewedEstablishedB
- QuickbooksMCP server for QuickBooks Online (Intuit) — customers, invoices, payments, items, accounts, P&Lnot reviewedGrowingB
- QuickBooks OnlineQuickBooks Online MCP server: invoices, bills, customers, vendors, employees, and accountsnot reviewedGrowingA
BankMCP™Read-only MCP server for your own bank accounts via Enable Banking. Self-hosted, one user.not reviewedEstablishedA