From 539f94de4539e879f42b31352c47401f10f8f598 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Mon, 8 Sep 2025 13:12:19 -0300 Subject: [PATCH] Support HTTP/SSE MCP servers (#38) HTTP/SSE MCP servers can be now included in `session/new` --- package-lock.json | 8 ++++---- package.json | 2 +- src/acp-agent.ts | 30 ++++++++++++++++++++++-------- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8043e81f..67411d10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@anthropic-ai/claude-code": "^1.0.100", "@modelcontextprotocol/sdk": "^1.17.4", - "@zed-industries/agent-client-protocol": "0.2.0-alpha.6", + "@zed-industries/agent-client-protocol": "0.2.0-alpha.7", "diff": "^8.0.2", "express": "^5.1.0", "minimist": "^1.2.8", @@ -1808,9 +1808,9 @@ } }, "node_modules/@zed-industries/agent-client-protocol": { - "version": "0.2.0-alpha.6", - "resolved": "https://registry.npmjs.org/@zed-industries/agent-client-protocol/-/agent-client-protocol-0.2.0-alpha.6.tgz", - "integrity": "sha512-Mepcrp9ztLKRSkUuKJ7gnxIL1NRoGbSlY+BWr6WyhJ/sqcocaPSiINs0rt24RZGiU8E+TUwy5FNFW5T9tbIR1A==", + "version": "0.2.0-alpha.7", + "resolved": "https://registry.npmjs.org/@zed-industries/agent-client-protocol/-/agent-client-protocol-0.2.0-alpha.7.tgz", + "integrity": "sha512-LusOBTbhX1veoL2IwUigWcCUf4r7Wl0nFJPeXoBx3OXTWCGE5WfmUPjpXVpduegxEipqea53Q/ls5lQfyoYd3Q==", "license": "Apache-2.0", "dependencies": { "zod": "^3.0.0" diff --git a/package.json b/package.json index 2c53d27c..616d12a1 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "dependencies": { "@anthropic-ai/claude-code": "^1.0.100", "@modelcontextprotocol/sdk": "^1.17.4", - "@zed-industries/agent-client-protocol": "0.2.0-alpha.6", + "@zed-industries/agent-client-protocol": "0.2.0-alpha.7", "diff": "^8.0.2", "express": "^5.1.0", "minimist": "^1.2.8", diff --git a/src/acp-agent.ts b/src/acp-agent.ts index e1a22206..06dd24c6 100644 --- a/src/acp-agent.ts +++ b/src/acp-agent.ts @@ -86,6 +86,10 @@ export class ClaudeAcpAgent implements Agent { image: true, embeddedContext: true, }, + mcpCapabilities: { + http: true, + sse: true, + }, }, authMethods: [ { @@ -110,14 +114,24 @@ export class ClaudeAcpAgent implements Agent { const mcpServers: Record = {}; if (Array.isArray(params.mcpServers)) { for (const server of params.mcpServers) { - mcpServers[server.name] = { - type: "stdio", - command: server.command, - args: server.args, - env: server.env - ? Object.fromEntries(server.env.map((e) => [e.name, e.value])) - : undefined, - }; + if ("type" in server) { + mcpServers[server.name] = { + type: server.type, + url: server.url, + headers: server.headers + ? Object.fromEntries(server.headers.map((e) => [e.name, e.value])) + : undefined, + }; + } else { + mcpServers[server.name] = { + type: "stdio", + command: server.command, + args: server.args, + env: server.env + ? Object.fromEntries(server.env.map((e) => [e.name, e.value])) + : undefined, + }; + } } }