Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

bexio MCP by usefulapi

REMOTE · BEXIO.USEFULAPI.IO

Read bexio contacts, invoices, quotes, bills, projects and journal; log time, draft invoices.

63 Trust /100

Last scanned (7 hours ago)

Scores higher than 47% of remote servers

Reachable. Last reached 25 Oct 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security78
Transport & Reachability0
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4507 tokens (~160/item across 28 items; 28 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 28 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.3.0 → 1.4.0 functional
    • Server version: 1.2.0 → 1.3.0 functional
    • Server version: 1.0.1 → 1.2.0 functional
  • 23 Oct 26 62

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 25 Oct 2026 · Probed https://bexio.usefulapi.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=usefulapi.io CN=WE1,O=Google Trust Services,C=US 13 Sept 2026 12 Dec 2026 ECDSA 256 ECDSA-SHA256 d9be3287b0fde9630e825ba1f79bff3f
SANs: usefulapi.io, *.usefulapi.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of bexio.usefulapi.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690, 57355 8, 8 Verified
usefulapi.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 302

WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://bexio.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Bearer realm="OAuth", resource_metadata="https://bexio.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Protected resource metadata

Document https://bexio.usefulapi.io/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://bexio.usefulapi.io/mcp
Authorisation server https://bexio.usefulapi.io

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://bexio.usefulapi.io/mcp Redirected 302 https://usefulapi.io/bexio/
http (plaintext) http://bexio.usefulapi.io/mcp Inconclusive 302 http://bexio.usefulapi.io/mcp
MCP tools · 28 exposed · ~4,239 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
bexio_create_contact ~307

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.

NameTypeReqDescription
address_additionstring–Address addition (c/o, P.O. box).
citystring–City.
contact_group_idsarray–Contact group ids.
contact_typestringyescompany or person.
country_idinteger–bexio country id (1 = Switzerland in a default bexio setup).
emailstring–Main email.
first_namestring–A person's first name, or a company's name addition (name_2).
house_numberstring–House number.
language_idinteger–bexio language id of the contact's correspondence language.
mobilestring–Mobile phone.
namestringyesCompany name, or a person's last name (name_1).
owner_idinteger–Owner bexio user (default: the responsible user).
phonestring–Landline phone.
postcodestring–Postcode.
remarksstring–Internal remarks.
street_namestring–Street name.
user_idinteger–Responsible bexio user (default: the signed-in user).
websitestring–Website URL.

No output schema declared.

No examples provided.

bexio_create_draft_invoice ~410

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).

NameTypeReqDescription
api_referencestring–Your own external reference (only visible through the API).
bank_account_idinteger–Bank account for the payment slip (from bexio_list_bank_accounts); default when omitted.
contact_idintegeryesThe customer contact (from bexio_list_contacts).
contact_sub_idinteger–A contact person of the customer.
currency_idinteger–Currency (from bexio_list_currencies); company default when omitted.
document_nrstring–Invoice number. Only when automatic numbering is OFF in bexio's settings (then it is required); leave empty with automatic numbering.
footerstring–Text below the lines.
headerstring–Text above the lines.
language_idinteger–Document language id; the contact's language when omitted.
payment_type_idinteger–Payment type id; default when omitted.
positionsarrayyes1-150 invoice lines.
project_idinteger–Link to this project.
referencestring–Customer reference shown on the invoice.
tax_modestring–net = unit prices are net and VAT is added (default); gross = unit prices include VAT; exempt = the invoice is exempt from VAT.
titlestring–Invoice title.
user_idinteger–Responsible bexio user (default: the signed-in user).
valid_fromstring–Invoice date, yyyy-mm-dd (default today).
valid_tostring–Due date, yyyy-mm-dd (default from the payment terms).

No output schema declared.

No examples provided.

bexio_create_note ~133

WRITE: add a note (call log, meeting minutes, follow-up) to a contact and/or project in bexio. Nothing existing is changed.

NameTypeReqDescription
contact_idinteger–Attach to this contact.
event_startstring–When it happened, local time yyyy-mm-dd HH:MM[:SS] (default: now, UTC).
infostring–Note text.
project_idinteger–Attach to this project.
subjectstringyesNote subject.
user_idinteger–Author bexio user (default: the signed-in user).

No output schema declared.

No examples provided.

bexio_create_timesheet ~249

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.

