@caelo-cms/mcp-server 0.11.0 → 0.11.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.
@@ -8,16 +8,16 @@ export interface StartAdminOpts {
8
8
  /** Poll interval while waiting on an approval; tests shorten it. */
9
9
  readonly approvalPollMs?: number;
10
10
  /**
11
- * #678 — how often the live catalogue is re-read so a changed admin
12
- * (an upgrade, an activated plugin) reaches the client through
13
- * `notifications/tools/list_changed`. Default
14
- * `CAELO_MCP_CATALOGUE_REFRESH_MS` or 5 minutes; 0 disables the timer
15
- * (an unknown tool name still triggers a refresh).
11
+ * #678 — how old the catalogue may get before the next use of this server
12
+ * re-reads it, so a changed admin (an upgrade, an activated plugin)
13
+ * reaches the client through `notifications/tools/list_changed`. Default
14
+ * `CAELO_MCP_CATALOGUE_MAX_AGE_MS` or 5 minutes; 0 re-reads on every use.
15
+ * An unknown tool name re-reads regardless.
16
16
  */
17
- readonly catalogueRefreshMs?: number;
17
+ readonly catalogueMaxAgeMs?: number;
18
18
  }
19
- /** The refresh interval: the option, else the env var, else 5 minutes. */
20
- export declare function resolveCatalogueRefreshMs(option: number | undefined, env?: string | undefined): number;
19
+ /** The catalogue's max age: the option, else the env var, else 5 minutes. */
20
+ export declare function resolveCatalogueMaxAgeMs(option: number | undefined, env?: string | undefined): number;
21
21
  /**
22
22
  * What a client sees of the catalogue; when it changes, the tool list
23
23
  * changed. Order-independent so a re-sorted catalogue is not a change.
@@ -1 +1 @@
1
- {"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAI/E,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAID,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,GAAE,MAAM,GAAG,SAAsD,GACnE,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAMvE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G7E"}
1
+ {"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAI/E,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAID,6EAA6E;AAC7E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,GAAE,MAAM,GAAG,SAAsD,GACnE,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAMvE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwH7E"}
@@ -16,8 +16,11 @@
16
16
  *
17
17
  * - the catalogue is fetched live from `/api/mcp/tools` at startup (an
18
18
  * admin-scoped token is required; 'chat' tokens get a 401 with the fix)
19
- * and re-read periodically (#678) — a change reaches the client through
20
- * `notifications/tools/list_changed`, an unknown tool name refreshes too;
19
+ * and re-read on use once it is older than its max age (#678) — a change
20
+ * reaches the client through `notifications/tools/list_changed`, an
21
+ * unknown tool name refreshes too. Never on a timer: every request wakes
22
+ * the admin's Cloud Run instance, and an idle session left open overnight
23
+ * kept it running around the clock;
21
24
  * - the work session `caelo_open_session` opened is held in process state
22
25
  * so the agent doesn't thread it through every call; it also rides the
23
26
  * response so a restarted server can resume a specific session via
@@ -29,13 +32,13 @@ import { postAdmin, resolveTimeoutMs } from "./http.js";
29
32
  import { uploadImages } from "./image-upload.js";
30
33
  import { createAdminMcpServer, } from "./surfaces/admin-surface.js";
31
34
  import { ownVersion } from "./version-handshake.js";
32
- const DEFAULT_CATALOGUE_REFRESH_MS = 5 * 60_000;
33
- /** The refresh interval: the option, else the env var, else 5 minutes. */
34
- export function resolveCatalogueRefreshMs(option, env = process.env.CAELO_MCP_CATALOGUE_REFRESH_MS) {
35
+ const DEFAULT_CATALOGUE_MAX_AGE_MS = 5 * 60_000;
36
+ /** The catalogue's max age: the option, else the env var, else 5 minutes. */
37
+ export function resolveCatalogueMaxAgeMs(option, env = process.env.CAELO_MCP_CATALOGUE_MAX_AGE_MS) {
35
38
  if (option !== undefined)
36
39
  return option;
37
40
  const n = env === undefined ? Number.NaN : Number(env);
38
- return Number.isFinite(n) && n >= 0 ? n : DEFAULT_CATALOGUE_REFRESH_MS;
41
+ return Number.isFinite(n) && n >= 0 ? n : DEFAULT_CATALOGUE_MAX_AGE_MS;
39
42
  }
40
43
  /**
41
44
  * What a client sees of the catalogue; when it changes, the tool list
@@ -57,8 +60,10 @@ export async function startAdminMcpServer(opts) {
57
60
  // Fetch the live catalogue up front — a bad URL or a chat-scoped token
58
61
  // should fail loudly at startup, not on the first tool call.
59
62
  let catalogue = await fetchCatalogue();
63
+ let fetchedAt = Date.now();
60
64
  let remoteByName = new Map(catalogue.tools.map((t) => [t.name, t]));
61
65
  let signature = catalogueSignature(catalogue.tools);
66
+ const maxAgeMs = resolveCatalogueMaxAgeMs(opts.catalogueMaxAgeMs);
62
67
  let currentSession = null;
63
68
  let connected = false;
64
69
  let refreshing = null;
@@ -66,15 +71,24 @@ export async function startAdminMcpServer(opts) {
66
71
  // changes it while this process runs. `listChanged` tells the client to
67
72
  // re-list when we say so, instead of the operator reconnecting (/mcp).
68
73
  const server = createAdminMcpServer({
69
- listCatalogue: async () => catalogue.tools,
74
+ listCatalogue: async () => {
75
+ // The client is listing right now: answer with the current list.
76
+ if (isStale())
77
+ await refreshCatalogue();
78
+ return catalogue.tools;
79
+ },
70
80
  findTool: async (name) => {
71
81
  if (!remoteByName.has(name)) {
72
82
  // The admin may have gained the tool since we last listed (#678).
73
83
  await refreshCatalogue();
74
84
  }
85
+ else {
86
+ refreshInBackgroundIfStale();
87
+ }
75
88
  return remoteByName.get(name);
76
89
  },
77
90
  openSession: async (input) => {
91
+ refreshInBackgroundIfStale();
78
92
  currentSession = await postAdmin({
79
93
  ...target,
80
94
  path: "/api/mcp/session",
@@ -103,6 +117,12 @@ export async function startAdminMcpServer(opts) {
103
117
  timeoutMs: resolveTimeoutMs(30_000),
104
118
  }),
105
119
  uploadImages: (args) => uploadImages(target, args),
120
+ // #1122 — re-read now; refreshCatalogue notifies over stdio itself
121
+ // when the list changed, so the surface sends nothing more.
122
+ catalogueMayHaveChanged: async () => {
123
+ await refreshCatalogue();
124
+ return false;
125
+ },
106
126
  }, {
107
127
  serverVersion: ownVersion(),
108
128
  approvalWaitMs: resolveApprovalWaitMs,
@@ -113,6 +133,7 @@ export async function startAdminMcpServer(opts) {
113
133
  const refreshCatalogue = () => {
114
134
  refreshing ??= (async () => {
115
135
  const next = await fetchCatalogue();
136
+ fetchedAt = Date.now();
116
137
  const nextSignature = catalogueSignature(next.tools);
117
138
  if (nextSignature === signature)
118
139
  return false;
@@ -127,20 +148,16 @@ export async function startAdminMcpServer(opts) {
127
148
  });
128
149
  return refreshing;
129
150
  };
130
- const refreshMs = resolveCatalogueRefreshMs(opts.catalogueRefreshMs);
131
- const timer = refreshMs > 0
132
- ? setInterval(() => {
133
- refreshCatalogue().catch((e) => {
134
- // stderr: stdout is the stdio transport. A failed refresh keeps
135
- // the last catalogue; the next tick (or an unknown tool) retries.
136
- console.error(`[caelo-admin-mcp] tool catalogue refresh failed: ${e instanceof Error ? e.message : String(e)}`);
137
- });
138
- }, refreshMs)
139
- : null;
140
- timer?.unref?.();
141
- server.onclose = () => {
142
- if (timer)
143
- clearInterval(timer);
151
+ const isStale = () => Date.now() - fetchedAt >= maxAgeMs;
152
+ /** A call the agent makes anyway carries the re-read; it never waits on it. */
153
+ const refreshInBackgroundIfStale = () => {
154
+ if (!isStale())
155
+ return;
156
+ refreshCatalogue().catch((e) => {
157
+ // stderr: stdout is the stdio transport. A failed refresh keeps the
158
+ // last catalogue; the next use (or an unknown tool) retries.
159
+ console.error(`[caelo-admin-mcp] tool catalogue refresh failed: ${e instanceof Error ? e.message : String(e)}`);
160
+ });
144
161
  };
145
162
  await server.connect(opts.transport ?? new StdioServerTransport());
146
163
  connected = true;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-server.js","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-server.js","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,14 @@ export interface AdminSurfaceBackend {
76
76
  getContext(): Promise<GetContextResponse>;
77
77
  /** Reads the operator's decision; the agent can never make it. */
78
78
  fetchApprovalOutcome(proposalId: string): Promise<ApprovalOutcome>;
79
+ /**
80
+ * #1122 — a call may have changed the catalogue (a plugin was activated,
81
+ * disabled, uninstalled or reloaded). The stdio shim re-reads its cached
82
+ * copy now and notifies over its own channel when it changed (false); a
83
+ * stateless remote server lists live, so it asks the surface to send
84
+ * `notifications/tools/list_changed` on this request's stream (true).
85
+ */
86
+ catalogueMayHaveChanged(): Promise<boolean>;
79
87
  uploadImages(args: unknown): Promise<CallToolResult>;
80
88
  }
81
89
  export interface AdminSurfaceOptions {
@@ -96,8 +104,9 @@ export interface AdminSurfaceOptions {
96
104
  /** Poll interval while waiting on an approval; tests shorten it. */
97
105
  readonly approvalPollMs?: number;
98
106
  /**
99
- * #678 — advertise `tools.listChanged` (the shim notifies when its cached
100
- * catalogue changes). A stateless remote server lists live every time.
107
+ * #678 / #1122 — advertise `tools.listChanged`: the shim notifies when its
108
+ * cached catalogue changes, the stateless remote server on the response
109
+ * stream of a call that changed it. Both surfaces set it.
101
110
  */
102
111
  readonly listChanged: boolean;
103
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"admin-surface.d.ts","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-surface.d.ts","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,17 @@ function outcomeResult(o) {
34
34
  ],
35
35
  };
36
36
  }
