summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/config.schema.json8
-rw-r--r--packages/opencode/src/config/config.ts8
-rw-r--r--packages/opencode/src/mcp/index.ts4
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({