Skip to content

5.3 MCP 生态全景——官方 Server、Registry、客户端集成

MCP 不是孤立的技术——它有一个庞大的生态系统。小周在技术评审会后,团队决定采用 MCP。他最后想了解:生态里有什么现成的东西可以用?团队如何高效地使用 MCP?


官方 MCP Server

Anthropic 提供了 7 个官方参考实现:

🧪Everything
测试用,暴露所有原语
npx @modelcontextprotocol/server-everything
🌐Fetch
HTTP 请求获取网页内容
npx @modelcontextprotocol/server-fetch
📂Filesystem
读写指定目录的文件
npx @modelcontextprotocol/server-filesystem /path
🔀Git
Git 操作(历史、分支、差异)
npx @modelcontextprotocol/server-git
🧠Memory
知识图谱持久化记忆
npx @modelcontextprotocol/server-memory
💭Sequential Thinking
结构化思考工具
npx @modelcontextprotocol/server-sequential-thinking
🕐Time
获取当前时间和时区转换
npx @modelcontextprotocol/server-time

此外还有社区维护的常用 Server(GitHub、Postgres、Slack 等),配置方式相同。


MCP Registry

MCP Registry 是公开 MCP Server 的集中式元数据仓库。

功能:

  • 命名空间管理:通过 DNS 验证的组织命名空间
  • REST API:发现和搜索 Server
  • 标准化格式server.json 元数据

定位:Registry 旨在被下游聚合器/市场消费,而非直接被 Host 应用使用。

server.json 元数据示例

发布到 Registry 的 Server 需要一个 server.json 文件:

json
{
  "name": "my-database-server",
  "version": "1.2.0",
  "description": "MCP Server for querying PostgreSQL databases",
  "repository": {
    "url": "https://github.com/example/mcp-db-server"
  },
  "tools": [
    { "name": "query", "description": "Execute read-only SQL queries" },
    { "name": "list-tables", "description": "List all tables in the database" }
  ],
  "transport": "stdio",
  "runtime": "python",
  "installCommand": "pip install mcp-db-server"
}

客户端集成

哪些 AI 工具支持 MCP:

客户端ResourcesPromptsToolsSamplingOAuth
Claude Desktop
Claude (Web)
VS Code
Cursor
ChatGPT
Windsurf

配置方式

Claude Desktop:编辑 claude_desktop_config.json

VS Code:在 Settings 中配置 mcp.servers

Cursor:Settings → MCP,格式与 Claude Desktop 相同

Claude Code:在 .claude/settings.json 中配置

json
// 通用配置格式
{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"],
      "env": { "API_KEY": "xxx" }
    }
  }
}

MCPB——一键安装

MCPB(Desktop Extensions)提供一键安装 MCP Server 的方式:

  1. 开发者将 Server 打包为 .mcpb 文件
  2. 用户双击 .mcpb 文件
  3. Claude Desktop 等应用自动安装和配置
  4. 无需手动编辑 JSON

适合企业内部工具分发和非技术用户。


CI/CD 中的 MCP

小周的团队用 GitHub Actions 做持续集成。MCP Inspector CLI 模式可以集成到 CI/CD pipeline 中:

yaml
# .github/workflows/mcp-test.yml
name: MCP Server Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: pip install mcp

      # 列出工具(验证 Server 能启动、工具正确注册)
      - name: List tools
        run: |
          npx @modelcontextprotocol/inspector --cli python server.py \
            --method tools/list

      # 调用工具(验证核心功能)
      - name: Test create-task tool
        run: |
          npx @modelcontextprotocol/inspector --cli python server.py \
            --method tools/call --tool-name create-task \
            --tool-arg title="CI测试任务" --tool-arg priority="low"

关键实践:

  • 每次 push 自动验证 Server 能启动、工具正确注册
  • 核心工具的参数变更会被自动发现
  • tools/list 输出可用于对比工具 Schema 是否意外变更

Agent 框架集成

MCP 不只能在 Claude Desktop 中使用——主流 Agent 框架都支持 MCP 工具:

📝 Todo MCP Server(写一次)
↑ 连接 ↑ │ ↑ 连接 ↑ │ ↑ 连接 ↑
LangChain / LangGraph
langchain_mcp_adapters
Google ADK
MCPToolset
Claude Desktop
内置 MCP Client

LangChain / LangGraph

python
# langchain_mcp_agent.py
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_anthropic import ChatAnthropic

async def main():
    # 连接 MCP Server
    async with MultiServerMCPClient({
        "todo": {
            "command": "python",
            "args": ["server.py"],
            "transport": "stdio"
        }
    }) as client:
        # MCP 工具自动转换为 LangChain 工具
        tools = client.get_tools()
        agent = create_react_agent(ChatAnthropic(model="claude-sonnet-4-20250514"), tools)

        result = await agent.ainvoke({"messages": "添加待办:学习 MCP 与 Agent 框架集成"})
        print(result["messages"][-1].content)

Google ADK

python
# adk_mcp_agent.py
from google.adk.tools.mcp_tool import MCPToolset
from google.adk.agents import Agent

agent = Agent(
    name="todo_agent",
    model="gemini-2.0-flash",
    tools=[MCPToolset(
        server_command="python",
        server_args=["server.py"]
    )]
)

关键点:无论用什么框架,MCP Server 的实现方式完全相同——只需写一次 Server,所有 Agent 框架都能用。


社区生态

MCP 生态
📂 官方 Server (7个)
🏢 客户端 (6个)
📦 Registry
🔧 工具链 (Smithery, mcpm)
🌐 社区 Server (数千个)
Smithery
Registry——搜索和安装 MCP Server
PulseMCP
社区中心 + 新闻
mcpm
Homebrew 风格的 MCP 包管理器
Awesome 列表
punkpeye/awesome-mcp-servers 等策展列表,收录数千个社区 Server

社区 Server 覆盖的领域:数据库、云服务、通信工具、开发工具、AI 服务、搜索、监控...


小周的工具箱

小周给自己的项目选了这些 MCP Server:

💻 开发阶段
📂 filesystem🔀 git🌐 fetch🧠 memory
🔧 CI/CD 阶段
🐙 github🗄 postgres
👥 团队共享
🏢 自研 internal-api-server远程 HTTP 部署 + OAuth

本节核心要点

  • 7 个官方参考 Server + 社区数千个 Server 覆盖各种场景
  • MCP Registry 是集中式元数据仓库,供聚合器消费
  • 主流 AI 工具(Claude Desktop、VS Code、Cursor、ChatGPT)都支持 MCP
  • MCPB 提供一键安装方式
  • 选择 Server 时遵循最小权限原则——只连接你需要的

思考题:搜索一下 MCP 社区生态,看看有没有适合你项目需求的现成 Server。如果有,还需要自己开发吗?

参考思路

先在 Smithery(smithery.ai)或 awesome-mcp-servers 列表中搜索你的需求关键词。如果找到合适的 Server,评估:活跃度(最近更新时间)、安全性(代码是否开源可审计)、功能覆盖度。只有在现有 Server 无法满足需求时,才需要自己开发。


← 上一节:设计模式与反模式 | 目录 | 下一节:概念题 →