Skip to content

feat(cpp): HTTP / streamable-HTTP MCP transport #2802

Description

@kovtcharov

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

  • cpp/tests/test_mcp_http_transport.cpp against a mock HTTP MCP server.
  • Integration test connecting to a real gaia mcp serve streamable-http endpoint.
  • Existing 14 test_mcp_client cases pass unchanged.

Plan: docs/plans/cpp-framework-parity.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    cppenhancementNew feature or requestmcpMCP integration changes

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions