MCP创建增强
一 加强版 动态MCP服务器管理服务,动态创建、运行和管理模型上下文协议(MCP)服务器。该服务本身作为MCP服务器运行,并将其他MCP服务器作为子进程进行生成/管理,从而实现了一个强大而灵活的MCP生态系统。
🔄 增强版
这是一个 增强和改进版本 属于的 tesla0225/mcp创建 具有重大改进和新功能。
🌟 主要特点
- 动态MCP服务器创建:动态创建和运行MCP服务器代码
- 多语言支持:TypeScript、JavaScript和Python服务器模板
- 参数验证:使用正确的MCP错误代码进行严格的JSON模式验证(-32602)
- 服务器持久性:在磁盘中保存/加载/删除服务器
- 工具执行:在子MCP服务器上执行工具并进行验证
- 服务器管理:根据需要更新、重新启动和删除服务器
- 强大的Python支持:修复了Python服务器稳定性问题
🔧 最近的改进
✨ 新功能
- MCP参数验证:使用正确的错误代码进行严格验证(无效参数为-32602)
- 服务器持久性:将服务器保存到磁盘,稍后重新加载
- 增强的Python支持:修复了Python服务器的稳定性和关闭问题
- 更好的错误处理:改进了错误消息和MCP合规性
🐛 漏洞修补
- 修复了Python服务器在创建后立即关闭的问题
- 更正了要使用的管道安装
python3 -m pip - 修复了重复进程生成问题
- 改进了Python模板中的EOF处理
- 更好的信号处理和优雅的关机
🔄 与原版的差异
此增强版本比 原始mcp创建:
| 功能 | 原始 | 增强 |
|---|---|---|
| 参数验证 | ❌ 缺少参数的默认值 | ✅ 带有MCP错误的严格JSON模式验证 |
| Python支持 | ⚠️ 不稳定,立即关闭 | ✅ 稳健、固定的稳定性问题 |
| 服务器持久性 | ❌ 不可用 | ✅ 在磁盘中保存/加载/删除服务器 |
| 错误处理 | ⚠️ 基本错误消息 | ✅ 正确的MCP错误代码(-32602、-32601) |
| 流程管理 | ⚠️ 重复进程生成 | ✅ 清洁单流程管理 |
| 文档 | ⚠️ 法语评论,基本文档 | ✅ 带示例的完整英文文档 |
原始项目: tesla0225/mcp创建
📦 安装
注意:Docker是运行此服务的推荐方法
Docker安装(推荐)
# Build the Docker image
docker build -t mcp-create .
# Run the Docker container
docker run -it --rm mcp-create手动安装
# Clone the repository
git clone https://github.com/PlumyCat/mcp-create-enhanced.git
cd mcp-create-enhanced
# Install dependencies
npm install
# Build
npm run build
# Run
npm start测试本地安装
对代码进行更改后,您可以在本地进行测试:
# Rebuild after changes
npm run build
# Test the server directly (it will wait for MCP protocol input)
npm start
# Or test with a simple echo command
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | npm start在Claude Desktop中使用本地版本
要在Claude Desktop中使用修改后的本地版本,请更新您的 claude_desktop_config.json:
{
"mcpServers": {
"mcp-create-local": {
"command": "node",
"args": ["./build/index.js"],
"cwd": "/path/to/your/mcp-create-enhanced"
}
}
}注: 替换 /path/to/your/mcp-create-enhanced 使用本地存储库的实际路径。
使用本地更改构建Docker镜像
要使用本地更改创建Docker映像,请执行以下操作:
# Build Docker image with your changes
docker build -t mcp-create-local .
# Test the Docker image
docker run -it --rm mcp-create-local
# Use with Claude Desktop
# Update claude_desktop_config.json:
{
"mcpServers": {
"mcp-create-local": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-create-local"]
}
}
}🤖 Claude桌面集成
将以下内容添加到您的Claude Desktop配置文件中(claude_desktop_config.json):
{
"mcpServers": {
"mcp-create": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-create"]
}
}
}🛠️ 可用工具
| 工具名称 | 描述 | 输入参数 | 输出 |
|---|---|---|---|
| 从模板创建服务器 | 从模板创建MCP服务器 | 语言:string |
代码?:string 依赖?:object |{服务器ID:string,消息:string}| |执行工具|在服务器上执行工具|serverId:string 工具名称:字符串 args:对象|工具执行结果| |获取服务器工具|获取服务器工具列表|serverId:string |{工具:工具定义\[\]}| |delete server |删除服务器|服务器ID:string |{成功:布尔值,消息:string}| |列出服务器|获取正在运行的服务器列表|无|{服务器:string\[\]}| |保存服务器|将服务器保存到磁盘|serverId:string name:string |成功消息| |列出已保存的服务器|列出已保存服务器|无|已保存服务器数组| |加载已保存的服务器|加载已保存服务器|saveServerId:string |新服务器ID| |delete保存的服务器|删除保存的服务器|saveServerId:string |成功消息|
📋 使用示例
创建新服务器
{
"name": "create-server-from-template",
"arguments": {
"language": "python",
"code": "# Custom Python MCP server code here"
}
}执行带有验证功能的工具
{
"name": "execute-tool",
"arguments": {
"serverId": "ba7c9a4f-6ba8-4cad-8ec8-a41a08c19fac",
"toolName": "echo",
"args": {
"message": "Hello, dynamic MCP server!"
}
}
}参数验证示例
如果您尝试执行缺少必需参数的工具:
{
"name": "execute-tool",
"arguments": {
"serverId": "ba7c9a4f-6ba8-4cad-8ec8-a41a08c19fac",
"toolName": "echo",
"args": {}
}
}您将收到正确的MCP错误响应:
{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid parameters: Missing required parameter: 'message'"
}
}🔄 修改后完成工作流
- 进行更改 在源代码中
- 重建Docker:
docker build -t mcp-create-local . - 测试:
docker run -it --rm mcp-create-local - 更新克劳德桌面 必要时进行配置
💡 实用技巧
- 不同标签:如果要保留旧版本,请使用其他标签:
docker build -t mcp-create-local:v2 .- 清理:删除未使用的旧图像:
docker image prune- 验证:列出您的图像以确认:
docker images | grep mcp-create🏗️ 技术规格
- Node.js 18或更高版本
- TypeScript(必填)
- 依赖关系:
- @modelcontextprotocol/sdk:MCP客户端/服务器实现 - child_process(内置Node.js):子进程管理 - fs/colves(内置Node.js):文件操作 - uuid:唯一服务器ID生成 - zod:JSON模式验证
🔒 安全考虑
- 代码执行限制:在服务执行任意代码时考虑沙盒
- 资源限制:设置内存、CPU使用率、文件计数等限制。
- 过程监控:监视并强制终止僵尸进程或失控进程
- 路径验证:正确验证文件路径以防止目录遍历攻击
- 参数验证:所有工具参数在执行前都会根据JSON模式进行验证
🧪 测试
该项目包括对MCP参数的全面验证:
- ✅ 有效参数:正常执行
- ✅ 缺少必要参数:返回MCP错误-32602,并显示明确消息
- ✅ 参数类型错误:返回MCP错误-32602和类型详细信息
- ✅ 未知工具:返回MCP错误-32601
- ✅ 可选参数:正确处理
📄 许可证
麻省理工学院
🤝 贡献
请随时提交问题和拉取请求。在Claude Code的帮助下,该项目得到了增强,提供了强大的MCP服务器管理功能。
______________________________________________________________________
🧪 生成于 克劳德代码
合著者:Claude
