@plurnk/plurnk-mcp 3.2.1 → 3.3.1

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.
Files changed (53) hide show
  1. package/README.md +30 -15
  2. package/SPEC.md +193 -97
  3. package/dist/McpExecutor.d.ts +10 -1
  4. package/dist/McpExecutor.d.ts.map +1 -1
  5. package/dist/McpExecutor.js +45 -11
  6. package/dist/McpExecutor.js.map +1 -1
  7. package/dist/McpResources.d.ts +2 -1
  8. package/dist/McpResources.d.ts.map +1 -1
  9. package/dist/McpResources.js +7 -3
  10. package/dist/McpResources.js.map +1 -1
  11. package/dist/Module.d.ts.map +1 -1
  12. package/dist/Module.js +142 -43
  13. package/dist/Module.js.map +1 -1
  14. package/dist/PluginConfiguration.d.ts +8 -10
  15. package/dist/PluginConfiguration.d.ts.map +1 -1
  16. package/dist/PluginConfiguration.js +4 -4
  17. package/dist/PluginConfiguration.js.map +1 -1
  18. package/dist/capabilityMatrix.d.ts.map +1 -1
  19. package/dist/capabilityMatrix.js +1 -0
  20. package/dist/capabilityMatrix.js.map +1 -1
  21. package/dist/client.d.ts +7 -0
  22. package/dist/client.d.ts.map +1 -1
  23. package/dist/client.js +180 -83
  24. package/dist/client.js.map +1 -1
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +2 -2
  27. package/dist/config.js.map +1 -1
  28. package/dist/definition.js.map +1 -1
  29. package/dist/extensionChannel.d.ts.map +1 -1
  30. package/dist/extensionChannel.js +2 -3
  31. package/dist/extensionChannel.js.map +1 -1
  32. package/dist/inputRequired.d.ts.map +1 -1
  33. package/dist/inputRequired.js +11 -4
  34. package/dist/inputRequired.js.map +1 -1
  35. package/dist/oauth.d.ts +28 -4
  36. package/dist/oauth.d.ts.map +1 -1
  37. package/dist/oauth.js +83 -36
  38. package/dist/oauth.js.map +1 -1
  39. package/dist/protocol.d.ts +1 -1
  40. package/dist/protocol.js +1 -1
  41. package/dist/protocolHeaders.d.ts.map +1 -1
  42. package/dist/protocolHeaders.js +3 -2
  43. package/dist/protocolHeaders.js.map +1 -1
  44. package/dist/registry.d.ts.map +1 -1
  45. package/dist/registry.js +8 -3
  46. package/dist/registry.js.map +1 -1
  47. package/dist/subscriptions.js.map +1 -1
  48. package/dist/tasks.d.ts +2 -2
  49. package/dist/tasks.d.ts.map +1 -1
  50. package/dist/tasks.js +23 -26
  51. package/dist/tasks.js.map +1 -1
  52. package/docs/mcp.md +9 -9
  53. package/package.json +9 -8
package/dist/Module.js CHANGED
@@ -7,12 +7,13 @@ import { fileURLToPath } from "node:url";
7
7
  import { readDefinition } from "./definition.js";
8
8
  import { isDeepStrictEqual } from "node:util";
9
9
  import { SdkHttpError, UnauthorizedError } from "@modelcontextprotocol/client";
10
+ import { CompleteRequestParamsSchema } from "@modelcontextprotocol/core";
11
+ import { Problems, Validator, isRecord } from "@plurnk/plurnk-contracts";
10
12
  import { ConfigurationError } from "@plurnk/plurnk-meta";
11
- import { Problems, } from "@plurnk/plurnk-contracts";
12
- import ServerConnection, { AuthorizationRequiredError, isClientCredentialsRejection, McpRedirectError, } from "./client.js";
13
+ import ServerConnection, { AuthorizationRequiredError, awaitsSignIn, causeOf, isClientCredentialsRejection, McpRedirectError, } from "./client.js";
13
14
  import { configuredDefinitions, connectTimeoutMs, expandedServerNames, retryDelayMs, retryPacing, registrySettings, serverSettings, } from "./config.js";
14
15
  import { RegistryError, registryEntries, searchRegistry } from "./registry.js";
