@promptpartner/bexio-mcp-server 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -39
- package/dist/index.js +7 -3
- package/dist/package.json +3 -0
- package/package.json +12 -9
package/README.md
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
# @promptpartner/bexio-mcp-server
|
|
2
2
|
|
|
3
|
-
Complete Swiss accounting integration for [Bexio](https://www.bexio.com/)
|
|
3
|
+
Complete 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.
|
|
4
|
+
|
|
5
|
+
Manage invoices, contacts, projects, time tracking, and 200+ more tools through AI conversation or workflow automation.
|
|
6
|
+
|
|
7
|
+
## Compatibility
|
|
8
|
+
|
|
9
|
+
| Client | Transport | Status |
|
|
10
|
+
|--------|-----------|--------|
|
|
11
|
+
| [Claude Desktop](https://claude.ai/download) | stdio | ✅ Fully supported |
|
|
12
|
+
| [n8n](https://n8n.io/) | HTTP | ✅ Fully supported |
|
|
13
|
+
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | stdio | ✅ Fully supported |
|
|
14
|
+
| Other MCP clients | stdio/HTTP | ✅ Should work |
|
|
4
15
|
|
|
5
16
|
## Quick Start
|
|
6
17
|
|
|
7
|
-
###
|
|
18
|
+
### For Claude Desktop
|
|
19
|
+
|
|
20
|
+
**Option A: MCPB Bundle (Easiest)**
|
|
8
21
|
|
|
9
22
|
1. Download `bexio-mcp-server.mcpb` from [Releases](https://github.com/promptpartner/bexio-mcp-server/releases)
|
|
10
|
-
2. Double-click to install
|
|
23
|
+
2. Double-click to install
|
|
11
24
|
3. Enter your Bexio API token when prompted
|
|
12
25
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npx @promptpartner/bexio-mcp-server
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Add to Claude Desktop config:
|
|
26
|
+
**Option B: npm**
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
28
|
+
Add to `claude_desktop_config.json`:
|
|
23
29
|
|
|
24
30
|
```json
|
|
25
31
|
{
|
|
@@ -35,29 +41,33 @@ Add to Claude Desktop config:
|
|
|
35
41
|
}
|
|
36
42
|
```
|
|
37
43
|
|
|
38
|
-
|
|
44
|
+
Config location:
|
|
45
|
+
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
46
|
+
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
47
|
+
|
|
48
|
+
### For n8n and Other HTTP Clients
|
|
49
|
+
|
|
50
|
+
Start the server in HTTP mode:
|
|
39
51
|
|
|
40
52
|
```bash
|
|
41
|
-
|
|
42
|
-
cd bexio-mcp-server/src
|
|
43
|
-
npm install
|
|
44
|
-
npm run build
|
|
53
|
+
BEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server --mode http --port 8000
|
|
45
54
|
```
|
|
46
55
|
|
|
47
|
-
|
|
56
|
+
The server exposes MCP over HTTP at `http://localhost:8000`. Configure your MCP client to connect to this endpoint.
|
|
48
57
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
### For Other stdio Clients
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
BEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Or build from source:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
git clone https://github.com/promptpartner/bexio-mcp-server
|
|
68
|
+
cd bexio-mcp-server/src
|
|
69
|
+
npm install && npm run build
|
|
70
|
+
BEXIO_API_TOKEN=your-token node dist/index.js
|
|
61
71
|
```
|
|
62
72
|
|
|
63
73
|
## Getting Your Bexio API Token
|
|
@@ -81,7 +91,7 @@ This MCP server provides **221 tools** across all Bexio domains:
|
|
|
81
91
|
- Quotes with accept/decline workflows
|
|
82
92
|
- Orders with delivery management
|
|
83
93
|
- Incoming payments tracking
|
|
84
|
-
- Interactive invoice preview
|
|
94
|
+
- Interactive invoice preview (Claude Desktop)
|
|
85
95
|
|
|
86
96
|
### Banking & Payments
|
|
87
97
|
- Swiss QR-bill payment support (QR-IBAN)
|
|
@@ -115,14 +125,6 @@ This MCP server provides **221 tools** across all Bexio domains:
|
|
|
115
125
|
- Absence tracking
|
|
116
126
|
- Payroll documents
|
|
117
127
|
|
|
118
|
-
## HTTP Mode
|
|
119
|
-
|
|
120
|
-
For integration with n8n or other automation tools:
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
npx @promptpartner/bexio-mcp-server --mode http --port 8000
|
|
124
|
-
```
|
|
125
|
-
|
|
126
128
|
## Environment Variables
|
|
127
129
|
|
|
128
130
|
| Variable | Required | Default | Description |
|
|
@@ -130,6 +132,17 @@ npx @promptpartner/bexio-mcp-server --mode http --port 8000
|
|
|
130
132
|
| `BEXIO_API_TOKEN` | Yes | - | Your Bexio API token |
|
|
131
133
|
| `BEXIO_BASE_URL` | No | `https://api.bexio.com/2.0` | API endpoint URL |
|
|
132
134
|
|
|
135
|
+
## Command Line Options
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npx @promptpartner/bexio-mcp-server [options]
|
|
139
|
+
|
|
140
|
+
Options:
|
|
141
|
+
--mode <stdio|http> Transport mode (default: stdio)
|
|
142
|
+
--host <address> HTTP host (default: 0.0.0.0)
|
|
143
|
+
--port <number> HTTP port (default: 8000)
|
|
144
|
+
```
|
|
145
|
+
|
|
133
146
|
## Troubleshooting
|
|
134
147
|
|
|
135
148
|
### "Invalid API token" error
|
package/dist/index.js
CHANGED
|
@@ -12,13 +12,17 @@
|
|
|
12
12
|
* IMPORTANT: All logging goes to stderr via logger.ts.
|
|
13
13
|
* stdout is reserved for MCP JSON-RPC protocol messages (stdio mode only).
|
|
14
14
|
*/
|
|
15
|
-
import { config } from "dotenv";
|
|
16
15
|
import { BexioMcpServer } from "./server.js";
|
|
17
16
|
import { BexioClient } from "./bexio-client.js";
|
|
18
17
|
import { logger } from "./logger.js";
|
|
19
18
|
import { createHttpServer } from "./transports/http.js";
|
|
20
|
-
// Load environment variables from .env file
|
|
21
|
-
|
|
19
|
+
// Load environment variables from .env file (optional - for development)
|
|
20
|
+
// In MCPB bundles, env vars are already set by Claude Desktop
|
|
21
|
+
import("dotenv")
|
|
22
|
+
.then((dotenv) => dotenv.config())
|
|
23
|
+
.catch(() => {
|
|
24
|
+
// dotenv not available - that's fine for MCPB bundles
|
|
25
|
+
});
|
|
22
26
|
// Configuration from environment
|
|
23
27
|
const BEXIO_API_TOKEN = process.env["BEXIO_API_TOKEN"];
|
|
24
28
|
const BEXIO_BASE_URL = process.env["BEXIO_BASE_URL"] ?? "https://api.bexio.com/2.0";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptpartner/bexio-mcp-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description": "Model Context Protocol server for Bexio API integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"LICENSE"
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "tsc && npm run build:ui",
|
|
16
|
+
"build": "tsc && npm run build:ui && npm run postbuild",
|
|
17
|
+
"postbuild": "node -e \"require('fs').writeFileSync('dist/package.json', JSON.stringify({type:'module'}, null, 2)+'\\n'); console.log('Created dist/package.json')\"",
|
|
17
18
|
"build:ui": "node -e \"const fs=require('fs'); if(fs.existsSync('ui')){const{execSync}=require('child_process');execSync('npx vite build',{stdio:'inherit'})}else{console.log('Skipping UI build - ui/ not found')}\"",
|
|
18
19
|
"dev": "tsx watch src/index.ts",
|
|
19
20
|
"dev:ui": "vite build --watch",
|
|
@@ -22,7 +23,8 @@
|
|
|
22
23
|
"type-check": "tsc --noEmit",
|
|
23
24
|
"clean": "node -e \"const fs=require('fs'); if(fs.existsSync('dist')){fs.rmSync('dist',{recursive:true}); console.log('Cleaned dist/')}\"",
|
|
24
25
|
"prebuild": "npm run clean",
|
|
25
|
-
"
|
|
26
|
+
"bundle:mcpb": "node scripts/bundle-mcpb.js",
|
|
27
|
+
"pack:mcpb": "npm run build && npm run bundle:mcpb && npm run copy:bundle && cd .. && mcpb pack",
|
|
26
28
|
"copy:bundle": "node -e \"const fs=require('fs'); const path=require('path'); function copyDir(src,dest){fs.mkdirSync(dest,{recursive:true});fs.readdirSync(src).forEach(f=>{const srcPath=path.join(src,f);const destPath=path.join(dest,f);fs.statSync(srcPath).isDirectory()?copyDir(srcPath,destPath):fs.copyFileSync(srcPath,destPath)})} const rootDist=path.join(__dirname,'..','dist'); if(fs.existsSync(rootDist))fs.rmSync(rootDist,{recursive:true}); copyDir('dist',rootDist); console.log('Copied dist/ to root for MCPB bundling')\"",
|
|
27
29
|
"validate:mcpb": "cd .. && mcpb validate manifest.json",
|
|
28
30
|
"prepublishOnly": "npm run build"
|
|
@@ -52,22 +54,23 @@
|
|
|
52
54
|
],
|
|
53
55
|
"license": "MIT",
|
|
54
56
|
"dependencies": {
|
|
55
|
-
"@
|
|
57
|
+
"@fastify/cors": "^9.0.0",
|
|
56
58
|
"@modelcontextprotocol/ext-apps": "^1.0.1",
|
|
59
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
57
60
|
"axios": "^1.7.0",
|
|
58
|
-
"zod": "3.25.76",
|
|
59
61
|
"dotenv": "^16.3.0",
|
|
60
62
|
"fastify": "^4.28.0",
|
|
61
|
-
"
|
|
63
|
+
"zod": "3.25.76"
|
|
62
64
|
},
|
|
63
65
|
"devDependencies": {
|
|
64
66
|
"@types/node": "^20.8.0",
|
|
65
|
-
"
|
|
67
|
+
"concurrently": "^8.0.0",
|
|
68
|
+
"esbuild": "^0.27.2",
|
|
66
69
|
"tsx": "^4.0.0",
|
|
67
|
-
"
|
|
70
|
+
"typescript": "^5.5.0",
|
|
68
71
|
"vite": "^6.0.0",
|
|
69
72
|
"vite-plugin-singlefile": "^2.3.0",
|
|
70
|
-
"
|
|
73
|
+
"vitest": "^2.0.0"
|
|
71
74
|
},
|
|
72
75
|
"engines": {
|
|
73
76
|
"node": ">=18.0.0"
|