diff options
| author | Timo Clasen <[email protected]> | 2025-06-29 03:05:31 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-28 21:05:31 -0400 |
| commit | f0962e2d9ca90394679f729ef7f3cc39d35e67df (patch) | |
| tree | 42d52eb25ad3e7edb4ebbcd2aeb9d1fab4d9ac73 | |
| parent | 3a9584a41953c5cf7177debfd81b6e9e8592ae7b (diff) | |
| download | opencode-f0962e2d9ca90394679f729ef7f3cc39d35e67df.tar.gz opencode-f0962e2d9ca90394679f729ef7f3cc39d35e67df.zip | |
Add Option to Disable MCP Servers (#513)
| -rw-r--r-- | packages/opencode/config.schema.json | 8 | ||||
| -rw-r--r-- | packages/opencode/src/config/config.ts | 8 | ||||
| -rw-r--r-- | packages/opencode/src/mcp/index.ts | 4 |
3 files changed, 20 insertions, 0 deletions
diff --git a/packages/opencode/config.schema.json b/packages/opencode/config.schema.json index 813b1225f..6ee406c01 100644 --- a/packages/opencode/config.schema.json +++ b/packages/opencode/config.schema.json @@ -264,6 +264,10 @@ "type": "string" }, "description": "Environment variables to set when running the MCP server" + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable the MCP server on startup" } }, "required": ["type", "command"], @@ -280,6 +284,10 @@ "url": { "type": "string", "description": "URL of the remote MCP server" + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable the MCP server on startup" } }, "required": ["type", "url"], diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 160b5377a..cf2f34790 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -37,6 +37,10 @@ export namespace Config { .record(z.string(), z.string()) .optional() .describe("Environment variables to set when running the MCP server"), + enabled: z + .boolean() + .optional() + .describe("Enable or disable the MCP server on startup"), }) .strict() .openapi({ @@ -47,6 +51,10 @@ export namespace Config { .object({ type: z.literal("remote").describe("Type of MCP server connection"), url: z.string().describe("URL of the remote MCP server"), + enabled: z + .boolean() + .optional() + .describe("Enable or disable the MCP server on startup"), }) .strict() .openapi({ diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 154c5464b..ded7d0d2e 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -26,6 +26,10 @@ export namespace MCP { [name: string]: Awaited<ReturnType<typeof experimental_createMCPClient>> } = {} for (const [key, mcp] of Object.entries(cfg.mcp ?? {})) { + if (mcp.enabled === false) { + log.info("mcp server disabled", { key }) + continue + } log.info("found", { key, type: mcp.type }) if (mcp.type === "remote") { const client = await experimental_createMCPClient({ |
