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

📅 2026/6/19 22:45:36
MCP(Model Context Protocol)入门与实践:让 AI 真正连接你的工具链
1. 前言过去一年大语言模型LLM已经成为开发者日常工作的重要助手。然而一个明显的问题是AI 很聪明但它不了解你的环境。例如AI 不知道 Jira 里的工单状态AI 无法查看 GitLab 的代码AI 无法访问服务器日志AI 不知道 Docker 容器是否正常AI 无法查询数据库为了让 AI 能够安全、标准化地访问这些外部资源Anthropic 于 2024 年提出了 MCPModel Context Protocol。MCP 正在成为 AI Agent 生态的重要基础设施。2. 什么是 MCPMCPModel 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 Service3.1 MCP Client客户端通常是 AI 应用。例如Claude DesktopCursorWindsurfVS Code AI 插件ChatGPT部分场景用户通过自然语言发起请求查询 ZOOM-1119658客户端将请求发送给模型。3.2 MCP ServerMCP Server 负责向模型暴露能力。例如GitHub Server Jira Server Filesystem Server PostgreSQL Server主要职责接收请求执行操作返回结果3.3 ToolTool 是 MCP 中最核心的概念。例如{ name: get_issue, description: Get Jira issue information }AI 可以自动决定是否调用。用户查询工单 ZOOM-1119658AI调用 get_issue()然后返回结果。4. MCP 能解决什么问题4.1 AI 访问企业系统例如查询 Jira 工单 查看 GitLab MR 读取 Confluence 文档过去复制链接 复制内容 贴给 AI现在直接询问 AI4.2 AI 访问本地文件例如分析当前项目结构AI 可以直接读取src/ include/ CMakeLists.txt README.md而无需手动上传。4.3 AI 执行命令例如查看 Docker 状态AI 调用docker ps返回zcc_freeswitch zcc_opensips zcc_record_server4.4 AI 查询数据库例如查询最近失败的呼叫AI 调用SELECT * FROM call_record WHERE resultfailed;并生成分析结果。5. MCP 与传统插件的区别对比项传统插件MCP标准化❌✅跨平台❌✅自动发现❌✅多模型支持❌✅易扩展一般很强传统插件通常绑定某个平台。例如ChatGPT Plugin只能用于 ChatGPT。而 MCP 可以被多个 AI 客户端复用。6. MCP 与 Function Calling 的区别很多开发者容易混淆。6.1 Function Calling模型调用预定义函数get_weather(city)特点函数固定由开发者预先定义作用范围有限6.2 MCPMCP 是完整协议。包含ToolResourcePromptContext支持动态发现能力。例如AI 当前有哪些工具 MCP docker_ps grep_log get_issue模型无需提前知道这些工具。7. Python 开发 MCP Server官方 Python SDK 使用非常简单。7.1 安装pip install mcp7.2 创建服务from mcp.server.fastmcp import FastMCP mcp FastMCP(demo)7.3 定义工具mcp.tool() def hello(name: str): return fHello {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): pass9.2 使用示例输入分析这个呼叫 trace_id123456AI 自动执行1. 查询容器状态 2. 提取 SIP 日志 3. 分析呼叫流程 4. 检查异常响应 5. 输出结论整个排障流程可以大幅自动化。10. MCP 与 Codex Skills 的关系很多人已经在使用VS Code Codex Skills例如检查容器状态清理日志分析呼叫流程这些本质上都是工具封装。10.1 对比能力SkillsMCP运行脚本✅✅AI 自动发现❌✅跨平台共享❌✅标准协议❌✅多客户端支持❌✅可以理解为Skills 是本地自动化脚本而 MCP 是 AI 工具生态的标准协议。11. MCP 的未来目前越来越多的平台开始支持 MCP。常见的 MCP Server 已经覆盖GitHubGitLabJiraSlackPostgreSQLMySQLRedisKubernetesDockerFilesystem未来企业内部系统也很可能逐步提供 MCP 接口。届时 AI 将不仅仅是聊天工具而是真正能够参与开发、运维和故障排查的智能助手。12. 总结MCPModel Context Protocol是一种用于连接 AI 与外部世界的开放协议。它的核心价值在于统一工具调用标准让 AI 访问企业系统支持动态发现工具实现跨平台复用为 AI Agent 提供基础设施对于研发、运维、VoIP、SRE 等工程师而言MCP 不只是一个新协议更可能成为未来 AI 自动化工作流的重要基础。一句话概括如果说大模型是“大脑”那么 MCP 就是连接大脑与现实世界的神经系统。