1. 前言
过去一年,大语言模型(LLM)已经成为开发者日常工作的重要助手。
然而,一个明显的问题是:
AI 很聪明,但它不了解你的环境。
例如:
-
AI 不知道 Jira 里的工单状态
-
AI 无法查看 GitLab 的代码
-
AI 无法访问服务器日志
-
AI 不知道 Docker 容器是否正常
-
AI 无法查询数据库
为了让 AI 能够安全、标准化地访问这些外部资源,Anthropic 于 2024 年提出了 MCP(Model Context Protocol)。
MCP 正在成为 AI Agent 生态的重要基础设施。
2. 什么是 MCP?
MCP(Model Context Protocol)是一种开放协议,用于连接:
-
AI 模型
-
工具(Tools)
-
数据源(Data Sources)
-
外部服务(Services)
简单来说:
MCP 是 AI 世界的 USB-C 接口。
在 USB-C 出现之前:
-
手机有不同充电口
-
相机有不同接口
-
电脑有各种转接头
每个设备都需要单独适配。
AI 工具生态也面临类似问题。
过去:
ChatGPT ↔ GitHub
Claude ↔ Jira
Cursor ↔ Database
每种组合都需要单独开发。
MCP 出现后:
AI Client
│
▼
MCP Protocol
│
┌──┼──┬───┐
▼ ▼ ▼ ▼
GitHub Jira Redis MySQL
任何支持 MCP 的客户端,都可以连接任何支持 MCP 的服务。
3. MCP 架构
MCP 主要由三部分组成:
┌──────────────┐
│ AI Client │
└──────┬───────┘
│ MCP
▼
┌──────────────┐
│ MCP Server │
└──────┬───────┘
│
┌─────┼─────┐
▼ ▼ ▼
Tool Data Service
3.1 MCP Client
客户端通常是 AI 应用。
例如:
-
Claude Desktop
-
Cursor
-
Windsurf
-
VS Code AI 插件
-
ChatGPT(部分场景)
用户通过自然语言发起请求:
查询 TICKET-1119658
客户端将请求发送给模型。
3.2 MCP Server
MCP Server 负责向模型暴露能力。
例如:
GitHub Server
Jira Server
Filesystem Server
PostgreSQL Server
主要职责:
-
接收请求
-
执行操作
-
返回结果
3.3 Tool
Tool 是 MCP 中最核心的概念。
例如:
{
"name": "get_issue",
"description": "Get Jira issue information"
}
AI 可以自动决定是否调用。
用户:
查询工单 TICKET-1119658
AI:
调用 get_issue()
然后返回结果。
4. MCP 能解决什么问题?
4.1 AI 访问企业系统
例如:
查询 Jira 工单
查看 GitLab MR
读取 Confluence 文档
过去:
复制链接
复制内容
贴给 AI
现在:
直接询问 AI
4.2 AI 访问本地文件
例如:
分析当前项目结构
AI 可以直接读取:
src/
include/
CMakeLists.txt
README.md
而无需手动上传。
4.3 AI 执行命令
例如:
查看 Docker 状态
AI 调用:
docker ps
返回:
zcc_freeswitch
zcc_opensips
zcc_record_server
4.4 AI 查询数据库
例如:
查询最近失败的呼叫
AI 调用:
SELECT *
FROM call_record
WHERE result='failed';
并生成分析结果。
5. MCP 与传统插件的区别
| 对比项 | 传统插件 | MCP |
|---|---|---|
| 标准化 | ❌ | ✅ |
| 跨平台 | ❌ | ✅ |
| 自动发现 | ❌ | ✅ |
| 多模型支持 | ❌ | ✅ |
| 易扩展 | 一般 | 很强 |
传统插件通常绑定某个平台。
例如:
ChatGPT Plugin
只能用于 ChatGPT。
而 MCP 可以被多个 AI 客户端复用。
6. MCP 与 Function Calling 的区别
很多开发者容易混淆。
6.1 Function Calling
模型调用预定义函数:
get_weather(city)
特点:
-
函数固定
-
由开发者预先定义
-
作用范围有限
6.2 MCP
MCP 是完整协议。
包含:
-
Tool
-
Resource
-
Prompt
-
Context
支持动态发现能力。
例如:
AI:
当前有哪些工具?
MCP:
docker_ps
grep_log
get_issue
模型无需提前知道这些工具。
7. Python 开发 MCP Server
官方 Python SDK 使用非常简单。
7.1 安装
pip install mcp
7.2 创建服务
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo")
7.3 定义工具
@mcp.tool()
def hello(name: str):
return f"Hello {name}"
7.4 启动服务
mcp.run()
这样一个最简单的 MCP Server 就完成了。
8. MCP 在 VoIP 场景中的应用
对于 VoIP、FreeSWITCH、OpenSIPS 工程师来说,MCP 有非常大的价值。
例如用户日常工作中的信令链路:
SBC
↓
router_opensips
↓
lb_opensips
↓
FreeSWITCH
↓
Contact Center
排障时经常需要:
docker ps
grep trace_id
grep call-id
查看 SIP 信令
查看 FreeSWITCH 日志
查看 Jira
步骤繁琐且重复。
9. 构建 SIP Troubleshooting MCP
可以将常用能力封装为工具。
9.1 工具定义
@mcp.tool()
def docker_ps():
pass
@mcp.tool()
def grep_trace(trace_id):
pass
@mcp.tool()
def analyze_sip(call_id):
pass
@mcp.tool()
def get_jira(issue):
pass
9.2 使用示例
输入:
分析这个呼叫:
trace_id=123456
AI 自动执行:
1. 查询容器状态
2. 提取 SIP 日志
3. 分析呼叫流程
4. 检查异常响应
5. 输出结论
整个排障流程可以大幅自动化。
10. MCP 与 Codex Skills 的关系
很多人已经在使用:
VS Code
+ Codex
+ Skills
例如:
-
检查容器状态
-
清理日志
-
分析呼叫流程
这些本质上都是工具封装。
10.1 对比
| 能力 | Skills | MCP |
|---|---|---|
| 运行脚本 | ✅ | ✅ |
| AI 自动发现 | ❌ | ✅ |
| 跨平台共享 | ❌ | ✅ |
| 标准协议 | ❌ | ✅ |
| 多客户端支持 | ❌ | ✅ |
可以理解为:
Skills 是本地自动化脚本,而 MCP 是 AI 工具生态的标准协议。
11. MCP 的未来
目前越来越多的平台开始支持 MCP。
常见的 MCP Server 已经覆盖:
-
GitHub
-
GitLab
-
Jira
-
Slack
-
PostgreSQL
-
MySQL
-
Redis
-
Kubernetes
-
Docker
-
Filesystem
未来企业内部系统也很可能逐步提供 MCP 接口。
届时 AI 将不仅仅是聊天工具,而是真正能够参与开发、运维和故障排查的智能助手。
12. 总结
MCP(Model Context Protocol)是一种用于连接 AI 与外部世界的开放协议。
它的核心价值在于:
-
统一工具调用标准
-
让 AI 访问企业系统
-
支持动态发现工具
-
实现跨平台复用
-
为 AI Agent 提供基础设施
对于研发、运维、VoIP、SRE 等工程师而言,MCP 不只是一个新协议,更可能成为未来 AI 自动化工作流的重要基础。
一句话概括:
如果说大模型是"大脑",那么 MCP 就是连接大脑与现实世界的神经系统。