Repository navigation
FAQ
Short answers to the questions that come up first.
Applies to: zig-sdk 0.1.0. The answers that name version 0.2.0 apply to zig-sdk 0.2.0.
Only 2026-07-28. Older revisions had an initialize handshake and sessions. This revision is stateless. A client of an older revision gets -32601 for initialize with a message that names 2026-07-28. See Versioning.
Not directly. The MCP clients of VS Code speak revision 2025-11-25 and start with initialize, which the SDK refuses. Use the bridge of zig-bridge-sdk. Its executable mcp-bridge-vscode is a stdio server for VS Code that starts your server as a child process. Or embed the bridge: depend on the package bridge_sdk and call vscode.serveStdio in place of mcp.transport.stdio.serve. See its wiki page VS Code.
No. It needs Zig 0.16.0 and nothing else. TLS, HTTP/2, HPACK, protobuf, WebSocket and a D-Bus client are in the tree. The test fixtures from the MCP repository, the JSON Schema Test Suite and the proto files of the typed gRPC binding are data, not code. The RFC 7541 tables are also data.
The HTTP client used it before the SDK client existed. It has no ALPN and no client certificates, so the gRPC binding cannot use it. The SDK client is the only path now.
Write a handler fn(ctx: *mcp.RequestContext, args: Args) anyerror!mcp.Outcome(mcp.CallToolResult) and register it with server.addTool(.{ .name = "..." }, handler). The input schema comes from the Args type. See Server Guide.
It returns .input_required with an elicitation. The client answers it and sends the request again with the answers. The server keeps its state in a sealed requestState. See Concepts.
Yes, from version 0.2.0. The validator evaluates all keywords of 2020-12, also unevaluatedProperties, unevaluatedItems, $dynamicRef and $id in subschemas. format and the content keywords are annotations, as 2020-12 specifies. The draft 2020-12 files of the JSON Schema Test Suite run with the tests. The limits are remote references, custom meta-schemas and some regular expression features. See JSON Schema Support.
Yes, from version 0.2.0. A client request without timeout gets limits.request_timeout (60 s). A longer timeout gets the upper limit limits.max_total_timeout (600 s). Progress notifications do not extend a timeout. A listen stream has no default timeout. See Client Guide.
Yes, from version 0.2.0. The SDK has its own engine for pattern and patternProperties, with the ECMA-262 syntax. The match time is linear in the input length. Backreferences and lookaround are not available. See JSON Schema Support.
Yes, from version 0.2.0. The hybrid group X25519MLKEM768 is the first choice of the default order on both sides. The server and the client accept RSA certificate keys of 2048 to 4096 bits and sign with RSA-PSS. See TLS and Certificates.
Yes. Use stdio when the client starts the server. Use the Unix socket transport when the server runs already and serves many local clients. See Transport Unix Socket.
Enable the Tasks extension and return .start_task from the tool. The client polls the task or, with callTool, waits for it. See Tasks Extension.
The prose follows ASD-STE100 Simplified Technical English, customized for this project. Short sentences, one meaning per word, active voice. zig build lint-docs checks it. See Style Guide (STE).
Bind the SDK server to loopback and let the proxy terminate TLS. Add the public name to allowed_hosts when the proxy forwards it. See Deploy Reverse Proxy.
On the documentation site, https://christianpresley.github.io/zig-sdk/. zig build site writes the same site to zig-out/site, and zig build docs writes the reference of the module mcp to zig-out/docs. See API Reference.
See SECURITY.md in the repository. Do not open a public issue for it.
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