游乐游手机版
首页/AI教程/文章详情

MCP模型上下文协议技术深度理解第一篇

时间:2026-06-06 17:01
引言 网上一直缺少一份既通俗易懂又有技术深度的MCP技术文档,所以这里通过梳理官方文档,从架构到实战,力求做到小白也能听懂。这是一个不小的挑战,如果文中间出现笔误,欢迎在评论区指正。 MCP是什么 Model Context Protocol(MCP)是 Anthropic 在2024年11月发布的

引言

网上一直缺少一份既通俗易懂又有技术深度的MCP技术文档,所以这里通过梳理官方文档,从架构到实战,力求做到小白也能听懂。这是一个不小的挑战,如果文中间出现笔误,欢迎在评论区指正。

MCP是什么

Model Context Protocol(MCP)是 Anthropic 在2024年11月发布的一项开放标准协议,目的是给大语言模型应用提供统一的方式来连接外部数据源和工具。它被戏称为"AI的Type-C接口"。

不过,单把它类比成Type-C接口,其实有点草率。

先划重点:MCP是一种协议,一种标准!重要的事情说三遍——MCP是协议,MCP是协议,MCP是协议。

那么它到底能干什么?用大白话说:如果把LLM比作大脑,那么MCP协议就是让这个大脑长出"手脚"的通道——它能访问资源、调用工具、使用预制模板,把原本只能聊天的模型变成能干活的全能选手。

为什么这么说?回想ChatGPT刚出来那会儿,它不过是个简单的聊天机器人,靠训练时吃进去的知识库来回答问题,既不能实时访问网页资源,也碰不到你自己的知识库,更别提帮你发邮件、订航班。有了MCP之后,大家有了统一标准来做这些事。只要实现了标准MCP接口,数据的发送和接收都按相同格式解析,理论上AI应用就能帮我们做任何事(当然,物理世界的劳动暂且不讨论)。

MCP到底解决什么问题?

前面聊了MCP能实现的事情,那么它本质上解决了什么难题?难道没有MCP,我们就没法访问网页或知识库了吗?下面来细说。

传统方式也能实现类似功能,但每个企业开发的软件或应用,调取工具的接口都是自成一派,没有一个统一标准。这就导致集成工作极其繁琐。

上一段代码看看传统方式的痛点:

# 每个集成都需要自定义代码
if service == "github":
    github_client = GitHubClient(token)
    data = github_client.get_issues()
elif service == "slack":
    slack_client = SlackClient(token)
    data = slack_client.get_messages()
elif service == "database":
    db_client = DatabaseClient(connection_string)
    data = db_client.query("SELECT * FROM users")
# ... 每个服务都不同

用MCP统一之后:

# 统一接口,标准化协议
mcp_client = McpClient()
# 所有服务使用相同的协议
resources = mcp_client.list_resources()  # 获取可用资源
tools = mcp_client.list_tools()          # 获取可用工具
result = mcp_client.call_tool("search", args)  # 调用工具

这里要强调MCP的三大核心能力:访问资源、调用工具、预制模板。下面对应的特点与作用如下:

能力说明控制方示例
Resources只读数据源Application文件内容、数据库记录、API 响应
Tools可执行函数Model搜索航班、发送消息、创建日历事件
Prompts预制模板User计划旅行、总结会议、起草邮件

理解这三大能力是开发MCP的关键基础。

MCP的架构

接下来看看MCP的整体架构。

MCP采用客户端-服务器架构,一个MCP主机(比如Claude Code、Claude Desktop这类AI应用)可以与一个或多个MCP服务器建立连接。主机为每个MCP服务器创建一个MCP客户端,每个客户端与对应的服务器保持专用连接。使用STDIO传输的本地MCP服务器通常服务于单个客户端,而使用Streamable HTTP传输的远程MCP服务器通常服务于多个客户端。架构中的关键组件包括:

  • MCP 主机:协调和管理一个或多个MCP客户端的AI应用程序
  • MCP 客户端:维护与MCP服务器的连接,并从服务器获取上下文供主机使用
  • MCP 服务器:为客户端提供上下文信息的程序

引用官方文档中的一个例子:Visual Studio Code可以充当MCP主机。当VS Code与Sentry MCP服务器建立连接时,运行时会实例化一个MCP客户端对象来维护这个连接。随后,当VS Code再连一个本地文件系统服务器时,又会实例化另一个MCP客户端对象来维护这条新连接。

注意,MCP服务器指的是提供上下文数据的程序,不管它跑在哪里。它可以在本地运行,也可以在远程。例如Claude Desktop启动文件系统服务器时,因为用了STDIO传输,服务器就跟Claude Desktop在同一台机器上,这通常叫"本地"MCP服务器。而官方的Sentry MCP服务器运行在Sentry平台上,使用Streamable HTTP传输,这就是"远程"MCP服务器。

小结

第一篇我们先解析了MCP的概念、解决的问题以及架构。接下来会继续深入解析通信协议和数据格式等内容。

来源:https://juejin.cn/post/7604037348607082534
上一篇春哥Agent通关秘籍05:工具调用知识与思路 下一篇MCP协议高德地图实战:AI学会用工具重塑大模型边界
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Continue Windows 本地安装配置教程 2026 最新版 下载地址与环境要求
AI教程 · 2026-07-02

Continue Windows 本地安装配置教程 2026 最新版 下载地址与环境要求

Continue是面向VSCode与JetBrains的AI编程插件,可连接云端或本地模型。Windows安装需准备编辑器、运行环境与模型服务,配置时应重点处理接口、索引、隐私与性能问题。

Tabnine新手从下载到首次运行保姆级安装教程
AI教程 · 2026-07-02

Tabnine新手从下载到首次运行保姆级安装教程

Tabnine是面向开发者的AI编程工具,适合在常见代码编辑器中辅助补全代码。安装前需确认环境、账号与编辑器版本,首次运行应完成登录、项目索引、补全测试和隐私设置。

Tabnine安装失败常见报错、日志排查与升级回滚方案
AI教程 · 2026-07-02

Tabnine安装失败常见报错、日志排查与升级回滚方案

Tabnine安装异常通常与编辑器版本、网络连接、权限、缓存或插件冲突有关。可按环境检查、日志定位、重装清理、版本切换和回滚流程逐步处理,并注意代码隐私与插件来源安全。

Tabnine插件安装配置全流程:浏览器编辑器扩展市场
AI教程 · 2026-07-02

Tabnine插件安装配置全流程:浏览器编辑器扩展市场

Tabnine适合在主流编辑器中提供代码补全与生成辅助。安装前需确认官方来源、账号策略和编辑器版本,按扩展市场或离线包方式完成配置,并注意隐私、授权与兼容问题。

Tabnine本地模型运行全攻略:下载配置与性能优化
AI教程 · 2026-07-02

Tabnine本地模型运行全攻略:下载配置与性能优化

Tabnine可在本地运行代码补全模型,适合重视代码隐私、网络环境不稳定或企业内网开发场景。配置重点包括版本确认、模型下载、路径设置、资源分配、IDE检查与性能调优。