Read bexio contacts, invoices, quotes, bills, projects and journal; log time, draft invoices. Hosted by usefulapi — connect from Claude, ChatGPT, Cursor, or any MCP client.
Team and Enterprise: an Owner adds the connector for the organization first.
Run this command, then run /mcp in Claude Code to log in:
Add to Cursor or add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"bexio": {
"url": "https://bexio.usefulapi.io/mcp"
}
}
}Add to VS Code or add this to .vscode/mcp.json:
{
"servers": {
"bexio": {
"type": "http",
"url": "https://bexio.usefulapi.io/mcp"
}
}
}No Add custom MCP server option? It depends on your account or workspace settings: see OpenAI's guide.
Run these commands. The second one opens the login page:
Other MCP clients (Windsurf, Cline, Zed and more): add the URL as a remote MCP server (Streamable HTTP). The client then opens the login page in your browser. Do not add an Authorization header: see Before you connect.
You sign in with your bexio account and approve the access (OAuth). You do not need an API key.
This server reads your contacts, invoices, quotes, orders, items, projects, timesheets, supplier bills, chart of accounts, journal, taxes and bank accounts. It can create contacts, contact notes, timesheet entries and draft invoices when you ask it to; it never issues, sends, books, changes or deletes anything. It can do only what your bexio user is allowed to do. You can revoke access any time in bexio (Settings → Apps).
Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: you sign in with your bexio account. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.
Turn on the bexio connector, then ask in plain words. The AI picks the tools.
| Tool | Type | What it does |
|---|---|---|
bexio_get_company_profile | read | Get company profile The bexio company's profile: name, address, legal form, VAT (MWST) and UID numbers, contact details. Each bexio account has one profile. |
bexio_get_current_user | read | Get current user The signed-in bexio user (id, name, email, superadmin/accountant flags). Its id is the default user_id of new records. |
bexio_list_users | read | List users The company's bexio users (id, name, email). Use an id as user_id or owner of contacts, documents and timesheets. |
bexio_list_contacts | read | List contacts List or search contacts (customers, suppliers, persons, companies). Without filters it pages through all contacts; with filters it uses bexio's contact search (all filters must match). name_1 is the company name or a person's last name, name_2 a person's first name. |
bexio_get_contact | read | Get contact One contact with its address, emails, phones, language, groups and remarks. |
bexio_list_invoices | read | List invoices List or search sales invoices (number, contact, totals, open amount, dates, status). Statuses: draft, pending (issued, open), paid, partial (partially paid), canceled, unpaid (overdue reminder state). Without filters it pages through all invoices; with filters all must match. |
bexio_get_invoice | read | Get invoice One invoice with its positions (line items), taxes, totals, received payments and remaining amount. |
bexio_list_invoice_payments | read | List invoice payments The payments recorded on one invoice (date, amount, bank account, cash discount). |
bexio_list_quotes | read | List quotes List or search quotes (Offerten): number, contact, totals, validity, status (draft, pending, confirmed, declined). With filters all must match. |
bexio_get_quote | read | Get quote One quote with its positions, taxes and totals. |
bexio_list_orders | read | List orders List or search sales orders (Aufträge): number, contact, totals, recurring flag, status (pending, done, partial, canceled). With filters all must match. |
bexio_get_order | read | Get order One sales order with its positions, taxes and totals. |
bexio_list_articles | read | List items List or search items / products (Artikel): code, name, sale and purchase price, tax, unit, stock levels. Use an id as article_id in a draft invoice. |
bexio_list_projects | read | List projects List or search projects: number, name, contact, state, type, dates, budget. With filters all must match. |
bexio_get_project | read | Get project One project with its contact, state, type, dates, invoicing and budget settings. |
bexio_list_timesheets | read | List timesheets List or search time tracking entries: date, duration, text, user, contact, project, business activity, billable flag. With filters all must match. |
bexio_list_business_activities | read | List business activities Business activities (Tätigkeiten) for time tracking: id, name, billable default, hourly rate. A timesheet needs one. |
bexio_list_accounts | read | List accounts The chart of accounts: account number, name, type (1 earning, 2 expenditure, 3 active/asset, 4 passive/liability, 5 complete/closing), default tax, active/locked flags. |
bexio_list_journal | read | List journal entries Accounting journal bookings: date, debit and credit account ids, description, amount, currency, base-currency amount, and the source document (ref_class, ref_id). |
bexio_list_taxes | read | List taxes VAT (MWST) tax codes: id, code, rate, type (sales_tax, pre_tax, ...), validity. For a draft invoice use an active sales tax (types sales_tax, scope active). |
bexio_list_bank_accounts | read | List bank accounts The company's bank accounts shown in bexio banking: name, bank, IBAN / QR-IBAN, currency, linked ledger account, QR-invoice mode. |
bexio_list_currencies | read | List currencies Currencies set up in bexio (id, code such as CHF or EUR, rounding), optionally with the exchange rate valid on a date. Use an id as currency_id. |
bexio_list_business_years | read | List business years Accounting business (fiscal) years: start, end, status (open, locked, closed). |
bexio_list_bills | read | List supplier bills Supplier bills (Kreditoren / purchase bills): document number, vendor, title, status, gross/net, pending amount, bill and due date, overdue flag. status: DRAFTS, TODO (booked, not fully paid), PAID, OVERDUE. |
bexio_create_contact | write | Create contact WRITE: create a new contact (company or person) in bexio. Nothing existing is changed. For a person, name is the last name and first_name the first name. Owner and responsible user default to the signed-in user. |
bexio_create_note | write | Create note WRITE: add a note (call log, meeting minutes, follow-up) to a contact and/or project in bexio. Nothing existing is changed. |
bexio_create_timesheet | write | Create timesheet entry WRITE: log time in bexio: either date + duration (HH:MM), or start + end. Needs a business activity (bexio_list_business_activities). Nothing existing is changed. |
bexio_create_draft_invoice | write | Create draft invoice WRITE: create a DRAFT invoice in bexio for a contact, with custom, item (article) and text lines. It is never issued, sent or booked: the user reviews and issues it in bexio. Taxes must be active sales taxes (bexio_list_taxes with types sales_tax, scope active). |
bexio_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
bexio_request_feature | Request a missing feature Tell usefulapi that the user needs something the bexio tools cannot do yet (a missing tool, field or filter). Call it only when the user asks for something none of the tools can do, and tell the user that you send the request. Do not call it for errors or for normal requests. Do not include personal data, credentials or customer records. Stored with the product name and the client type (for example Claude or Cursor), without the user's account. At most 5 requests per day. Does not count against the meter. | |
bexio_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED bexio tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a short link to open in your browser (it opens Stripe Checkout); after payment your account upgrades automatically. Does not count against the meter. | |
bexio_cancel_subscription | Cancel the Pro subscription Cancel the caller's bexio Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run bexio_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 50 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
Pro covers this bexio server only. Subscribe with bexio_upgrade (it returns a Stripe Checkout link). Cancel any time with bexio_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running bexio_upgrade before then undoes the cancel. Or write to [email protected].
No. usefulapi is an independent service. It is not affiliated with or endorsed by bexio. The server calls the bexio API with your own bexio access, so it sees only the data that your account can see.
Yes. In Claude, add this server's URL as a custom connector. In ChatGPT, add it as a custom MCP server in Plugins. Then log in once. Cursor, VS Code, Claude Code and Codex work too. See the setup steps.
A bexio account. You sign in to bexio and approve the access. You do not need an API key.
No. Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: you sign in with your bexio account. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.
The login stores them encrypted in the authorization grant of your connection. The server uses them to call the bexio API for you and to derive a private account id for usage metering. usefulapi does not show them on any page or in any reply. You can revoke the access in bexio at any time.
Yes, if you approve it. 4 of the 28 bexio tools can create or change data. The other 24 are marked read-only. Most MCP clients ask you to approve a tool call before it runs.
The Free plan gives 50 tool calls / month. Pro costs $9/mo or $90/yr, with unlimited tool calls, for this bexio server only. Run bexio_usage_status to see how many calls you used.
Ask the AI to run bexio_upgrade: it returns a Stripe Checkout link. To cancel, run bexio_cancel_subscription. Pro continues to the end of the paid period.
Tell the AI what you wanted to do. It can send the request with bexio_request_feature. We store the text with the server name, the type of AI client and the tool you tried, not with your account, and read every request when we plan new tools. You can send up to 5 requests per day.
Any client that supports remote MCP servers (Streamable HTTP) with OAuth login: Claude (web and desktop), Claude Code, ChatGPT, Codex, Cursor, VS Code, Windsurf and others.
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.