@codemill-solutions/yuki-mcp 1.5.1 → 1.7.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 +91 -9
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/tools/accounting-info.d.ts +16 -0
- package/dist/tools/accounting-info.d.ts.map +1 -1
- package/dist/tools/accounting-info.js +54 -15
- package/dist/tools/accounting-info.js.map +1 -1
- package/dist/tools/administrations.d.ts.map +1 -1
- package/dist/tools/administrations.js +6 -5
- package/dist/tools/administrations.js.map +1 -1
- package/dist/yuki-client.d.ts +68 -15
- package/dist/yuki-client.d.ts.map +1 -1
- package/dist/yuki-client.js +157 -32
- package/dist/yuki-client.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -8,27 +8,50 @@ Built with Node.js, TypeScript, and [`@modelcontextprotocol/sdk`](https://github
|
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
|
+
The quickest way is to let your MCP host run the package directly through `npx` — nothing to install or build. Add it to your MCP host configuration (e.g. `claude_desktop_config.json`):
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"mcpServers": {
|
|
16
|
+
"yuki": {
|
|
17
|
+
"command": "npx",
|
|
18
|
+
"args": ["-y", "@codemill-solutions/yuki-mcp"],
|
|
19
|
+
"env": {
|
|
20
|
+
"YUKI_API_KEY": "your-api-key-here",
|
|
21
|
+
"YUKI_DOMAIN_ID": "your-administration-guid-here",
|
|
22
|
+
"YUKI_REGION": "nl"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> **Belgian administrations must set `YUKI_REGION=be`.** See [API region](#api-region).
|
|
30
|
+
|
|
31
|
+
Prefer a pinned local install? Install the package and point your host at its entry point instead:
|
|
32
|
+
|
|
11
33
|
```bash
|
|
12
34
|
npm install @codemill-solutions/yuki-mcp
|
|
13
35
|
```
|
|
14
36
|
|
|
15
|
-
Then add it to your MCP host configuration (e.g. `claude_desktop_config.json`):
|
|
16
|
-
|
|
17
37
|
```json
|
|
18
38
|
{
|
|
19
39
|
"mcpServers": {
|
|
20
40
|
"yuki": {
|
|
21
41
|
"command": "node",
|
|
22
|
-
"args": ["node_modules/@codemill-solutions/yuki-mcp/dist/index.js"],
|
|
42
|
+
"args": ["/absolute/path/to/node_modules/@codemill-solutions/yuki-mcp/dist/index.js"],
|
|
23
43
|
"env": {
|
|
24
44
|
"YUKI_API_KEY": "your-api-key-here",
|
|
25
|
-
"YUKI_DOMAIN_ID": "your-administration-guid-here"
|
|
45
|
+
"YUKI_DOMAIN_ID": "your-administration-guid-here",
|
|
46
|
+
"YUKI_REGION": "nl"
|
|
26
47
|
}
|
|
27
48
|
}
|
|
28
49
|
}
|
|
29
50
|
}
|
|
30
51
|
```
|
|
31
52
|
|
|
53
|
+
> Desktop MCP hosts such as Claude Desktop do not inherit your shell's `PATH`. If the server only reports **"Server disconnected"**, use absolute paths for the command (`which npx` / `which node`, e.g. `/opt/homebrew/bin/npx` on Apple Silicon Macs) — see [Troubleshooting](#troubleshooting).
|
|
54
|
+
|
|
32
55
|
---
|
|
33
56
|
|
|
34
57
|
## Prerequisites
|
|
@@ -58,6 +81,7 @@ Edit `.env`:
|
|
|
58
81
|
```env
|
|
59
82
|
YUKI_API_KEY=your-api-key-here
|
|
60
83
|
YUKI_DOMAIN_ID=your-administration-guid-here # optional at startup
|
|
84
|
+
YUKI_REGION=nl # nl (default) or be
|
|
61
85
|
```
|
|
62
86
|
|
|
63
87
|
`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,19 +113,75 @@ Add to your MCP host configuration (e.g. `claude_desktop_config.json`):
|
|
|
89
113
|
|
|
90
114
|
---
|
|
91
115
|
|
|
116
|
+
## API region
|
|
117
|
+
|
|
118
|
+
Yuki runs a separate API host per region, and an administration only exists on the host
|
|
119
|
+
for its own region. A key for a Belgian administration authenticates successfully against
|
|
120
|
+
the Dutch host but then fails on **every** data call with:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
SOAP Fault: Domain has no active database
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Set the region to match your administration:
|
|
127
|
+
|
|
128
|
+
| Variable | Values | Default | Purpose |
|
|
129
|
+
| --- | --- | --- | --- |
|
|
130
|
+
| `YUKI_REGION` | `nl`, `be` | `nl` | Selects a known regional API host |
|
|
131
|
+
| `YUKI_BASE_URL` | full URL | — | Overrides `YUKI_REGION` entirely; use for hosts not listed above |
|
|
132
|
+
|
|
133
|
+
```env
|
|
134
|
+
YUKI_REGION=be
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
`YUKI_BASE_URL` takes precedence when both are set, so a new or private host can be reached
|
|
138
|
+
without waiting on a release:
|
|
139
|
+
|
|
140
|
+
```env
|
|
141
|
+
YUKI_BASE_URL=https://api.yukiworks.be/ws/
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Defaults are unchanged — omitting both keeps the previous `api.yukiworks.nl` behaviour.
|
|
145
|
+
|
|
146
|
+
### Per administration
|
|
147
|
+
|
|
148
|
+
`YUKI_REGION` / `YUKI_BASE_URL` set the server-wide default. When one server serves administrations in more than one region, pin the exceptions in the [keys file](#keys-file-format):
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"<dutch-administration-id>": "api-key-nl",
|
|
153
|
+
"<belgian-administration-id>": { "apiKey": "api-key-be", "region": "be" }
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
When a call still lands on the wrong host, the `Domain has no active database` fault names the host that was called and the regions to try.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
92
161
|
## Multi-administration support
|
|
93
162
|
|
|
94
|
-
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.
|
|
163
|
+
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. Administrations in different regions can share one server: give an entry its own `region`.
|
|
95
164
|
|
|
96
165
|
### Keys file format
|
|
97
166
|
|
|
167
|
+
Each value is either the API key itself, or an object with the key plus an optional region override:
|
|
168
|
+
|
|
98
169
|
```json
|
|
99
170
|
{
|
|
100
171
|
"a1b2c3d4-0000-0000-0000-000000000001": "api-key-for-admin-1",
|
|
101
|
-
"a1b2c3d4-0000-0000-0000-000000000002": "api-key-for-admin-2"
|
|
172
|
+
"a1b2c3d4-0000-0000-0000-000000000002": { "apiKey": "api-key-for-admin-2", "region": "be" },
|
|
173
|
+
"a1b2c3d4-0000-0000-0000-000000000003": { "apiKey": "api-key-for-admin-3", "baseUrl": "https://api.yukiworks.be/ws/" }
|
|
102
174
|
}
|
|
103
175
|
```
|
|
104
176
|
|
|
177
|
+
| Field | Required | Purpose |
|
|
178
|
+
|-------|----------|---------|
|
|
179
|
+
| `apiKey` | yes | The administration's API key |
|
|
180
|
+
| `region` | no | `nl` or `be` — the API host for this administration. Defaults to the server-wide `YUKI_REGION` |
|
|
181
|
+
| `baseUrl` | no | Full API URL for this administration; takes precedence over `region` |
|
|
182
|
+
|
|
183
|
+
Plain string entries keep using the server-wide region, so existing files work unchanged. An unknown `region` is reported as an error (at startup or from `reload_keys`) rather than silently falling back to the default host. Each session is bound to the host that issued it, so tools need no extra parameters; `reload_keys` treats a changed region like a changed key and re-authenticates.
|
|
184
|
+
|
|
105
185
|
### Path resolution (first match wins)
|
|
106
186
|
|
|
107
187
|
| Priority | Path |
|
|
@@ -124,7 +204,7 @@ If neither `YUKI_API_KEY` nor a keys file is found at startup, the server logs a
|
|
|
124
204
|
|
|
125
205
|
When a new key is generated externally — for example by a sibling MCP server that drives the Yuki Integraties UI to create a fresh API key for a new administration — the new entry only lands in `~/.yuki/api-keys.json`. By default the MCP server reads that file once at startup, so a freshly added key would require a server restart before it can be used for SOAP calls.
|
|
126
206
|
|
|
127
|
-
The **`reload_keys`** tool (see [Available tools](#available-tools-31) below) avoids this: it re-reads the keys file from disk and replaces the in-memory map in place. Sessions for
|
|
207
|
+
The **`reload_keys`** tool (see [Available tools](#available-tools-31) below) avoids this: it re-reads the keys file from disk and replaces the in-memory map in place. Sessions for entries whose key or region **changed** or that were **removed** are evicted from the session cache automatically; sessions for unchanged entries stay warm so subsequent calls do not pay the re-authentication cost.
|
|
128
208
|
|
|
129
209
|
Typical flow for a sibling tool that has just minted a new key:
|
|
130
210
|
|
|
@@ -144,7 +224,7 @@ Typical flow for a sibling tool that has just minted a new key:
|
|
|
144
224
|
|------|-------------|
|
|
145
225
|
| `get_administrations` | List all administrations (companies) for this API key. **Run this first** to find the correct `administrationId`. |
|
|
146
226
|
| `get_administration_id` | Look up an administration's GUID by its exact name. Useful when you know the name but not the GUID. |
|
|
147
|
-
| `reload_keys` | Re-read the `administrationId → apiKey` JSON file from disk without restarting the server. Returns a diff of added/updated/removed IDs and invalidates affected sessions. Use after an external `create_api_key` flow. |
|
|
227
|
+
| `reload_keys` | Re-read the `administrationId → apiKey` JSON file (including per-administration `region` overrides) from disk without restarting the server. Returns a diff of added/updated/removed IDs and invalidates affected sessions. Use after an external `create_api_key` flow. |
|
|
148
228
|
|
|
149
229
|
### Relations
|
|
150
230
|
|
|
@@ -164,7 +244,7 @@ Typical flow for a sibling tool that has just minted a new key:
|
|
|
164
244
|
|
|
165
245
|
| Tool | Key parameters | Description |
|
|
166
246
|
|------|----------------|-------------|
|
|
167
|
-
| `get_missing_invoices` |
|
|
247
|
+
| `get_missing_invoices` | `types?` | Retrieve bank payments that still need a matching purchase invoice — equivalent to "Postbus → Ontbrekende facturen" in the Yuki web interface. Works for Dutch and Belgian administrations; the response includes `typesSeen`, and an unexpected `<Type>` label can be passed via `types`. |
|
|
168
248
|
| `get_purchase_invoices` | `dateOutstanding?`, `sortOrder?`, `includeBankTransactions?` | Retrieve outstanding (unpaid) purchase invoices. |
|
|
169
249
|
| `process_purchase_invoice` | `date`, `invoiceAmount`, `invoiceVatAmount`, `contact`, `lines` | Book an incoming purchase invoice. Accepts an optional PDF as base64. |
|
|
170
250
|
|
|
@@ -307,6 +387,8 @@ Design agent workflows to fetch broad lists once and reference them from the age
|
|
|
307
387
|
|
|
308
388
|
| Error | Likely cause |
|
|
309
389
|
|-------|-------------|
|
|
390
|
+
| **Server disconnected** with no further output | The MCP host could not start the server. Desktop hosts don't inherit your shell's `PATH`, so use absolute paths (`which npx` / `which node`). With package versions up to 1.6.0, `npx` also fails with `could not determine executable to run` because the package had no `bin` entry — upgrade, or run `node` against `dist/index.js` |
|
|
391
|
+
| `get_missing_invoices` returns `count: 0` while Yuki shows missing invoices | Your administration reports a `<Type>` label the tool doesn't recognise — check `typesSeen` in the response and pass the bank-side labels via the `types` parameter |
|
|
310
392
|
| `SOAP Fault: Authentication failed` | `YUKI_API_KEY` is incorrect or API access is not enabled in Yuki Settings |
|
|
311
393
|
| `No API key found for administration …` | The `administrationId` passed to the tool is not in the loaded keys file — check `YUKI_API_KEYS_FILE` |
|
|
312
394
|
| `SOAP Fault: Administration not found` | Wrong `administrationId` — run `get_administrations` to get the correct GUID |
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
import 'dotenv/config';
|
|
2
3
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
4
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
-
import { YukiClient, loadApiKeysFile } from './yuki-client.js';
|
|
5
|
+
import { YukiClient, YUKI_BASE_URL, loadApiKeysFile } from './yuki-client.js';
|
|
5
6
|
// Read tools
|
|
6
7
|
import { registerAdministrationTools, registerAdministrationLookupTools, registerReloadKeysTools, } from './tools/administrations.js';
|
|
7
8
|
import { registerRelationTools } from './tools/relations.js';
|
|
@@ -22,8 +23,10 @@ import { registerBackofficeTools } from './tools/backoffice.js';
|
|
|
22
23
|
// This allows the MCP server to serve multiple Yuki administrations, each with
|
|
23
24
|
// its own API key, without requiring a single YUKI_API_KEY for all of them.
|
|
24
25
|
//
|
|
25
|
-
// The file format is a plain JSON object
|
|
26
|
-
//
|
|
26
|
+
// The file format is a plain JSON object. A value is either the API key, or an
|
|
27
|
+
// object that also pins the administration to its own API region:
|
|
28
|
+
// { "<administrationId>": "<apiKey>",
|
|
29
|
+
// "<administrationId>": { "apiKey": "<apiKey>", "region": "be" }, ... }
|
|
27
30
|
//
|
|
28
31
|
// Path resolution + parsing lives in `yuki-client.ts` (`loadApiKeysFile`) so
|
|
29
32
|
// the runtime `reload_keys` tool can share the exact same behaviour.
|
|
@@ -34,7 +37,10 @@ try {
|
|
|
34
37
|
keysFilePath = loaded.path;
|
|
35
38
|
apiKeyMap = loaded.map;
|
|
36
39
|
if (loaded.found) {
|
|
37
|
-
|
|
40
|
+
const overrides = [...apiKeyMap.values()].filter((entry) => entry.baseUrl !== YUKI_BASE_URL).length;
|
|
41
|
+
process.stderr.write(`[yuki-mcp] Loaded ${apiKeyMap.size} API keys from ${keysFilePath}` +
|
|
42
|
+
(overrides > 0 ? ` (${overrides} with a region/baseUrl override)` : '') +
|
|
43
|
+
'\n');
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
46
|
catch (err) {
|
|
@@ -56,7 +62,7 @@ const yukiClient = new YukiClient(apiKey, domainId, apiKeyMap);
|
|
|
56
62
|
// ── MCP server ────────────────────────────────────────────────────────────────
|
|
57
63
|
const server = new McpServer({
|
|
58
64
|
name: 'yuki-mcp',
|
|
59
|
-
version: '1.
|
|
65
|
+
version: '1.7.0',
|
|
60
66
|
});
|
|
61
67
|
// ── Read tools ────────────────────────────────────────────────────────────────
|
|
62
68
|
registerAdministrationTools(server, yukiClient);
|
|
@@ -85,5 +91,5 @@ const keyInfo = apiKeyMap.size > 0
|
|
|
85
91
|
? 'single YUKI_API_KEY'
|
|
86
92
|
: 'no API keys configured';
|
|
87
93
|
process.stderr.write(`[yuki-mcp] Server started — 31 tools registered. ` +
|
|
88
|
-
`Domain ID: ${domainId || '(none)'} — ${keyInfo}\n`);
|
|
94
|
+
`Domain ID: ${domainId || '(none)'} — ${keyInfo} — API host: ${YUKI_BASE_URL}\n`);
|
|
89
95
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,4 +16,20 @@ import { YukiClient } from '../yuki-client.js';
|
|
|
16
16
|
* Note: uses sessionID / administrationID (uppercase D), same as Accounting.asmx.
|
|
17
17
|
*/
|
|
18
18
|
export declare function registerAccountingInfoTools(server: McpServer, client: YukiClient): void;
|
|
19
|
+
/**
|
|
20
|
+
* <Type> labels that OutstandingCreditorItems uses for bank-side items, i.e.
|
|
21
|
+
* payments without a matching purchase invoice. The label depends on the region
|
|
22
|
+
* of the administration: Dutch administrations report "Afschriftregel", Belgian
|
|
23
|
+
* ones "Banktransactie" / "Creditcardbetaling". Invoice-side items
|
|
24
|
+
* ("Aankoopfactuur", "Aankoop creditnota", …) never belong in this list.
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_MISSING_INVOICE_TYPES: readonly string[];
|
|
27
|
+
/**
|
|
28
|
+
* Read the <Type> label of an OutstandingCreditorItems row. The element carries
|
|
29
|
+
* an ID attribute, so fast-xml-parser returns it as { "@_ID": "", "#text": "…" }
|
|
30
|
+
* rather than a plain string.
|
|
31
|
+
*/
|
|
32
|
+
export declare function readItemType(item: Record<string, unknown>): string;
|
|
33
|
+
/** Case-insensitive membership test against the accepted bank-side labels. */
|
|
34
|
+
export declare function isMissingInvoiceType(type: string, accepted?: readonly string[]): boolean;
|
|
19
35
|
//# sourceMappingURL=accounting-info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounting-info.d.ts","sourceRoot":"","sources":["../../src/tools/accounting-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"accounting-info.d.ts","sourceRoot":"","sources":["../../src/tools/accounting-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA6evF;AAgCD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAI1D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAIlE;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,SAAS,MAAM,EAAkC,GAC1D,OAAO,CAGT"}
|
|
@@ -270,10 +270,12 @@ export function registerAccountingInfoTools(server, client) {
|
|
|
270
270
|
* inkoopfacturen" in the Yuki web interface.
|
|
271
271
|
*
|
|
272
272
|
* How it works: uses OutstandingCreditorItems with includeBankTransactions=true
|
|
273
|
-
* and
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
273
|
+
* and keeps the bank-side items: payments that Yuki has matched to a creditor
|
|
274
|
+
* but for which no purchase invoice document has been uploaded. The <Type>
|
|
275
|
+
* label of those items depends on the region of the administration — Dutch
|
|
276
|
+
* administrations report "Afschriftregel", Belgian ones "Banktransactie" and
|
|
277
|
+
* "Creditcardbetaling" (see DEFAULT_MISSING_INVOICE_TYPES). The documentID on
|
|
278
|
+
* each item refers to the bank statement, not to a purchase invoice.
|
|
277
279
|
*
|
|
278
280
|
* Yuki service: Accounting.asmx · OutstandingCreditorItems
|
|
279
281
|
* Rate cost: 1 request.
|
|
@@ -284,12 +286,18 @@ export function registerAccountingInfoTools(server, client) {
|
|
|
284
286
|
'Returns creditor name, open amount, date, and bank description for each unmatched payment. ' +
|
|
285
287
|
'Use upload_document or process_purchase_invoice to resolve items in this list.',
|
|
286
288
|
inputSchema: {
|
|
289
|
+
types: z
|
|
290
|
+
.array(z.string())
|
|
291
|
+
.optional()
|
|
292
|
+
.describe('<Type> labels to treat as unmatched bank payments. Defaults to ' +
|
|
293
|
+
`${DEFAULT_MISSING_INVOICE_TYPES.join(', ')} (Dutch and Belgian labels). ` +
|
|
294
|
+
'Override when the response reports other labels in typesSeen.'),
|
|
287
295
|
administrationId: z
|
|
288
296
|
.string()
|
|
289
297
|
.optional()
|
|
290
298
|
.describe('Administration ID (GUID). Defaults to YUKI_DOMAIN_ID env var.'),
|
|
291
299
|
},
|
|
292
|
-
}, async ({ administrationId }) => {
|
|
300
|
+
}, async ({ types, administrationId }) => {
|
|
293
301
|
try {
|
|
294
302
|
const adminId = administrationId ?? client.defaultDomainId;
|
|
295
303
|
if (!adminId)
|
|
@@ -306,18 +314,18 @@ export function registerAccountingInfoTools(server, client) {
|
|
|
306
314
|
},
|
|
307
315
|
});
|
|
308
316
|
const items = normalizeList(result, ['OutstandingCreditorItems', 'Items', 'CreditorItems'], ['Item', 'CreditorItem', 'Row']);
|
|
309
|
-
//
|
|
310
|
-
// "
|
|
311
|
-
//
|
|
312
|
-
|
|
317
|
+
// Keep the bank-side items; invoice-side items ("Aankoopfactuur",
|
|
318
|
+
// "Aankoop creditnota", …) are open purchase invoices, not missing ones.
|
|
319
|
+
// typesSeen is reported back so an unexpected label is easy to spot.
|
|
320
|
+
const accepted = types && types.length > 0 ? types : DEFAULT_MISSING_INVOICE_TYPES;
|
|
321
|
+
const typesSeen = {};
|
|
313
322
|
const missing = items.filter((item) => {
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
: String(raw ?? '');
|
|
318
|
-
return type === 'Afschriftregel';
|
|
323
|
+
const type = readItemType(item) || '(empty)';
|
|
324
|
+
typesSeen[type] = (typesSeen[type] ?? 0) + 1;
|
|
325
|
+
return isMissingInvoiceType(type, accepted);
|
|
319
326
|
});
|
|
320
327
|
const invoices = missing.map((item) => ({
|
|
328
|
+
type: readItemType(item),
|
|
321
329
|
bankStatementDocumentId: item['DocumentID'] ?? item['documentID'] ?? null,
|
|
322
330
|
date: item['Date'] ?? item['date'] ?? null,
|
|
323
331
|
creditorName: item['Contact'] ?? item['ContactName'] ?? null,
|
|
@@ -335,8 +343,11 @@ export function registerAccountingInfoTools(server, client) {
|
|
|
335
343
|
text: JSON.stringify({
|
|
336
344
|
success: true,
|
|
337
345
|
count: invoices.length,
|
|
346
|
+
totalItems: items.length,
|
|
347
|
+
typesSeen,
|
|
338
348
|
note: 'Bank payments without a matching purchase invoice. ' +
|
|
339
|
-
'Use upload_document or process_purchase_invoice to resolve each item.'
|
|
349
|
+
'Use upload_document or process_purchase_invoice to resolve each item. ' +
|
|
350
|
+
'If count is 0 while typesSeen lists bank-side labels, pass those labels via the types parameter.',
|
|
340
351
|
missingInvoices: invoices,
|
|
341
352
|
}, null, 2),
|
|
342
353
|
},
|
|
@@ -441,6 +452,34 @@ function normalizeList(result, wrappers, itemTags) {
|
|
|
441
452
|
}
|
|
442
453
|
return [result];
|
|
443
454
|
}
|
|
455
|
+
// ── get_missing_invoices helpers ──────────────────────────────────────────────
|
|
456
|
+
/**
|
|
457
|
+
* <Type> labels that OutstandingCreditorItems uses for bank-side items, i.e.
|
|
458
|
+
* payments without a matching purchase invoice. The label depends on the region
|
|
459
|
+
* of the administration: Dutch administrations report "Afschriftregel", Belgian
|
|
460
|
+
* ones "Banktransactie" / "Creditcardbetaling". Invoice-side items
|
|
461
|
+
* ("Aankoopfactuur", "Aankoop creditnota", …) never belong in this list.
|
|
462
|
+
*/
|
|
463
|
+
export const DEFAULT_MISSING_INVOICE_TYPES = [
|
|
464
|
+
'Afschriftregel',
|
|
465
|
+
'Banktransactie',
|
|
466
|
+
'Creditcardbetaling',
|
|
467
|
+
];
|
|
468
|
+
/**
|
|
469
|
+
* Read the <Type> label of an OutstandingCreditorItems row. The element carries
|
|
470
|
+
* an ID attribute, so fast-xml-parser returns it as { "@_ID": "", "#text": "…" }
|
|
471
|
+
* rather than a plain string.
|
|
472
|
+
*/
|
|
473
|
+
export function readItemType(item) {
|
|
474
|
+
const raw = item['Type'] ?? item['type'];
|
|
475
|
+
const text = raw && typeof raw === 'object' ? raw['#text'] : raw;
|
|
476
|
+
return String(text ?? '').trim();
|
|
477
|
+
}
|
|
478
|
+
/** Case-insensitive membership test against the accepted bank-side labels. */
|
|
479
|
+
export function isMissingInvoiceType(type, accepted = DEFAULT_MISSING_INVOICE_TYPES) {
|
|
480
|
+
const needle = type.trim().toLowerCase();
|
|
481
|
+
return accepted.some((label) => label.trim().toLowerCase() === needle);
|
|
482
|
+
}
|
|
444
483
|
/** Uniform error response shape. */
|
|
445
484
|
function errorResponse(err) {
|
|
446
485
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounting-info.js","sourceRoot":"","sources":["../../src/tools/accounting-info.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accounting-info.js","sourceRoot":"","sources":["../../src/tools/accounting-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"administrations.d.ts","sourceRoot":"","sources":["../../src/tools/administrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAqDvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAuC7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"administrations.d.ts","sourceRoot":"","sources":["../../src/tools/administrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAqDvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAuC7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA2EnF"}
|
|
@@ -121,11 +121,12 @@ export function registerAdministrationLookupTools(server, client) {
|
|
|
121
121
|
*/
|
|
122
122
|
export function registerReloadKeysTools(server, client) {
|
|
123
123
|
server.registerTool('reload_keys', {
|
|
124
|
-
description: 'Reload the administrationId → apiKey map
|
|
125
|
-
'restarting the MCP server. Use after a
|
|
126
|
-
'(for example via a `create_api_key` flow) to
|
|
127
|
-
'immediately. Sessions for changed/removed
|
|
128
|
-
'
|
|
124
|
+
description: 'Reload the administrationId → apiKey map (including per-administration region ' +
|
|
125
|
+
'overrides) from the JSON keys file without restarting the MCP server. Use after a ' +
|
|
126
|
+
'new key has been generated externally (for example via a `create_api_key` flow) to ' +
|
|
127
|
+
'make it usable for SOAP calls immediately. Sessions for changed/removed entries are ' +
|
|
128
|
+
'invalidated; unchanged entries keep their cached session. Returns a diff of ' +
|
|
129
|
+
'added/updated/removed IDs.',
|
|
129
130
|
inputSchema: {
|
|
130
131
|
path: z
|
|
131
132
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"administrations.js","sourceRoot":"","sources":["../../src/tools/administrations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"administrations.js","sourceRoot":"","sources":["../../src/tools/administrations.ts"],"names":[],"mappings":"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"}
|
package/dist/yuki-client.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the server-wide 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
|
+
* Keys-file entries can override the host per administration (see
|
|
8
|
+
* `loadApiKeysFile`).
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveBaseUrl(env?: NodeJS.ProcessEnv): string;
|
|
11
|
+
export declare const YUKI_BASE_URL: string;
|
|
1
12
|
/**
|
|
2
13
|
* Wraps a raw XML string so it is embedded directly into the SOAP body
|
|
3
14
|
* without being HTML-entity-encoded.
|
|
@@ -20,17 +31,39 @@ export interface SoapCallOptions {
|
|
|
20
31
|
method: string;
|
|
21
32
|
/** Key-value pairs serialised as child XML elements inside the method element */
|
|
22
33
|
params: Record<string, SoapParamValue>;
|
|
34
|
+
/**
|
|
35
|
+
* API base URL to call. Only `Authenticate` needs it (there is no session
|
|
36
|
+
* yet); every other call is routed by the host of the session ID it carries.
|
|
37
|
+
*/
|
|
38
|
+
baseUrl?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Credentials for one administration from the keys file: its API key and the
|
|
42
|
+
* API base URL to call for it. A keys-file value is either a bare API key
|
|
43
|
+
* (string, server-wide region) or an object with an optional `region` or
|
|
44
|
+
* `baseUrl` override:
|
|
45
|
+
*
|
|
46
|
+
* {
|
|
47
|
+
* "<administrationId>": "<apiKey>",
|
|
48
|
+
* "<administrationId>": { "apiKey": "<apiKey>", "region": "be" },
|
|
49
|
+
* "<administrationId>": { "apiKey": "<apiKey>", "baseUrl": "https://…/ws/" }
|
|
50
|
+
* }
|
|
51
|
+
*/
|
|
52
|
+
export interface AdministrationCredentials {
|
|
53
|
+
apiKey: string;
|
|
54
|
+
/** Resolved API base URL for this administration (per-entry override or the server default). */
|
|
55
|
+
baseUrl: string;
|
|
23
56
|
}
|
|
24
57
|
export interface LoadedApiKeys {
|
|
25
58
|
/** Absolute path that was read from. */
|
|
26
59
|
path: string;
|
|
27
|
-
/** Map of administrationId →
|
|
28
|
-
map: Map<string,
|
|
60
|
+
/** Map of administrationId → credentials. Empty if the file did not exist. */
|
|
61
|
+
map: Map<string, AdministrationCredentials>;
|
|
29
62
|
/** True when the resolved file existed and was parsed. */
|
|
30
63
|
found: boolean;
|
|
31
64
|
}
|
|
32
65
|
export declare function resolveApiKeysFilePath(explicitPath?: string): string;
|
|
33
|
-
export declare function loadApiKeysFile(explicitPath?: string): LoadedApiKeys;
|
|
66
|
+
export declare function loadApiKeysFile(explicitPath?: string, defaultBaseUrl?: string): LoadedApiKeys;
|
|
34
67
|
/**
|
|
35
68
|
* Diff returned by `YukiClient.reloadApiKeys` so callers can report what changed
|
|
36
69
|
* — useful for the `reload_keys` MCP tool and for log-stderr lines.
|
|
@@ -38,7 +71,7 @@ export declare function loadApiKeysFile(explicitPath?: string): LoadedApiKeys;
|
|
|
38
71
|
export interface ApiKeyReloadDiff {
|
|
39
72
|
/** Keys that did not exist before this reload. */
|
|
40
73
|
added: string[];
|
|
41
|
-
/** Keys that existed before but
|
|
74
|
+
/** Keys that existed before but changed API key or host (session invalidated). */
|
|
42
75
|
updated: string[];
|
|
43
76
|
/** Keys that existed before but are no longer in the file (session invalidated). */
|
|
44
77
|
removed: string[];
|
|
@@ -48,11 +81,13 @@ export interface ApiKeyReloadDiff {
|
|
|
48
81
|
export declare class YukiClient {
|
|
49
82
|
private readonly apiKey;
|
|
50
83
|
private readonly domainId;
|
|
84
|
+
private readonly baseUrl;
|
|
51
85
|
private readonly parser;
|
|
52
86
|
/**
|
|
53
|
-
* Map from administrationId →
|
|
54
|
-
* startup and mutated in place by
|
|
55
|
-
* automatically see the latest set
|
|
87
|
+
* Map from administrationId → credentials (API key + API base URL).
|
|
88
|
+
* Populated from the JSON keys file at startup and mutated in place by
|
|
89
|
+
* `reloadApiKeys()` so that all tools automatically see the latest set
|
|
90
|
+
* without rebuilding the client.
|
|
56
91
|
*/
|
|
57
92
|
private readonly apiKeyMap;
|
|
58
93
|
/**
|
|
@@ -60,13 +95,20 @@ export declare class YukiClient {
|
|
|
60
95
|
* reuses the same session ID for subsequent calls.
|
|
61
96
|
*/
|
|
62
97
|
private readonly sessionCache;
|
|
63
|
-
|
|
98
|
+
/**
|
|
99
|
+
* API base URL per live session ID. A session is only valid on the host that
|
|
100
|
+
* issued it, so data calls are routed by the session ID they carry. That is
|
|
101
|
+
* what lets one server instance serve administrations in different regions
|
|
102
|
+
* without every tool having to pass the administration along.
|
|
103
|
+
*/
|
|
104
|
+
private readonly sessionHosts;
|
|
105
|
+
constructor(apiKey: string, domainId: string, apiKeyMap?: Map<string, AdministrationCredentials>, baseUrl?: string);
|
|
64
106
|
/**
|
|
65
107
|
* Return a valid Yuki session ID, authenticating if needed.
|
|
66
108
|
*
|
|
67
109
|
* When `adminId` is provided and exists in the API key map, the corresponding
|
|
68
|
-
* per-administration API key is used for authentication.
|
|
69
|
-
* to the default `YUKI_API_KEY
|
|
110
|
+
* per-administration API key — and its API host — is used for authentication.
|
|
111
|
+
* Otherwise falls back to the default `YUKI_API_KEY` on the server-wide host.
|
|
70
112
|
*
|
|
71
113
|
* Session IDs are cached per API key for the lifetime of this process.
|
|
72
114
|
* On session expiry (SOAP fault) callers should catch the error, reset
|
|
@@ -80,15 +122,26 @@ export declare class YukiClient {
|
|
|
80
122
|
* is cleared. Without arguments all cached sessions are cleared.
|
|
81
123
|
*/
|
|
82
124
|
invalidateSession(adminId?: string): void;
|
|
125
|
+
/** Drop the cached session for an API key together with its host binding. */
|
|
126
|
+
private evictSession;
|
|
127
|
+
/**
|
|
128
|
+
* Pick the API base URL for a call: an explicit `baseUrl` on the options,
|
|
129
|
+
* else the host that issued the session ID in the params, else the
|
|
130
|
+
* server-wide default.
|
|
131
|
+
*/
|
|
132
|
+
private resolveCallBaseUrl;
|
|
83
133
|
/** The default domain / administration ID from the environment. */
|
|
84
134
|
get defaultDomainId(): string;
|
|
135
|
+
/** The server-wide API base URL; keys-file entries may override it per administration. */
|
|
136
|
+
get defaultBaseUrl(): string;
|
|
85
137
|
/** Number of administration-specific API keys loaded from the keys file. */
|
|
86
138
|
get apiKeyCount(): number;
|
|
87
139
|
/**
|
|
88
|
-
* Replace the in-memory `apiKeyMap` with `next`, in place. Sessions for
|
|
89
|
-
*
|
|
90
|
-
* the next call re-authenticates against
|
|
91
|
-
*
|
|
140
|
+
* Replace the in-memory `apiKeyMap` with `next`, in place. Sessions for
|
|
141
|
+
* entries whose API key **or host changed**, or that were **removed**, are
|
|
142
|
+
* evicted from the session cache so the next call re-authenticates against
|
|
143
|
+
* Yuki with the correct credentials on the correct host. Sessions for
|
|
144
|
+
* unchanged entries are kept warm.
|
|
92
145
|
*
|
|
93
146
|
* Designed to be called from the `reload_keys` MCP tool after a fresh
|
|
94
147
|
* `api-keys.json` has been written (e.g. by a `create_api_key` flow in a
|
|
@@ -96,7 +149,7 @@ export declare class YukiClient {
|
|
|
96
149
|
*
|
|
97
150
|
* Returns a diff so callers can report what changed.
|
|
98
151
|
*/
|
|
99
|
-
reloadApiKeys(next: Map<string,
|
|
152
|
+
reloadApiKeys(next: Map<string, AdministrationCredentials>): ApiKeyReloadDiff;
|
|
100
153
|
/** Build a SOAP 1.1 envelope around the given method body. */
|
|
101
154
|
private buildSoapEnvelope;
|
|
102
155
|
/**
|
|
@@ -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":"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"}
|
package/dist/yuki-client.js
CHANGED
|
@@ -3,8 +3,64 @@ 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
|
+
const SUPPORTED_REGIONS = Object.keys(YUKI_REGION_HOSTS).join(', ');
|
|
15
|
+
/** Ensure a base URL ends with a slash so `${baseUrl}${service}` composes. */
|
|
16
|
+
function normalizeBaseUrl(url) {
|
|
17
|
+
const trimmed = url.trim();
|
|
18
|
+
return trimmed.endsWith('/') ? trimmed : `${trimmed}/`;
|
|
19
|
+
}
|
|
20
|
+
/** Look up the API host for a region code; case- and whitespace-insensitive. */
|
|
21
|
+
function regionHost(region) {
|
|
22
|
+
return YUKI_REGION_HOSTS[region.trim().toLowerCase()];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Append a hint when a fault looks like the caller is talking to the wrong
|
|
26
|
+
* regional host. Yuki returns the same opaque message for a genuinely
|
|
27
|
+
* unscoped API key and for a valid key pointed at the wrong region, which is
|
|
28
|
+
* otherwise very hard to diagnose.
|
|
29
|
+
*/
|
|
30
|
+
function regionHint(fault, url) {
|
|
31
|
+
if (!fault || !/no active database/i.test(fault))
|
|
32
|
+
return '';
|
|
33
|
+
const alternatives = Object.entries(YUKI_REGION_HOSTS)
|
|
34
|
+
.filter(([, host]) => !url.startsWith(host))
|
|
35
|
+
.map(([region]) => region);
|
|
36
|
+
if (alternatives.length === 0)
|
|
37
|
+
return '';
|
|
38
|
+
return (` (called ${url}. If this administration belongs to a different region, set YUKI_REGION` +
|
|
39
|
+
` to one of: ${alternatives.join(', ')} — or "region" for this administration in the keys file —` +
|
|
40
|
+
' or point YUKI_BASE_URL at the right host.)');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolve the server-wide Yuki API base URL.
|
|
44
|
+
*
|
|
45
|
+
* `YUKI_BASE_URL` (a full URL) takes precedence, so unlisted or future hosts
|
|
46
|
+
* can be reached without a code change. Otherwise `YUKI_REGION` selects a
|
|
47
|
+
* known regional host. Defaults to the Dutch host for backwards compatibility.
|
|
48
|
+
* Keys-file entries can override the host per administration (see
|
|
49
|
+
* `loadApiKeysFile`).
|
|
50
|
+
*/
|
|
51
|
+
export function resolveBaseUrl(env = process.env) {
|
|
52
|
+
const explicit = env['YUKI_BASE_URL']?.trim();
|
|
53
|
+
if (explicit)
|
|
54
|
+
return normalizeBaseUrl(explicit);
|
|
55
|
+
const region = (env['YUKI_REGION']?.trim() || DEFAULT_YUKI_REGION).toLowerCase();
|
|
56
|
+
const host = regionHost(region);
|
|
57
|
+
if (!host) {
|
|
58
|
+
throw new Error(`Unknown YUKI_REGION "${region}". Supported regions: ${SUPPORTED_REGIONS}. ` +
|
|
59
|
+
'Alternatively set YUKI_BASE_URL to a full API URL.');
|
|
60
|
+
}
|
|
61
|
+
return host;
|
|
62
|
+
}
|
|
63
|
+
export const YUKI_BASE_URL = resolveBaseUrl();
|
|
8
64
|
const YUKI_NAMESPACE = 'http://www.theyukicompany.com/';
|
|
9
65
|
// Tags that should always be treated as arrays even when there is only one element
|
|
10
66
|
const ALWAYS_ARRAY_TAGS = new Set([
|
|
@@ -69,27 +125,59 @@ export function resolveApiKeysFilePath(explicitPath) {
|
|
|
69
125
|
return userPath;
|
|
70
126
|
return 'api-keys.json';
|
|
71
127
|
}
|
|
72
|
-
export function loadApiKeysFile(explicitPath) {
|
|
128
|
+
export function loadApiKeysFile(explicitPath, defaultBaseUrl = YUKI_BASE_URL) {
|
|
73
129
|
const path = resolveApiKeysFilePath(explicitPath);
|
|
74
130
|
const map = new Map();
|
|
75
131
|
if (!existsSync(path)) {
|
|
76
132
|
return { path, map, found: false };
|
|
77
133
|
}
|
|
78
134
|
const raw = JSON.parse(readFileSync(path, 'utf-8'));
|
|
79
|
-
for (const [adminId,
|
|
80
|
-
if (adminId
|
|
81
|
-
|
|
135
|
+
for (const [adminId, entry] of Object.entries(raw)) {
|
|
136
|
+
if (!adminId)
|
|
137
|
+
continue;
|
|
138
|
+
const credentials = parseKeyEntry(entry, defaultBaseUrl, `administration ${adminId} in ${path}`);
|
|
139
|
+
if (credentials)
|
|
140
|
+
map.set(adminId, credentials);
|
|
82
141
|
}
|
|
83
142
|
return { path, map, found: true };
|
|
84
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Validate one keys-file value. Entries without an API key are skipped (as
|
|
146
|
+
* before); an unknown region throws so a typo is reported instead of silently
|
|
147
|
+
* falling back to the default host.
|
|
148
|
+
*/
|
|
149
|
+
function parseKeyEntry(entry, defaultBaseUrl, source) {
|
|
150
|
+
if (typeof entry === 'string') {
|
|
151
|
+
return entry ? { apiKey: entry, baseUrl: defaultBaseUrl } : null;
|
|
152
|
+
}
|
|
153
|
+
if (!entry || typeof entry !== 'object')
|
|
154
|
+
return null;
|
|
155
|
+
const apiKey = typeof entry.apiKey === 'string' ? entry.apiKey.trim() : '';
|
|
156
|
+
if (!apiKey)
|
|
157
|
+
return null;
|
|
158
|
+
if (typeof entry.baseUrl === 'string' && entry.baseUrl.trim()) {
|
|
159
|
+
return { apiKey, baseUrl: normalizeBaseUrl(entry.baseUrl) };
|
|
160
|
+
}
|
|
161
|
+
if (typeof entry.region === 'string' && entry.region.trim()) {
|
|
162
|
+
const host = regionHost(entry.region);
|
|
163
|
+
if (!host) {
|
|
164
|
+
throw new Error(`Unknown region "${entry.region.trim()}" for ${source}. Supported regions: ${SUPPORTED_REGIONS}. ` +
|
|
165
|
+
'Alternatively set "baseUrl" to a full API URL.');
|
|
166
|
+
}
|
|
167
|
+
return { apiKey, baseUrl: host };
|
|
168
|
+
}
|
|
169
|
+
return { apiKey, baseUrl: defaultBaseUrl };
|
|
170
|
+
}
|
|
85
171
|
export class YukiClient {
|
|
86
172
|
apiKey;
|
|
87
173
|
domainId;
|
|
174
|
+
baseUrl;
|
|
88
175
|
parser;
|
|
89
176
|
/**
|
|
90
|
-
* Map from administrationId →
|
|
91
|
-
* startup and mutated in place by
|
|
92
|
-
* automatically see the latest set
|
|
177
|
+
* Map from administrationId → credentials (API key + API base URL).
|
|
178
|
+
* Populated from the JSON keys file at startup and mutated in place by
|
|
179
|
+
* `reloadApiKeys()` so that all tools automatically see the latest set
|
|
180
|
+
* without rebuilding the client.
|
|
93
181
|
*/
|
|
94
182
|
apiKeyMap;
|
|
95
183
|
/**
|
|
@@ -97,9 +185,17 @@ export class YukiClient {
|
|
|
97
185
|
* reuses the same session ID for subsequent calls.
|
|
98
186
|
*/
|
|
99
187
|
sessionCache = new Map();
|
|
100
|
-
|
|
188
|
+
/**
|
|
189
|
+
* API base URL per live session ID. A session is only valid on the host that
|
|
190
|
+
* issued it, so data calls are routed by the session ID they carry. That is
|
|
191
|
+
* what lets one server instance serve administrations in different regions
|
|
192
|
+
* without every tool having to pass the administration along.
|
|
193
|
+
*/
|
|
194
|
+
sessionHosts = new Map();
|
|
195
|
+
constructor(apiKey, domainId, apiKeyMap, baseUrl = YUKI_BASE_URL) {
|
|
101
196
|
this.apiKey = apiKey;
|
|
102
197
|
this.domainId = domainId;
|
|
198
|
+
this.baseUrl = baseUrl;
|
|
103
199
|
this.apiKeyMap = apiKeyMap ?? new Map();
|
|
104
200
|
this.parser = new XMLParser({
|
|
105
201
|
ignoreAttributes: false,
|
|
@@ -116,16 +212,18 @@ export class YukiClient {
|
|
|
116
212
|
* Return a valid Yuki session ID, authenticating if needed.
|
|
117
213
|
*
|
|
118
214
|
* When `adminId` is provided and exists in the API key map, the corresponding
|
|
119
|
-
* per-administration API key is used for authentication.
|
|
120
|
-
* to the default `YUKI_API_KEY
|
|
215
|
+
* per-administration API key — and its API host — is used for authentication.
|
|
216
|
+
* Otherwise falls back to the default `YUKI_API_KEY` on the server-wide host.
|
|
121
217
|
*
|
|
122
218
|
* Session IDs are cached per API key for the lifetime of this process.
|
|
123
219
|
* On session expiry (SOAP fault) callers should catch the error, reset
|
|
124
220
|
* the cache via invalidateSession(), and retry.
|
|
125
221
|
*/
|
|
126
222
|
async getSessionID(adminId) {
|
|
127
|
-
// Resolve which
|
|
128
|
-
const
|
|
223
|
+
// Resolve which credentials to use for this administration
|
|
224
|
+
const entry = adminId ? this.apiKeyMap.get(adminId) : undefined;
|
|
225
|
+
const apiKey = entry?.apiKey ?? this.apiKey;
|
|
226
|
+
const baseUrl = entry?.baseUrl ?? this.baseUrl;
|
|
129
227
|
if (!apiKey) {
|
|
130
228
|
throw new Error(adminId
|
|
131
229
|
? `No API key found for administration ${adminId}. ` +
|
|
@@ -136,16 +234,19 @@ export class YukiClient {
|
|
|
136
234
|
const cached = this.sessionCache.get(apiKey);
|
|
137
235
|
if (cached)
|
|
138
236
|
return cached;
|
|
237
|
+
// Authenticate has no session yet, so it is the one call that names its host
|
|
139
238
|
const result = await this.callSoap({
|
|
140
239
|
service: 'Accounting.asmx',
|
|
141
240
|
method: 'Authenticate',
|
|
142
241
|
params: { accessKey: apiKey },
|
|
242
|
+
baseUrl,
|
|
143
243
|
});
|
|
144
244
|
const sessionID = extractString(result);
|
|
145
245
|
if (!sessionID) {
|
|
146
246
|
throw new Error('Authenticate returned an empty session ID. Check your API key.');
|
|
147
247
|
}
|
|
148
248
|
this.sessionCache.set(apiKey, sessionID);
|
|
249
|
+
this.sessionHosts.set(sessionID, baseUrl);
|
|
149
250
|
return sessionID;
|
|
150
251
|
}
|
|
151
252
|
/**
|
|
@@ -156,27 +257,51 @@ export class YukiClient {
|
|
|
156
257
|
*/
|
|
157
258
|
invalidateSession(adminId) {
|
|
158
259
|
if (adminId) {
|
|
159
|
-
const apiKey = this.apiKeyMap.get(adminId) ?? this.apiKey;
|
|
260
|
+
const apiKey = this.apiKeyMap.get(adminId)?.apiKey ?? this.apiKey;
|
|
160
261
|
if (apiKey)
|
|
161
|
-
this.
|
|
262
|
+
this.evictSession(apiKey);
|
|
162
263
|
}
|
|
163
264
|
else {
|
|
164
265
|
this.sessionCache.clear();
|
|
266
|
+
this.sessionHosts.clear();
|
|
165
267
|
}
|
|
166
268
|
}
|
|
269
|
+
/** Drop the cached session for an API key together with its host binding. */
|
|
270
|
+
evictSession(apiKey) {
|
|
271
|
+
const sessionID = this.sessionCache.get(apiKey);
|
|
272
|
+
if (sessionID !== undefined)
|
|
273
|
+
this.sessionHosts.delete(sessionID);
|
|
274
|
+
this.sessionCache.delete(apiKey);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Pick the API base URL for a call: an explicit `baseUrl` on the options,
|
|
278
|
+
* else the host that issued the session ID in the params, else the
|
|
279
|
+
* server-wide default.
|
|
280
|
+
*/
|
|
281
|
+
resolveCallBaseUrl(options) {
|
|
282
|
+
if (options.baseUrl)
|
|
283
|
+
return options.baseUrl;
|
|
284
|
+
const sessionID = options.params['sessionID'] ?? options.params['sessionId'];
|
|
285
|
+
return (typeof sessionID === 'string' && this.sessionHosts.get(sessionID)) || this.baseUrl;
|
|
286
|
+
}
|
|
167
287
|
/** The default domain / administration ID from the environment. */
|
|
168
288
|
get defaultDomainId() {
|
|
169
289
|
return this.domainId;
|
|
170
290
|
}
|
|
291
|
+
/** The server-wide API base URL; keys-file entries may override it per administration. */
|
|
292
|
+
get defaultBaseUrl() {
|
|
293
|
+
return this.baseUrl;
|
|
294
|
+
}
|
|
171
295
|
/** Number of administration-specific API keys loaded from the keys file. */
|
|
172
296
|
get apiKeyCount() {
|
|
173
297
|
return this.apiKeyMap.size;
|
|
174
298
|
}
|
|
175
299
|
/**
|
|
176
|
-
* Replace the in-memory `apiKeyMap` with `next`, in place. Sessions for
|
|
177
|
-
*
|
|
178
|
-
* the next call re-authenticates against
|
|
179
|
-
*
|
|
300
|
+
* Replace the in-memory `apiKeyMap` with `next`, in place. Sessions for
|
|
301
|
+
* entries whose API key **or host changed**, or that were **removed**, are
|
|
302
|
+
* evicted from the session cache so the next call re-authenticates against
|
|
303
|
+
* Yuki with the correct credentials on the correct host. Sessions for
|
|
304
|
+
* unchanged entries are kept warm.
|
|
180
305
|
*
|
|
181
306
|
* Designed to be called from the `reload_keys` MCP tool after a fresh
|
|
182
307
|
* `api-keys.json` has been written (e.g. by a `create_api_key` flow in a
|
|
@@ -189,17 +314,17 @@ export class YukiClient {
|
|
|
189
314
|
const updated = [];
|
|
190
315
|
const removed = [];
|
|
191
316
|
// Detect updates + removals against the previous state
|
|
192
|
-
for (const [adminId,
|
|
193
|
-
const
|
|
194
|
-
if (
|
|
317
|
+
for (const [adminId, previous] of this.apiKeyMap) {
|
|
318
|
+
const entry = next.get(adminId);
|
|
319
|
+
if (entry === undefined) {
|
|
195
320
|
removed.push(adminId);
|
|
196
321
|
// Evict the cached session for the removed key
|
|
197
|
-
this.
|
|
322
|
+
this.evictSession(previous.apiKey);
|
|
198
323
|
}
|
|
199
|
-
else if (
|
|
324
|
+
else if (entry.apiKey !== previous.apiKey || entry.baseUrl !== previous.baseUrl) {
|
|
200
325
|
updated.push(adminId);
|
|
201
|
-
// Evict the session bound to the old key
|
|
202
|
-
this.
|
|
326
|
+
// Evict the session bound to the old key or host
|
|
327
|
+
this.evictSession(previous.apiKey);
|
|
203
328
|
}
|
|
204
329
|
}
|
|
205
330
|
// Detect additions
|
|
@@ -209,8 +334,8 @@ export class YukiClient {
|
|
|
209
334
|
}
|
|
210
335
|
// Apply the new state in place (preserves the Map reference)
|
|
211
336
|
this.apiKeyMap.clear();
|
|
212
|
-
for (const [adminId,
|
|
213
|
-
this.apiKeyMap.set(adminId,
|
|
337
|
+
for (const [adminId, entry] of next) {
|
|
338
|
+
this.apiKeyMap.set(adminId, entry);
|
|
214
339
|
}
|
|
215
340
|
return { added, updated, removed, total: this.apiKeyMap.size };
|
|
216
341
|
}
|
|
@@ -255,7 +380,7 @@ export class YukiClient {
|
|
|
255
380
|
*/
|
|
256
381
|
async callSoap(options) {
|
|
257
382
|
const { service, method, params } = options;
|
|
258
|
-
const url = `${
|
|
383
|
+
const url = `${this.resolveCallBaseUrl(options)}${service}`;
|
|
259
384
|
const soapBody = this.buildSoapEnvelope(method, this.serializeParams(params));
|
|
260
385
|
const soapAction = `${YUKI_NAMESPACE}${method}`;
|
|
261
386
|
let responseData;
|
|
@@ -275,7 +400,7 @@ export class YukiClient {
|
|
|
275
400
|
if (err.response?.data) {
|
|
276
401
|
const fault = this.extractSoapFault(err.response.data);
|
|
277
402
|
if (fault)
|
|
278
|
-
throw new Error(`SOAP Fault: ${fault}`);
|
|
403
|
+
throw new Error(`SOAP Fault: ${fault}${regionHint(fault, url)}`);
|
|
279
404
|
throw new Error(`HTTP ${err.response.status} ${err.response.statusText} from ${url}`);
|
|
280
405
|
}
|
|
281
406
|
throw new Error(`Network error calling Yuki API: ${err.message}`);
|
|
@@ -289,7 +414,7 @@ export class YukiClient {
|
|
|
289
414
|
}
|
|
290
415
|
if (body['Fault']) {
|
|
291
416
|
const fault = this.extractSoapFault(responseData);
|
|
292
|
-
throw new Error(`SOAP Fault: ${fault ?? 'Unknown SOAP fault'}`);
|
|
417
|
+
throw new Error(`SOAP Fault: ${fault ?? 'Unknown SOAP fault'}${regionHint(fault, url)}`);
|
|
293
418
|
}
|
|
294
419
|
// Unwrap <{method}Response><{method}Result> automatically
|
|
295
420
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"yuki-client.js","sourceRoot":"","sources":["../src/yuki-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemill-solutions/yuki-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "MCP server for the Yuki accounting SOAP API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "CodeMill Solutions B.V.",
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
"type": "module",
|
|
32
32
|
"main": "dist/index.js",
|
|
33
33
|
"types": "dist/index.d.ts",
|
|
34
|
+
"bin": {
|
|
35
|
+
"yuki-mcp": "dist/index.js"
|
|
36
|
+
},
|
|
34
37
|
"files": [
|
|
35
38
|
"dist"
|
|
36
39
|
],
|
|
@@ -47,7 +50,6 @@
|
|
|
47
50
|
"access": "public"
|
|
48
51
|
},
|
|
49
52
|
"dependencies": {
|
|
50
|
-
"@anthropic-ai/sdk": "^0.78.0",
|
|
51
53
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
52
54
|
"axios": "^1.16.1",
|
|
53
55
|
"dotenv": "^16.6.1",
|
|
@@ -55,6 +57,7 @@
|
|
|
55
57
|
"zod": "^3.25.76"
|
|
56
58
|
},
|
|
57
59
|
"devDependencies": {
|
|
60
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
58
61
|
"@types/node": "^22.19.19",
|
|
59
62
|
"prettier": "^3.8.3",
|
|
60
63
|
"tsx": "^4.22.3",
|