feat(mcp): add HTTP transport support and tool namespacing

MCP tools are now prefixed with their server name (e.g., vigil-harbor:memory_status)
to prevent collisions between tools from different MCP servers and built-in tools.

Adds SSE and StreamableHTTP transport support alongside existing stdio, enabling
connection to remote MCP servers via URL-based config with optional custom headers
and env var substitution. Includes config validation, session lifecycle management,
and 5 new tests for HTTP config edge cases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
ziomancer
2026-03-17 23:43:05 -06:00
committed by Peter Steinberger
parent 102b7126c1
commit 414d7306d1

View File

@@ -55,7 +55,7 @@ vi.mock("./pi-bundle-mcp-tools.js", () => ({
materializeBundleMcpToolsForRun: async () => ({
tools: [
{
name: "bundle_probe",
name: "bundleProbe__bundle_probe",
label: "bundle_probe",
description: "Bundle MCP probe",
parameters: { type: "object", properties: {} },
@@ -81,7 +81,7 @@ vi.mock("@mariozechner/pi-ai", async (importOriginal) => {
{
type: "toolCall" as const,
id: "tc-bundle-mcp-1",
name: "bundle_probe",
name: "bundleProbe__bundle_probe",
arguments: {},
},
],