All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Idle timeout (30 minutes) now only logs instead of closing connection
- Heartbeat stops on idle, resumes on activity
- Refactored idle manager to use callbacks
- Updated registry endpoint access to use smithery/sdk
- Added proper process exit handling during installation
- Added new API key prompt during installation of remote servers
- Added support for profiles to allow multiple configurations per server
- Improved Streamable HTTP transport initisation by ensuring heartbeats only start after connection is established
- Removed API key requirement for local server installation
- Removed deprecated
fetchConfigWithApiKeyfunction - Updated config collection flow to skip configuration prompts when API key is provided
- Added session termination on transport close for Streamable HTTP runner
- New Streamable HTTP runner as the primary connection method
- Refactored common connection utilities into
runner-utilsfor better code organization
- WebSocket transport is now deprecated in favor of Streamable HTTP transport
- Refactored config handling to treat empty strings ("") as undefined values
- Added stricter validation for required fields in configuration
- Improved process exit handling with proper exit code 0 on transport close
- Removed redundant config validation in and index.ts
- Streamlined config validation flow in config.ts
- Renamed roo-code to roocode for consistency
- Updated Roo Code (previously Roo Cline) configuration path
- Enhanced stdio and WS runners with more gracious error handling
- Improved logging in stdio runner with timestamps
- Unified error handling between WebSocket and STDIO runners by centralizing common error handling logic
- Improved error handling flow by letting parent handle process exits during protocol errors
- Enhanced verbose logging in inspect command to track server resolution, connection selection, and runtime environment setup
- Improved security by logging only configuration structure instead of sensitive values
- Modified runtime config validation to allow empty strings for required fields
- Added separate config validation for run vs install commands
- Improved error handling for missing required fields during runtime
- Added WebSocket heartbeat mechanism that pings every 30 seconds to maintain connection
- Added 15-minute idle timeout with automatic connection shutdown
- Fixed config parsing on Windows command prompt where single quotes were being passed literally instead of being interpreted
- Added support for VS Code and VS Code Insiders
- Added
list serverscommand to display installed servers for a specific client
- Use API key for calling track
- Added random jitter (0-1000ms) to WebSocket reconnection backoff
- Refactored WebSocket runner and improved console logs
- Enhanced WebSocket runner cleanup process with improved handling of connection termination
- Added safety timeout for WebSocket transport cleanup operations
- Added better state management for clean vs unexpected shutdowns in WebSocket connections
- Enhanced cleanup process in stdio-runner with better handling of client disconnections and process termination
- Added safety timeout for transport cleanup operations to ensure process termination
- Updated @modelcontextprotocol/sdk to v1.8.0 which fixes Windows spawn issues (modelcontextprotocol/typescript-sdk#101, modelcontextprotocol/typescript-sdk#198)
- Added API key support to WebSocket runner for using saved configurations
- Silenced WebSocket error logging for non-critical errors to improve UX in clients that surface console errors
- Enhanced WebSocket error handling with specific handlers for connection errors (code -32000) and protocol errors (codes -32602, -32600)
- Added automatic reconnection attempt for server-initiated connection closures
- Updated server configuration handling to skip the
--configflag when configuration is empty, for cleaner commands
- Fixed destructuring issue in collectConfigValues() that was causing parsing error with inspect command
- Refactored the install command for better code organization and maintainability
- Enhanced API key handling to improve backward compatibility and isolate functions when API key is provided
- Optimized registry to reduce database calls by returning both server details and saved configuration in a single request
- Updated
inspectServerfunction to properly handle changes in configuration collection
- Initial support for
--keyflag to authenticate and use servers through smithery (preparatory work, not yet functional)
- Enhanced server configuration with improved validation
- Replaced
normalizeServerIdwithgetServerNameto prevent issues in Cursor due to long server names
- Support server installation for Cursor since latest update (
0.47.x) supports global mcp configuration (see Cursor Changelog)
- Test suites for WebSocket runner (ws-runner.ts)
- Removed npx resolution utility functions in favor of direct handling in stdio-runner.ts with Windows-specific workaround using
cmd /c
- Refactored command organization by moving command files to dedicated
src/commands/directory - Updated import paths and documentation
- Logging runtime environment details in verbose mode