@aiwerk/mcp-server-bexio
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BEXIO_DRY_RUN | No | Set to '1' to block all writes. | off |
| BEXIO_API_TOKEN | Yes | Personal access token (required). Also used for OAuth access token in hosted service. | |
| BEXIO_NO_SNAPSHOT | No | Set to '1' to disable pre-write snapshots. | off |
| BEXIO_API_BASE_URL | No | Override the host, applies to all API versions. | https://api.bexio.com |
| BEXIO_ENABLED_TAGS | No | Comma separated domain filter, for example 'Contacts,Invoices'. | all |
| BEXIO_SNAPSHOT_DIR | No | Where snapshots are written. | ~/.aiwerk/bexio-snapshots |
| BEXIO_API_TIMEOUT_MS | No | Per request timeout. | 30000 |
| BEXIO_SNAPSHOT_FAIL_OPEN | No | Set to '1' to allow a write when the snapshot fails. | off |
| BEXIO_MAX_RATE_LIMIT_WAIT_MS | No | Longest wait before failing on a rate limit. | 10000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_absence_for_employeeB | Create absence for employee |
| delete_absenceB | Deleting employee absence with given id |
| get_absenceC | Retrieving absence for employee with given absence id |
| list_employee_absence_in_yearsA | Retrieving absences of employee for given year |
| update_absenceC | Updating existing absence |
| list_account_groupsB | Fetch a list of account groups |
| list_accountsB | Fetch a list of accounts |
| search_accountsC | Search Accounts |
| create_additional_addressC | Create additional address |
| delete_additional_addressC | Delete an additional address |
| get_additional_addressC | Fetch an additional address |
| list_additional_addressesB | Fetch a list of additional addresses |
| search_additional_addressesD | Search additional addresses |
| update_additional_addressC | Edit an additional address |
| get_bank_accountA | Fetch a single bank account |
| list_bank_accountsB | Fetch a list of bank accounts |
| create_billC | Create new Bill |
| create_bill_actionC | Execute Bill action |
| delete_billB | Delete Bill |
| get_billC | Get Bill |
| list_billsC | Get Bills |
| list_purchase_document_numbersC | Validate whether document number is available or not |
| update_billD | Update Bill |
| update_bill_bookingC | Update Bill status |
| create_business_activityD | Create business activity |
| list_business_activitiesB | Fetch a list of business activities |
| search_business_activitiesC | Search business activities |
| get_business_yearC | Fetch a business year |
| list_business_yearsA | Fetch a list of business years |
| create_calendar_yearC | Create calendar year. |
| get_calendar_yearB | Fetch a calendar year |
| list_calendar_yearsC | Fetch a list of calendar years |
| search_calendar_yearsD | Search calendar years |
| create_commentD | Create a comment |
| get_commentC | Fetch a comment |
| list_commentsC | Fetch a list of comments |
| list_communication_typesB | Fetch a list of communication types |
| search_communication_typesC | Search communication types |
| get_company_profileC | Show company profile |
| list_company_profilesA | Fetch a list of company profiles |
| create_contact_groupC | Create contact group |
| delete_contact_groupC | Delete a contact group |
| get_contact_groupC | Fetch a contact group |
| list_contact_groupsB | Fetch a list of contact groups |
| search_contact_groupsC | Search contact groups |
| update_contact_groupC | Edit a contact group |
| create_contact_relationC | Create contact relation |
| delete_contact_relationB | Delete a contact relation |
| get_contact_relationC | Fetch a contact relation |
| list_contact_relationsB | Fetch a list of contact relations |
| search_contact_relationsC | Search contact relations |
| update_contact_relationC | Edit a contact relation |
| list_contact_sectorsC | Fetch a list of contact sectors |
| search_contact_sectorsC | Search contact sectors |
| bulk_create_contactsC | Bulk create contacts |
| create_contactD | Create contact |
| delete_contactB | Delete a contact |
| get_contactC | Fetch a contact |
| list_contactsB | Fetch a list of contacts |
| restore_contactB | Restore a contact |
| search_contactsC | Search contacts |
| update_contactC | Edit a contact |
| create_countryC | Create country |
| delete_countryC | Delete a country |
| get_countryC | Fetch a country |
| list_countriesB | Fetch a list of countries |
| search_countriesC | Search countries |
| update_countryC | Edit a country |
| create_currencyC | Create a currency |
| delete_currencyB | Delete a currency |
| get_currencyA | Fetch a currency |
| list_currenciesC | Fetch a list of currencies |
| list_currencies_codesA | Fetch all possible currency codes |
| list_exchange_rates_for_currenciesB | Fetch exchange rates for currencies |
| update_currencyC | Update a currency |
| create_default_positionC | Create a default position |
| delete_default_positionB | Delete a default position |
| get_default_positionC | Fetch a default position |
| list_default_positionsB | Fetch a list of default positions |
| update_default_positionC | Edit a default position |
| get_deliveryC | Fetch a delivery |
| issue_deliveryC | Issue a delivery |
| list_deliveriesB | Fetch a list of deliveries |
| create_discount_positionC | Create a discount position |
| delete_discount_positionC | Delete a discount position |
| get_discount_positionC | Fetch a discount position |
| list_discount_positionsB | Fetch a list of discount positions |
| update_discount_positionC | Edit a discount position |
| list_document_settingsB | Fetch a list of document settings |
| list_document_templatesB | List document templates |
| get_paystub_pdfB | Download paystub pdf for employee for given month |
| get_pdf_for_employee_in_monthC | Retrieving pdf for employee for given month |
| create_employeeD | Create employee |
| get_employee_on_dateC | Retrieve a single employee on a specific date |
| list_employeesA | Retrieves all active employees |
| update_employeeD | Update employee |
| create_expensC | Create new Expense |
| create_expense_actionD | Execute Expense action |
| delete_expensB | Delete Expense |
| get_expensD | Get Expense |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 310 tools
Multiple tools have overlapping purposes or unclear boundaries, such as the various position types (item_position, discount_position, pagebreak_position, etc.) and the duplicate paystub PDF tools (get_paystub_pdf vs get_pdf_for_employee_in_month). The 'expens' vs 'expense' naming further adds confusion.
While many tools follow a verb_noun pattern, there are significant deviations like create_expens, create_file_file, upload_manual_compound_entry_file_file, list_mes, and inconsistent use of 'list' vs 'search'. This mixed convention hurts predictability.
With 310 tools, the server is far too large for a coherent MCP interface. Even for a broad ERP system, this is excessive and likely overwhelms agents, making selection difficult.
The tool set covers a wide range of business domains (contacts, invoices, orders, projects, tasks, etc.), but there are gaps (e.g., no update for company_profile, no delete for business_activity) and redundancies that indicate incomplete or uneven coverage.