accept_quote
Accept a quote
Run a Bexio account by conversation: contacts, quotes, orders, invoices and reminders, bills and payments, bookkeeping, projects, time tracking and reports.
LABSCO SUMMARY
That breadth is also what to plan for: set BEXIO_ENABLED_CATEGORIES to the categories a given session actually needs rather than loading everything. Two things to know going in — the author labels it early-release software, and the payroll tools only answer on accounts that have the Bexio Payroll module.
A broad MCP server over the Bexio API for Swiss accounting, covering the sales, purchase, bookkeeping and project sides of the account. It runs over stdio for desktop clients and over HTTP for n8n and other workflow tools.
A Bexio API token in BEXIO_API_TOKEN, or BEXIO_API_TOKENS for several companies as a comma-separated Name:token list with BEXIO_DEFAULT_COMPANY choosing which is active at startup. stdio is the default transport; --mode http --port 8000 exposes it over HTTP instead. BEXIO_BASE_URL overrides the endpoint (default https://api.bexio.com/2.0) and BEXIO_ENABLED_CATEGORIES whitelists tool categories. Run it with npx @promptpartner/bexio-mcp-server, or install the .mcpb bundle in Claude Desktop.
One command plus a key — npx @promptpartner/bexio-mcp-server, then supply credentials
USE CASES
Pull the overdue invoices, then create and send a reminder against the ones that need it.
Find the contact by name, create the invoice, then issue and send it.
Accept the quote, spin an order off it, and raise the invoice from that order.
Create the bill, book it out of draft, then record the outgoing payment against it.
Read revenue for the period, break it down by customer, and rank the top ones.
Find the project and the service type, then write the timesheet entry with its duration.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
accept_quoteAccept a quote
advanced_search_contactsPerform advanced search on contacts using multiple criteria
archive_projectArchive a project in Bexio. Archived projects are hidden but not deleted.
bulk_create_contactsCreate multiple contacts in one call. Returns per-item results with success/failure status.
cancel_invoiceCancel an invoice
copy_invoiceCopy an invoice
copy_quoteCopy/duplicate a quote
create_absenceCreate a new absence record (vacation, sick leave, etc.). Requires Bexio Payroll module subscription.
create_accountCreate a new account in the chart of accounts
create_additional_addressCreate an additional address for a contact
create_billCreate a new bill (creditor invoice) from a supplier (Bexio v4.0). IMPORTANT field names: use supplier_id (NOT contact_id), line_items (NOT positions), and booking_account_id on each line (NOT account_id); 'address' is a structured object. The API also requires contact_partner_id, bill_date, due_date, currency_code, item_net and manual_amount (+ amount_calc when manual_amount is false). New bills are created as DRAFT — use issue_bill to book them, then create_outgoing_payment to mark them paid.
create_business_activityCreate a new business activity (service type for time tracking)
create_commentCreate a new comment on a document
create_contactCreate a new contact in Bexio. Set contact_type to 'person' for individuals or 'company' for organizations.
create_contact_groupCreate a new contact group for categorizing contacts
create_contact_relationCreate a new contact relation
create_contact_sector[NOT SUPPORTED] Create a new contact sector (industry type). Note: Bexio API does not support creating contact sectors. This resource is read-only.
create_countryCreate a new country entry
create_currencyCreate a new currency in Bexio. Swiss default: round_factor 0.05 (5 rappen). Common currencies: CHF, EUR, USD, GBP.
create_default_positionCreate a default (custom) position on a quote, order, or invoice. custom free-text line item. Fields: text (string), amount (number), unit_price (number), tax_id (integer)
create_delivery_from_orderCreate a delivery from an order
create_discount_positionCreate a discount position on a quote, order, or invoice. discount line. Fields: text (string), is_percentual (boolean), value (number), discount_total (number)
create_employeeCreate a new employee in the payroll system. Requires Bexio Payroll module subscription. Links a Bexio user to payroll.
create_expenseCreate a new expense record
create_fictional_userCreate a new fictional user. Requires salutation_type, firstname, lastname, and email.
create_iban_payment⚠️ 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 an IBAN payment (Swiss ISO 20022 standard). First use list_bank_accounts to get a valid bank_account_id. Only CHF and EUR currencies are supported. Recipient address must use structured format (street, house_number, zip, city, country_code).
create_invoiceCreate a new invoice in Bexio
create_invoice_from_orderCreate an invoice from an order
create_invoice_from_quoteCreate an invoice from a quote
create_itemCreate a new item in Bexio
create_item_positionCreate a item (article/product) position on a quote, order, or invoice. article/product reference. Fields: article_id (integer), amount (number), unit_price (number), discount_in_percent (number), tax_id (integer)
create_language[NOT SUPPORTED] Create a new language entry. Note: Bexio API returns 501 Not Implemented for this endpoint. This resource is read-only.
create_manual_entryCreate 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_milestoneCreate a new milestone in a project. Milestones track key deadlines and deliverables.
create_noteCreate a new note attached to a resource (contact, invoice, quote, order, delivery, project, or bill)
create_orderCreate a new order in Bexio
create_order_from_quoteCreate an order from a quote
create_outgoing_paymentCreate an outgoing payment for a supplier bill (Bexio v4.0). This is how you PAY/settle a bill: creating a payment linked via bill_id marks that bill PAID. Required fields: bill_id, payment_type (IBAN | QR | MANUAL), amount, currency_code, exchange_rate (1 for same currency), execution_date and is_salary_payment. For payment_type MANUAL, sender_bank_account_id is also required. QR payments carry reference_no (the QR reference); IBAN payments carry message (the remittance text). fee_type (e.g. 'NO_FEE' for domestic) and receiver_* address fields apply to real bank transfers.
create_pagebreak_positionCreate a pagebreak position on a quote, order, or invoice. page break for PDF generation. No fields needed — just provide document_type and document_id
create_paymentCreate a new payment for an invoice
create_payment_typeCreate a new payment type for invoices and payments
create_projectCreate a new project in Bexio. Requires user_id (owner) and name.
create_purchase_orderCreate a new purchase order to a supplier
create_qr_payment⚠️ 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 a QR payment (Swiss QR-invoice standard per SIX Group spec v2.3). First use list_bank_accounts to get a valid bank_account_id. Only CHF and EUR currencies are supported. QR reference must be exactly 27 digits if provided. Recipient address must use structured format.
create_quoteCreate a new quote (offer) for an existing contact
create_reminderCreate a new reminder for an invoice
create_salutationCreate a new salutation (e.g., Mr., Mrs., Dr.)
create_sub_positionCreate a sub (nested) position on a quote, order, or invoice. nested sub-position group. Fields: text (string, required), show_pos_nr (boolean)
create_subtotal_positionCreate a subtotal position on a quote, order, or invoice. running subtotal at this position in the document. No fields needed — just provide document_type and document_id
create_taskCreate a new task with optional resource linking to a contact, invoice, quote, order, etc.
create_text_positionCreate a text position on a quote, order, or invoice. descriptive text block. Fields: text (string), show_pos_nr (boolean)
create_timesheetCreate a new timesheet entry. Duration must be in HH:MM format (e.g., '02:30' for 2.5 hours)
create_titleCreate a new title (e.g., CEO, Manager, Director)
create_unitCreate a new unit of measurement
create_work_packageCreate a new work package in a project. Work packages organize deliverables and track estimated effort.
decline_quoteDecline a quote
delete_absenceDelete an absence record. Requires Bexio Payroll module subscription.
delete_additional_addressDelete an additional address from a contact
delete_billDelete a bill (creditor invoice)
delete_contactDelete a contact (soft delete -- moves to trash). Use restore_contact to recover.
delete_contact_groupDelete a contact group by ID
delete_contact_relationDelete a contact relation
delete_countryDelete a country by ID
delete_currencyDelete a currency by ID. Cannot delete currencies in use by documents.
delete_default_positionDelete a default (custom) position from a quote, order, or invoice
delete_discount_positionDelete a discount position from a quote, order, or invoice
delete_expenseDelete an expense
delete_fictional_userDelete a fictional user
delete_fileDelete a file from Bexio
delete_invoiceDelete an invoice
delete_itemDelete an item
delete_item_positionDelete a item (article/product) position from a quote, order, or invoice
delete_manual_entryDelete a manual entry
delete_milestoneDelete a milestone from a project in Bexio
delete_noteDelete a note by ID
delete_orderDelete an order
delete_order_repetitionDelete repetition settings for an order
delete_outgoing_paymentDelete an outgoing payment
delete_pagebreak_positionDelete a pagebreak position from a quote, order, or invoice
delete_paymentDelete a payment
delete_projectDelete a project from Bexio by ID. Consider using archive_project instead for data retention.
delete_purchase_orderDelete a purchase order
delete_quoteDelete a quote
delete_reminderDelete a reminder
delete_salutationDelete a salutation by ID
delete_sub_positionDelete a sub (nested) position from a quote, order, or invoice
delete_subtotal_positionDelete a subtotal position from a quote, order, or invoice
delete_taskDelete a task by ID
delete_text_positionDelete a text position from a quote, order, or invoice
delete_timesheetDelete a timesheet entry by ID
delete_titleDelete a title by ID
delete_unitDelete a unit by ID
delete_work_packageDelete a work package from a project in Bexio
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 threshold. NOTE: in HTTP/n8n mode the returned path is on the SERVER host, not the MCP client machine.
edit_default_positionEdit an existing default (custom) position on a quote, order, or invoice
edit_discount_positionEdit an existing discount position on a quote, order, or invoice
edit_invoiceEdit/update an existing invoice
edit_itemEdit/update an existing item
edit_item_positionEdit an existing item (article/product) position on a quote, order, or invoice
edit_orderEdit/update an existing order
edit_order_repetitionEdit repetition settings for an order
edit_pagebreak_positionEdit an existing pagebreak position on a quote, order, or invoice
edit_quoteEdit/update an existing quote
edit_sub_positionEdit an existing sub (nested) position on a quote, order, or invoice
edit_subtotal_positionEdit an existing subtotal position on a quote, order, or invoice
edit_text_positionEdit an existing text position on a quote, order, or invoice
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_absenceGet a specific absence record by ID. Requires Bexio Payroll module subscription.
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. Defaults to the current business year, which includes opening/carry-forward entries and therefore reflects the current balance. Returns each account with account_no, name, debit/credit totals and balance.
get_additional_addressGet a specific additional address for a contact
get_bank_accountGet details of a specific bank account by ID
get_billGet a specific bill (creditor invoice) by UUID
get_business_activityGet a specific business activity by ID
get_calendar_yearGet a specific calendar year by ID
get_commentGet a specific comment by ID from a document
get_communication_typeGet a specific communication type by ID
get_company_profileGet the company profile including name, address, and settings
get_contactGet a specific contact by ID
get_contact_groupGet a specific contact group by ID
get_contact_relationGet a specific contact relation by ID
get_contact_sectorGet a specific contact sector by ID
get_countryGet a specific country 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_current_userGet the currently authenticated user
get_customer_revenue_reportGet customer revenue report for a specific period
get_default_positionGet a specific default (custom) position by ID from a quote, order, or invoice
get_deliveryGet a specific delivery by ID
get_discount_positionGet a specific discount position by ID from a quote, order, or invoice
get_employeeGet a specific employee by ID. Requires Bexio Payroll module subscription.
get_employee_payslip_pdfFetch a single employee's payslip (Lohnabrechnung) as a base64-encoded PDF for a given year and month. Requires Bexio Payroll module. Returns { content (base64), content_type, filename }.
get_expenseGet a specific expense by UUID
get_fictional_userGet a specific fictional user 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_invoice_status_reportGet invoice status report for a specific period
get_itemGet a specific item by ID
get_item_positionGet a specific item (article/product) position by ID from a quote, order, or invoice
get_journalQuery the accounting journal with optional date range. Returns journal entries for the specified period.
get_languageGet a specific language by ID
get_manual_entryGet a specific manual entry by ID
get_milestoneGet a specific milestone by ID from a project in Bexio
get_monthly_revenue_reportGet monthly revenue report for a specific month
get_noteGet a specific note by ID
get_open_invoicesGet all open invoices (draft and sent/pending)
get_orderGet a specific order by ID
get_order_pdfGet an order as PDF (returns base64-encoded content)
get_order_repetitionGet repetition settings for an order
get_outgoing_paymentGet a specific outgoing payment by UUID
get_overdue_invoicesGet all overdue invoices
get_overdue_invoices_reportGet overdue invoices report
get_pagebreak_positionGet a specific pagebreak position by ID from a quote, order, or invoice
get_paymentGet a specific payment by ID
get_payment_typeGet a specific payment type by ID
get_projectGet a specific project by ID from Bexio
get_project_statusGet a specific project status by ID from Bexio
get_project_typeGet a specific project type by ID from Bexio
get_purchase_orderGet a specific purchase order by ID
get_qr_paymentGet details of a QR payment by ID
get_quoteGet a specific quote by ID
get_quote_pdfGet a quote as PDF (returns base64-encoded content)
get_reminderGet a specific reminder by ID
get_reminder_pdfGet a reminder as PDF (returns base64-encoded content)
get_reminders_sent_this_weekGet all reminders sent this week
get_revenue_reportGet revenue report for a specific period
get_salutationGet a specific salutation by ID
get_sub_positionGet a specific sub (nested) position by ID from a quote, order, or invoice
get_subtotal_positionGet a specific subtotal position by ID from a quote, order, or invoice
get_taskGet a specific task by ID
get_tasks_due_this_weekGet all tasks due this week (invoices with due date this week)
get_taxGet a specific tax by ID
get_text_positionGet a specific text position by ID from a quote, order, or invoice
get_timesheetGet a specific timesheet entry by ID
get_titleGet a specific title by ID
get_top_customers_by_revenueGet top customers by revenue
get_unitGet a specific unit by ID
get_userGet a specific real Bexio user by ID
get_work_packageGet a specific work package by ID from a project in Bexio
issue_billFinalize (book) a DRAFT bill (creditor invoice): transitions it from DRAFT to BOOKED so it posts to the ledger and can be paid. Bexio v4.0 books bills via PUT /purchase/bills/{id}/bookings/BOOKED (there is no POST /issue endpoint).
issue_deliveryIssue a delivery
issue_invoiceIssue an invoice
issue_quoteIssue a quote
list_absencesList a specific employee's absences (vacation, sick leave, etc.). Requires Bexio Payroll module subscription. Optional year filter.
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_billsList all bills (creditor invoices) with optional pagination
list_business_activitiesList business activities (service types for time tracking). Used to categorize work.
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_communication_typesList all communication types (e.g., email, phone, meeting)
list_contact_groupsList all contact groups for categorizing contacts
list_contact_relationsList all contact relations
list_contact_sectorsList all contact sectors (industry types for contacts)
list_contactsList contacts from Bexio with optional pagination and filtering
list_countriesList all countries available in Bexio
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_default_positionsList all default (custom) positions on a quote, order, or invoice
list_deliveriesList deliveries from Bexio with optional pagination
list_discount_positionsList all discount positions on a quote, order, or invoice
list_document_settingsList all document settings (header/footer, number ranges, etc.)
list_document_templatesList all document templates available for generating documents
list_employeesList employees in the payroll system. Requires Bexio Payroll module subscription. Use to get employee IDs for timesheets and absences.
list_expensesList all expenses with optional pagination
list_fictional_usersList fictional users 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_item_positionsList all item (article/product) positions on a quote, order, or invoice
list_itemsList items from Bexio with optional pagination
list_languagesList all languages available in Bexio
list_manual_entriesList manual journal entries
list_milestonesList milestones for a specific project in Bexio
list_notesList notes from Bexio. Optionally filter by resource type and resource ID to get notes for a specific contact, invoice, quote, order, delivery, project, or bill.
list_ordersList orders from Bexio with optional pagination
list_outgoing_paymentsList outgoing payments for a specific bill. Bexio requires a bill_id (payments are listed per bill).
list_pagebreak_positionsList all pagebreak positions on a quote, order, or invoice
list_payment_typesList all payment types available for invoices and payments
list_paymentsList payments for a specific invoice
list_payroll_documentsList payroll documents (payslips, etc.). Requires Bexio Payroll module subscription. Optional employee filter.
list_permissionsList all available user permissions in the Bexio account (v3.0 API)
list_project_statusesList all project statuses available in Bexio (e.g., Active, Completed, On Hold)
list_project_typesList all project types available in Bexio (e.g., Internal, Customer Project)
list_projectsList all projects in Bexio with pagination support
list_purchase_ordersList all purchase orders with optional pagination
list_quotesList quotes (offers) from Bexio with optional pagination
list_remindersList reminders for a specific invoice
list_salutationsList all salutations (e.g., Mr., Mrs., Dr.)
list_stock_areasList all stock areas within locations
list_stock_locationsList all stock/warehouse locations
list_sub_positionsList all sub (nested) positions on a quote, order, or invoice
list_subtotal_positionsList all subtotal positions on a quote, order, or invoice
list_task_prioritiesList all available task priority levels
list_task_statusesList all available task statuses
list_tasksList tasks from Bexio with optional pagination and user filter
list_taxesList taxes from Bexio with optional pagination
list_text_positionsList all text positions on a quote, order, or invoice
list_timesheet_statusesList all timesheet statuses (e.g., open, approved, locked)
list_timesheetsList all timesheet entries with pagination
list_titlesList all titles (e.g., CEO, Manager, Director)
list_unitsList all units of measurement (e.g., hours, pieces, kg)
list_usersList all real Bexio users (actual account users, not fictional)
list_vat_periodsList VAT periods (read-only). VAT periods define reporting periods for value-added tax.
list_work_packagesList work packages for a specific project in Bexio
mark_bill_as_paidMark a bill as paid. NOTE: Bexio v4.0 has no mark-as-paid endpoint — a bill is marked paid by recording a payment against it. Use create_outgoing_payment with payment_data.bill_id set to this bill's UUID (that flips the bill to PAID). Calling this tool returns that guidance rather than performing a no-op request.
mark_invoice_as_sentMark an invoice as sent
mark_quote_as_sentMark a quote as sent
mark_reminder_as_sentMark a reminder as sent
mark_reminder_as_unsentMark a reminder as unsent (reverse of mark as sent)
pingTest tool that returns pong - validates SDK integration
reissue_quoteReissue a quote (re-issue after revert)
restore_contactRestore a previously deleted contact from trash.
revert_invoice_to_draftRevert an issued invoice back to draft status
revert_quote_to_draftRevert an issued quote 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_billsSearch/filter bills (creditor invoices) by criteria. Uses GET with query params (Bexio v4.0 does not support POST /search for bills).
search_contact_groupsSearch contact groups by name
search_contact_relationsSearch contact relations via the Bexio search endpoint. Use query for simple text search, or filters for advanced criteria.
search_contact_sectorsSearch contact sectors by name
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
search_notesSearch notes globally by query text. Optionally filter by resource type.
search_ordersSearch orders via the Bexio search endpoint. Use query for simple text search, or filters for advanced criteria.
search_orders_by_customerSearch orders by customer name (2-step process: find contact by name, then find orders by contact_id)
search_projectsSearch for projects in Bexio using field-based criteria. Supports exact match and partial matching.
search_quotesSearch quotes via the Bexio search endpoint. Use query for simple text search, or filters for advanced criteria.
search_quotes_by_customerSearch quotes by customer name (2-step process: find contact by name, then find quotes by contact_id)
search_remindersSearch reminders across recent invoices. Fetches all reminders and returns them (no native Bexio search endpoint for reminders).
search_salutationsSearch salutations by name
search_stock_areasSearch stock areas by criteria
search_stock_locationsSearch stock locations by criteria
search_tasksSearch tasks using multiple criteria (field, value, operator)
search_timesheetsSearch timesheets by criteria (field, value, criteria). Common fields: user_id, pr_project_id, date
search_titlesSearch titles by name
send_invoiceSend an invoice
send_quoteSend a quote
send_reminderSend a reminder
unarchive_projectUnarchive a previously archived project in Bexio, making it active again.
update_absenceUpdate an existing absence record. Requires Bexio Payroll module subscription.
update_additional_addressUpdate an additional address for a contact
update_billUpdate an existing bill (creditor invoice). This is a SAFE PARTIAL update: the server fetches the current bill, merges your changes, and preserves untouched fields (including document_no), so you only need to send the fields you want to change. EXCEPTION: line_items is replaced wholesale — to change one line you must send the FULL line_items array, or omit line_items to leave them unchanged.
update_company_profileUpdate company profile settings
update_contactUpdate an existing contact's information
update_contact_groupUpdate a contact group's name
update_contact_relationUpdate a contact relation
update_currencyUpdate an existing currency's settings
update_employeeUpdate an existing employee. Requires Bexio Payroll module subscription.
update_expenseUpdate an existing expense
update_fictional_userUpdate a fictional user
update_fileUpdate a file's metadata in Bexio
update_iban_paymentUpdate 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_entryUpdate a manual entry
update_noteUpdate an existing note
update_outgoing_paymentUpdate an existing outgoing payment (Bexio v4.0). The update is a PUT to the collection with the id in the body (there is no per-id update URL). The API requires execution_date, amount and is_salary_payment, and also accepts fee_type, reference_no (QR) / message (IBAN) and receiver_* fields. NOTE: currency_code and exchange_rate are NOT updatable (they are set at creation) — they are ignored if sent. Omitting a required field returns a validation error. If you only need to change the amount or date, it is often simpler to delete_outgoing_payment and create a new one.
update_projectUpdate an existing project in Bexio
update_purchase_orderUpdate an existing purchase order
update_qr_paymentUpdate a pending QR payment. Only pending payments can be modified.
update_salutationUpdate a salutation's name
update_taskUpdate an existing task
update_titleUpdate a title's name
update_work_packageUpdate an existing work package in a project
upload_fileUpload a file to Bexio. File content must be provided as base64 encoded string for MCP JSON transport.
BEFORE YOU INSTALL
315 tools when we connected. The documentation says 314, one behind. list_companies and select_company appear only when BEXIO_API_TOKENS is set, BEXIO_ENABLED_CATEGORIES narrows the set, and payroll tools need a Bexio Payroll subscription.
CONTEXT COST
Rated by the size of the 315 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx @promptpartner/bexio-mcp-serverDownload the latest .mcpb from GitHub Releases → Settings → Extensions → install → enter your Bexio API token when prompted
{
"mcpServers": {
"bexio": {
"command": "npx",
"args": [
"@promptpartner/bexio-mcp-server"
],
"env": {
"BEXIO_API_TOKEN": "<YOUR_BEXIO_API_TOKEN>"
}
}
}
}BEXIO_API_TOKEN=<YOUR_BEXIO_API_TOKEN> npx @promptpartner/bexio-mcp-server --mode http --port 8000BEXIO_API_TOKEN=<YOUR_BEXIO_API_TOKEN> npx @promptpartner/bexio-mcp-server{
"mcpServers": {
"bexio": {
"command": "npx",
"args": [
"@promptpartner/bexio-mcp-server"
],
"env": {
"BEXIO_API_TOKENS": "Acme:token-for-acme,Globex:token-for-globex",
"BEXIO_DEFAULT_COMPANY": "Acme"
}
}
}
}