Phase 4 · MCP · P4.1 — depends on P1.1 (gaia::HttpClient).
The C++ MCP client supports stdio only (StdioTransport in cpp/src/mcp_client.cpp). Every remote MCP server — and the repo's own AgentMCPServer in its streamable-http mode — is unreachable from C++.
Scope
- New
HttpTransport : MCPTransport built on gaia::HttpClient, mirroring src/gaia/mcp/client/transports/http.py.
MCPClient::fromConfig accepts {"url", "headers"} alongside the existing {"command", "args", "env"}, discriminating on which key is present. An ambiguous config (both present) is an error, not a guess.
Acceptance
Plan: docs/plans/cpp-framework-parity.md
Phase 4 · MCP · P4.1 — depends on P1.1 (
gaia::HttpClient).The C++ MCP client supports stdio only (
StdioTransportincpp/src/mcp_client.cpp). Every remote MCP server — and the repo's ownAgentMCPServerin itsstreamable-httpmode — is unreachable from C++.Scope
HttpTransport : MCPTransportbuilt ongaia::HttpClient, mirroringsrc/gaia/mcp/client/transports/http.py.MCPClient::fromConfigaccepts{"url", "headers"}alongside the existing{"command", "args", "env"}, discriminating on which key is present. An ambiguous config (both present) is an error, not a guess.Acceptance
cpp/tests/test_mcp_http_transport.cppagainst a mock HTTP MCP server.gaia mcp servestreamable-http endpoint.test_mcp_clientcases pass unchanged.Plan:
docs/plans/cpp-framework-parity.md