Repository navigation
v0.3.0
Framework-neutral tool registry (all 10 languages)
A second, additive entry point alongside each language's built-in server, for embedding ZeroMCP tools into any HTTP framework instead of the built-in stdio/HTTP server. Reuses each language's existing dispatch/OpenAPI code with zero duplicated logic.
| Language | API |
|---|---|
| Node.js | await createRegistry(tools, options) |
| Go | (*Server).Registry() |
| Rust | create_registry(tools) |
| Java | ZeroMcp.registry() |
| Kotlin | ZeroMcp.registry() |
| Swift | createRegistry(tools, options:) |
| C# | Registry.Create(tools, options) |
| Ruby | ZeroMcp.create_registry(tools) |
| PHP | Registry::create(tools, options) |
Full design docs, including per-language porting notes and judgment calls, are in specs/lang/*/registry.md.
Fixes
- Cross-language OpenAPI bug: every language's
/openapi.jsonbuilder shared an identical bug — non-GET routes with a:paramsegment never documented it as a path parameter, silently duplicating it into the JSON request body schema instead. Fixed identically across all 10. - Node.js
createRegistryremote federation:options.remoteconnects to remote MCP servers the same waycreateHandleralready does, merging their tools in namespaced asservername.toolname.createRegistryis now async as a result. - Node.js
RemoteServer.toolsallowlist: scopes which upstream tools a remote connection exposes.
Other
- Route conformance test infrastructure for the route/OpenAPI feature across all 10 languages.
- Per-language README alignment pass — fixed non-compiling examples, stale versions, and undocumented shipped features.
Note: Python's registry port is specced (specs/lang/python/registry.md) but not yet implemented — the one language still outstanding.