MCP(Model Context Protocol)入门与实践:让 AI 真正连接你的工具链

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 就是连接大脑与现实世界的神经系统。