feat(cowork): re-enable Claude Cowork with preset-only stdio MCP

Restore Cowork feature while closing the RCE vector: drop user-defined
stdio commands so only hard-coded preset plugins (browsermcp) may spawn.
Custom MCP now accepts remote URL only. Routes stay gated to localhost.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
decolua
2026-06-08 15:35:37 +07:00
co-authored by Cursor
parent 7648c3412b
commit f8b73faf5d
7 changed files with 33 additions and 146 deletions
+8 -9
View File
@@ -128,15 +128,14 @@ export const CLI_TOOLS = {
description: "OpenCode AI Terminal Assistant",
configType: "custom",
},
// Cowork disabled: spawns arbitrary processes (RCE risk). Hidden from CLI tools UI.
// cowork: {
// id: "cowork",
// name: "Claude Cowork",
// image: "/providers/claude.png",
// color: "#D97757",
// description: "Claude Desktop Cowork (third-party inference)",
// configType: "custom",
// },
cowork: {
id: "cowork",
name: "Claude Cowork",
image: "/providers/claude.png",
color: "#D97757",
description: "Claude Desktop Cowork (third-party inference)",
configType: "custom",
},
hermes: {
id: "hermes",
name: "Hermes Agent",
+1 -4
View File
@@ -69,7 +69,4 @@ function buildManagedMcpServers(plugins) {
return out;
}
// Allowlist of executables that may be spawned for custom stdio MCP plugins.
const ALLOWED_MCP_COMMANDS = new Set(["npx", "node", "uvx", "python", "python3", "bunx", "bun"]);
module.exports = { DEFAULT_PLUGINS, LOCAL_STDIO_PLUGINS, ALLOWED_MCP_COMMANDS, buildManagedMcpServers };
module.exports = { DEFAULT_PLUGINS, LOCAL_STDIO_PLUGINS, buildManagedMcpServers };