@dougbots/avenor-mcp 0.10.4 → 0.12.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/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+
1
3
  //#region src/mcp.d.ts
2
4
  declare function parseBearerToken(authorizationHeader: string | null | undefined): string | null;
3
5
  declare function isAllowedOrigin(originHeader: string | null | undefined): boolean;
4
6
  declare function isAllowedHost(hostHeader: string | null | undefined, port: number): boolean;
5
7
  declare function getMcpAuthToken(): string;
8
+ declare const server: McpServer;
6
9
  //#endregion
7
- export { getMcpAuthToken, isAllowedHost, isAllowedOrigin, parseBearerToken };
10
+ export { getMcpAuthToken, isAllowedHost, isAllowedOrigin, parseBearerToken, server };
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
5
5
  import { Hono } from "hono";
6
6
  import { z } from "zod";
7
- import { THINKING_LEVELS, answerPermissionTool, eventsTool, followUpTool, resultTool, shutdownTool, spawnTool, statusTool, validateSpawnSelection, workflowCompleteTool, workflowEventsTool, workflowGateTool, workflowInspectTool, workflowStatusTool, workflowWaitTool } from "@dougbots/avenor-core";
7
+ import { THINKING_LEVELS, answerPermissionTool, eventsTool, followUpTool, resultTool, shutdownTool, spawnTool, statusTool, validateSpawnSelection, workflowCompleteTool, workflowControllerStatusTool, workflowEventsTool, workflowGateTool, workflowInspectTool, workflowStatusTool, workflowWaitTool } from "@dougbots/avenor-core";
8
8
  //#region src/spawn-schema.ts
9
9
  const spawnInputShape = {
10
10
  agent: z.string().optional().describe("Optional agent name; omission uses the supplied model or runtime defaults"),
@@ -17,7 +17,7 @@ const spawnInputShape = {
17
17
  thinking: z.enum(THINKING_LEVELS).optional().describe("Thinking level; omission uses the backend default and unsupported backends reject explicit values"),
18
18
  backend: z.string().optional().describe("Backend override"),
19
19
  roster_file: z.string().optional().describe("Path to the roster map"),
20
- roster_entry: z.string().optional().describe("Roster entry to select"),
20
+ roster_entry: z.string().optional().describe("Roster entry to select. Requires roster_file unless a roster context is configured; disables agent, model, and backend"),
21
21
  server_url: z.string().optional().describe("Backend server URL"),
22
22
  supervisor_id: z.string().optional().describe("Supervisor ID for multi-supervisor mode")
23
23
  };
@@ -104,10 +104,10 @@ server.registerTool("avenor_status", {
104
104
  });
105
105
  });
106
106
  server.registerTool("avenor_result", {
107
- description: "Wait for a run to finish and return its complete final output without event details",
107
+ description: "Retrieve the complete final output of a run without transcript or event details. Waits by default; set wait=false to retrieve an already-completed run without blocking",
108
108
  inputSchema: {
109
- run_id: z.string().describe("Run ID or label to await"),
110
- wait: z.boolean().optional().describe("Wait for a terminal result (default true)"),
109
+ run_id: z.string().describe("Run ID or label"),
110
+ wait: z.boolean().optional().describe("Wait for a terminal result (default true); false retrieves the current state without blocking"),
111
111
  timeout: z.string().optional().describe("Maximum time to wait (e.g. 30s, 5m)"),
112
112
  supervisor_id: z.string().optional().describe("Supervisor ID for multi-supervisor mode")
113
113
  }
@@ -288,6 +288,18 @@ server.registerTool("avenor_workflow_gate", {
288
288
  supervisorId: supervisor_id
289
289
  });
290
290
  });
291
+ server.registerTool("avenor_workflow_controller_status", {
292
+ description: "Show workflow controller status. With controller_id, returns that controller's full status; without it, lists all controllers with summary state. Create, enable, and disable are CLI-only (avenor workflow controller ...).",
293
+ inputSchema: {
294
+ controller_id: z.string().optional().describe("Controller ID; omit to list all controllers"),
295
+ supervisor_id: z.string().optional().describe("Supervisor ID for multi-supervisor mode")
296
+ }
297
+ }, async ({ controller_id, supervisor_id }) => {
298
+ return workflowControllerStatusTool({
299
+ controllerId: controller_id,
300
+ supervisorId: supervisor_id
301
+ });
302
+ });
291
303
  if (import.meta.main) if (process.env.MCP_TRANSPORT !== "sse") {
292
304
  const transport = new StdioServerTransport();
293
305
  await server.connect(transport);
@@ -315,4 +327,4 @@ if (import.meta.main) if (process.env.MCP_TRANSPORT !== "sse") {
315
327
  console.error(`avenor MCP server listening on :${port}`);
316
328
  }
317
329
  //#endregion
318
- export { getMcpAuthToken, isAllowedHost, isAllowedOrigin, parseBearerToken };
330
+ export { getMcpAuthToken, isAllowedHost, isAllowedOrigin, parseBearerToken, server };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dougbots/avenor-mcp",
3
- "version": "0.10.4",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,7 +30,7 @@
30
30
  "dev": "tsdown --watch"
31
31
  },
32
32
  "dependencies": {
33
- "@dougbots/avenor-core": "^0.10.4",
33
+ "@dougbots/avenor-core": "^0.12.0",
34
34
  "@modelcontextprotocol/sdk": "^1.29.0",
35
35
  "hono": "^4.12.19",
36
36
  "zod": "^4.4.3"