SuperAPI AI 工具集

mcp-server-orchestrator

智能体与模型

查看项目

更新于 10-15 10:44

技能介绍

用途

MCP Server Orchestrator 用于管理面向 AI 开发工作流的 MCP(Model Context Protocol)服务器基础设施,帮助完成 MCP 服务器的配置、部署与故障排查。

MCP 架构概览

MCP 采用客户端—服务器—外部 API 的三层结构:

  • MCP Client(如 Claude 等)通过 JSON-RPC 与 MCP Server 通信;
  • MCP Server(工具提供方)再调用外部 API(服务)。

关键概念:

  • Server:通过 MCP 协议提供工具、资源和提示;
  • Client:消费服务器能力(Claude Desktop、Claude Code 等);
  • Transport:通信层(stdio、SSE、WebSocket)。

配置文件位置

不同客户端的配置文件位置不同:

  • Claude Desktop:claude_desktop_config.json;macOS 位于 ~/Library/Application Support/Claude/,Windows 位于 %APPDATA%\Claude\;
  • Claude Code:settings.json 或 MCP 配置,项目级或用户设置;
  • Cline:cline_mcp_settings.json,VS Code 扩展设置。

服务器配置 Schema

配置采用如下结构:

{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": {
        "API_KEY": "value"
      },
      "disabled": false
    }
  }
}

常见服务器类型

Python 服务器(uvx):

{
  "my-python-server": {
    "command": "uvx",
    "args": ["--from", "package-name", "server-command"]
  }
}

Node 服务器(npx):

{
  "my-node-server": {
    "command": "npx",
    "args": ["-y", "@scope/package-name"]
  }
}

本地开发服务器:

{
  "dev-server": {
    "command": "python",
    "args": ["-m", "my_server"],
    "env": {
      "DEBUG": "true"
    }
  }
}

排查工作流

连接问题

先独立验证服务器能否启动:

# 测试 Python 服务器
python -m my_server

# 测试 Node 服务器
npx -y @scope/package-name

检查日志:

  • Claude Desktop:~/Library/Logs/Claude/mcp*.log
  • 关注 JSON-RPC 错误、连接超时

校验 JSON 配置:

python -c "import json; json.load(open('config.json'))"

常见修复方式:

  • 命令使用绝对路径;
  • 确保依赖安装在正确的环境中;
  • 检查 API 密钥/环境变量是否已设置;
  • 修改配置后重启客户端。

认证问题

  • OAuth 流程:确保重定向 URI 配置正确;
  • API 密钥:确认服务器进程可访问环境变量;
  • Token 刷新:检查 token 存储位置与权限。

构建自定义服务器

Python 服务器(FastMCP)

from fastmcp import FastMCP

mcp = FastMCP("my-server")

@mcp.tool()
def my_tool(param: str) -> str:
    """Tool description for the AI."""
    return f"Result: {param}"

@mcp.resource("resource://my-data")
def get_data() -> str:
    """Provide data as a resource."""
    return "Resource content"

if __name__ == "__main__":
    mcp.run()

Node 服务器(MCP SDK)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({ name: "my-server", version: "1.0.0" }, {
  capabilities: { tools: {} }
});

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{
    name: "my_tool",
    description: "Tool description",
    inputSchema: { type: "object", properties: { param: { type: "string" } } }
  }]
}));

const transport = new StdioServerTransport();
await server.connect(transport);

多服务器编排

模块化架构

按领域组织服务器:

{
  "mcpServers": {
    "filesystem": { "command": "...", "args": ["--allowed-dirs", "/projects"] },
    "database": { "command": "...", "env": { "DB_URL": "..." } },
    "api-integrations": { "command": "...", "env": { "API_KEYS": "..." } },
    "custom-tools": { "command": "python", "args": ["-m", "my_tools"] }
  }
}

服务器选择策略

可将服务器视为合成器中的模块,按工作流需求进行组合:

  • 开发工作流:filesystem + git + code-analysis 服务器;
  • 研究工作流:web-search + document + note-taking 服务器;
  • 数据工作流:database + visualization + export 服务器。

性能优化

  • 懒加载:仅启用当前任务所需的服务器;
  • 缓存:对开销较大的操作实现响应缓存;
  • 超时调优:为较慢的外部 API 调整超时;
  • 连接池:在数据库服务器中复用连接。

参考资料

  • references/server-templates.md:常见服务器类型的样板;
  • references/debugging-guide.md:详细的排查流程。