](https://badge.fury.io/js/reloaderoo)  ](https://nodejs.org/)     
使用CLI检查工具和透明代理功能测试和热重新加载MCP服务器
一种双模MCP开发工具 它既作为CLI检查工具,又作为模型上下文协议(MCP)的透明代理服务器。与VSCode MCP配合良好,与Claude Code配合良好,并支持其他启用MCP的客户端。
🔄 两种模式,一种工具
重新加载 提供了两种不同的操作模式,以适应不同的开发工作流程:
🔍 命令行接口命令模式 (检验和测试)
无需客户端设置即可直接命令行访问MCP服务器:
- ✅ 一枪指令 -测试工具、列出资源、获取服务器信息
- ✅ 无需MCP客户端 -非常适合测试和调试
- ✅ 原始JSON输出 -非常适合脚本和自动化
- ✅ 8个检查命令 -完整的MCP协议覆盖
🔄 代理模式 (热重载开发)
透明的代理服务器,实现无缝热重新加载:
- ✅ 热重新加载MCP服务器 无需断开您的AI客户端
- ✅ 会话持续 -保持开发环境的完整性
- ✅ 自动
restart_server工具 -AI代理可以按需重新启动服务器 - ✅ 透明转发 -完整的MCP协议传递
🎯 为什么要重新装弹?
在开发MCP服务器时,您通常会面临两个问题:
- 测试需要复杂的MCP客户端设置 → CLI模式解决了这个问题
- 代码更改需要重新启动整个AI会话 → 代理模式解决了这个问题
这两种模式协同工作,创造无缝的MCP开发体验。
🚀 快速开始
安装
# Install globally for easy access
npm install -g reloaderoo
# Or use with npx (no installation required)
npx reloaderoo --help选择您的模式
🔍 命令行接口命令模式 -测试与调试
非常适合在没有客户端设置的情况下测试MCP服务器:
# List all tools in your server
reloaderoo inspect list-tools -- node my-mcp-server.js
# Call a specific tool
reloaderoo inspect call-tool echo --params '{"message":"hello"}' -- node my-mcp-server.js
# Get server information
reloaderoo inspect server-info -- node my-mcp-server.js🔄 代理模式 -热重载开发
对于具有热重载功能的AI客户端集成:
# Start proxy server (your AI client connects to this)
reloaderoo proxy -- node my-mcp-server.js
# With debug logging
reloaderoo proxy --log-level debug -- node my-mcp-server.js然后将AI客户端配置为连接到reloaderoo,而不是直接连接到服务器。
🎯 推荐客户
最佳体验: VSCode & 光标 -全协议支持,具有自动能力检测功能 经验: 克劳德代码 & 帆板运动 -工作良好,可能需要手动刷新新工具
🛠️ 开发工作流程
🔍 CLI模式工作流 (测试与调试)
非常适合测试单个工具或调试服务器问题:
# 1. Test your server quickly
reloaderoo inspect list-tools -- node my-mcp-server.js
# 2. Call specific tools to verify behavior
reloaderoo inspect call-tool my_tool --params '{"param":"value"}' -- node my-mcp-server.js
# 3. Check server health
reloaderoo inspect ping -- node my-mcp-server.js🔄 代理模式工作流 (热重载开发)
对于与AI客户的完整开发会议:
1. 开始开发会议
配置您的AI客户端以连接到reloaderoo代理,而不是直接连接到您的服务器:
reloaderoo proxy -- node my-mcp-server.js
# or with debug logging:
reloaderoo proxy --log-level debug -- node my-mcp-server.js2. 开发您的MCP服务器
像往常一样处理服务器代码:
// my-mcp-server.js
export const server = new Server({
name: "my-awesome-server",
version: "1.0.0"
});
// Add new tools, modify existing ones, etc.
server.addTool("new_feature", /* ... */);3. 测试立即更改
让您的AI代理重新启动服务器:
"Please restart the MCP server to load my changes"代理人将致电 restart_server 工具自动。您的新功能立即可用!
4. 持续发展
您的AI会话将继续使用更新的服务器功能。无连接丢失,无上下文重置。
📋 命令行接口
reloaderoo提供两种主要操作模式:
reloaderoo [options] [command]
Global Options:
-V, --version Output the version number
-h, --help Display help for command
Commands:
proxy [options] -- 🔄 Run as MCP proxy server (hot-reload mode)
inspect [subcommand] 🔍 Inspect and debug MCP servers (CLI mode)
info [options] 📊 Display version and configuration information
help [command] ❓ Display help for command🔄 代理模式命令 (热重载开发)
reloaderoo proxy [options] -- [child-args...]
Options:
-w, --working-dir Working directory for the child process
-l, --log-level Log level (debug, info, notice, warning, error, critical)
-f, --log-file
Custom log file path (logs to stderr by default)
-t, --restart-timeout Timeout for restart operations (default: 30000ms)
-m, --max-restarts Maximum restart attempts 0-10 (default: 3)
-d, --restart-delay Delay between restart attempts (default: 1000ms)
-q, --quiet Suppress non-essential output
--no-auto-restart Disable automatic restart on crashes
--debug Enable debug mode with verbose logging
--dry-run Validate configuration without starting proxy
Examples:
reloaderoo proxy -- node server.js
reloaderoo -- node server.js # Same as above (proxy is default)
reloaderoo proxy --log-level debug -- python mcp_server.py --port 8080🔍 CLI模式命令 (检验和测试)
reloaderoo inspect [subcommand] [options] -- [child-args...]
Subcommands:
server-info [options] Get server information and capabilities
list-tools [options] List all available tools
call-tool [options] Call a specific tool
list-resources [options] List all available resources
read-resource [options] Read a specific resource
list-prompts [options] List all available prompts
get-prompt [options] Get a specific prompt
ping [options] Check server connectivity
mcp [options] Start MCP inspection server (exposes debug tools as MCP server)
Common Options (available for all subcommands):
-w, --working-dir Working directory for the child process
-t, --timeout Operation timeout in milliseconds (default: 30000)
-q, --quiet Suppress child process stderr output (get clean JSON)
Examples:
reloaderoo inspect list-tools -- node server.js
reloaderoo inspect call-tool get_weather --params '{"location": "London"}' -- node server.js
reloaderoo inspect server-info -- node server.js
reloaderoo inspect mcp -- node server.js # Start MCP inspection server
# Get clean JSON output without server logs
reloaderoo inspect list-tools --quiet -- node server.js
reloaderoo inspect call-tool echo --quiet --params '{"message":"test"}' -- node server.js信息命令(诊断)
reloaderoo info [options]
Options:
--verbose Show detailed system information
Examples:
reloaderoo info # Show basic system information
reloaderoo info --verbose # Show detailed diagnostics🔍 CLI模式深潜(检查和测试)
CLI模式提供了对MCP服务器的直接命令行访问,无需客户端设置,非常适合测试和调试。
🤖 AI代理用例 -主要设计目标
CLI模式是专门为AI代理设计的 (如Claude Code、Cursor等)具有终端访问权限,但不具有MCP服务器配置功能。这解决了一个关键的开发工作流程问题:
问题: 当AI代理帮助您开发MCP服务器时,它需要测试更改,但是:
- ❌ 代理无法将自己配置为直接使用您的MCP服务器
- ❌ 要求用户手动配置MCP客户端会中断开发流程
- ❌ 使用资源工具或网络获取是间接和有限的
解决方案: CLI模式允许AI代理直接基于终端访问您的MCP服务器:
- ✅ 无客户端配置:代理使用终端命令,而不是MCP客户端设置
- ✅ 无状态且可靠:每个命令独立运行-没有持久连接失败
- ✅ 原始协议访问:代理可以看到精确的MCP输入/输出,以进行透明的调试
- ✅ 立即测试:代理可以立即验证更改,无需用户干预
🔧 技术优势
无状态执行:
- 每个CLI命令都会生成服务器、执行请求并终止
- 完美的可靠性-没有持久状态会被破坏
- 无连接管理或会话处理复杂性
⚠️ 重要限制:
- 具有内存中状态机的服务器在CLI模式下无法正常工作
- 每个命令都是隔离的,调用之间没有共享状态
- 对于有状态的服务器,请改用代理模式
透明调试:
- 原始JSON输出显示精确的MCP协议请求/响应
- 无代理层或客户端解释
- 非常适合了解协议级别的实际情况
- 使用
--quiet标记以抑制服务器日志并获得干净的JSON用于脚本编写
📝 直接CLI命令 (一枪处决)
执行单个命令并立即获得结果:
# List all tools in your server
reloaderoo inspect list-tools -- node my-server.js
# Call a specific tool
reloaderoo inspect call-tool echo --params '{"message":"hello"}' -- node my-server.js
# Get server information
reloaderoo inspect server-info -- node my-server.js
# Check server connectivity
reloaderoo inspect ping -- node my-server.js
# Get clean JSON output without server logs (perfect for scripting)
reloaderoo inspect list-tools --quiet -- node my-server.js
reloaderoo inspect call-tool echo --quiet --params '{"message":"hello"}' -- node my-server.js🔧 MCP检测服务器 (MCP客户端的持久CLI模式)
启动CLI模式作为持久MCP服务器进行交互式调试:
# Start reloaderoo in CLI mode as an MCP server
reloaderoo inspect mcp -- node my-server.js这将CLI模式作为持久MCP服务器运行,通过MCP协议公开8个调试工具:
list_tools-列出所有服务器工具call_tool-调用任何服务器工具list_resources-列出所有服务器资源read_resource-读取任何服务器资源list_prompts-列出所有服务器提示get_prompt-获取任何服务器提示get_server_info-获取全面的服务器信息ping-测试服务器连接
🏗️ 两种模式如何工作
🔄 代理模式架构 (热重载开发)
graph LR
A[AI Client] -->|MCP Protocol| B[reloaderoo proxy]
B -->|Forwards Messages| C[Your MCP Server]
B -->|Manages Lifecycle| C
B -->|Adds restart_server Tool| A
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e8代理模式魔术:
- 透明转发 -所有MCP消息无缝传递
- 能力增强 -添加
restart_server工具与服务器的功能相匹配 - 流程管理 -生成、监视并重新启动服务器进程
- 会话保持 -客户端连接在服务器重新启动期间保持活动状态
- 协议遵从 -完全支持MCP v2025-03-26,具有智能回退功能
🔍 CLI模式架构 (直接测试)
graph LR
A[Your Terminal] -->|Direct Commands| B[reloaderoo inspect]
B -->|Spawns & Queries| C[Your MCP Server]
B -->|Returns JSON| A
style A fill:#e8f5e8
style B fill:#f3e5f5
style C fill:#e1f5feCLI模式魔术:
- 直接执行 -无代理层,直接执行命令
- 一次性查询 -每个命令生成服务器、执行并返回结果
- 原始JSON输出 -非常适合自动化和脚本编写
- 无客户端设置 -在不配置MCP客户端的情况下测试MCP服务器
- 8检查命令 -完成MCP协议的测试覆盖
🔧 配置
环境变量
通过环境变量配置reloaderoo行为:
# Logging Configuration
export MCPDEV_PROXY_LOG_LEVEL=debug # Log level (debug, info, notice, warning, error, critical)
export MCPDEV_PROXY_LOG_FILE=/path/to/log # Custom log file path (default: stderr)
export MCPDEV_PROXY_DEBUG_MODE=true # Enable debug mode (true/false)
# Process Management
export MCPDEV_PROXY_RESTART_LIMIT=5 # Maximum restart attempts (0-10, default: 3)
export MCPDEV_PROXY_AUTO_RESTART=true # Enable/disable auto-restart (true/false)
export MCPDEV_PROXY_TIMEOUT=30000 # Operation timeout in milliseconds
export MCPDEV_PROXY_RESTART_DELAY=1000 # Delay between restart attempts in milliseconds
export MCPDEV_PROXY_CWD=/path/to/directory # Default working directory🎨 集成示例
🔄 代理模式集成 (MCP客户端设置)
配置您的MCP客户端以连接到reloaderoo代理,而不是直接连接到您的服务器:
{
"mcpServers": {
"my-dev-server": {
"command": "reloaderoo",
"args": [
"proxy",
"--",
"node",
"my-dev-server.js"
]
}
}
}🔍 CLI模式集成 (自动化与测试)
非常适合CI/CD、测试脚本和自动化工作流程:
#!/bin/bash
# Example: Test script for your MCP server
# Check if server is healthy (use --quiet for clean output)
if reloaderoo inspect ping --quiet -- node my-server.js >/dev/null 2>&1; then
echo "✅ Server is healthy"
else
echo "❌ Server health check failed"
exit 1
fi
# Test specific functionality with clean JSON output
echo "Testing echo tool..."
result=$(reloaderoo inspect call-tool echo --quiet --params '{"message":"test"}' -- node my-server.js)
# Parse and validate JSON response (no server logs to interfere)
if echo "$result" | jq -e '.content[0].text' >/dev/null; then
echo "✅ Echo tool test passed"
echo "Response: $(echo "$result" | jq -r '.content[0].text')"
else
echo "❌ Echo tool test failed"
echo "Raw response: $result"
exit 1
fi
# List tools and count them
echo "Checking available tools..."
tools_count=$(reloaderoo inspect list-tools --quiet -- node my-server.js | jq '.tools | length')
echo "✅ Found $tools_count tools available"🚨 故障排除
🔄 代理模式问题
服务器不会在代理模式下启动:
# Check if your server runs independently first
node my-dev-server.js
# Then try with reloaderoo proxy to validate configuration
reloaderoo proxy -- node my-dev-server.jsMCP客户端的连接问题:
# Enable debug logging to see what's happening
reloaderoo proxy --log-level debug -- node my-server.js
# Check system info and configuration
reloaderoo info --verbose在代理模式下重启失败:
# Increase restart timeout
reloaderoo proxy --restart-timeout 60000 -- node my-server.js
# Check restart limits
reloaderoo proxy --max-restarts 5 -- node my-server.js🔍 CLI模式问题
CLI命令失败:
# Test basic connectivity first
reloaderoo inspect ping -- node my-server.js
# Enable debug logging for CLI commands
reloaderoo inspect list-tools --log-level debug -- node my-server.jsJSON解析错误:
# Use --raw flag to see unformatted output
reloaderoo inspect server-info --raw -- node my-server.js
# Ensure your server outputs valid JSON
node my-server.js | head -10常规调试模式
# Get detailed information about what's happening
reloaderoo proxy --debug -- node my-server.js # For proxy mode
reloaderoo inspect list-tools --log-level debug -- node my-server.js # For CLI mode
# View system diagnostics
reloaderoo info --verbose🤝 贡献
我们欢迎捐款!请看 贡献.md 作为指导方针。
开发设置
git clone https://github.com/cameroncooke/reloaderoo.git
cd reloaderoo
npm install
npm run build
npm test运行测试
npm run test # All tests (unit, integration, E2E)
npm run test:unit # Unit tests only
npm run test:integration # Integration tests only
npm run test:e2e # End-to-end tests only
npm run test:coverage # Test coverage report测试指南: 看 docs/TEST_GUIDELINES.md 全面的测试标准和最佳实践。
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🔗 相关项目
- XcodeBuildMCP -用于Xcode开发工作流自动化的MCP服务器