NameTypeReqDescription
billableboolean–Billable to the client (default true).
business_activity_idintegeryesThe business activity (client_service_id) from bexio_list_business_activities.
contact_idinteger–The client contact.
datestring–Work date, yyyy-mm-dd (with duration).
durationstring–Time worked as HH:MM, e.g. 01:30 (with date).
endstring–End, local time yyyy-mm-dd HH:MM[:SS] (with start).
project_idinteger–The project.
startstring–Start, local time yyyy-mm-dd HH:MM[:SS] (with end).
status_idinteger–Timesheet status id (bexio's default when omitted).
textstring–What was done.
user_idinteger–Whose time (default: the signed-in user).

No output schema declared.

No examples provided.

bexio_get_company_profile ~47

The bexio company's profile: name, address, legal form, VAT (MWST) and UID numbers, contact details. Each bexio account has one profile.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

bexio_get_contact ~58

One contact with its address, emails, phones, language, groups and remarks.

NameTypeReqDescription
archivedboolean–true when the contact is archived.
contact_idintegeryesThe contact id (from bexio_list_contacts).

No output schema declared.

No examples provided.

bexio_get_current_user ~43

The signed-in bexio user (id, name, email, superadmin/accountant flags). Its id is the default user_id of new records.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

bexio_get_invoice ~49

One invoice with its positions (line items), taxes, totals, received payments and remaining amount.

NameTypeReqDescription
invoice_idintegeryesThe invoice id (from bexio_list_invoices).

No output schema declared.

No examples provided.

bexio_get_order ~40

One sales order with its positions, taxes and totals.

NameTypeReqDescription
order_idintegeryesThe order id (from bexio_list_orders).

No output schema declared.

No examples provided.

bexio_get_project ~47

One project with its contact, state, type, dates, invoicing and budget settings.

NameTypeReqDescription
project_idintegeryesThe project id (from bexio_list_projects).

No output schema declared.

No examples provided.

bexio_get_quote ~39

One quote with its positions, taxes and totals.

NameTypeReqDescription
quote_idintegeryesThe quote id (from bexio_list_quotes).

No output schema declared.

No examples provided.

bexio_list_accounts ~98

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.

NameTypeReqDescription
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.

No output schema declared.

No examples provided.

bexio_list_articles ~146

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.

NameTypeReqDescription
codestring–Item code (intern_code) contains this text.
descendingboolean–Sort descending (default ascending).
limitinteger–Results per page, 1-2000 (default 50).
namestring–Item name (intern_name) contains this text.
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).

No output schema declared.

No examples provided.

bexio_list_bank_accounts ~88

The company's bank accounts shown in bexio banking: name, bank, IBAN / QR-IBAN, currency, linked ledger account, QR-invoice mode.

NameTypeReqDescription
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.

No output schema declared.

No examples provided.

bexio_list_bills ~260

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.

NameTypeReqDescription
bill_date_fromstring–Bill date on or after, yyyy-mm-dd.
bill_date_tostring–Bill date on or before, yyyy-mm-dd.
descendingboolean–Sort descending (default ascending).
due_date_fromstring–Due date on or after, yyyy-mm-dd.
due_date_tostring–Due date on or before, yyyy-mm-dd.
limitinteger–Bills per page, 1-500 (default 50).
pageinteger–Page number, 1-based (default 1).
searchstring–Free-text search over vendor, vendor reference, currency, document number and title (3-255 characters).
sortstring–Sort field.
statusstring–Bill status filter.
supplier_idinteger–Only bills of this supplier contact.
vendorstring–Vendor name contains this text.

No output schema declared.

No examples provided.

bexio_list_business_activities ~108

Business activities (Tätigkeiten) for time tracking: id, name, billable default, hourly rate. A timesheet needs one.

NameTypeReqDescription
descendingboolean–Sort descending (default ascending).
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).

No output schema declared.

No examples provided.

bexio_list_business_years ~75

Accounting business (fiscal) years: start, end, status (open, locked, closed).

NameTypeReqDescription
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.

No output schema declared.

No examples provided.

bexio_list_contacts ~274

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.

NameTypeReqDescription
archivedboolean–true = archived contacts only (default: active contacts).
citystring–City contains this text.
contact_typestring–Only companies or only persons.
descendingboolean–Sort descending (default ascending).
emailstring–Main email contains this text.
first_namestring–name_2 (a person's first name or a company's name addition) contains this text.
limitinteger–Results per page, 1-2000 (default 50).
namestring–name_1 (company name or last name) contains this text.
nrstring–Contact number equals this.
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).
postcodestring–Postcode equals this.
updated_sincestring–Changed on or after this date, yyyy-mm-dd.

No output schema declared.

No examples provided.

bexio_list_currencies ~125

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.

NameTypeReqDescription
datestring–Validity date of the embedded exchange rate, yyyy-mm-dd.
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
with_exchange_rateboolean–Embed each currency's exchange rate.

No output schema declared.

No examples provided.

bexio_list_invoice_payments ~91

The payments recorded on one invoice (date, amount, bank account, cash discount).

NameTypeReqDescription
invoice_idintegeryesThe invoice id (from bexio_list_invoices).
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.

No output schema declared.

No examples provided.

bexio_list_invoices ~298

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.

NameTypeReqDescription
contact_idinteger–Only documents for this contact (from bexio_list_contacts).
descendingboolean–Sort descending (default ascending).
document_nrstring–Document number contains this text (e.g. RE-00012).
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).
statusarray–Only invoices with one of these statuses.
titlestring–Title contains this text.
updated_sincestring–Changed on or after this date, yyyy-mm-dd.
user_idinteger–Only documents owned by this bexio user (from bexio_list_users).
valid_from_afterstring–Document date (is_valid_from) on or after this date, yyyy-mm-dd.
valid_from_beforestring–Document date (is_valid_from) on or before this date, yyyy-mm-dd.

