@respira/wordpress-mcp-server 8.0.6 → 8.1.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/dist/__tests__/tools-list-protocol-smoke.test.js +21 -6
- package/dist/__tests__/tools-list-protocol-smoke.test.js.map +1 -1
- package/dist/acf-tools.d.ts +1 -1
- package/dist/acf-tools.d.ts.map +1 -1
- package/dist/bricks-tools.d.ts +1 -1
- package/dist/bricks-tools.d.ts.map +1 -1
- package/dist/elementor-tools.d.ts +1 -1
- package/dist/elementor-tools.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +12 -7
- package/dist/server.js.map +1 -1
- package/dist/wordpress-client.js +1 -1
- package/dist/wordpress-client.js.map +1 -1
- package/package.json +6 -5
|
@@ -2,9 +2,9 @@ import assert from 'node:assert/strict';
|
|
|
2
2
|
import { test } from 'node:test';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
4
|
import { createServer } from 'node:http';
|
|
5
|
-
import { Client } from '@modelcontextprotocol/
|
|
6
|
-
import { StdioClientTransport } from '@modelcontextprotocol/
|
|
7
|
-
test('packaged stdio server
|
|
5
|
+
import { Client } from '@modelcontextprotocol/client';
|
|
6
|
+
import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';
|
|
7
|
+
test('packaged stdio server negotiates MCP 2026-07-28 and enumerates the release tool catalog', { timeout: 20_000 }, async () => {
|
|
8
8
|
const wordpress = createServer((_request, response) => {
|
|
9
9
|
response.writeHead(200, { 'content-type': 'application/json' });
|
|
10
10
|
response.end(JSON.stringify({
|
|
@@ -35,7 +35,7 @@ test('packaged stdio server initializes and enumerates the release tool catalog'
|
|
|
35
35
|
}],
|
|
36
36
|
preferences: { autoDuplicate: true, securityChecks: true },
|
|
37
37
|
})).toString('base64');
|
|
38
|
-
const
|
|
38
|
+
const transportOptions = {
|
|
39
39
|
command: process.execPath,
|
|
40
40
|
args: [resolve(process.cwd(), 'dist/index.js')],
|
|
41
41
|
cwd: process.cwd(),
|
|
@@ -46,10 +46,14 @@ test('packaged stdio server initializes and enumerates the release tool catalog'
|
|
|
46
46
|
RESPIRA_USAGE_OPT_OUT: '1',
|
|
47
47
|
NODE_ENV: 'test',
|
|
48
48
|
},
|
|
49
|
-
}
|
|
50
|
-
const
|
|
49
|
+
};
|
|
50
|
+
const transport = new StdioClientTransport(transportOptions);
|
|
51
|
+
const client = new Client({ name: 'respira-release-smoke', version: '1.0.0' }, { versionNegotiation: { mode: { pin: '2026-07-28' } } });
|
|
51
52
|
try {
|
|
52
53
|
await client.connect(transport);
|
|
54
|
+
assert.equal(client.getProtocolEra(), 'modern');
|
|
55
|
+
assert.equal(client.getNegotiatedProtocolVersion(), '2026-07-28');
|
|
56
|
+
assert.ok(client.getDiscoverResult(), 'server/discover must return a modern discovery result');
|
|
53
57
|
const response = await client.listTools();
|
|
54
58
|
const names = new Set(response.tools.map((tool) => tool.name));
|
|
55
59
|
assert.ok(response.tools.length >= 250, `expected the full fail-open catalog, got ${response.tools.length}`);
|
|
@@ -69,6 +73,17 @@ test('packaged stdio server initializes and enumerates the release tool catalog'
|
|
|
69
73
|
]) {
|
|
70
74
|
assert.ok(names.has(required), `${required} must be advertised by the live MCP protocol`);
|
|
71
75
|
}
|
|
76
|
+
await client.close();
|
|
77
|
+
const legacyClient = new Client({ name: 'respira-legacy-release-smoke', version: '1.0.0' });
|
|
78
|
+
try {
|
|
79
|
+
await legacyClient.connect(new StdioClientTransport(transportOptions));
|
|
80
|
+
assert.equal(legacyClient.getProtocolEra(), 'legacy');
|
|
81
|
+
const legacyResponse = await legacyClient.listTools();
|
|
82
|
+
assert.equal(legacyResponse.tools.length, response.tools.length, 'legacy and modern clients must receive the same release tool catalog');
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
await legacyClient.close();
|
|
86
|
+
}
|
|
72
87
|
}
|
|
73
88
|
finally {
|
|
74
89
|
await client.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-list-protocol-smoke.test.js","sourceRoot":"","sources":["../../src/__tests__/tools-list-protocol-smoke.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tools-list-protocol-smoke.test.js","sourceRoot":"","sources":["../../src/__tests__/tools-list-protocol-smoke.test.ts"],"names":[],"mappings":"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"}
|
package/dist/acf-tools.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @since 6.6.0
|
|
10
10
|
*/
|
|
11
|
-
import type { Tool } from '@modelcontextprotocol/
|
|
11
|
+
import type { Tool } from '@modelcontextprotocol/server';
|
|
12
12
|
/**
|
|
13
13
|
* Full ACF tool catalog. Imported by server.ts and pushed into getTools()
|
|
14
14
|
* when isAcfAvailable() is true.
|
package/dist/acf-tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acf-tools.d.ts","sourceRoot":"","sources":["../src/acf-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"acf-tools.d.ts","sourceRoot":"","sources":["../src/acf-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CA8qBpC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,aAuDzB,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D"}
|
package/dist/bricks-tools.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bricks-tools.d.ts","sourceRoot":"","sources":["../src/bricks-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"bricks-tools.d.ts","sourceRoot":"","sources":["../src/bricks-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,EAAE,CAievC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,GAAG,CAAC,CAyHd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementor-tools.d.ts","sourceRoot":"","sources":["../src/elementor-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"elementor-tools.d.ts","sourceRoot":"","sources":["../src/elementor-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,EAAE,CA4P1C;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GACrE,OAAO,CAAC,GAAG,CAAC,CA+Cd"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAsQzE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,8EAA8E;IAC9E,OAAO,CAAC,YAAY,CAA4B;IAChD,8EAA8E;IAC9E,OAAO,CAAC,mBAAmB,CAAS;IACpC,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAK;IAC9B,iFAAiF;IACjF,OAAO,CAAC,mBAAmB,CAAgC;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAEhE;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;gBA4Bb,WAAW,EAAE,mBAAmB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IAiVvE,OAAO,CAAC,cAAc;IAItB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IA4BrB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAUrB;;;;;;OAMG;YACW,UAAU;IA2CxB;;;;;;;;;;;;;;OAcG;YACW,WAAW;IAiJzB;;;;;;;;;OASG;YACW,kBAAkB;IA6KhC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,qBAAqB;YAiBrB,kBAAkB;IA6FhC,yFAAyF;IACzF,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,6BAA6B;IA0BrC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,aAAa;YAmQP,kBAAkB;YA6BlB,yBAAyB;IASvC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;YAyBd,QAAQ;IA+xGtB;;;;;;OAMG;IACH;;;;;;;;;;;;;oDAagD;IAChD,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAC1D;;mDAE+C;IAC/C,OAAO,CAAC,0BAA0B,CAAoC;IAEtE;;;;;;;;OAQG;YACW,0BAA0B;YAyC1B,oBAAoB;YA6CpB,2BAA2B;IAQzC;;;;OAIG;YACW,cAAc;IAQ5B,OAAO,CAAC,mBAAmB;IAo7C3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAe3C;IAEF;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;YAmCpB,cAAc;IA4G5B,oEAAoE;IACpE,OAAO,CAAC,iBAAiB;IAoBzB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,eAAe;YAuCT,gBAAgB;IA+0C9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkZzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA6UxB,GAAG;CA+CV"}
|
package/dist/server.js
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides tools for AI coding assistants to interact with WordPress sites
|
|
5
5
|
*/
|
|
6
|
-
import { Server } from '@modelcontextprotocol/
|
|
7
|
-
import {
|
|
8
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import { Server } from '@modelcontextprotocol/server';
|
|
7
|
+
import { serveStdio } from '@modelcontextprotocol/server/stdio';
|
|
9
8
|
import { execSync } from 'child_process';
|
|
10
9
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
11
10
|
import { homedir } from 'os';
|
|
@@ -1345,13 +1344,13 @@ Allowlist: css, scss, less, json. PHP / JS theme writes are intentionally out of
|
|
|
1345
1344
|
}
|
|
1346
1345
|
setupHandlers() {
|
|
1347
1346
|
// List available tools
|
|
1348
|
-
this.server.setRequestHandler(
|
|
1347
|
+
this.server.setRequestHandler('tools/list', async () => {
|
|
1349
1348
|
return {
|
|
1350
1349
|
tools: await this.getTools(),
|
|
1351
1350
|
};
|
|
1352
1351
|
});
|
|
1353
1352
|
// Handle tool calls
|
|
1354
|
-
this.server.setRequestHandler(
|
|
1353
|
+
this.server.setRequestHandler('tools/call', async (request) => {
|
|
1355
1354
|
const { name, arguments: args } = request.params;
|
|
1356
1355
|
// respira_redeem_token must work even before any site is configured —
|
|
1357
1356
|
// it's the bootstrap path that puts the first sites into the config.
|
|
@@ -8546,8 +8545,14 @@ Allowlist: css, scss, less, json. PHP / JS theme writes are intentionally out of
|
|
|
8546
8545
|
}));
|
|
8547
8546
|
}
|
|
8548
8547
|
async run() {
|
|
8549
|
-
|
|
8550
|
-
|
|
8548
|
+
// SDK 2's stdio serving entry owns the opening exchange. It selects
|
|
8549
|
+
// server/discover for MCP 2026-07-28 clients and the legacy initialize
|
|
8550
|
+
// handshake for older clients, then pins this configured server instance
|
|
8551
|
+
// to the connection.
|
|
8552
|
+
serveStdio(() => this.server, {
|
|
8553
|
+
legacy: 'serve',
|
|
8554
|
+
onerror: (error) => console.error('[respira-mcp] protocol error:', error.message),
|
|
8555
|
+
});
|
|
8551
8556
|
// v6.17: one-line bootstrap log so the customer can see whether this MCP
|
|
8552
8557
|
// came back after a Claude restart. Pre-v6.17 the only stderr line was
|
|
8553
8558
|
// "Respira WordPress MCP Server running on stdio" which didn't tell you
|