{
  "markdown": "# @promptpartner/bexio-mcp-server\n\nComplete Swiss accounting integration for [Bexio](https://www.bexio.com/) via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/). Works with **Claude Desktop**, **n8n**, and any MCP-compatible client.\n\nManage invoices, contacts, projects, time tracking, and 300+ more tools through AI conversation or workflow automation.\n\n> ⚠️ **Early Release Software**\n>\n> 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](https://github.com/promptpartner/bexio-mcp-server/issues) you find!\n\n## Compatibility\n\n| Client | Transport | Status |\n|--------|-----------|--------|\n| [Claude Desktop](https://claude.ai/download) | stdio | ✅ Fully supported |\n| [n8n](https://n8n.io/) | HTTP | ✅ Fully supported |\n| Other MCP clients | stdio/HTTP | ✅ Should work |\n\n## Quick Start\n\n### For Claude Desktop\n\n**Option A: MCPB Bundle (Easiest)**\n\n1. Download the latest `.mcpb` file from [GitHub Releases](https://github.com/promptpartner/bexio-mcp-server/releases/latest)\n2. In Claude Desktop, go to **Settings → Extensions**\n3. Install the extension using one of these methods:\n   - **Double-click** the downloaded `.mcpb` file, or\n   - **Drag and drop** the file onto the Extensions window, or\n   - Click **Advanced Settings → Install Extension** and select the file\n4. Enter your Bexio API token when prompted\n\n**Option B: npm**\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bexio\": {\n      \"command\": \"npx\",\n      \"args\": [\"@promptpartner/bexio-mcp-server\"],\n      \"env\": {\n        \"BEXIO_API_TOKEN\": \"your-token-here\"\n      }\n    }\n  }\n}\n```\n\nConfig location:\n- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n### For n8n and Other HTTP Clients\n\nStart the server in HTTP mode:\n\n```bash\nBEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server --mode http --port 8000\n```\n\nThe server exposes MCP over HTTP at `http://localhost:8000`. Configure your MCP client to connect to this endpoint.\n\n### For Other stdio Clients\n\n```bash\nBEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server\n```\n\nOr build from source:\n\n```bash\ngit clone https://github.com/promptpartner/bexio-mcp-server\ncd bexio-mcp-server/src\nnpm install && npm run build\nBEXIO_API_TOKEN=your-token node dist/index.js\n```\n\n## Getting Your Bexio API Token\n\n1. Go to [developer.bexio.com](https://developer.bexio.com/)\n2. Log in with your regular Bexio account\n3. Navigate to **Personal Access Tokens**\n4. Click **Create New Token**\n5. Copy the token and use it in your configuration\n\n## Features\n\nThis MCP server provides **314 tools** across all Bexio domains:\n\n### Contacts & CRM\n- Create, update, search contacts\n- Contact groups, sectors, salutations, titles\n- Contact relations management\n\n### Invoices & Sales\n- Full invoice lifecycle (create, issue, send, cancel)\n- Quotes with accept/decline workflows\n- Orders with delivery management\n- Incoming payments tracking\n- Interactive invoice preview (Claude Desktop)\n\n### Banking & Payments\n- Swiss QR-bill payment support (QR-IBAN)\n- Standard IBAN payments (ISO 20022)\n- Currency management (CHF, EUR)\n- Bank account management\n\n### Projects & Time Tracking\n- Project management with types and statuses\n- Milestones and work packages\n- Timesheet entries with duration tracking\n- Business activities and communication types\n\n### Accounting\n- Chart of accounts\n- Manual journal entries\n- Business years and VAT periods\n- Account groups\n\n### Purchase & Expenses\n- Bills (creditor invoices)\n- Expenses and purchase orders\n- Outgoing payments\n\n### Files & Documents\n- Document upload/download\n- File management\n\n### Payroll (requires Bexio Payroll module)\n- Employee management\n- Absence tracking\n- Payroll documents\n\n## Examples\n\nHere are some real-world examples of using the Bexio MCP server with Claude:\n\n### Example 1: Finding Overdue Invoices\n\n**Prompt:**\n> \"Show me all overdue invoices\"\n\n**What happens:**\nClaude uses the `get_overdue_invoices` tool to query Bexio for all invoices past their due date.\n\n**Response:**\n> Found 3 overdue invoices:\n>\n> | Invoice # | Customer | Amount | Due Date | Days Overdue |\n> |-----------|----------|--------|----------|--------------|\n> | INV-2024-001 | Acme AG | CHF 2,450.00 | 2024-01-15 | 18 days |\n> | INV-2024-003 | Tech GmbH | CHF 890.50 | 2024-01-20 | 13 days |\n> | INV-2024-007 | Swiss Corp | CHF 5,200.00 | 2024-01-25 | 8 days |\n>\n> Total overdue: CHF 8,540.50\n\n---\n\n### Example 2: Creating an Invoice\n\n**Prompt:**\n> \"Create an invoice for contact 'Sunrise AG' with two items: 10 hours of consulting at CHF 150/hour and a software license for CHF 500\"\n\n**What happens:**\nClaude uses `find_contact_by_name` to locate the customer, then `create_invoice` with the specified line items.\n\n**Response:**\n> Created Invoice INV-2024-015 for Sunrise AG:\n>\n> - 10x Consulting Hours @ CHF 150.00 = CHF 1,500.00\n> - 1x Software License @ CHF 500.00 = CHF 500.00\n>\n> Subtotal: CHF 2,000.00\n> VAT (8.1%): CHF 162.00\n> **Total: CHF 2,162.00**\n>\n> Invoice is in draft status. Say \"issue invoice INV-2024-015\" to finalize it.\n\n---\n\n### Example 3: Project Time Summary\n\n**Prompt:**\n> \"How much time was logged on project 'Website Redesign' this month?\"\n\n**What happens:**\nClaude uses `search_projects` to find the project, then `search_timesheets` to get time entries filtered by project and date range.\n\n**Response:**\n> Time logged on \"Website Redesign\" (January 2024):\n>\n> | Team Member | Hours | Activities |\n> |-------------|-------|------------|\n> | Anna M. | 24:30 | Design, Meetings |\n> | Marco K. | 18:15 | Development |\n> | Lisa B. | 8:00 | Content Writing |\n>\n> **Total: 50 hours 45 minutes**\n>\n> Budget used: 50.75 of 80 hours (63%)\n\n---\n\n### Example 4: Customer Revenue Report\n\n**Prompt:**\n> \"What's my revenue from 'Tech Solutions GmbH' this year?\"\n\n**What happens:**\nClaude uses `find_contact_by_name` to identify the customer, then `get_customer_revenue_report` to calculate total revenue from paid invoices.\n\n**Response:**\n> Revenue from Tech Solutions GmbH (2024):\n>\n> - Q1: CHF 12,450.00 (3 invoices)\n> - Q2: CHF 8,200.00 (2 invoices)\n> - Q3: CHF 15,800.00 (4 invoices)\n> - Q4: CHF 6,500.00 (2 invoices, 1 pending)\n>\n> **Total paid: CHF 42,950.00**\n> **Pending: CHF 3,200.00**\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `BEXIO_API_TOKEN` | Yes* | - | Your Bexio API token (single company) |\n| `BEXIO_API_TOKENS` | Yes* | - | Multiple companies — see [Multiple Companies](#multiple-companies-mandates) |\n| `BEXIO_DEFAULT_COMPANY` | No | first | Which company is active at startup |\n| `BEXIO_BASE_URL` | No | `https://api.bexio.com/2.0` | API endpoint URL |\n| `BEXIO_ENABLED_CATEGORIES` | No | (all) | Comma-separated tool-category whitelist — see below |\n\n\\* Provide either `BEXIO_API_TOKEN` (one company) or `BEXIO_API_TOKENS` (several).\n\n### Reducing Token Budget — Category Whitelist\n\nAll tools are registered by default. For focused workflows or smaller models,\nregistering only a subset reduces the system-prompt token cost. Set\n`BEXIO_ENABLED_CATEGORIES` to a comma-separated list:\n\n```bash\nBEXIO_ENABLED_CATEGORIES=contacts,invoices,purchase,banking,quotes,projects\n```\n\nAvailable categories: `reference`, `company`, `banking`, `projects`,\n`timetracking`, `accounting`, `purchase`, `files`, `payroll`, `contacts`,\n`invoices`, `orders`, `quotes`, `payments`, `reminders`, `deliveries`,\n`items`, `reports`, `users`, `misc`, `notes`, `tasks`, `stock`, `docs`,\n`positions`. Unknown names are ignored (logged to stderr); empty/unset = all\nenabled (backward compatible).\n\n## Multiple Companies (Mandates)\n\nBexio binds each API token to a **single company (mandate)** — there is no token that\nspans companies. To work with several companies, generate one token per company (switch\nto that company in Bexio first, then Settings → API Tokens), and configure them all on a\n**single** server instance. Two new tools — `list_companies` and `select_company` — let\nyou switch the active company in conversation (\"in Globex, list open invoices\"). This\navoids running one server per company and the duplicated tool-context that comes with it.\n\nSet `BEXIO_API_TOKENS` instead of (or alongside) `BEXIO_API_TOKEN`, as a comma-separated\nlist of `label:token` pairs (or a JSON object). `BEXIO_DEFAULT_COMPANY` picks the company\nactive at startup (defaults to the first):\n\n```json\n{\n  \"mcpServers\": {\n    \"bexio\": {\n      \"command\": \"npx\",\n      \"args\": [\"@promptpartner/bexio-mcp-server\"],\n      \"env\": {\n        \"BEXIO_API_TOKENS\": \"Acme:token-for-acme,Globex:token-for-globex\",\n        \"BEXIO_DEFAULT_COMPANY\": \"Acme\"\n      }\n    }\n  }\n}\n```\n\nThen just ask Claude things like *\"switch to Globex and show this month's invoices.\"*\n`list_companies` shows the configured companies and which one is active; in\nmulti-company mode each response also notes the `active_company` so it's always clear\nwhich company a result came from. Tokens are never logged or returned. The two control\ntools appear only when `BEXIO_API_TOKENS` is set, so single-company setups are unchanged.\n\n> **HTTP/n8n note:** the active company is process-global. For concurrent multi-tenant\n> HTTP deployments, run one instance per company instead.\n\n## Command Line Options\n\n```bash\nnpx @promptpartner/bexio-mcp-server [options]\n\nOptions:\n  --mode <stdio|http>  Transport mode (default: stdio)\n  --host <address>     HTTP host (default: 0.0.0.0)\n  --port <number>      HTTP port (default: 8000)\n```\n\n## Troubleshooting\n\n### \"Invalid API token\" error\n- Verify your token at [developer.bexio.com](https://developer.bexio.com/) > Personal Access Tokens\n- Ensure the token has not expired\n- Check that the token has the required permissions\n\n### \"Connection refused\" error\n- Check your internet connection\n- Verify BEXIO_BASE_URL is correct (default: https://api.bexio.com/2.0)\n\n### Payroll tools return \"module not available\"\n- Payroll tools require the Bexio Payroll module subscription\n- Contact Bexio support to enable the module\n\n### Claude Desktop doesn't see the server\n- Restart Claude Desktop after configuration changes\n- Verify the config file path is correct for your OS\n- Check Claude Desktop logs for error messages\n\n## Privacy Policy\n\nThis MCP server acts as a pass-through to the Bexio API and does not store any data. For full details, see our [Privacy Policy](PRIVACY.md).\n\nYour data is processed according to [Bexio's Privacy Policy](https://www.bexio.com/en-CH/privacy-policy).\n\n## Support\n\n- **Issues & Bug Reports:** [GitHub Issues](https://github.com/promptpartner/bexio-mcp-server/issues)\n- **Email:** lukas@promptpartner.ai\n\n## Support the Project\n\nIf this project saves you time or helps your business, consider buying me a coffee! ☕\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-support-yellow?style=flat&logo=buy-me-a-coffee)](https://buymeacoffee.com/lukashertig)\n\nYour support helps keep this project maintained and improved!\n\n## Author\n\nCreated by [Lukas Hertig](https://linkedin.com/in/lukashertig) from [PromptPartner.ai](https://promptpartner.ai)\n\n## Acknowledgments\n\nThis project builds upon the original Bexio MCP server created by [Sebastian Bryner](https://www.linkedin.com/in/sebastian-bryner/) of [bryner.tech](https://bryner.tech/). His v1.0 implementation provided the foundational architecture and initial 83 tools that made this expanded v2.0 possible.\n\n### Development Tools\n\nThe expansion from 83 to 314 tools was developed using:\n\n- **[GSD Framework](https://github.com/casualjim/get-shit-done)** - The \"Get Shit Done\" planning framework for structured AI-assisted development workflows\n\nThese tools helped transform a 4-weeks estimated project into a 2-days reality, demonstrating the potential of AI-augmented software development.\n\n## Disclaimer\n\nThis is an independent, community-driven project and is **not affiliated with, endorsed by, or officially connected to Bexio AG** in any way. \"Bexio\" is a trademark of Bexio AG. This project simply provides an integration layer to the publicly available Bexio API.\n\nUse of this software is at your own risk. The authors are not responsible for any issues arising from its use with your Bexio account.\n\n## License\n\nMIT - See [LICENSE](LICENSE) for details.\n\n## Star History\n\n<a href=\"https://www.star-history.com/?repos=promptpartner%2Fbexio-mcp-server&type=date&legend=top-left\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=promptpartner/bexio-mcp-server&type=date&theme=dark&legend=top-left\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=promptpartner/bexio-mcp-server&type=date&legend=top-left\" />\n   <img alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=promptpartner/bexio-mcp-server&type=date&legend=top-left\" />\n </picture>\n</a>\n\n## Links\n\n- [Bexio API Documentation](https://docs.bexio.com/)\n- [MCP Protocol Specification](https://modelcontextprotocol.io/)\n- [PromptPartner.ai](https://promptpartner.ai)\n",
  "bytes": 13287,
  "sha": "fe453aeab8ae96ea9154790fe2b945488b0268e66b2fd9aa1768d5e2941b996a",
  "repo_slug": "promptpartner/bexio-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_promptpartner_bexio_mcp_server_09ba3ab1/readme"
}