No output schema declared.

No examples provided.

bexio_list_journal ~145

Accounting journal bookings: date, debit and credit account ids, description, amount, currency, base-currency amount, and the source document (ref_class, ref_id).

NameTypeReqDescription
account_uuidstring–Only bookings on this account (its uuid from bexio_list_accounts).
fromstring–Bookings on or after this date, yyyy-mm-dd.
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
tostring–Bookings up to this date, yyyy-mm-dd.

No output schema declared.

No examples provided.

bexio_list_orders ~270

List or search sales orders (Aufträge): number, contact, totals, recurring flag, status (pending, done, partial, canceled). With filters all must match.

NameTypeReqDescription
contact_idinteger–Only documents for this contact (from bexio_list_contacts).
descendingboolean–Sort descending (default ascending).
document_nrstring–Document number contains this text (e.g. RE-00012).
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).
statusarray–Only orders with one of these statuses.
titlestring–Title contains this text.
updated_sincestring–Changed on or after this date, yyyy-mm-dd.
user_idinteger–Only documents owned by this bexio user (from bexio_list_users).
valid_from_afterstring–Document date (is_valid_from) on or after this date, yyyy-mm-dd.
valid_from_beforestring–Document date (is_valid_from) on or before this date, yyyy-mm-dd.

No output schema declared.

No examples provided.

bexio_list_projects ~150

List or search projects: number, name, contact, state, type, dates, budget. With filters all must match.

NameTypeReqDescription
contact_idinteger–Only projects of this contact.
descendingboolean–Sort descending (default ascending).
limitinteger–Results per page, 1-2000 (default 50).
namestring–Project name contains this text.
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).
state_idinteger–Only projects in this state (pr_state_id as returned on a project).

No output schema declared.

No examples provided.

bexio_list_quotes ~268

List or search quotes (Offerten): number, contact, totals, validity, status (draft, pending, confirmed, declined). With filters all must match.

NameTypeReqDescription
contact_idinteger–Only documents for this contact (from bexio_list_contacts).
descendingboolean–Sort descending (default ascending).
document_nrstring–Document number contains this text (e.g. RE-00012).
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).
statusarray–Only quotes with one of these statuses.
titlestring–Title contains this text.
updated_sincestring–Changed on or after this date, yyyy-mm-dd.
user_idinteger–Only documents owned by this bexio user (from bexio_list_users).
valid_from_afterstring–Document date (is_valid_from) on or after this date, yyyy-mm-dd.
valid_from_beforestring–Document date (is_valid_from) on or before this date, yyyy-mm-dd.

No output schema declared.

No examples provided.

bexio_list_taxes ~142

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).

NameTypeReqDescription
datestring–Only taxes active on this date, yyyy-mm-dd.
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
scopestring–Only active or inactive taxes.
typesstring–Only sales taxes or input (pre) taxes.

No output schema declared.

No examples provided.

bexio_list_timesheets ~197

List or search time tracking entries: date, duration, text, user, contact, project, business activity, billable flag. With filters all must match.

NameTypeReqDescription
business_activity_idinteger–Only entries of this business activity (client_service_id, from bexio_list_business_activities).
contact_idinteger–Only entries for this contact.
descendingboolean–Sort descending (default ascending).
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.
order_bystring–Sort field (default id).
project_idinteger–Only entries on this project.
status_idinteger–Only entries with this timesheet status id.
user_idinteger–Only entries of this bexio user.

No output schema declared.

No examples provided.

bexio_list_users ~82

The company's bexio users (id, name, email). Use an id as user_id or owner of contacts, documents and timesheets.

NameTypeReqDescription
limitinteger–Results per page, 1-2000 (default 50).
offsetinteger–Records to skip (default 0). Use next_offset from the previous reply.

No output schema declared.

No examples provided.

Install

How do I install the bexio MCP by usefulapi server?

bexio MCP by usefulapi is a hosted endpoint at https://bexio.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · bexio.usefulapi.io

# add to Claude Code
claude mcp add --transport http io-usefulapi-bexio 'https://bexio.usefulapi.io/mcp'
Common questions

What is the bexio MCP by usefulapi server?

bexio MCP by usefulapi is listed in the public MCP registry as io.usefulapi/bexio. Read bexio contacts, invoices, quotes, bills, projects and journal; log time, draft invoices. This page covers its hosted endpoint (https://bexio.usefulapi.io/mcp).

Is the bexio MCP by usefulapi server safe to use?

bexio MCP by usefulapi scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the bexio MCP by usefulapi server expose?

bexio MCP by usefulapi exposes 28 tools: bexio_get_company_profile, bexio_get_current_user, bexio_list_users, bexio_list_contacts, bexio_get_contact, and 23 more. Their descriptions and schemas cost roughly 4,239 tokens of context every time the server is loaded.

Does the bexio MCP by usefulapi server require authentication?

Yes. bexio MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the bexio MCP by usefulapi server still maintained?

bexio MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.