动态MCP服务器管理服务

一个增强版的动态MCP服务器管理服务,能够创建、运行和管理Model Context Protocol (MCP)服务器,支持多语言模板、参数验证和服务器持久化功能。

  • by PlumyCat
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 plumycat/mcp-create-enhanced

使用说明

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'"
  }
}

🔄 修改后完成工作流

  1. 进行更改 在源代码中
  2. 重建Docker: docker build -t mcp-create-local .
  3. 测试: docker run -it --rm mcp-create-local
  4. 更新克劳德桌面 必要时进行配置

💡 实用技巧

  • 不同标签:如果要保留旧版本,请使用其他标签:

    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