Repository navigation
Interoperability
Christian Presley edited this page Oct 1, 2026
·
11 revisions
This page lists the foreign programs that the tests of the SDK use as peers, and where each test runs. Every foreign program is either the official conformance suite or a tool that the GitHub runners already have. The repository has no third-party code.
Applies to: zig-sdk 0.1.0. The RSA and X25519MLKEM768 tests and the results of the authorization extensions apply to the zig-sdk release after 0.1.0.
| Peer | What is checked | Where |
|---|---|---|
@modelcontextprotocol/conformance 0.2.0-alpha.11 |
37 scored server scenarios and 32 scored client scenarios. The 20 unscored scenarios run one at a time: the Tasks extension, the pending server scenarios, the authorization extensions and the JSON Schema preservation scenario. | CI job conformance, see Conformance
|
| Peer | What is checked | Where |
|---|---|---|
| Zig standard library TLS client | Handshake and echo with each key type except Ed25519, RSA 2048 and RSA 3072 included, and each cipher suite. X25519MLKEM768 negotiates. | zig build test |
openssl s_client |
Chain verification, ALPN, a HelloRetryRequest with X448:P-384, TLS 1.2 refusal. An RSA 2048 server with each RSA-PSS hash, and the refusal of an offer with only PKCS#1 v1.5 schemes. |
zig build test when OpenSSL is installed, not LibreSSL |
openssl s_client 3.5 or later |
X25519MLKEM768 with an RSA 3072 server, in the first flight and after a HelloRetryRequest |
zig build test when OpenSSL 3.5 or later is installed |
openssl s_server |
The SDK client verifies the chain and negotiates ALPN |
zig build test when OpenSSL is installed |
openssl s_server 3.5 or later |
The SDK client with an RSA 3072 server: RSA-PSS with SHA-384 and SHA-512, and X25519MLKEM768 in the first flight and after a HelloRetryRequest |
zig build test when OpenSSL 3.5 or later is installed |
curl |
A JSON and an SSE request over HTTPS |
zig build test when a curl with TLS 1.3 is installed |
| Peer | What is checked | Where |
|---|---|---|
Node http2 module (.github/interop/h2_peer.mjs) |
Discovery, tools/list, the error trailers and a listen stream with gRPC framing |
CI job grpc-interop
|
curl --http2-prior-knowledge |
One raw call to server/discover
|
CI job grpc-interop
|
| Peer | What is checked | Where |
|---|---|---|
The global WebSocket client of Node 22 (.github/interop/ws_peer.mjs) |
The subprotocol mcp, discovery, tools/list, a tool call with progress, an error and the close handshake against the everything server with --ws-port
|
CI job websocket-interop
|
curl |
The server refuses an upgrade without the subprotocol mcp with status 400 |
CI job websocket-interop
|
- No test against a gRPC implementation with a dynamic HPACK table on the peer side. The SDK decoder supports it. The encoder never uses it.
- The hybrid key exchange has interop tests only with OpenSSL 3.5 or later. Older runners skip them.
- The official suite has no scenarios for the Skills and Apps extensions. The unit tests use the examples of the specifications.
- The Unix socket transport has no foreign peer in the tests. The tests use the SDK client and the SDK server.
- The
curlon macOS runners has no TLS 1.3, so the HTTPS test withcurldoes not run there. - The official conformance suite has no stdio server mode. The stdio tests of the SDK start the
stdio_serverexample as a child process and use the SDK client.
zig-sdk uses the Apache License 2.0. The wiki uses the project profile of ASD-STE100 Simplified Technical English. The Bibliography lists the sources.
zig-sdk
- Home
- Getting Started
- Concepts
- Server Guide
- Client Guide
- Transports
- Transport stdio
- Transport Streamable HTTP
- Transport gRPC
- Transport Unix Socket
- Transport WebSocket
- TLS and Certificates
- Deploy Reverse Proxy
- Authorization
- Authorization Server
- JSON Schema Support
- Resource Templates
- Tasks Extension
- Skills Extension
- Apps Extension
- Conformance
- Examples
- API Reference
- Interoperability
- Threat Model
- Limits and Security
- Deprecated Features
- Roadmap
- Release Notes
- Versioning
- Contributing
- FAQ
Style and words