@dudamel/mcp-agents 2026.928.1 → 2026.930.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.
package/dist/index.js CHANGED
@@ -180,52 +180,6 @@ function registerAgentTools(server, client, ctx) {
180
180
  return jsonResult(agent);
181
181
  }
182
182
  );
183
- server.registerTool(
184
- "get-agent-logs",
185
- {
186
- description: "Get the agent's recent conversational turns, newest first \u2014 status, duration, model, tokens, the MCP servers the turn brought up, and the failure reason when it failed. This is the way to debug an agent that is not answering: a `failed` turn carries the error code and the CLI stderr tail. Returns metadata only, never the conversation text.",
187
- inputSchema: {
188
- id: z.string().describe("Agent ID (UUID)"),
189
- status: z.enum(["completed", "failed"]).optional().describe("Only return turns with this outcome"),
190
- limit: z.number().int().min(1).max(200).optional().describe("Number of turns to return (default: 50)"),
191
- offset: z.number().int().min(0).optional().describe("Pagination offset")
192
- },
193
- annotations: { readOnlyHint: true }
194
- },
195
- async ({ id, status, limit, offset }) => {
196
- const params = {};
197
- if (status !== void 0) params.status = status;
198
- if (limit !== void 0) params.limit = String(limit);
199
- if (offset !== void 0) params.offset = String(offset);
200
- const page = await client.get(
201
- `/api/agents/${id}/turns`,
202
- params
203
- );
204
- return jsonResult({
205
- items: page.items,
206
- total: page.total,
207
- offset: page.offset,
208
- limit: page.limit,
209
- consecutiveFailures: page.consecutiveFailures
210
- });
211
- }
212
- );
213
- server.registerTool(
214
- "get-agent-stats",
215
- {
216
- description: "Get token usage statistics per agent over a time window. Useful for monitoring costs.",
217
- inputSchema: {
218
- windowHours: z.number().int().min(1).optional().describe("Time window in hours (default: 24)")
219
- },
220
- annotations: { readOnlyHint: true }
221
- },
222
- async ({ windowHours }) => {
223
- const params = {};
224
- if (windowHours !== void 0) params.window = String(windowHours);
225
- const page = await client.get("/api/agents/stats/tokens", params);
226
- return jsonResult({ items: page.items, total: page.total });
227
- }
228
- );
229
183
  server.registerTool(
230
184
  "get-agent-sub-agents",
231
185
  {
@@ -330,6 +284,52 @@ function registerAgentTools(server, client, ctx) {
330
284
  }
331
285
  );
332
286
  if (ctx.role !== "admin") return;
287
+ server.registerTool(
288
+ "get-agent-logs",
289
+ {
290
+ description: "Get the agent's recent conversational turns, newest first \u2014 status, duration, model, tokens, the MCP servers the turn brought up, and the failure reason when it failed. This is the way to debug an agent that is not answering: a `failed` turn carries the error code and the CLI stderr tail. Returns metadata only, never the conversation text.",
291
+ inputSchema: {
292
+ id: z.string().describe("Agent ID (UUID)"),
293
+ status: z.enum(["completed", "failed"]).optional().describe("Only return turns with this outcome"),
294
+ limit: z.number().int().min(1).max(200).optional().describe("Number of turns to return (default: 50)"),
295
+ offset: z.number().int().min(0).optional().describe("Pagination offset")
296
+ },
297
+ annotations: { readOnlyHint: true }
298
+ },
299
+ async ({ id, status, limit, offset }) => {
300
+ const params = {};
301
+ if (status !== void 0) params.status = status;
302
+ if (limit !== void 0) params.limit = String(limit);
303
+ if (offset !== void 0) params.offset = String(offset);
304
+ const page = await client.get(
305
+ `/api/agents/${id}/turns`,
306
+ params
307
+ );
308
+ return jsonResult({
309
+ items: page.items,
310
+ total: page.total,
311
+ offset: page.offset,
312
+ limit: page.limit,
313
+ consecutiveFailures: page.consecutiveFailures
314
+ });
315
+ }
316
+ );
317
+ server.registerTool(
318
+ "get-agent-stats",
319
+ {
320
+ description: "Get token usage statistics per agent over a time window. Useful for monitoring costs.",
321
+ inputSchema: {
322
+ windowHours: z.number().int().min(1).optional().describe("Time window in hours (default: 24)")
323
+ },
324
+ annotations: { readOnlyHint: true }
325
+ },
326
+ async ({ windowHours }) => {
327
+ const params = {};
328
+ if (windowHours !== void 0) params.window = String(windowHours);
329
+ const page = await client.get("/api/agents/stats/tokens", params);
330
+ return jsonResult({ items: page.items, total: page.total });
331
+ }
332
+ );
333
333
  server.registerTool(
334
334
  "create-agent",
335
335
  {
@@ -223,52 +223,6 @@ function registerAgentTools(server2, client, ctx2) {
223
223
  return jsonResult(agent);
224
224
  }
225
225
  );
226
- server2.registerTool(
227
- "get-agent-logs",
228
- {
229
- description: "Get the agent's recent conversational turns, newest first \u2014 status, duration, model, tokens, the MCP servers the turn brought up, and the failure reason when it failed. This is the way to debug an agent that is not answering: a `failed` turn carries the error code and the CLI stderr tail. Returns metadata only, never the conversation text.",
230
- inputSchema: {
231
- id: z.string().describe("Agent ID (UUID)"),
232
- status: z.enum(["completed", "failed"]).optional().describe("Only return turns with this outcome"),
233
- limit: z.number().int().min(1).max(200).optional().describe("Number of turns to return (default: 50)"),
234
- offset: z.number().int().min(0).optional().describe("Pagination offset")
235
- },
236
- annotations: { readOnlyHint: true }
237
- },
238
- async ({ id, status, limit, offset }) => {
239
- const params = {};
240
- if (status !== void 0) params.status = status;
241
- if (limit !== void 0) params.limit = String(limit);
242
- if (offset !== void 0) params.offset = String(offset);
243
- const page = await client.get(
244
- `/api/agents/${id}/turns`,
245
- params
246
- );
247
- return jsonResult({
248
- items: page.items,
249
- total: page.total,
250
- offset: page.offset,
251
- limit: page.limit,
252
- consecutiveFailures: page.consecutiveFailures
253
- });
254
- }
255
- );
256
- server2.registerTool(
257
- "get-agent-stats",
258
- {
259
- description: "Get token usage statistics per agent over a time window. Useful for monitoring costs.",
260
- inputSchema: {
261
- windowHours: z.number().int().min(1).optional().describe("Time window in hours (default: 24)")
262
- },
263
- annotations: { readOnlyHint: true }
264
- },
265
- async ({ windowHours }) => {
266
- const params = {};
267
- if (windowHours !== void 0) params.window = String(windowHours);
268
- const page = await client.get("/api/agents/stats/tokens", params);
269
- return jsonResult({ items: page.items, total: page.total });
270
- }
271
- );
272
226
  server2.registerTool(
273
227
  "get-agent-sub-agents",
274
228
  {
@@ -373,6 +327,52 @@ function registerAgentTools(server2, client, ctx2) {
373
327
  }
374
328
  );
375
329
  if (ctx2.role !== "admin") return;
330
+ server2.registerTool(
331
+ "get-agent-logs",
332
+ {
333
+ description: "Get the agent's recent conversational turns, newest first \u2014 status, duration, model, tokens, the MCP servers the turn brought up, and the failure reason when it failed. This is the way to debug an agent that is not answering: a `failed` turn carries the error code and the CLI stderr tail. Returns metadata only, never the conversation text.",
334
+ inputSchema: {
335
+ id: z.string().describe("Agent ID (UUID)"),
336
+ status: z.enum(["completed", "failed"]).optional().describe("Only return turns with this outcome"),
337
+ limit: z.number().int().min(1).max(200).optional().describe("Number of turns to return (default: 50)"),
338
+ offset: z.number().int().min(0).optional().describe("Pagination offset")
339
+ },
340
+ annotations: { readOnlyHint: true }
341
+ },
342
+ async ({ id, status, limit, offset }) => {
343
+ const params = {};
344
+ if (status !== void 0) params.status = status;
345
+ if (limit !== void 0) params.limit = String(limit);
346
+ if (offset !== void 0) params.offset = String(offset);
347
+ const page = await client.get(
348
+ `/api/agents/${id}/turns`,
349
+ params
350
+ );
351
+ return jsonResult({
352
+ items: page.items,
353
+ total: page.total,
354
+ offset: page.offset,
355
+ limit: page.limit,
356
+ consecutiveFailures: page.consecutiveFailures
357
+ });
358
+ }
359
+ );
360
+ server2.registerTool(
361
+ "get-agent-stats",
362
+ {
363
+ description: "Get token usage statistics per agent over a time window. Useful for monitoring costs.",
364
+ inputSchema: {
365
+ windowHours: z.number().int().min(1).optional().describe("Time window in hours (default: 24)")
366
+ },
367
+ annotations: { readOnlyHint: true }
368
+ },
369
+ async ({ windowHours }) => {
370
+ const params = {};
371
+ if (windowHours !== void 0) params.window = String(windowHours);
372
+ const page = await client.get("/api/agents/stats/tokens", params);
373
+ return jsonResult({ items: page.items, total: page.total });
374
+ }
375
+ );
376
376
  server2.registerTool(
377
377
  "create-agent",
378
378
  {
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/tools/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,WAAW,GACf,IAAI,CAmRN"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/tools/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,WAAW,GACf,IAAI,CAoRN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dudamel/mcp-agents",
3
- "version": "2026.928.1",
3
+ "version": "2026.930.1",
4
4
  "description": "Dudamel agents MCP — stdio client for Dudamel's agents management surface over its REST API.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",
@@ -33,8 +33,8 @@
33
33
  "devDependencies": {
34
34
  "esbuild": "^0.25.0",
35
35
  "@dudamel/contracts": "0.1.0",
36
- "@dudamel/mcp-tool-contract": "0.1.0",
37
- "@dudamel/mcp-common": "0.1.0"
36
+ "@dudamel/mcp-common": "0.1.0",
37
+ "@dudamel/mcp-tool-contract": "0.1.0"
38
38
  },
39
39
  "scripts": {
40
40
  "build": "esbuild src/stdio-server.ts src/index.ts --bundle --platform=node --target=node20 --format=esm --outdir=dist --external:@modelcontextprotocol/sdk --external:zod && tsc --emitDeclarationOnly",