@plurnk/plurnk-mcp 1.7.0 → 1.9.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/.env.defaults +25 -0
- package/README.md +85 -27
- package/SPEC.md +317 -69
- package/dist/McpExecutor.d.ts +28 -3
- package/dist/McpExecutor.d.ts.map +1 -1
- package/dist/McpExecutor.js +50 -6
- package/dist/McpExecutor.js.map +1 -1
- package/dist/Module.d.ts +68 -11
- package/dist/Module.d.ts.map +1 -1
- package/dist/Module.js +393 -482
- package/dist/Module.js.map +1 -1
- package/dist/ToolPresentation.d.ts +3 -1
- package/dist/ToolPresentation.d.ts.map +1 -1
- package/dist/ToolPresentation.js +145 -55
- package/dist/ToolPresentation.js.map +1 -1
- package/dist/capabilityMatrix.d.ts +23 -0
- package/dist/capabilityMatrix.d.ts.map +1 -0
- package/dist/capabilityMatrix.js +403 -0
- package/dist/capabilityMatrix.js.map +1 -0
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +105 -43
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +8 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +169 -32
- package/dist/config.js.map +1 -1
- package/dist/extensionChannel.d.ts.map +1 -1
- package/dist/extensionChannel.js +18 -4
- package/dist/extensionChannel.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-watchdog.mjs +106 -0
- package/dist/protocol.d.ts +1 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -0
- package/dist/protocol.js.map +1 -1
- package/package.json +6 -5
package/dist/McpExecutor.js
CHANGED
|
@@ -1,15 +1,51 @@
|
|
|
1
1
|
import { BaseExecutor, ErrorDetail, ERROR_DETAIL_LIMIT, renderJsonResult, Results, RuntimeInvocation, } from "@plurnk/plurnk-execs";
|
|
2
2
|
import { toolRegistry as presentTools } from "./ToolPresentation.js";
|
|
3
3
|
const CHANNEL = "body";
|
|
4
|
-
|
|
4
|
+
const firstSentence = (text) => {
|
|
5
|
+
if (text === undefined)
|
|
6
|
+
return undefined;
|
|
7
|
+
const normalized = text.replaceAll(/\s+/gu, " ").trim();
|
|
8
|
+
if (normalized === "")
|
|
9
|
+
return undefined;
|
|
10
|
+
const boundary = /[.!?](?:\s|$)/u.exec(normalized);
|
|
11
|
+
return boundary === null ? normalized : normalized.slice(0, boundary.index + 1);
|
|
12
|
+
};
|
|
13
|
+
// {§mcp-summary-derivation} — one server one-liner: the authored _SUMMARY
|
|
14
|
+
// companion, then the server's own description and display title (spec
|
|
15
|
+
// metadata — a title like "Chrome DevTools MCP server" IS the one-liner), then
|
|
16
|
+
// the first sentence of its instructions essay. Never the container template;
|
|
17
|
+
// when the chain is empty, name the actual tools.
|
|
18
|
+
export const serverSummary = (name, catalog, override) => {
|
|
19
|
+
if (override !== undefined && override.trim() !== "")
|
|
20
|
+
return override.trim();
|
|
21
|
+
const described = catalog?.server?.description;
|
|
22
|
+
if (described !== undefined && described.trim() !== "")
|
|
23
|
+
return described.replaceAll(/\s+/gu, " ").trim();
|
|
24
|
+
const titled = catalog?.server?.title;
|
|
25
|
+
if (titled !== undefined && titled.trim() !== "")
|
|
26
|
+
return titled.replaceAll(/\s+/gu, " ").trim();
|
|
27
|
+
const instructed = firstSentence(catalog?.instructions);
|
|
28
|
+
if (instructed !== undefined)
|
|
29
|
+
return instructed;
|
|
30
|
+
const tools = catalog?.tools.map((tool) => tool.name).join(", ");
|
|
31
|
+
return tools === undefined || tools === ""
|
|
32
|
+
? `MCP server ${name}.`
|
|
33
|
+
: `Tools: ${tools}.`;
|
|
34
|
+
};
|
|
35
|
+
export const runtimeDecl = (name, summary, expandTools) => ({
|
|
5
36
|
name,
|
|
6
37
|
glyph: "🔌",
|
|
38
|
+
summary,
|
|
39
|
+
// {§tools-resource-materialization} — MCP families live in the tools
|
|
40
|
+
// namespace; the turn-0 survey lists the family document, and expandTools
|
|
41
|
+
// (PLURNK_MCP_EXPANDED) adds the complete tool tree.
|
|
42
|
+
resourcesPath: "/tools",
|
|
43
|
+
...(expandTools ? { expandTools: true } : {}),
|
|
7
44
|
invocation: {
|
|
8
45
|
body: { role: "JSON arguments", required: false },
|
|
9
46
|
target: { role: "MCP tool", required: true, kind: "literal" },
|
|
10
47
|
example: { target: "tool_name" },
|
|
11
48
|
},
|
|
12
|
-
documentation: "",
|
|
13
49
|
});
|
|
14
50
|
const message = (error) => error instanceof Error ? error.message : String(error);
|
|
15
51
|
const progressNotice = (runtime, tool, progress) => ({
|
|
@@ -28,12 +64,16 @@ export default class McpExecutor extends BaseExecutor {
|
|
|
28
64
|
#tools;
|
|
29
65
|
#read;
|
|
30
66
|
#registry = null;
|
|
67
|
+
#toolSummaries;
|
|
68
|
+
#retainWorkspace;
|
|
31
69
|
#catalog = null;
|
|
32
|
-
constructor(metadata, connection, policy = {}) {
|
|
70
|
+
constructor(metadata, connection, retainWorkspace, policy = {}, toolSummaries) {
|
|
33
71
|
super(metadata);
|
|
34
72
|
this.#connection = connection;
|
|
35
73
|
this.#tools = policy.tools ?? null;
|
|
36
74
|
this.#read = new Set(policy.read ?? []);
|
|
75
|
+
this.#toolSummaries = toolSummaries ?? new Map();
|
|
76
|
+
this.#retainWorkspace = retainWorkspace;
|
|
37
77
|
}
|
|
38
78
|
get manifest() {
|
|
39
79
|
return {
|
|
@@ -118,7 +158,7 @@ export default class McpExecutor extends BaseExecutor {
|
|
|
118
158
|
}
|
|
119
159
|
const catalog = await this.#connection.catalog(signal);
|
|
120
160
|
const selected = this.#selectTools(catalog.tools);
|
|
121
|
-
this.#registry = RuntimeInvocation.assertToolRegistry(presentTools(this.runtime, selected), "@plurnk/plurnk-mcp", this.runtime);
|
|
161
|
+
this.#registry = RuntimeInvocation.assertToolRegistry(presentTools(this.runtime, selected, this.#toolSummaries), "@plurnk/plurnk-mcp", this.runtime);
|
|
122
162
|
this.#catalog = catalog;
|
|
123
163
|
return {
|
|
124
164
|
available: true,
|
|
@@ -147,14 +187,14 @@ export default class McpExecutor extends BaseExecutor {
|
|
|
147
187
|
const input = body.trim();
|
|
148
188
|
if (target === null || target.length === 0) {
|
|
149
189
|
return fail("tool-required", 400, `MCP executor '${runtime}' requires a tool target.`, {
|
|
150
|
-
recovery:
|
|
190
|
+
recovery: `Select a target documented under worker://~/_plurnk/tools/${runtime}/.`,
|
|
151
191
|
retryable: false,
|
|
152
192
|
});
|
|
153
193
|
}
|
|
154
194
|
if (!this.#enabledTargets().has(target)) {
|
|
155
195
|
return fail("tool-not-enabled", 404, `MCP tool '${target}' is not enabled on '${runtime}'.`, {
|
|
156
196
|
tool: target,
|
|
157
|
-
recovery:
|
|
197
|
+
recovery: `Select a target documented under worker://~/_plurnk/tools/${runtime}/.`,
|
|
158
198
|
retryable: false,
|
|
159
199
|
});
|
|
160
200
|
}
|
|
@@ -175,6 +215,7 @@ export default class McpExecutor extends BaseExecutor {
|
|
|
175
215
|
});
|
|
176
216
|
}
|
|
177
217
|
}
|
|
218
|
+
const releaseWorkspace = this.#retainWorkspace();
|
|
178
219
|
try {
|
|
179
220
|
const tool = this.#catalog?.tools.find((candidate) => candidate.name === target);
|
|
180
221
|
if (tool === undefined) {
|
|
@@ -199,6 +240,9 @@ export default class McpExecutor extends BaseExecutor {
|
|
|
199
240
|
retryable: !signal.aborted,
|
|
200
241
|
});
|
|
201
242
|
}
|
|
243
|
+
finally {
|
|
244
|
+
releaseWorkspace();
|
|
245
|
+
}
|
|
202
246
|
}
|
|
203
247
|
}
|
|
204
248
|
//# sourceMappingURL=McpExecutor.js.map
|
package/dist/McpExecutor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpExecutor.js","sourceRoot":"","sources":["../src/McpExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,iBAAiB,GACpB,MAAM,sBAAsB,CAAC;AAc9B,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"McpExecutor.js","sourceRoot":"","sources":["../src/McpExecutor.ts"],"names":[],"mappings":"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"}
|
package/dist/Module.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RuntimeAvailability, RuntimeDecl } from "@plurnk/plurnk-execs";
|
|
2
2
|
import type { FindStatement, RepresentationPreparationRequest, RepresentationPreparationResult, SchemeCtx, SchemeResult } from "@plurnk/plurnk-schemes";
|
|
3
|
+
import { type FunctionalityCandidate, type FunctionalityDiscoverQuery, type JsonSchema, type ProblemDetails } from "@plurnk/plurnk-contracts";
|
|
3
4
|
import McpExecutor from "./McpExecutor.ts";
|
|
4
5
|
interface RuntimeSchemeFacet {
|
|
5
6
|
claims(pathname: string): boolean;
|
|
@@ -18,23 +19,79 @@ type ModuleActionContext = {
|
|
|
18
19
|
} | {
|
|
19
20
|
readonly scope: "workspace";
|
|
20
21
|
readonly workspaceId: number;
|
|
22
|
+
} | {
|
|
23
|
+
readonly scope: "worker";
|
|
24
|
+
readonly workspaceId: number;
|
|
25
|
+
readonly workerId: number;
|
|
26
|
+
};
|
|
27
|
+
interface WorkerIdentity {
|
|
28
|
+
readonly workspaceId: number;
|
|
29
|
+
readonly workerId: number;
|
|
30
|
+
}
|
|
31
|
+
type Outcome = {
|
|
32
|
+
readonly state: "active";
|
|
33
|
+
readonly detail?: object;
|
|
34
|
+
} | {
|
|
35
|
+
readonly state: "unavailable";
|
|
36
|
+
readonly problem: ProblemDetails;
|
|
37
|
+
} | {
|
|
38
|
+
readonly state: "authorization-required";
|
|
39
|
+
readonly authorization: {
|
|
40
|
+
readonly url: string;
|
|
41
|
+
};
|
|
21
42
|
};
|
|
43
|
+
interface Preparation extends WorkerIdentity {
|
|
44
|
+
readonly enabled: ReadonlyMap<string, object>;
|
|
45
|
+
readonly previous: unknown | null;
|
|
46
|
+
readonly failure: "publish-unavailable" | "reject";
|
|
47
|
+
readonly force?: string;
|
|
48
|
+
retain(): () => void;
|
|
49
|
+
}
|
|
50
|
+
interface Prepared {
|
|
51
|
+
readonly runtimes: readonly RuntimeRegistration[];
|
|
52
|
+
readonly documents: readonly {
|
|
53
|
+
readonly pathname: string;
|
|
54
|
+
readonly content: string;
|
|
55
|
+
}[];
|
|
56
|
+
readonly outcomes: ReadonlyMap<string, Outcome>;
|
|
57
|
+
readonly snapshot: unknown;
|
|
58
|
+
commit(): Promise<void>;
|
|
59
|
+
abort(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
interface FunctionalityAdapter {
|
|
62
|
+
readonly family: string;
|
|
63
|
+
readonly namespaceOwner: string;
|
|
64
|
+
readonly summary: string;
|
|
65
|
+
readonly definitionSchema: JsonSchema;
|
|
66
|
+
available(identity: WorkerIdentity): Promise<readonly {
|
|
67
|
+
alias: string;
|
|
68
|
+
definition: object;
|
|
69
|
+
enabled: boolean;
|
|
70
|
+
}[]>;
|
|
71
|
+
discover(query: FunctionalityDiscoverQuery, identity: WorkerIdentity): Promise<readonly FunctionalityCandidate[]>;
|
|
72
|
+
admit(input: unknown, identity: WorkerIdentity): Promise<{
|
|
73
|
+
alias: string;
|
|
74
|
+
definition: object;
|
|
75
|
+
}>;
|
|
76
|
+
prepare(preparation: Preparation): Promise<Prepared>;
|
|
77
|
+
teardown(snapshot: unknown, identity: WorkerIdentity): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
interface FunctionalityFamilyHandle {
|
|
80
|
+
invoke(verb: "list" | "discover" | "add" | "enable" | "disable" | "remove", params: unknown, identity: WorkerIdentity): Promise<{
|
|
81
|
+
readonly status: number;
|
|
82
|
+
readonly body: unknown;
|
|
83
|
+
}>;
|
|
84
|
+
refresh(identity: WorkerIdentity): Promise<void>;
|
|
85
|
+
}
|
|
22
86
|
interface ModuleSetupSeam {
|
|
23
87
|
registerModuleAction(registration: {
|
|
24
88
|
readonly name: string;
|
|
25
|
-
readonly scope: "worldless" | "workspace";
|
|
89
|
+
readonly scope: "worldless" | "workspace" | "worker";
|
|
90
|
+
readonly inputSchema: JsonSchema;
|
|
91
|
+
readonly outputSchema: JsonSchema;
|
|
26
92
|
readonly handler: (params: Readonly<Record<string, unknown>>, context: ModuleActionContext) => unknown | Promise<unknown>;
|
|
27
93
|
}): void;
|
|
28
|
-
|
|
29
|
-
hydrate(workspaceId: number): void | Promise<void>;
|
|
30
|
-
}): void;
|
|
31
|
-
readWorkspaceModuleState(workspaceId: number, namespaceOwner: string): Promise<unknown | null>;
|
|
32
|
-
replaceWorkspaceCapabilities(replacement: {
|
|
33
|
-
readonly workspaceId: number;
|
|
34
|
-
readonly namespaceOwner: string;
|
|
35
|
-
readonly state: unknown | null;
|
|
36
|
-
readonly runtimes: readonly RuntimeRegistration[];
|
|
37
|
-
}): Promise<void>;
|
|
94
|
+
registerFunctionalityAdapter(adapter: FunctionalityAdapter): FunctionalityFamilyHandle;
|
|
38
95
|
}
|
|
39
96
|
export interface ModuleOptions {
|
|
40
97
|
readonly env?: NodeJS.ProcessEnv;
|
package/dist/Module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"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"}
|