前置阅读:MCP 协议概览
1. MCP Server 分类速查表
🔵 文件与存储
| Server | 功能 | 传输 | 安装 | 安全级别 |
|---|---|---|---|---|
| filesystem | 读写本地文件 | stdio | pip install mcp-server-filesystem | ⚠️ 需路径白名单 |
| Google Drive | 云端文件读写 | stdio | pip install mcp-gdrive | 🔒 OAuth |
| Dropbox | 网盘文件管理 | stdio | pip install mcp-dropbox | 🔒 OAuth |
| R2/S3 | 对象存储 | stdio | pip install mcp-r2 | 🔒 API Key |
🟢 数据库
| Server | 功能 | 传输 | 安装 |
|---|---|---|---|
| SQLite | 轻量数据库查询 | stdio | 内置 / 自定义 |
| PostgreSQL | 生产级 SQL | stdio | pip install mcp-postgres |
| MySQL | 关系型数据库 | stdio | 社区维护 |
| Supabase | PostgreSQL + API | SSE | 自定义 |
🟡 搜索与信息
| Server | 功能 | 传输 | 安装 | 费用 |
|---|---|---|---|---|
| Brave Search | 隐私搜索引擎 | stdio | npx -y @anthropic-ai/mcp-brave-search | Brave API 免费层 |
| DuckDuckGo | 匿名搜索 | stdio | 社区 | 免费 |
| Google Search | 网页搜索 | stdio | pip install mcp-google-search | SerpAPI 付费 |
| Perplexity | AI 搜索 | stdio | 社区 | Perplexity API |
| arXiv | 学术论文检索 | stdio | pip install mcp-arxiv | 免费 |
| Wikipedia | 百科知识查询 | stdio | pip install mcp-wikipedia | 免费 |
🟠 通信与协作
| Server | 功能 | 传输 | 安装 |
|---|---|---|---|
| Slack | 频道消息读取/发送 | stdio | pip install mcp-slack |
| Discord | 服务器消息 | stdio | 社区 |
| Gmail | 邮件读取/发送 | stdio | pip install mcp-gmail |
| Microsoft Teams | 团队消息 | stdio | 社区 |
🔴 开发工具与代码
| Server | 功能 | 传输 | 安装 |
|---|---|---|---|
| GitHub | Repo/PR/Issue 操作 | stdio | npx -y @anthropic-ai/mcp-github-server |
| Git | 本地 Git 操作 | stdio | pip install mcp-git |
| Jira | 项目管理 | stdio | 社区 |
| Linear | 问题跟踪 | stdio | npx -y @anthropic-ai/mcp-linear-server |
| Vercel | 部署管理 | stdio | 社区 |
| Docker | 容器管理 | stdio | pip install mcp-docker |
🟣 AI 与内容生成
| Server | 功能 | 传输 | 安装 |
|---|---|---|---|
| Browser | 网页浏览与交互 | stdio | pip install mcp-server-browser |
| Puppeteer | 无头浏览器 | stdio | npx -y @anthropic-ai/mcp-puppeteer |
| Image Generation | 文生图 | stdio | 社区 (DALL-E / Midjourney API) |
| Text-to-Speech | 语音合成 | stdio | 社区 |
| OCR | 图片文字识别 | stdio | 社区 |
2. 场景化选型建议
场景 A:个人知识管理 Agent
需求:聚合笔记、邮件、文档,构建个人 AI 助手
推荐 Server 组合:
├── filesystem(本地笔记文件)
├── gmail(未读邮件摘要)
├── brave-search(补充网络信息)
└── notion / obsidian(可选知识库)
场景 B:代码审查 Agent
需求:自动分析 PR、检测 Bug、生成审查意见
推荐 Server 组合:
├── github(读取 PR diff)
├── git(本地代码历史)
├── jira / linear(关联需求)
└── browser(验证文档链接)
场景 C:数据分析 Agent
需求:查询数据库、生成可视化、发送报告
推荐 Server 组合:
├── postgres / sqlite(数据查询)
├── filesystem(读取 CSV/Excel)
├── slack / gmail(发送报告)
└── browser(获取外部基准数据)
3. Server 评估框架
用以下四维模型评估第三方 MCP Server:
评估维度 (1-5 分)
├── 响应延迟
│ ├── 1 = >5s(不可接受)
│ ├── 3 = 1-3s(可接受)
│ └── 5 = <500ms(优秀)
│
├── 稳定性
│ ├── 1 = 频繁崩溃
│ ├── 3 = 偶尔超时
│ └── 5 = 99.9% 可用
│
├── 隐私合规
│ ├── 1 = 数据发送至第三方
│ ├── 3 = 本地处理但日志外发
│ └── 5 = 纯本地、零外发
│
└── 社区活跃度
├── 1 = 6个月无更新
├── 3 = 有维护但 Issue 响应慢
└── 5 = 官方维护、活跃社区
建议:生产环境只使用评分 ≥14/20 的 Server。
4. 构建私有 Server 的路线建议
4.1 什么时候自建?
| 情况 | 建议 |
|---|---|
| 内部系统(如公司 CRM) | 必须自建 |
| 特殊数据源(如 IoT 传感器) | 必须自建 |
| 有严格合规要求 | 优先自建 |
| 通用 SaaS(GitHub/Slack) | 用社区版 |
4.2 自建快速启动模板
# scaffold.py — MCP Server 脚手架生成器
import argparse
from pathlib import Path
template = '''
from mcp.server import Server
from mcp.server.stdio import stdio_server
import mcp.types as types
import asyncio
server = Server("{name}")
@server.list_tools()
async def list_tools() -> list[types.Tool]:
return [
types.Tool(
name="hello",
description="示例工具",
inputSchema={{
"type": "object",
"properties": {{"name": {{"type": "string"}}}},
"required": ["name"],
}},
),
]
@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[types.TextContent]:
return [types.TextContent(type="text", text=f"Hello, {{arguments['name']}}")]
async def main():
async with stdio_server(server) as (r, w):
await server.run(r, w, ...)
if __name__ == "__main__":
asyncio.run(main())
'''
def scaffold(name: str):
Path(f"{name}_mcp.py").write_text(template.format(name=name))
print(f"✅ 已生成 {name}_mcp.py")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("name", help="Server 名称")
args = parser.parse_args()
scaffold(args.name)
5. 安全红线清单
□ 绝不允许 MCP Server 执行任意系统命令 (exec / eval)
□ 绝不允许 MCP Server 绕过文件路径白名单
□ 绝不允许 MCP Server 访问未授权的网络资源
□ API Token 必须存入环境变量,绝不硬编码
□ 生产环境必须启用审计日志
□ 敏感操作(写/删)必须二次确认
□ Server 异常退出后不影响主应用稳定性
□ JSON-RPC 消息必须限制大小(防 DoS)
6. 社区资源与发现
| 资源 | 链接 | 说明 |
|---|---|---|
| 官方仓库 | github.com/anthropics/mcp | Anthropic MCP 官方 |
| Server 注册表 | github.com/anthropics/mcp/tree/main/src/example-servers | 官方示例 Server |
| Python SDK | pypi.org/project/mcp | pip install mcp |
| Node SDK | npmjs.com/package/@anthropic-ai/mcp | npx 快速启动 |
| Awesome MCP | github.com/awesome-mcp/servers | 社区维护的 Server 列表 |
FAQ
Q: 同一个 MCP Client 能连接多少个 Server?
A: 理论上无限制,但建议不超过 10 个。工具太多会导致模型选择困难(Tool Choice 质量下降)。
Q: MCP Server 之间能互相调用吗?
A: 标准协议不支持。但可以通过 Agent 层聚合多个 Server,由 Agent 决定调用哪个 Server 的哪个工具。
Q: 没有 Python/Node 环境能用 MCP 吗?
A: 可以。可以用 Docker 运行 MCP Server(将 Server 封装为容器),通过 stdio 或 SSE 连接。
📂 相关阅读:
- MCP 协议概览 — 四大原语与架构
- MCP Server 开发实战 — SQLite/文件系统/GitHub 完整实现
- MCP 客户端集成 — Claude Desktop / Cline / Continue 配置
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。
「llm」更多文章
模型上下文协议(MCP)完整指南:从 Anthropic 标准到 AI 应用互操作性革命
系统拆解 Model Context Protocol(MCP)的设计哲学、协议分层和核心概念:Resources、Prompts、Tools、Sampling。 涵盖 MCP 与 Function Calling、插件系统、API 网关的区别与互补关系。 附架构全景图、协议消息格式详解,以及 MCP 在 Claude Desktop、Cline、Continue 等客户端中的实际运行机制。
多模态语音合成与识别:从 Whisper + TTS 到实时语音交互的 LLM 实践
系统拆解 LLM 语音技术栈:语音识别(ASR / Whisper)、语音合成(TTS / ElevenLabs / Coqui TTS)、语音活动检测(VAD)。 覆盖实时语音交互架构(流式识别 + 流式合成 + 打断机制)、多语言语音克隆、以及语音 Agent 的安全与隐私考量。 附完整的 Whisper API 集成、本地 TTS 部署、WebRTC 实时语音管道代码。
多模态视频分析:从关键帧抽取到时序理解的 LLM 视频理解实战
系统拆解 LLM 视频理解的技术路径:关键帧提取、时序编码(Temporal Modeling)、视觉-时序联合推理。 覆盖 Gemini 1.5 Pro(原生视频)、GPT-4o(帧序列)、Claude(关键帧截图)、Video-LLaMA 四种实现方式。 附视频摘要生成、动作识别、异常检测、教育内容分析四个场景的完整代码与成本优化策略。