MCP Create Server

MCP Create Server

一个动态服务,用于创建和管理模型上下文协议 (MCP) 服务器,允许用户生成、自定义和控制多个作为子进程的 MCP 服务器。

Category
访问服务器

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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选