MCP 创建服务器
动态 MCP 服务器管理服务,用于动态创建、运行和管理模型上下文协议 (MCP) 服务器。此服务本身充当 MCP 服务器,并以子进程的形式启动/管理其他 MCP 服务器,从而实现灵活的 MCP 生态系统。
主要特点
- MCP 服务器代码的动态创建和执行
- 仅支持 TypeScript(计划在未来版本中支持 JavaScript 和 Python)
- 在子 MCP 服务器上执行工具
- 服务器代码更新并重启
- 删除不必要的服务器
安装
注意:Docker 是运行此服务的推荐方式
Docker 安装(推荐)
# Build Docker image
docker build -t mcp-create .
# Run Docker container
docker run -it --rm mcp-create
手动安装(仅限 TypeScript)
# Clone repository
git clone https://github.com/tesla0225/mcp-create.git
cd mcp-create
# Install dependencies
npm install
# Build
npm run build
# Run
npm start
与 Claude Desktop 集成
将以下内容添加到您的 Claude Desktop 配置文件( claude_desktop_config.json
)中:
{
"mcpServers": {
"mcp-create": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-create"]
}
}
}
可用工具
工具名称 | 描述 | 输入参数 | 输出 |
---|
从模板创建服务器 | 从模板创建 MCP 服务器 | 语言:字符串 | { 服务器 ID:字符串,消息:字符串 } |
执行工具 | 在服务器上执行工具 | serverId: stringtoolName: stringargs: 对象 | 工具执行结果 |
获取服务器工具 | 获取服务器工具列表 | 服务器ID:字符串 | { 工具:工具定义[] } |
删除服务器 | 删除服务器 | 服务器ID:字符串 | { 成功:布尔值,消息:字符串 } |
列表服务器 | 获取正在运行的服务器列表 | 没有任何 | { 服务器:字符串[] } |
使用示例
创建新服务器
{
"name": "create-server-from-template",
"arguments": {
"language": "typescript"
}
}
执行工具
{
"name": "execute-tool",
"arguments": {
"serverId": "ba7c9a4f-6ba8-4cad-8ec8-a41a08c19fac",
"toolName": "echo",
"args": {
"message": "Hello, dynamic MCP server!"
}
}
}
技术规格
- Node.js 18 或更高版本
- TypeScript(必需)
- 依赖项:
- @modelcontextprotocol/sdk:MCP 客户端/服务器实现
- child_process(Node.js内置):子进程管理
- fs/promises(Node.js 内置):文件操作
- uuid:唯一服务器ID生成
安全注意事项
- **代码执行限制:**当服务执行任意代码时,请考虑沙盒
- **资源限制:**设置内存、CPU 使用率、文件数量等的限制。
- **进程监控:**监控并强制终止僵尸进程或失控进程
- **路径验证:**正确验证文件路径以防止目录遍历攻击
执照
麻省理工学院