@codemill-solutions/yuki-mcp 1.5.0 → 1.6.0
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 +37 -1
- package/dist/index.js +1 -1
- package/dist/yuki-client.d.ts +8 -0
- package/dist/yuki-client.d.ts.map +1 -1
- package/dist/yuki-client.js +47 -4
- package/dist/yuki-client.js.map +1 -1
- package/package.json +28 -10
package/README.md
CHANGED
|
@@ -22,13 +22,16 @@ Then add it to your MCP host configuration (e.g. `claude_desktop_config.json`):
|
|
|
22
22
|
"args": ["node_modules/@codemill-solutions/yuki-mcp/dist/index.js"],
|
|
23
23
|
"env": {
|
|
24
24
|
"YUKI_API_KEY": "your-api-key-here",
|
|
25
|
-
"YUKI_DOMAIN_ID": "your-administration-guid-here"
|
|
25
|
+
"YUKI_DOMAIN_ID": "your-administration-guid-here",
|
|
26
|
+
"YUKI_REGION": "nl"
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
```
|
|
31
32
|
|
|
33
|
+
> **Belgian administrations must set `YUKI_REGION=be`.** See [API region](#api-region).
|
|
34
|
+
|
|
32
35
|
---
|
|
33
36
|
|
|
34
37
|
## Prerequisites
|
|
@@ -58,6 +61,7 @@ Edit `.env`:
|
|
|
58
61
|
```env
|
|
59
62
|
YUKI_API_KEY=your-api-key-here
|
|
60
63
|
YUKI_DOMAIN_ID=your-administration-guid-here # optional at startup
|
|
64
|
+
YUKI_REGION=nl # nl (default) or be
|
|
61
65
|
```
|
|
62
66
|
|
|
63
67
|
`YUKI_DOMAIN_ID` can be left empty — the server starts without it. Call `get_administrations` to discover the correct GUID, then pass it via the `administrationId` parameter on individual tools.
|
|
@@ -89,6 +93,38 @@ Add to your MCP host configuration (e.g. `claude_desktop_config.json`):
|
|
|
89
93
|
|
|
90
94
|
---
|
|
91
95
|
|
|
96
|
+
## API region
|
|
97
|
+
|
|
98
|
+
Yuki runs a separate API host per region, and an administration only exists on the host
|
|
99
|
+
for its own region. A key for a Belgian administration authenticates successfully against
|
|
100
|
+
the Dutch host but then fails on **every** data call with:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
SOAP Fault: Domain has no active database
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Set the region to match your administration:
|
|
107
|
+
|
|
108
|
+
| Variable | Values | Default | Purpose |
|
|
109
|
+
| --- | --- | --- | --- |
|
|
110
|
+
| `YUKI_REGION` | `nl`, `be` | `nl` | Selects a known regional API host |
|
|
111
|
+
| `YUKI_BASE_URL` | full URL | — | Overrides `YUKI_REGION` entirely; use for hosts not listed above |
|
|
112
|
+
|
|
113
|
+
```env
|
|
114
|
+
YUKI_REGION=be
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`YUKI_BASE_URL` takes precedence when both are set, so a new or private host can be reached
|
|
118
|
+
without waiting on a release:
|
|
119
|
+
|
|
120
|
+
```env
|
|
121
|
+
YUKI_BASE_URL=https://api.yukiworks.be/ws/
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Defaults are unchanged — omitting both keeps the previous `api.yukiworks.nl` behaviour.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
92
128
|
## Multi-administration support
|
|
93
129
|
|
|
94
130
|
If you manage **multiple Yuki administrations** (each with its own API key), you can supply a JSON file that maps every `administrationId` to its corresponding API key. The server then authenticates per administration automatically — no single shared key required.
|
package/dist/index.js
CHANGED
|
@@ -56,7 +56,7 @@ const yukiClient = new YukiClient(apiKey, domainId, apiKeyMap);
|
|
|
56
56
|
// ── MCP server ────────────────────────────────────────────────────────────────
|
|
57
57
|
const server = new McpServer({
|
|
58
58
|
name: 'yuki-mcp',
|
|
59
|
-
version: '1.
|
|
59
|
+
version: '1.6.0',
|
|
60
60
|
});
|
|
61
61
|
// ── Read tools ────────────────────────────────────────────────────────────────
|
|
62
62
|
registerAdministrationTools(server, yukiClient);
|
package/dist/yuki-client.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the Yuki API base URL.
|
|
3
|
+
*
|
|
4
|
+
* `YUKI_BASE_URL` (a full URL) takes precedence, so unlisted or future hosts
|
|
5
|
+
* can be reached without a code change. Otherwise `YUKI_REGION` selects a
|
|
6
|
+
* known regional host. Defaults to the Dutch host for backwards compatibility.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveBaseUrl(env?: NodeJS.ProcessEnv): string;
|
|
1
9
|
/**
|
|
2
10
|
* Wraps a raw XML string so it is embedded directly into the SOAP body
|
|
3
11
|
* without being HTML-entity-encoded.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuki-client.d.ts","sourceRoot":"","sources":["../src/yuki-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"yuki-client.d.ts","sourceRoot":"","sources":["../src/yuki-client.ts"],"names":[],"mappings":"AAiCA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAa3E;AA2CD;;;;;;;;;GASG;AACH,qBAAa,QAAQ;IACP,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CACjC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC;AAaD,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,0DAA0D;IAC1D,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,CAWpE;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oFAAoF;IACpF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IAEnC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAEhD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;gBAE9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAgB7E;;;;;;;;;;OAUG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCrD;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IASzC,mEAAmE;IACnE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,4EAA4E;IAC5E,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,gBAAgB;IAmC1D,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB;IAczB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;;;;OAOG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAsD1D,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB;CAoBzB;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C"}
|
package/dist/yuki-client.js
CHANGED
|
@@ -3,8 +3,51 @@ import { XMLParser } from 'fast-xml-parser';
|
|
|
3
3
|
import { readFileSync, existsSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
|
-
//
|
|
7
|
-
|
|
6
|
+
// Yuki runs region-specific API hosts. An administration only exists on the
|
|
7
|
+
// host for its own region, so calls to the wrong region authenticate fine but
|
|
8
|
+
// then fail on every data call with "Domain has no active database".
|
|
9
|
+
const YUKI_REGION_HOSTS = {
|
|
10
|
+
nl: 'https://api.yukiworks.nl/ws/',
|
|
11
|
+
be: 'https://api.yukiworks.be/ws/',
|
|
12
|
+
};
|
|
13
|
+
const DEFAULT_YUKI_REGION = 'nl';
|
|
14
|
+
/**
|
|
15
|
+
* Append a hint when a fault looks like the caller is talking to the wrong
|
|
16
|
+
* regional host. Yuki returns the same opaque message for a genuinely
|
|
17
|
+
* unscoped API key and for a valid key pointed at the wrong region, which is
|
|
18
|
+
* otherwise very hard to diagnose.
|
|
19
|
+
*/
|
|
20
|
+
function regionHint(fault, url) {
|
|
21
|
+
if (!fault || !/no active database/i.test(fault))
|
|
22
|
+
return '';
|
|
23
|
+
const alternatives = Object.entries(YUKI_REGION_HOSTS)
|
|
24
|
+
.filter(([, host]) => !url.startsWith(host))
|
|
25
|
+
.map(([region]) => region);
|
|
26
|
+
if (alternatives.length === 0)
|
|
27
|
+
return '';
|
|
28
|
+
return (` (called ${url}. If this administration is not Dutch, set YUKI_REGION` +
|
|
29
|
+
` to one of: ${alternatives.join(', ')} — or set YUKI_BASE_URL explicitly.)`);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the Yuki API base URL.
|
|
33
|
+
*
|
|
34
|
+
* `YUKI_BASE_URL` (a full URL) takes precedence, so unlisted or future hosts
|
|
35
|
+
* can be reached without a code change. Otherwise `YUKI_REGION` selects a
|
|
36
|
+
* known regional host. Defaults to the Dutch host for backwards compatibility.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveBaseUrl(env = process.env) {
|
|
39
|
+
const explicit = env['YUKI_BASE_URL']?.trim();
|
|
40
|
+
if (explicit)
|
|
41
|
+
return explicit.endsWith('/') ? explicit : `${explicit}/`;
|
|
42
|
+
const region = (env['YUKI_REGION']?.trim() || DEFAULT_YUKI_REGION).toLowerCase();
|
|
43
|
+
const host = YUKI_REGION_HOSTS[region];
|
|
44
|
+
if (!host) {
|
|
45
|
+
throw new Error(`Unknown YUKI_REGION "${region}". Supported regions: ${Object.keys(YUKI_REGION_HOSTS).join(', ')}. ` +
|
|
46
|
+
'Alternatively set YUKI_BASE_URL to a full API URL.');
|
|
47
|
+
}
|
|
48
|
+
return host;
|
|
49
|
+
}
|
|
50
|
+
const YUKI_BASE_URL = resolveBaseUrl();
|
|
8
51
|
const YUKI_NAMESPACE = 'http://www.theyukicompany.com/';
|
|
9
52
|
// Tags that should always be treated as arrays even when there is only one element
|
|
10
53
|
const ALWAYS_ARRAY_TAGS = new Set([
|
|
@@ -275,7 +318,7 @@ export class YukiClient {
|
|
|
275
318
|
if (err.response?.data) {
|
|
276
319
|
const fault = this.extractSoapFault(err.response.data);
|
|
277
320
|
if (fault)
|
|
278
|
-
throw new Error(`SOAP Fault: ${fault}`);
|
|
321
|
+
throw new Error(`SOAP Fault: ${fault}${regionHint(fault, url)}`);
|
|
279
322
|
throw new Error(`HTTP ${err.response.status} ${err.response.statusText} from ${url}`);
|
|
280
323
|
}
|
|
281
324
|
throw new Error(`Network error calling Yuki API: ${err.message}`);
|
|
@@ -289,7 +332,7 @@ export class YukiClient {
|
|
|
289
332
|
}
|
|
290
333
|
if (body['Fault']) {
|
|
291
334
|
const fault = this.extractSoapFault(responseData);
|
|
292
|
-
throw new Error(`SOAP Fault: ${fault ?? 'Unknown SOAP fault'}`);
|
|
335
|
+
throw new Error(`SOAP Fault: ${fault ?? 'Unknown SOAP fault'}${regionHint(fault, url)}`);
|
|
293
336
|
}
|
|
294
337
|
// Unwrap <{method}Response><{method}Result> automatically
|
|
295
338
|
const responseKey = `${method}Response`;
|
package/dist/yuki-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuki-client.js","sourceRoot":"","sources":["../src/yuki-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,oDAAoD;
|
|
1
|
+
{"version":3,"file":"yuki-client.js","sourceRoot":"","sources":["../src/yuki-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemill-solutions/yuki-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "MCP server for the Yuki accounting SOAP API",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "CodeMill Solutions B.V.",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"mcp",
|
|
9
|
+
"model-context-protocol",
|
|
10
|
+
"yuki",
|
|
11
|
+
"yukiworks",
|
|
12
|
+
"accounting",
|
|
13
|
+
"boekhouden",
|
|
14
|
+
"soap",
|
|
15
|
+
"ai",
|
|
16
|
+
"agent",
|
|
17
|
+
"anthropic",
|
|
18
|
+
"claude"
|
|
19
|
+
],
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=20"
|
|
22
|
+
},
|
|
5
23
|
"repository": {
|
|
6
24
|
"type": "git",
|
|
7
25
|
"url": "git+https://github.com/CodeMill-Solutions/yuki-mcp.git"
|
|
@@ -30,16 +48,16 @@
|
|
|
30
48
|
},
|
|
31
49
|
"dependencies": {
|
|
32
50
|
"@anthropic-ai/sdk": "^0.78.0",
|
|
33
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
34
|
-
"axios": "^1.
|
|
35
|
-
"dotenv": "^16.
|
|
36
|
-
"fast-xml-parser": "^5.
|
|
37
|
-
"zod": "^3.
|
|
51
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
52
|
+
"axios": "^1.16.1",
|
|
53
|
+
"dotenv": "^16.6.1",
|
|
54
|
+
"fast-xml-parser": "^5.8.0",
|
|
55
|
+
"zod": "^3.25.76"
|
|
38
56
|
},
|
|
39
57
|
"devDependencies": {
|
|
40
|
-
"@types/node": "^22.
|
|
41
|
-
"prettier": "^3.8.
|
|
42
|
-
"tsx": "^4.
|
|
43
|
-
"typescript": "^5.
|
|
58
|
+
"@types/node": "^22.19.19",
|
|
59
|
+
"prettier": "^3.8.3",
|
|
60
|
+
"tsx": "^4.22.3",
|
|
61
|
+
"typescript": "^5.9.3"
|
|
44
62
|
}
|
|
45
63
|
}
|