使用说明
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 noreply@anthropic.com
