TheAgentHealth

← All documentation

Official SDK interoperability

The suite launches actual official SDK servers on loopback and runs the Go CLI against them. Fixture handlers return deterministic health text through the SDK; they do not handcraft protocol envelopes. Run on each PR, main push and nightly through the CI workflow.

Official Python SDK Protocol Verified behavior
MCP 2.3.0 2026-07-28 HTTP and stdio discovery, inventory, one safe tool call, required-tool failure
MCP 1.30.0 2025-11-25 HTTP and stdio legacy negotiation, inventory, one safe tool call, required-tool failure
A2A 1.2.2 1.0 JSON-RPC Default discovery, read-only task lookup, skills, safe message, required-skill failure
A2A 0.3.26 0.3.0 JSON-RPC Explicit legacy discovery, read-only task lookup, skills, safe message, required-skill failure

Both pinned SDK sets pass locally on Linux AMD64. Core runtime tests also run on Linux, macOS and Windows in CI; official SDK integration currently runs on Linux. This matrix does not establish interoperability with every deployment, external OAuth provider, other SDK language, gRPC/REST binding, or streaming. The MCP OAuth fixture tests cover configured grants and token redaction separately.

Reproduce

From the repository root, with Go and Python 3.12 available:

python3 -m venv /tmp/agenthealth-sdk-tests
/tmp/agenthealth-sdk-tests/bin/pip install -r tests/interop/requirements-current.txt
go build -o /tmp/agenthealth-sdk-tests/agenthealth ./cmd/agenthealth
AGENTHEALTH_INTEROP=1 AGENTHEALTH_BINARY=/tmp/agenthealth-sdk-tests/agenthealth /tmp/agenthealth-sdk-tests/bin/python -m pytest tests/interop -v

Use a separate virtual environment with requirements-legacy.txt to test legacy servers. Regular tests skip this opt-in suite when the environment variable is absent. Required capability failures assert exit 2 and stable diagnostic codes. SDK versions are pinned so an upstream release cannot silently alter the matrix.

Sources: MCP Python SDK, A2A Python SDK, A2A v1 specification.