15
- import McpExecutor, { runtimeDecl, runtimeServerSummary } from "./McpExecutor.js";
16
+ import McpExecutor, { UnavailableServerExecutor, runtimeDecl, runtimeServerSummary } from "./McpExecutor.js";
16
17
  import McpResources from "./McpResources.js";
17
18
  import { OAuthSetupError } from "./oauth.js";
18
19
  const OWNER = "@plurnk/plurnk-mcp";
@@ -27,6 +28,20 @@ const actionInput = (properties, required = []) => ({
27
28
  ...(required.length === 0 ? {} : { required: [...required] }),
28
29
  });
29
30
  const attachmentConnection = (attachment) => attachment.kind === "unavailable" ? undefined : attachment.connection;
31
+ // {§mcp-unavailable-runtime} An enabled server that cannot run still answers to its alias: a call to it is refused with
32
+ // the state that keeps it from running, never as a name nothing registered.
33
+ const unavailableRuntime = (attachment) => {
34
+ const { name } = attachment.definition;
35
+ const detail = attachment.kind === "authorization-required"
36
+ ? "it awaits the operator's sign-in"
37
+ : typeof attachment.problem.diagnostic === "string" ? attachment.problem.diagnostic : attachment.problem.detail;
38
+ return {
39
+ namespaceOwner: OWNER,
40
+ decl: runtimeDecl(name, runtimeServerSummary(name, undefined), false),
41
+ executor: new UnavailableServerExecutor(name, detail),
42
+ availability: { available: false, detail },
43
+ };
44
+ };
30
45
  class ModuleActionError extends Error {
31
46
  problem;
32
47
  constructor(problem, cause) {
@@ -40,27 +55,13 @@ const actionError = (code, status, detail, extensions = {}, cause) => new Module
40
55
  ...extensions,
41
56
  }), cause);
42
57
  const errorsOf = (error) => error instanceof AggregateError ? [...error.errors] : [error];
