New features
error envelope tracking in Code Mode
normalizeMcpToolResult now preserves the isError flag when a single text content item is returned. Previously, a tool returning {isError: true, content: [{type: "text", text: "..."}]} would lose the error signal after normalization.
hostCallTool in the sandbox runtime now checks result.isError after calling server.callTool(). Error envelopes are recorded in the toolCalls array with ok: false and the extracted error message, without crashing the script.
Double-colon tool ID format
Tool IDs now use double-colon format (serverId::toolName) consistently across the Tool Router, search, and schema lookup, making parsing unambiguous when tool names or server IDs contain special characters.
Updates
Documentation restructure
- Added dedicated documentation for the remote MCP server endpoint and usage guide
- MCP Assistant documentation added to the docs navigation
- Developer Guide updated for clarity with expanded architecture section and Neon storage setup
- README restructured with MCP documentation links, server details, and managed platform examples
CI improvements
- Package-specific npm publish workflow added
- SDK release tags now use a consistent naming convention
- Tool Router released as a standalone package (v0.5.0)
Bug fixes
- Code Mode error envelopes —
normalizeMcpToolResultno longer dropsisErrorfor single text content items (PR #160) - Tool Router ID format — Fixed inconsistency where tool IDs used different formats in different parts of the API

