MCP重新加载器
一个使用Claude Code构建MCP(模型上下文协议)服务器的热重载开发工具。该工具使Claude Code能够在修改MCP工具时动态重新加载它们,使其非常适合迭代开发,Claude Code可以实时编写和测试MCP工具。
概述
MCP Reloader是专门为使用Claude Code构建MCP工具的开发人员设计的。它解决了常见的开发痛点,即每当修改服务器工具时,MCP客户端都需要重新启动。通过实现文件监视和 tools/list_changed 通知,Claude Code可以修改工具并立即测试它们,而无需手动重新启动。
Claude代码开发的关键特性
- 实时工具开发:Claude Code可以编写、修改和测试MCP工具,而无需重新启动
- 动态工具加载:自动从以下位置加载JavaScript工具
tools/目录 - 即时反馈循环:更改会立即反映在MCP客户端中
- 文件监视:使用chokidar实时检测文件更改
- 工艺包装:用热重载功能包裹任何LSP/MCP流程
- 配置更改时自动重新启动:查看配置文件并在需要时重新启动
Claude Code快速入门
1.创建新的MCP项目
mkdir my-mcp-tools
cd my-mcp-tools
mkdir tools2.配置克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"my-tools": {
"command": "npx",
"args": ["mcp-reloader"],
"cwd": "/path/to/my-mcp-tools"
}
}
}3.让Claude Code创建工具
现在,Claude Code可以在 tools/ 目录,它们将自动可用,而无需重新启动Claude Desktop!
示例:Claude代码创建工具
以下是Claude Code如何创建一个立即可用的工具:
// tools/search-files.js
export default {
name: "search_files",
description: "Search for files matching a pattern",
inputSchema: {
type: "object",
properties: {
pattern: {
type: "string",
description: "Glob pattern to search for files"
},
directory: {
type: "string",
description: "Directory to search in",
default: "."
}
},
required: ["pattern"]
},
handler: async ({ pattern, directory = "." }) => {
const { glob } = await import('glob');
const files = await glob(pattern, { cwd: directory });
return `Found ${files.length} files:\n${files.join('\n')}`;
}
};Claude Code可以创建此文件,它将立即可用!
安装
# Global installation
npm install -g mcp-reloader
# Or use directly with npx (recommended)
npx mcp-reloader --help用法
基本服务器启动
# Start default MCP server with hot-reload
npx mcp-reloader
# Or if installed globally
mcp-reloader使用包含模式
查看其他文件,并在更改时重新启动该过程:
# Watch configuration files
npx mcp-reloader --include "config/**/*.json" --include "src/lib/**/*.js"
# Or use environment variable
MCP_HOT_RELOAD_INCLUDE='config/**/*.json,src/lib/**/*.js' npx mcp-reloader包装自定义LSP服务器
用热重载功能包装任何LSP服务器:
# Wrap a Python LSP server
npx mcp-reloader --include "**/*.yaml" -- python my-lsp-server.py --port 3000
# Wrap a Node.js server with complex arguments
npx mcp-reloader --include "**/*.ts" -- node --experimental-specifier-resolution=node ./dist/server.js --config ./config.json
# Legacy cmd: format (still supported)
npx mcp-reloader cmd:python server.py --port 3000示例:包装现有MCP服务器
以下是如何向任何MCP服务器添加热重载。此示例封装了一个简单的echo服务器:
{
"mcpServers": {
"echo-with-reload": {
"command": "npx",
"args": [
"mcp-reloader",
"--include", "examples/echo-server/config.json",
"--",
"node",
"examples/echo-server/server.js"
]
}
}
}当 config.json 更改后,整个echo服务器将自动重新启动。
命令行参数
--包括图案
指定要监视的文件的全局模式。当匹配的文件发生变化时,整个过程会重新启动。
# Single pattern
npx mcp-reloader --include "config.json"
# Multiple patterns
npx mcp-reloader --include "**/*.yaml" --include "lib/**/*.js"--分离器
一切之后 -- 被视为命令及其参数。这使得在不逃避的情况下传递复杂的论点变得容易。
# Simple command
npx mcp-reloader -- python server.py --port 3000
# Complex Node.js arguments
npx mcp-reloader --include "**/*.ts" -- node --experimental-specifier-resolution=node ./dist/server.js --config ./config.json
# Arguments with spaces and special characters
npx mcp-reloader -- python script.py --message "Hello World!" --path "/path with spaces/"运作原理
两级重装策略
- 工具文件 (
tools/*.js):热重新加载,无需重新启动进程
- chokidar检测到文件更改 - 工具通过缓存破坏动态导入 - tools/list_changed 向客户端发送通知 - MCP客户端可以立即使用更新的工具
- 包含图案文件:全过程重新启动
- Wrapper进程监视指定的glob模式 - 更改后,整个服务器进程将重新启动 - 适用于配置文件或核心依赖关系
建筑
┌─────────────┐ ┌─────────────┐ ┌──────────────┐
│ MCP Client │────▶│ Wrapper │────▶│ MCP Server │
└─────────────┘ └─────────────┘ └──────────────┘
│ │
▼ ▼
File Watching Tool Loading
(--include) (tools/*.js)预期行为
初始启动
- 服务器从加载所有工具
tools/ - 初始工具立即可用
- 客户端收到工具列表
添加工具
- 创建新文件(例如。,
tools/hello.js) - 服务器检测到新文件
- 工具自动加载
tools/list_changed通知已发送- 工具立即在客户端可用
修改工具
- 编辑现有文件(例如。,
tools/echo.js) - 服务器检测到更改
- 工具重新加载了新的实现
tools/list_changed通知已发送- 立即更新行为
删除工具
- 删除文件(例如。,
tools/time.js) - 服务器检测到删除
- 工具已从可用工具中删除
tools/list_changed通知已发送- 工具不再可调用
包括图案更改
- 修改观看的文件(例如。,
config.json) - 包装器检测到更改
- 整个服务器进程重新启动
- 所有工具都重新加载了新配置
地方发展
对于开发mcp重载器本身:
# Clone and install
git clone https://github.com/mizchi/mcp-reloader.git
cd mcp-reloader
npm install
# Build TypeScript
npm run build
# Run tests
npm test
# Run development server
npm run dev
# Test hot-reload functionality
./test-include.sh与类似工具的比较
| 工具 | 用例 | 状态保存 | MCP集成 |
|---|---|---|---|
| mcp装弹机 | MCP/LSP服务器 | 两级策略 | 原生支持 |
| 节点 | 通用 | 否(完全重启) | 手动设置 |
| tsx手表 | 仅支持TypeScript | 否(完全重启) | 否 |
| 面包——热 | Bun运行时 | 是 | 否 |
贡献
欢迎投稿!请随时提交拉取请求。
许可证
麻省理工学院
致谢
该项目实现了 模型上下文协议 工具热重载规范,专门用于增强Claude Code开发体验。