43
- // The first error of a type anywhere in a cause chain, aggregates included.
44
- const causeOf = (error, type, seen = new Set()) => {
45
- if (error === null || typeof error !== "object" || seen.has(error))
46
- return undefined;
47
- seen.add(error);
48
- if (error instanceof type)
49
- return error;
50
- for (const inner of error instanceof AggregateError ? error.errors : []) {
51
- const found = causeOf(inner, type, seen);
52
- if (found !== undefined)
53
- return found;
54
- }
55
- return causeOf(error.cause, type, seen);
56
- };
57
58
  const preparationError = (definition, authorization, cause, closeCause, observation = {}) => {
58
59
  const completeCause = closeCause === undefined
59
60
  ? cause
60
61
  : new AggregateError([cause, closeCause], `MCP server '${definition.name}' preparation and cleanup failed.`);
61
62
  const setup = causeOf(cause, OAuthSetupError);
62
63
  if (setup !== undefined)
63
- return actionError(setup.code, 502, setup.message, { server: definition.name, retryable: false }, completeCause);
64
+ return actionError(setup.code, 502, setup.message, { server: definition.name, ...(setup.recovery === undefined ? {} : { recovery: setup.recovery }), retryable: false }, completeCause);
64
65
  // {§oauth-client-credentials} — a rejected grant is an authorization fact,
65
66
  // never a generic unavailability.
66
67
  if (authorization?.type === "client-credentials" && isClientCredentialsRejection(cause)) {
@@ -99,9 +100,7 @@ export const closeConnections = async (connections) => {
99
100
  throw new AggregateError(errors, "MCP connection shutdown failed");
100
101
  }
101
102
  };
102
- const objectOf = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
103
- ? value
104
- : null;
103
+ const objectOf = (value) => isRecord(value) ? value : null;
105
104
  const assertActionKeys = (params, allowed) => {
106
105
  const extras = Object.keys(params).filter((key) => !allowed.includes(key));
107
106
  if (extras.length > 0) {
@@ -121,6 +120,18 @@ const workspaceIdentityOf = (context) => {
121
120
  return { workspaceId: context.workspaceId };
122
121
  };
123
122
  const sameBinding = (left, right) => isDeepStrictEqual([left.definition, left.context], [right.definition, right.context]);
123
+ // The coordinator hands this module its own admitted definitions back as the contract's objects: the
124
+ // definition is read through its schema, the plugin context through the two paths it names.
125
+ const isPluginContext = (value) => "root" in value && typeof value.root === "string" && "data" in value && typeof value.data === "string";
126
+ const pluginContextOf = (value) => {
127
+ if (!isPluginContext(value))
128
+ throw new TypeError("An MCP binding's plugin context names its root and data paths.");
129
+ return value;
130
+ };
131
+ const bindingOf = (value) => ({
132
+ definition: Validator.assertMcpServerDefinition(value.definition),
133
+ ...(value.context === undefined ? {} : { context: pluginContextOf(value.context) }),
134
+ });
124
135
  const statusOf = (error) => {
125
136
  if (typeof error !== "object" || error === null)
126
137
  return null;
@@ -128,8 +139,9 @@ const statusOf = (error) => {
128
139
  ?? error.result?.problem;
129
140
  return typeof problem?.status === "number" ? problem.status : null;
130
141
  };
131
- const catalogDetail = (executor) => {
132
- const catalog = executor.catalog;
142
+ // An active alias's detail: its server's catalog, and the summary of a grant its connection presents ({§oauth-grant}).
143
+ const activeDetail = ({ executor: { catalog }, connection }) => {
144
+ const grant = connection.oauthGrant?.summary;
133
145
  return {
134
146
  protocolVersion: catalog.protocolVersion,
135
147
  server: catalog.server ?? null,
@@ -138,6 +150,7 @@ const catalogDetail = (executor) => {
138
150
  resources: catalog.resources.length,
139
151
  resourceTemplates: catalog.resourceTemplates.length,
140
152
  prompts: catalog.prompts.length,
153
+ ...(grant === undefined ? {} : { grant }),
141
154
  };
142
155
  };
143
156
  export default class Module {
@@ -160,6 +173,11 @@ export default class Module {
160
173
  #pending = new Map();
161
174
  #authorizing = new Set();
162
175
  #dirty = new Map();
176
+ // {§mcp-request-unauthorized} The aliases whose server refused a call for want of a sign-in, by pending key.
177
+ #challenged = new Set();
178
+ // {§oauth-grant} Each alias's accepted sign-in, by pending key, with the definition it was accepted for; cooling
179
+ // keeps it.
180
+ #grants = new Map();
163
181
  #connections = new Set();
164
182
  #refreshTimers = new Map();
165
183
  #retainWorkspace = new Map();
@@ -355,8 +373,10 @@ export default class Module {
355
373
  ? await this.#stateDirectory(workspaceId, `${OWNER}/${definition.name}`) : undefined;
356
374
  signal?.throwIfAborted();
357
375
  this.#assertOpen();
376
+ const grant = oauthRedirectUrl === undefined ? this.#grantFor(workspaceId, binding) : undefined;
358
377
  candidate ??= new ServerConnection(definition, environment(this.#env), {
359
378
  ...(oauthRedirectUrl === undefined ? {} : { oauthRedirectUrl }),
379
+ ...(grant === undefined ? {} : { oauthGrant: grant }),
360
380
  ...(cwd === undefined ? {} : { cwd }),
361
381
  ...(context === undefined ? {} : { plugin: context }),
362
382
  environment: environment(this.#operatorEnvironment()),
@@ -373,6 +393,14 @@ export default class Module {
373
393
  onInfrastructureError: (error) => {
374
394
  console.error(`MCP server '${definition.name}' infrastructure failure:`, error);
375
395
  },
396
+ onAuthorizationRequired: () => {
397
+ const key = this.#pendingKey(workspaceId, definition.name);
398
+ if (this.#closed || this.#challenged.has(key))
399
+ return;
400
+ this.#challenged.add(key);
401
+ this.#dirty.set(key, Symbol());
402
+ this.#scheduleCatalogRefresh(workspaceId, definition.name);
403
+ },
376
404
  });
377
405
  this.#connections.add(candidate);
378
406
  const executor = new McpExecutor({ runtime: definition.name, glyph: "🔌" }, candidate, () => this.#retain(workspaceId), { tools: settings.tools });
@@ -437,7 +465,8 @@ export default class Module {
437
465
  this.#retainWorkspace.set(workspaceId, preparation.retain);
438
466
  const previous = preparation.previous ?? new Map();
439
467
  for (const [name, attachment] of previous) {
440
- const nextDefinition = enabled.get(name);
468
+ const next = enabled.get(name);
469
+ const nextDefinition = next === undefined ? undefined : bindingOf(next);
441
470
  if (nextDefinition === undefined || force === name || !sameBinding(attachment, nextDefinition)) {
442
471
  const activeRequests = attachmentConnection(attachment)?.activeRequests ?? 0;
443
472
  if (activeRequests > 0)
@@ -449,21 +478,28 @@ export default class Module {
449
478
  const fresh = [];
450
479
  const consumedPending = new Map();
451
480
  const refreshed = new Map();
481
+ // {§mcp-request-unauthorized} The aliases this preparation connects afresh or signs in, which answer any refusal.
482
+ const answered = new Set();
452
483
  try {
453
484
  // {§mcp-setup} — every server that needs a connection or a catalog is prepared at once, so a
454
485
  // workspace waits for its slowest server, not for the sum of them.
455
486
  const plans = [...enabled].map(([name, value]) => {
456
487
  const key = this.#pendingKey(workspaceId, name);
457
- const binding = value;
488
+ const binding = bindingOf(value);
458
489
  const existing = previous.get(name);
459
490
  const pending = this.#pending.get(key);
460
491
  const heldConnection = existing === undefined ? undefined : attachmentConnection(existing);
461
492
  const settledBinding = existing !== undefined && force !== name && sameBinding(existing, binding)
462
493
  && pending?.prepared === undefined && pending?.authorized !== true;
463
- const mode = settledBinding && !this.#dirty.has(key) ? "reuse"
464
- : pending?.prepared !== undefined && sameBinding(pending, binding) ? "pending"
465
- : settledBinding && heldConnection !== undefined ? "catalog"
466
- : "connect";
494
+ // {§mcp-request-unauthorized} A server that refused a call for want of a sign-in awaits one on the connection
495
+ // it holds, whatever its catalog still lists.
496
+ const mode = settledBinding && this.#challenged.has(key) && existing?.kind === "active" && heldConnection !== undefined ? "challenged"
497
+ : settledBinding && !this.#dirty.has(key) ? "reuse"
498
+ : pending?.prepared !== undefined && sameBinding(pending, binding) ? "pending"
499
+ : settledBinding && heldConnection !== undefined ? "catalog"
500
+ : "connect";
501
+ if (mode === "pending" || mode === "connect")
502
+ answered.add(key);
467
503
  const authorized = mode === "connect" && pending?.authorized === true && sameBinding(pending, binding);
468
504
  return { name, key, invalidation: this.#dirty.get(key), binding, existing, pending, heldConnection, mode, authorized };
469
505
  });
@@ -477,6 +513,9 @@ export default class Module {
477
513
  return plan.existing;
478
514
  if (plan.mode === "pending")
479
515
  return plan.pending.prepared;
516
+ if (plan.mode === "challenged") {
517
+ return { ...plan.binding, kind: "authorization-required", connection: plan.heldConnection, authorizationUrl: undefined };
518
+ }
480
519
  try {
481
520
  if (plan.mode === "catalog") {
482
521
  // {§mcp-catalog-refresh-in-place} — only the catalog is dirty: the executor is
@@ -551,7 +590,7 @@ export default class Module {
551
590
  for (const [name, attachment] of next) {
552
591
  switch (attachment.kind) {
553
592
  case "active":
554
- outcomes.set(name, { state: "active", detail: catalogDetail(attachment.executor) });
593
+ outcomes.set(name, { state: "active", detail: activeDetail(attachment) });
555
594
  break;
556
595
  case "unavailable":
557
596
  outcomes.set(name, { state: "unavailable", problem: attachment.problem });
@@ -564,7 +603,7 @@ export default class Module {
564
603
  break;
565
604
  }
566
605
  }
567
- const runtimes = [...next.values()].flatMap((attachment) => attachment.kind === "active" ? [attachment.runtime] : []);
606
+ const runtimes = [...next.values()].map((attachment) => attachment.kind === "active" ? attachment.runtime : unavailableRuntime(attachment));
568
607
  const published = { removed: [], added: [] };
569
608
  return {
570
609
  runtimes,
@@ -639,6 +678,12 @@ export default class Module {
639
678
  this.#clearCatalogRefresh(key);
640
679
  }
641
680
  }
681
+ // {§mcp-request-unauthorized} A fresh connection or an accepted sign-in answers a refusal; withdrawal forgets it.
682
+ for (const key of [...this.#challenged]) {
683
+ if (key.startsWith(`${workspaceId}:`) && (answered.has(key) || !next.has(key.slice(`${workspaceId}:`.length)))) {
684
+ this.#challenged.delete(key);
685
+ }
686
+ }
642
687
  const retained = new Set([...next.values()].flatMap((attachment) => attachmentConnection(attachment) ?? []));
643
688
  const pendingConnections = new Set([...this.#pending.values()].map(({ connection }) => connection));
644
689
  const obsolete = [...previous.values()]
@@ -674,8 +719,10 @@ export default class Module {
674
719
  if (key.startsWith(`${workspaceId}:`))
675
720
  this.#clearCatalogRefresh(key);
676
721
  }
677
- const attachments = snapshot ?? new Map();
678
- const connections = [...attachments.values()].flatMap((attachment) => attachmentConnection(attachment) ?? []);
722
+ for (const key of [...this.#challenged])
723
+ if (key.startsWith(`${workspaceId}:`))
724
+ this.#challenged.delete(key);
725
+ const connections = [...snapshot.values()].flatMap((attachment) => attachmentConnection(attachment) ?? []);
679
726
  this.#attachments.delete(workspaceId);
680
727
  this.#retainWorkspace.delete(workspaceId);
681
728
  this.#identities.delete(workspaceId);
@@ -710,9 +757,12 @@ export default class Module {
710
757
  throw actionError("oauth-busy", 409, `MCP server '${alias}' is already starting authorization.`, { retryable: true });
711
758
  this.#authorizing.add(key);
712
759
  try {
713
- const prepared = await this.#prepareAttachment(identity.workspaceId, current, undefined, redirectUrl);
714
- if (prepared.kind === "unavailable")
760
+ const connected = await this.#prepareAttachment(identity.workspaceId, current, undefined, redirectUrl);
761
+ if (connected.kind === "unavailable")
715
762
  throw new Error("OAuth preparation returned an unavailable attachment.");
763
+ // {§oauth-begin-unchallenged} An alias awaiting a sign-in for a refused request starts one on a connection its
764
+ // server never challenges; one whose connection was challenged and is no longer is accepted as it is.
765
+ const prepared = connected.kind === "active" && this.#challenged.has(key) ? await this.#beginUnchallenged(connected) : connected;
716
766
  if (this.#attachments.get(identity.workspaceId)?.get(alias) !== current) {
717
767
  await this.#closeOwned([prepared.connection]);
718
768
  throw actionError("oauth-target-conflict", 409, `MCP server '${alias}' changed while its OAuth authorization was pending.`, { workspaceId: identity.workspaceId, alias, recovery: "Start authorization again from the server's current definition.", retryable: false });
@@ -742,6 +792,33 @@ export default class Module {
742
792
  this.#authorizing.delete(key);
743
793
  }
744
794
  }
795
+ // {§oauth-begin-unchallenged} The SDK's authorization starts on the connection; one it finds authorized stays active.
796
+ async #beginUnchallenged(connected) {
797
+ let authorizationUrl;
798
+ try {
799
+ authorizationUrl = await connected.connection.beginAuthorization();
800
+ }
801
+ catch (cause) {
802
+ let closeCause;
803
+ try {
804
+ await this.#closeOwned([connected.connection]);
805
+ }
806
+ catch (error) {
807
+ closeCause = error;
808
+ }
809
+ const { definition } = connected;
810
+ throw preparationError(definition, definition.type === "streamable-http" ? definition.authorization : undefined, cause, closeCause);
811
+ }
812
+ if (authorizationUrl === undefined)
813
+ return connected;
814
+ return {
815
+ definition: connected.definition,
816
+ ...(connected.context === undefined ? {} : { context: connected.context }),
817
+ kind: "authorization-required",
818
+ connection: connected.connection,
819
+ authorizationUrl,
820
+ };
821
+ }
745
822
  // {§oauth-continuation} — grant acceptance precedes ordinary catalog publication.
746
823
  async #completeOAuth(identity, params) {
747
824
  assertActionKeys(params, ["alias", "callbackUrl"]);
@@ -774,6 +851,11 @@ export default class Module {
774
851
  if (this.#pending.get(key) !== pending || this.#closed)
775
852
  throw actionError("oauth-target-conflict", 409, `MCP server '${alias}' changed while its OAuth authorization was pending.`, { workspaceId: identity.workspaceId, alias, retryable: false });
776
853
  pending.authorized = true;
854
+ // {§oauth-grant} The accepted sign-in is the alias's grant, replacing any before it.
855
+ const grant = pending.connection.oauthGrant;
856
+ if (grant !== undefined) {
857
+ this.#grants.set(key, { definition: pending.definition, ...(pending.context === undefined ? {} : { context: pending.context }), grant });
858
+ }
777
859
  this.#dirty.set(key, Symbol());
778
860
  this.#refreshCatalog(identity.workspaceId, alias);
779
861
  return { status: 202, alias };
@@ -788,16 +870,31 @@ export default class Module {
788
870
  if (attachment === undefined || attachment.kind !== "active") {
789
871
  throw actionError("server-not-connected", 409, `MCP server '${server}' is not connected for this workspace.`, { workspaceId, name: server, retryable: false });
790
872
  }
791
- const ref = objectOf(params.ref);
792
- const argument = objectOf(params.argument);
793
- if (ref === null || argument === null) {
794
- throw actionError("completion-parameters-invalid", 400, "MCP completion requires 'ref' and 'argument' objects.", { retryable: false });
795
- }
796
- return attachment.connection.complete({
797
- ref: ref,
798
- argument: argument,
873
+ // The protocol's own schema proves the completion's parameters; a context that is not an object is not sent.
874
+ const completion = CompleteRequestParamsSchema.safeParse({
875
+ ref: params.ref,
876
+ argument: params.argument,
799
877
  ...(objectOf(params.context) === null ? {} : { context: params.context }),
800
878
  });
879
+ if (!completion.success) {
880
+ const issues = completion.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`).join("; ");
881
+ throw actionError("completion-parameters-invalid", 400, `MCP completion parameters do not match the protocol: ${issues}.`, { retryable: false });
882
+ }
883
+ try {
884
+ return await attachment.connection.complete(completion.data);
885
+ }
886
+ catch (cause) {
887
+ if (cause instanceof AuthorizationRequiredError) {
888
+ // {§mcp-request-unauthorized}
889
+ throw actionError("authorization-required", 401, awaitsSignIn(server), { workspaceId, name: server, retryable: false }, cause);
890
+ }
891
+ throw cause;
892
+ }
893
+ }
894
+ // {§oauth-grant} The alias's grant, for a connection with the definition it was accepted for, while it holds tokens.
895
+ #grantFor(workspaceId, binding) {
896
+ const held = this.#grants.get(this.#pendingKey(workspaceId, binding.definition.name));
897
+ return held !== undefined && held.grant.signedIn && sameBinding(held, binding) ? held.grant : undefined;
801
898
  }
802
899
  // A live catalog change republishes the unchanged state; the dirty alias
803
900
  // rebuilds its executor on the next preparation.
@@ -848,6 +945,8 @@ export default class Module {
848
945
  clearTimeout(timer);
849
946
  this.#refreshTimers.clear();
850
947
  this.#dirty.clear();
948
+ this.#challenged.clear();
949
+ this.#grants.clear();
851
950
  const closing = this.#closeOwned([...this.#connections]);
852
951
  this.#attachments.clear();
853
952
  for (const pending of this.#pending.values())
@@ -1 +1 @@
1
- {"version":3,"file":"Module.js","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Module.js","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,15 @@ export interface PluginContext {
6
6
  type StdioDefinition = Extract<McpServerDefinition, {
7
7
  type: "stdio";
8
8
  }>;
9
+ export interface ResolvedStdioPlugin {
10
+ readonly type: "stdio";
11
+ readonly command: string;
12
+ readonly args: string[];
13
+ readonly cwd: string;
14
+ readonly env: Readonly<Record<string, string>>;
15
+ }
9
16
  export default class PluginConfiguration {
10
- static resolve(source: StdioDefinition, context: PluginContext): {
11
- type: "stdio";
12
- command: string;
13
- args: string[];
14
- cwd: string;
15
- env: {
16
- PLUGIN_ROOT: string;
17
- PLUGIN_DATA: string;
18
- };
19
- };
17
+ static resolve(source: StdioDefinition, context: PluginContext): ResolvedStdioPlugin;
20
18
  static prepare(source: StdioDefinition, context: PluginContext): Promise<void>;
21
19
  }
22
20
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PluginConfiguration.d.ts","sourceRoot":"","sources":["../src/PluginConfiguration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAGvE,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa;cAGhD,OAAO;;;;;;;;MAUpB;IAED,OAAa,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;CACJ"}
1
+ {"version":3,"file":"PluginConfiguration.d.ts","sourceRoot":"","sources":["../src/PluginConfiguration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAGvE,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAGD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,GAAG,mBAAmB,CAanF;IAED,OAAa,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnF;CACJ"}
@@ -21,10 +21,10 @@ export default class PluginConfiguration {
21
21
  await mkdir(context.data, { recursive: true });
22
22
  const definition = PluginConfiguration.resolve(source, context);
23
23
  const root = source.cwd?.startsWith("${PLUGIN_DATA}") ? context.data : context.root;
24
- for (const [field, base, path] of [
25
- ["cwd", root, definition.cwd],
26
- ...(source.command.startsWith("./") ? [["command", context.root, definition.command]] : []),
27
- ]) {
24
+ const contained = [["cwd", root, definition.cwd]];
25
+ if (source.command.startsWith("./"))
26
+ contained.push(["command", context.root, definition.command]);
27
+ for (const [field, base, path] of contained) {
28
28
  if (!await AgentPluginFiles.contained(await realpath(base), path)) {
29
29
  throw new TypeError(`MCP server '${source.name}' ${field} resolves outside its plugin ${field === "cwd" && root === context.data ? "data directory" : "root"}.`);
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PluginConfiguration.js","sourceRoot":"","sources":["../src/PluginConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAUxF,wGAAwG;AACxG,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,OAAO,CAAC,MAAuB,EAAE,OAAsB;QAC1D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7E,OAAO;YACH,IAAI,EAAE,OAAgB;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;YACjG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACrC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC;YAClE,GAAG,EAAE;gBACD,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrG,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;aAC5B;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAuB,EAAE,OAAsB;QAChE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACpF,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;YAC9B,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,SAAS,CAAC,eAAe,MAAM,CAAC,IAAI,KAAK,KAAK,gCAAgC,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACrK,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"PluginConfiguration.js","sourceRoot":"","sources":["../src/PluginConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAmBxF,wGAAwG;AACxG,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,OAAO,CAAC,MAAuB,EAAE,OAAsB;QAC1D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7E,OAAO;YACH,IAAI,EAAE,OAAgB;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;YACjG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACrC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC;YAClE,GAAG,EAAE;gBACD,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrG,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;aAC5B;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAuB,EAAE,OAAsB;QAChE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACpF,MAAM,SAAS,GAAoC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACnF,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACnG,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,SAAS,CAAC,eAAe,MAAM,CAAC,IAAI,KAAK,KAAK,gCAAgC,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACrK,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityMatrix.d.ts","sourceRoot":"","sources":["../src/capabilityMatrix.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AACzF,KAAK,qBAAqB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC/E,KAAK,uBAAuB,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAKD,eAAO,MAAM,iBAAiB,EAAE,SAAS,aAAa,EAiYrD,CAAC;AAEF,eAAO,MAAM,4BAA4B,YAAI,MAAM,EAAE,KAAK,CAAU,CAAC;AAErE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAE9B,CAAC;AAI1B,eAAO,MAAM,wBAAwB,QAAO;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACnG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CAU7D,CAAC"}
1
+ {"version":3,"file":"capabilityMatrix.d.ts","sourceRoot":"","sources":["../src/capabilityMatrix.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AACzF,KAAK,qBAAqB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC/E,KAAK,uBAAuB,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAKD,eAAO,MAAM,iBAAiB,EAAE,SAAS,aAAa,EAiYrD,CAAC;AAEF,eAAO,MAAM,4BAA4B,YAAI,MAAM,EAAE,KAAK,CAAU,CAAC;AAErE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAE9B,CAAC;AAI1B,eAAO,MAAM,wBAAwB,QAAO;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACnG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CAS7D,CAAC"}