Repository navigation
Highlights
MCP protocol revision 2026-07-28. VoidLLM now speaks the new MCP revision alongside the previous one on the same endpoints, as MCP server, as MCP client and as a transparent gateway. The protocol version is negotiated per request and can be pinned per MCP server. (#219)
- Pagination: tool listings from upstream MCP servers follow
nextCursor, so servers with many tools are no longer cut off after the first page. - Live tool updates: with Code Mode enabled, VoidLLM listens for tool changes on upstreams that support
subscriptions/listenand refreshes their tools right away instead of waiting for the cache TTL. The built-in Code Mode server offers the samesubscriptions/listento its own clients. - Streaming: MCP responses are streamed through instead of buffered, with an idle timeout and a byte cap.
Upgrade notes
- Breaking - MCP browser origins: MCP endpoints accept a browser
Originheader only if it is listed insettings.mcp.allowed_origins. Without a list, only localhost origins are accepted. If you serve MCP to a browser under your own domain, add it toallowed_origins. SDK and CLI clients (noOriginheader) are unaffected. - A database migration adds the per-server MCP protocol version. It runs automatically on startup.
server.proxy.write_timeout: 0is not supported and falls back to 120s. For long-lived MCP streams set an explicit value such as1h. In dual-port mode MCP streams are capped at 120s and end gracefully, clients reconnect.
Full changelog: v0.0.29...v0.0.30