MCP Create Server
一个动态服务,用于创建和管理模型上下文协议 (MCP) 服务器,允许用户生成、自定义和控制多个作为子进程的 MCP 服务器。
Tools
create-server-from-template
Create a new MCP server from a template. 以下のテンプレートコードをベースに、ユーザーの要求に合わせたサーバーを実装してください。 言語に応じて適切なテンプレートを選択し、必要に応じて機能を追加・変更してください。 TypeScriptテンプレート: ```typescript import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js"; const server = new Server({ name: "dynamic-test-server", version: "1.0.0" }, { capabilities: { tools: {} } }); // ここでツールを実装してください server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [{ name: "echo", description: "Echo back a message", inputSchema: { type: "object", properties: { message: { type: "string" } }, required: ["message"] } }] }; }); server.setRequestHandler(CallToolRequestSchema, async (request) => { if (request.params.name === "echo") { // TypeScriptの型を適切に扱うため、型アサーションを使用 const message = request.params.arguments.message as string; // または any を使う: const message: any = request.params.arguments.message; return { content: [ { type: "text", text: `Echo: ${message}` } ] }; } throw new Error("Tool not found"); }); // Server startup const transport = new StdioServerTransport(); server.connect(transport); ``` Pythonテンプレート: ```python import asyncio from mcp.server import Server from mcp.server.stdio import stdio_server app = Server("dynamic-test-server") @app.list_tools() async def list_tools(): return [ { "name": "echo", "description": "Echo back a message", "inputSchema": { "type": "object", "properties": { "message": {"type": "string"} }, "required": ["message"] } } ] @app.call_tool() async def call_tool(name, arguments): if name == "echo": return [{"type": "text", "text": f"Echo: {arguments.get('message')}"}] raise ValueError(f"Tool not found: {name}") async def main(): async with stdio_server() as streams: await app.run( streams[0], streams[1], app.create_initialization_options() ) if __name__ == "__main__": asyncio.run(main()) ``` 注意事項: - TypeScript実装時は、引数の型を適切に扱うために型アサーション(as string)を使用するか、 明示的に型を宣言してください(例:const value: string = request.params.arguments.someValue)。 - 複雑な型を扱う場合は、interface や type を定義して型安全性を確保することをお勧めします。 ユーザーの要求に応じて上記のテンプレートを参考にカスタマイズしてください。その際、基本的な構造を維持しつつ、ツール名や機能を変更できます。
execute-tool
Execute a tool on a server
get-server-tools
Get the tools available on a server
delete-server
Delete a server
list-servers
List all running servers
README
MCP 创建服务器
一个动态的 MCP 服务器管理服务,可以动态地创建、运行和管理模型上下文协议 (MCP) 服务器。该服务本身充当一个 MCP 服务器,并启动/管理其他 MCP 服务器作为子进程,从而实现灵活的 MCP 生态系统。
<a href="https://glama.ai/mcp/servers/lnl6xjkkeq"> <img width="380" height="200" src="https://glama.ai/mcp/servers/lnl6xjkkeq/badge" alt="Create Server MCP server" /> </a>
主要特性
- 动态创建和执行 MCP 服务器代码
- 仅支持 TypeScript(计划在未来版本中支持 JavaScript 和 Python)
- 在子 MCP 服务器上执行工具
- 服务器代码更新和重启
- 移除不必要的服务器
安装
注意:推荐使用 Docker 运行此服务
Docker 安装(推荐)
# 构建 Docker 镜像
docker build -t mcp-create .
# 运行 Docker 容器
docker run -it --rm mcp-create
手动安装(仅限 TypeScript)
# 克隆仓库
git clone https://github.com/tesla0225/mcp-create.git
cd mcp-create
# 安装依赖
npm install
# 构建
npm run build
# 运行
npm start
与 Claude Desktop 集成
将以下内容添加到您的 Claude Desktop 配置文件 (claude_desktop_config.json):
{
"mcpServers": {
"mcp-create": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-create"]
}
}
}
可用工具
| 工具名称 | 描述 | 输入参数 | 输出 |
|---|---|---|---|
| create-server-from-template | 从模板创建 MCP 服务器 | language: string | { serverId: string, message: string } |
| execute-tool | 在服务器上执行工具 | serverId: string<br>toolName: string<br>args: object | 工具执行结果 |
| get-server-tools | 获取服务器工具列表 | serverId: string | { tools: ToolDefinition[] } |
| delete-server | 删除服务器 | serverId: string | { success: boolean, message: string } |
| list-servers | 获取正在运行的服务器列表 | none | { servers: string[] } |
使用示例
创建新服务器
{
"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 使用率、文件数量等的限制
- 进程监控: 监控并强制终止僵尸或失控进程
- 路径验证: 正确验证文件路径以防止目录遍历攻击
许可证
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。