37
+ /**
38
+ * #1122 — calls after which the catalogue may differ: an applied proposal of
39
+ * the plugins domain (activate, uninstall, revoke a grant) and a reload.
40
+ * Without a notification the client kept its old tool list until the
41
+ * operator reconnected (`/mcp`), so an activated plugin's tools stayed out
42
+ * of reach although `activate_plugin` promised them for the next turn.
43
+ */
44
+ const RELOADING_TOOLS = new Set(["reload_plugin"]);
45
+ function changesCatalogue(o) {
46
+ return o.outcome === "applied" && o.domain === "plugins";
47
+ }
37
48
  function errorResult(text) {
38
49
  return { isError: true, content: [{ type: "text", text }] };
39
50
  }
@@ -71,6 +82,11 @@ export function createAdminMcpServer(backend, opts) {
71
82
  },
72
83
  });
73
84
  };
85
+ const announceCatalogueChange = async () => {
86
+ if (await backend.catalogueMayHaveChanged()) {
87
+ await extra.sendNotification({ method: "notifications/tools/list_changed" });
88
+ }
89
+ };
74
90
  const awaitOutcome = (proposalId) => waitForApproval({
75
91
  fetchOutcome: () => backend.fetchApprovalOutcome(proposalId),
76
92
  waitMs: opts.approvalWaitMs(),
@@ -83,7 +99,10 @@ export function createAdminMcpServer(backend, opts) {
83
99
  if (!parsed.success) {
84
100
  return errorResult(`invalid arguments: ${parsed.error.message}`);
85
101
  }
86
- return outcomeResult(await awaitOutcome(parsed.data.proposalId));
102
+ const outcome = await awaitOutcome(parsed.data.proposalId);
103
+ if (changesCatalogue(outcome))
104
+ await announceCatalogueChange();
105
+ return outcomeResult(outcome);
87
106
  }
88
107
  if (name === uploadTool.name)
89
108
  return await backend.uploadImages(req.params.arguments);
@@ -137,7 +156,10 @@ export function createAdminMcpServer(backend, opts) {
137
156
  // Issue #658 — the call queued a proposal: wait for the operator's
138
157
  // decision (bounded) and return it in THIS result, so the agent
139
158
  // continues with the outcome instead of a "queued" note.
140
- const decided = outcomeResult(await awaitOutcome(result.approval.proposalId));
159
+ const outcome = await awaitOutcome(result.approval.proposalId);
160
+ if (changesCatalogue(outcome))
161
+ await announceCatalogueChange();
162
+ const decided = outcomeResult(outcome);
141
163
  return {
142
164
  ...decided,
143
165
  content: [
@@ -149,6 +171,8 @@ export function createAdminMcpServer(backend, opts) {
149
171
  ],
150
172
  };
151
173
  }
174
+ if (result.ok && RELOADING_TOOLS.has(name))
175
+ await announceCatalogueChange();
152
176
  return {
153
177
  ...(result.ok ? {} : { isError: true }),
154
178
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"admin-surface.js","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-surface.js","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@caelo-cms/mcp-server",
3
3
  "mcpName": "io.github.caelo-cms/caelo",
4
- "version": "0.11.0",
4
+ "version": "0.11.1",
5
5
  "private": false,
6
6
  "license": "MPL-2.0",
7
7
  "description": "MCP servers for Caelo CMS: `caelo_chat` (talk to Caelo's own AI) and the admin-scoped Power-MCP (the full chat-runner tool catalogue, driven by your own agent). Lets Claude Code (or any MCP-aware client) drive a Caelo install from outside the browser.",
@@ -45,7 +45,7 @@
45
45
  "prepublishOnly": "tsc -b --force"
46
46
  },
47
47
  "dependencies": {
48
- "@modelcontextprotocol/sdk": "1.32.1",
48
+ "@modelcontextprotocol/sdk": "1.32.2",
49
49
  "google-auth-library": "11.3.1",
50
50
  "zod": "4.6.7"
51
51
  },