Skip to content

v0.2.0 — Lifecycle & Transport

Choose a tag to compare

@varun369 varun369 released this 15 May 13:38

The first MCP gateway that learns, hot-reloads, and serves both stdio + HTTP natively.

Highlights

Zero-restart hot-reload

Add, remove, and modify federated MCP servers at runtime — no hub restart required.

```bash
slm-hub server add github --command npx --arg @modelcontextprotocol/server-github
slm-hub server remove old-server
slm-hub server modify github --env GITHUB_TOKEN=...
slm-hub server reload # re-read config.json from disk
slm-hub server list --show-tools
```

Connected MCP clients receive `notifications/tools/list_changed` within ≤1s of any registry change (debounced). Existing connections to unchanged servers (e.g. kite SSE / OAuth sessions) keep their state — only the changed server's connection is drained and replaced.

Native stdio transport

`slm-hub mcp` serves MCP JSON-RPC over stdin/stdout using NDJSON framing, matching the official MCP Python SDK. Enables native Claude Desktop integration without a Node bridge — same federation, just stdin/stdout instead of HTTP.

```bash
slm-hub setup register --client claude-desktop
```

Polished observability

  • `slm-hub status --verbose` shows per-server connected/disabled/failed state with last-error message including stderr tail and exit code.
  • Cold start fast-retry schedule (0.5s, 1.5s, 4.5s) for transient connection failures.

Fixed

  • `notifications/tools/list_changed` is now actually emitted (previously advertised in `initialize` but never sent).
  • `disconnect()` no longer raises `ProcessLookupError` when terminating an already-exited child process.
  • Reader EOF fails pending futures with a rich diagnostic (exit code + command + stderr tail), instead of hanging forever.
  • Child stderr drained to prevent pipe-buffer deadlock under verbose MCPs.
  • `asyncio.Lock` added around all `ConnectionManager` mutations.

Backward compatibility

`slm-hub start` HTTP transport continues to work identically. No config schema changes. All v0.1.x clients continue to work without modification.

Install

```bash
pip install --upgrade slm-mcp-hub # Python
npm install -g slm-mcp-hub # Node bin wrapper
```

654 tests pass. AI Reliability Engineering, shipping.