mcp-server-opencode 1.1.0 → 1.1.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/README.md CHANGED
@@ -4,29 +4,29 @@
4
4
  [![coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/alejandro-technology/opencode-mcp/blob/main/vitest.config.ts)
5
5
  [![npm](https://img.shields.io/npm/v/mcp-server-opencode)](https://www.npmjs.com/package/mcp-server-opencode)
6
6
 
7
- An MCP (Model Context Protocol) server that lets any MCP host — Claude Code, Codex CLI, Cursor, etc. — drive an [OpenCode](https://opencode.ai) instance and delegate work to its subagents — so orchestrator models like Opus or Fable can hand off tasks to the other models OpenCode exposes.
7
+ An MCP (Model Context Protocol) server that lets any MCP host — Claude Code, Codex, Cursor, etc. — drive an [OpenCode](https://opencode.ai) instance and delegate work to its subagents — so orchestrator models like Opus or Fable can hand off tasks to the other models OpenCode exposes.
8
8
 
9
- ```
10
- Claude Code
11
-
12
-
13
- MCP Server (this project)
14
-
15
-
16
- OpenCode SDK / CLI
17
-
18
-
19
- Subagents
9
+ ## Quick install
10
+
11
+ Requires **Node.js 18+** and **[OpenCode](https://opencode.ai)** installed and configured (`opencode` must be on your `PATH`, with at least one provider/model set up) — this server spawns and drives OpenCode instances.
12
+
13
+ For **Claude Code**:
14
+
15
+ ```bash
16
+ claude mcp add opencode -- npx -y mcp-server-opencode
20
17
  ```
21
18
 
22
- ## Design
19
+ For **Codex**:
20
+ ```bash
21
+ codex mcp add opencode -- npx -y mcp-server-opencode
22
+ ```
23
23
 
24
- Task delegation is **asynchronous**: starting a task returns immediately with a `task_id` instead of blocking until the subagent finishes. This lets Claude Code fire multiple `opencode_start_task` calls in parallel — each one opens an isolated OpenCode `Session` — without hitting MCP client timeouts on long-running work. Status and results are fetched separately via polling.
24
+ See [Installation](#installation) for manual config, and from-source options.
25
25
 
26
26
  ## Tools
27
27
 
28
28
  | Tool | Description |
29
- | -------------------------- | --------------------------------------------------------------------------------------------------------- |
29
+ | --------------------------- | -------------------------------------------------------------------------------------------------------- |
30
30
  | `opencode_start_server` | Start (or attach to) an OpenCode server instance |
31
31
  | `opencode_stop_server` | Stop a running OpenCode server instance |
32
32
  | `opencode_list_agents` | List agents/models available on a server instance |
@@ -37,11 +37,27 @@ Task delegation is **asynchronous**: starting a task returns immediately with a
37
37
  | `opencode_get_task_result` | Fetch the final result of a completed task |
38
38
  | `opencode_wait_for_task` | Long-poll one or more delegated tasks until they finish (`mode: "all"` or `"any"`) or the timeout elapses; optional `include_progress` enriches any still-unfinished tasks in the final result with a partial output snippet and the currently running tool |
39
39
 
40
-
41
40
  | Prompt | Description |
42
41
  | --------------- | ---------------------------------------------------------------------------------------------------- |
43
42
  | `delegate_task` | Guides the host through delegating one or more tasks to OpenCode agents (start/wait/result workflow), including a model selection guide that maps each OpenCode model tier to the task difficulty it should handle |
44
43
 
44
+ ## How it works
45
+
46
+ ```
47
+ Claude Code
48
+
49
+
50
+ MCP Server (this project)
51
+
52
+
53
+ OpenCode SDK / CLI
54
+
55
+
56
+ Subagents
57
+ ```
58
+
59
+ Task delegation is **asynchronous**: starting a task returns immediately with a `task_id` instead of blocking until the subagent finishes. This lets Claude Code fire multiple `opencode_start_task` calls in parallel — each one opens an isolated OpenCode `Session` — without hitting MCP client timeouts on long-running work. Status and results are fetched separately via polling.
60
+
45
61
  ## Installation
46
62
 
47
63
  ### Prerequisites
@@ -72,7 +88,7 @@ Or manually
72
88
  }
73
89
  ```
74
90
 
75
- For **Codex CLI**, add the server to `~/.codex/config.toml`:
91
+ For **Codex**, add the server to `~/.codex/config.toml`:
76
92
 
77
93
  ```toml
78
94
  [mcp_servers.opencode]
@@ -160,9 +176,9 @@ Restart your MCP host after editing the config; the `opencode_*` tools should ap
160
176
 
161
177
  If both are present, the **environment variable takes precedence** over the CLI argument. Invalid or non-numeric values fall back to the 300000 ms default.
162
178
 
163
- Note that raising this value only raises the server-side clamp — the MCP _client's_ own tool-call timeout (e.g. Claude Code's) must also be set to a value **greater than or equal to** this max, or the client will abort the call before `opencode_wait_for_task` has a chance to return.
179
+ ## Development
164
180
 
165
- ## Project structure
181
+ ### Project structure
166
182
 
167
183
  ```
168
184
  src/
@@ -180,7 +196,7 @@ src/
180
196
 
181
197
  Each module ships with a `*.test.ts` Vitest suite under the parallel `tests/` tree mirroring `src/`.
182
198
 
183
- ## Getting started
199
+ ### Getting started
184
200
 
185
201
  ```bash
186
202
  pnpm install
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
- import { registerPrompts } from "./modules/prompts/index.js";
4
+ import { registerResources } from "./modules/resources/index.js";
5
5
  import { killAllServers } from "./modules/shared/server-registry.js";
6
6
  import { registerTools } from "./modules/tools/index.js";
7
7
  // Create server instance
@@ -22,8 +22,8 @@ process.on("SIGTERM", shutdown);
22
22
  // Safety net for any other exit path (uncaught exception, process.exit elsewhere).
23
23
  process.on("exit", killAllServers);
24
24
  async function main() {
25
+ registerResources(server);
25
26
  registerTools(server);
26
- registerPrompts(server);
27
27
  const transport = new StdioServerTransport();
28
28
  await server.connect(transport);
29
29
  console.error("OpenCode MCP Server running on stdio");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,yBAAyB;AACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,MAAsB;IACtC,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,wCAAwC,CAAC,CAAC;IAC1E,cAAc,EAAE,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,yEAAyE;AACzE,kEAAkE;AAClE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChC,mFAAmF;AACnF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEnC,KAAK,UAAU,IAAI;IACjB,aAAa,CAAC,MAAM,CAAC,CAAC;IACtB,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,yBAAyB;AACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,MAAsB;IACtC,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,wCAAwC,CAAC,CAAC;IAC1E,cAAc,EAAE,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,yEAAyE;AACzE,kEAAkE;AAClE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChC,mFAAmF;AACnF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEnC,KAAK,UAAU,IAAI;IACjB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,aAAa,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerDelegateTaskResource(server: McpServer): void;
3
+ //# sourceMappingURL=delegate-task-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-task-instructions.d.ts","sourceRoot":"","sources":["../../../../src/modules/resources/delegate-task-instructions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwCzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,QAoB7D"}
@@ -35,20 +35,19 @@ Workflow:
35
35
  6. Use opencode_get_task_status only for quick, non-blocking checks on a task's progress (e.g. to report status to the user) — it does not replace opencode_wait_for_task or opencode_get_task_result.
36
36
 
37
37
  Do not call opencode_get_task_result before the task has finished, and prefer opencode_wait_for_task over polling opencode_get_task_status in a loop.`;
38
- export function registerDelegateTaskPrompt(server) {
39
- server.registerPrompt("delegate_task", {
38
+ export function registerDelegateTaskResource(server) {
39
+ server.registerResource("delegate-task-instructions", "opencode://instructions/delegate-task", {
40
40
  title: "Delegate task to OpenCode",
41
41
  description: "Instructions for the correct workflow to delegate tasks to OpenCode agents via this MCP server",
42
+ mimeType: "text/plain",
42
43
  }, () => ({
43
- messages: [
44
+ contents: [
44
45
  {
45
- role: "user",
46
- content: {
47
- type: "text",
48
- text: DELEGATE_TASK_INSTRUCTIONS,
49
- },
46
+ uri: "opencode://instructions/delegate-task",
47
+ text: DELEGATE_TASK_INSTRUCTIONS,
48
+ mimeType: "text/plain",
50
49
  },
51
50
  ],
52
51
  }));
53
52
  }
54
- //# sourceMappingURL=delegate_task.js.map
53
+ //# sourceMappingURL=delegate-task-instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-task-instructions.js","sourceRoot":"","sources":["../../../../src/modules/resources/delegate-task-instructions.ts"],"names":[],"mappings":"AAEA,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sJAoCmH,CAAC;AAEvJ,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,gBAAgB,CACrB,4BAA4B,EAC5B,uCAAuC,EACvC;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,gGAAgG;QAClG,QAAQ,EAAE,YAAY;KACvB,EACD,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,uCAAuC;gBAC5C,IAAI,EAAE,0BAA0B;gBAChC,QAAQ,EAAE,YAAY;aACvB;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerResources(server: McpServer): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAElD"}
@@ -0,0 +1,5 @@
1
+ import { registerDelegateTaskResource } from "./delegate-task-instructions.js";
2
+ export function registerResources(server) {
3
+ registerDelegateTaskResource(server);
4
+ }
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/resources/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,4BAA4B,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- /** Minimal stand-in for McpServer that captures the registered tool/prompt handlers. */
2
+ /** Minimal stand-in for McpServer that captures the registered tool/resource handlers. */
3
3
  export declare function createFakeMcpServer(): {
4
4
  server: McpServer;
5
5
  registerTool: import("vitest").Mock<(_name: string, _config: unknown, handler: ((...args: any[]) => unknown) | undefined) => void>;
6
- registerPrompt: import("vitest").Mock<(_name: string, _config: unknown, handler: ((...args: any[]) => unknown) | undefined) => void>;
6
+ registerResource: import("vitest").Mock<(_name: string, _uriOrTemplate: string, _config: unknown, handler: ((...args: any[]) => unknown) | undefined) => void>;
7
7
  getHandler: <T extends (...args: any[]) => unknown>() => T;
8
- getPromptHandler: <T extends (...args: any[]) => unknown>() => T;
8
+ getResourceHandler: <T extends (...args: any[]) => unknown>() => T;
9
9
  };
10
10
  //# sourceMappingURL=fake-mcp-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-mcp-server.d.ts","sourceRoot":"","sources":["../../../src/test-utils/fake-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wFAAwF;AACxF,wBAAgB,mBAAmB;;gDAGE,MAAM,WAAW,OAAO,sBAD3B,GAAG,EAAE,KAAK,OAAO;kDAQvC,MAAM,WAAW,OAAO,sBAFI,GAAG,EAAE,KAAK,OAAO;iBAcxC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,OAEtB,CAAC;uBAGV,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,OAEtB,CAAC;EAGtC"}
1
+ {"version":3,"file":"fake-mcp-server.d.ts","sourceRoot":"","sources":["../../../src/test-utils/fake-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,0FAA0F;AAC1F,wBAAgB,mBAAmB;;gDAGE,MAAM,WAAW,OAAO,sBAD3B,GAAG,EAAE,KAAK,OAAO;oDAStC,MAAM,kBACG,MAAM,WACb,OAAO,sBALoB,GAAG,EAAE,KAAK,OAAO;iBAmB1C,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,OAEtB,CAAC;yBAGR,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,OAEtB,CAAC;EAGxC"}
@@ -1,32 +1,32 @@
1
1
  import { vi } from "vitest";
2
- /** Minimal stand-in for McpServer that captures the registered tool/prompt handlers. */
2
+ /** Minimal stand-in for McpServer that captures the registered tool/resource handlers. */
3
3
  export function createFakeMcpServer() {
4
4
  // biome-ignore lint/suspicious/noExplicitAny: handler signature varies per tool
5
5
  let capturedHandler;
6
6
  const registerTool = vi.fn((_name, _config, handler) => {
7
7
  capturedHandler = handler;
8
8
  });
9
- // biome-ignore lint/suspicious/noExplicitAny: handler signature varies per prompt
10
- let capturedPromptHandler;
11
- const registerPrompt = vi.fn((_name, _config, handler) => {
12
- capturedPromptHandler = handler;
9
+ // biome-ignore lint/suspicious/noExplicitAny: handler signature varies per resource
10
+ let capturedResourceHandler;
11
+ const registerResource = vi.fn((_name, _uriOrTemplate, _config, handler) => {
12
+ capturedResourceHandler = handler;
13
13
  });
14
- const server = { registerTool, registerPrompt };
14
+ const server = { registerTool, registerResource };
15
15
  return {
16
16
  server,
17
17
  registerTool,
18
- registerPrompt,
18
+ registerResource,
19
19
  // biome-ignore lint/suspicious/noExplicitAny: input shape varies per tool
20
20
  getHandler: () => {
21
21
  if (!capturedHandler)
22
22
  throw new Error("registerTool was not called");
23
23
  return capturedHandler;
24
24
  },
25
- // biome-ignore lint/suspicious/noExplicitAny: input shape varies per prompt
26
- getPromptHandler: () => {
27
- if (!capturedPromptHandler)
28
- throw new Error("registerPrompt was not called");
29
- return capturedPromptHandler;
25
+ // biome-ignore lint/suspicious/noExplicitAny: input shape varies per resource
26
+ getResourceHandler: () => {
27
+ if (!capturedResourceHandler)
28
+ throw new Error("registerResource was not called");
29
+ return capturedResourceHandler;
30
30
  },
31
31
  };
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fake-mcp-server.js","sourceRoot":"","sources":["../../../src/test-utils/fake-mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,wFAAwF;AACxF,MAAM,UAAU,mBAAmB;IACjC,gFAAgF;IAChF,IAAI,eAA0D,CAAC;IAC/D,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,OAAgB,EAAE,OAA+B,EAAE,EAAE;QAC9F,eAAe,GAAG,OAAO,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAClF,IAAI,qBAAgE,CAAC;IACrE,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAC1B,CAAC,KAAa,EAAE,OAAgB,EAAE,OAAqC,EAAE,EAAE;QACzE,qBAAqB,GAAG,OAAO,CAAC;IAClC,CAAC,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,cAAc,EAA0B,CAAC;IAExE,OAAO;QACL,MAAM;QACN,YAAY;QACZ,cAAc;QACd,0EAA0E;QAC1E,UAAU,EAAE,GAA0C,EAAE;YACtD,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACrE,OAAO,eAAoB,CAAC;QAC9B,CAAC;QACD,4EAA4E;QAC5E,gBAAgB,EAAE,GAA0C,EAAE;YAC5D,IAAI,CAAC,qBAAqB;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC7E,OAAO,qBAA0B,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fake-mcp-server.js","sourceRoot":"","sources":["../../../src/test-utils/fake-mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,0FAA0F;AAC1F,MAAM,UAAU,mBAAmB;IACjC,gFAAgF;IAChF,IAAI,eAA0D,CAAC;IAC/D,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,OAAgB,EAAE,OAA+B,EAAE,EAAE;QAC9F,eAAe,GAAG,OAAO,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,IAAI,uBAAkE,CAAC;IACvE,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAC5B,CACE,KAAa,EACb,cAAsB,EACtB,OAAgB,EAChB,OAAuC,EACvC,EAAE;QACF,uBAAuB,GAAG,OAAO,CAAC;IACpC,CAAC,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAA0B,CAAC;IAE1E,OAAO;QACL,MAAM;QACN,YAAY;QACZ,gBAAgB;QAChB,0EAA0E;QAC1E,UAAU,EAAE,GAA0C,EAAE;YACtD,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACrE,OAAO,eAAoB,CAAC;QAC9B,CAAC;QACD,8EAA8E;QAC9E,kBAAkB,EAAE,GAA0C,EAAE;YAC9D,IAAI,CAAC,uBAAuB;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjF,OAAO,uBAA4B,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-opencode",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "MCP server that lets any MCP host (Claude Code, Codex CLI, Cursor, etc.) drive OpenCode and delegate tasks asynchronously to its agents",
5
5
  "main": "./build/src/index.js",
6
6
  "types": "./build/src/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "bugs": {
28
28
  "url": "https://github.com/alejandro-technology/opencode-mcp/issues"
29
29
  },
30
- "homepage": "https://github.com/alejandro-technology/opencode-mcp",
30
+ "homepage": "https://opencode-mcp.alejandrotechnology.com",
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
@@ -1,3 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerDelegateTaskPrompt(server: McpServer): void;
3
- //# sourceMappingURL=delegate_task.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegate_task.d.ts","sourceRoot":"","sources":["../../../../src/modules/prompts/delegate_task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwCzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAoB3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegate_task.js","sourceRoot":"","sources":["../../../../src/modules/prompts/delegate_task.ts"],"names":[],"mappings":"AAEA,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sJAoCmH,CAAC;AAEvJ,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,cAAc,CACnB,eAAe,EACf;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,gGAAgG;KACnG,EACD,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,0BAA0B;iBACjC;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerPrompts(server: McpServer): void;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAEhD"}
@@ -1,5 +0,0 @@
1
- import { registerDelegateTaskPrompt } from "./delegate_task.js";
2
- export function registerPrompts(server) {
3
- registerDelegateTaskPrompt(server);
4
- }
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}