MCP基础概念与快速入门
《MCP基础概念与快速入门》共 0.2 万字,通篇围绕 MCP、上下文、安全、Agent 展开,归在「Agent 与工具调用」这一层。
适合要让 AI 真的去干活、不只是陪人聊天的人
目录骨架(8 节)
- 示例代码
- MCP基础概念
- MCP快速入门
- MCP Client
- MCP 核心架构
- MCP 通信机制
- MCP Server
- 1. 安装 uv,设置环境变量
示例代码
📎 附件:mcp-demo.zip(zip, 4KB)
原文链接:https://www.yuque.com/attachments/yuque/0/2025/zip/2424104/1753931389683-a2fe4d0e-e16b-45d1-bebf-c01a2405c9e5.zip
MCP基础概念
MCP(Model Context Protocol,模型上下文协议) ,2024 年 11 月底,由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。
Function Calling 是 AI 模型调用函数的机制,MCP 是一个标准协议,使 AI 模型与 API 无缝交互,而 AI Agent 是一个自主运行的智能系统,利用 Function Calling 和 MCP 来分析和执行任务,实现特定目标。
MCP 官方文档:https://modelcontextprotocol.io/introduction
MCP 客户端:https://modelcontextprotocol.io/clients
MCP SDK:https://github.com/modelcontextprotocol/python-sdk
MCP 核心架构
- MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
- MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
- MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
- 本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
- 远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)。

MCP client 充当 LLM 和 MCP server 之间的桥梁,MCP client 的工作流程如下:
- MCP client 首先从 MCP server 获取可用的工具列表。
- 将用户的查询连同工具描述通过 function calling 一起发送给 LLM。
- LLM 决定是否需要使用工具以及使用哪些工具。
- 如果需要使用工具,MCP client 会通过 MCP server 执行相应的工具调用。
- 工具调用的结果会被发送回 LLM。
- LLM 基于所有信息生成自然语言响应。
- 最后将响应展示给用户。
MCP 通信机制
MCP 协议支持两种主要的通信机制:基于标准输入输出 stdio 的本地通信和基于 SSE(Server-Sent Events)的远程通信。这两种机制都使用 JSON-RPC 2.0 格式进行消息传输,确保了通信的标准化和可扩展性。
- 本地通信:通过 stdio 传输数据,适用于在同一台机器上运行的客户端和服务器之间的通信。
- 远程通信:利用 SSE 与 HTTP 结合,实现跨网络的实时数据传输,适用于需要访问远程资源或分布式部署的场景。
MCP Server
MCP Server 是 MCP 架构中的关键组件,它可以提供 3 种主要类型的功能:
- 资源(Resources):类似文件的数据,可以被客户端读取,如 API 响应或文件内容。
- 工具(Tools):可以被 LLM 调用的函数(需要用户批准)。
- 提示(Prompts):预先编写的模板,帮助用户完成特定任务。
这些功能使 MCP server 能够为 AI 应用提供丰富的上下文信息和操作能力,从而增强 LLM 的实用性和灵活性。
MCP快速入门
MCP 通过三种主要原语(Primitives)增强 LLM 的功能,理解这些原语是编写 MCP 的关键:
- 提示(Prompts):预定义的指令或模板,指导 LLM 如何处理输入或生成输出。
- 资源(Resources):提供额外上下文的结构化数据,例如文件或数据库内容。
- 工具(Tools):可执行的函数,允许 LLM 执行操作(如查询 API)或检索信息。
- 关键点:这些原语是 MCP 的核心,决定了服务器能为 LLM 提供什么能力。
在我们的示例中,使用 Claude for Desktop 作为客户端,自己编写 python 文件作为服务端,在 Claude Desktop 里调用 server.py。
先决条件
- 已安装 python 3.10 或更高
- 已安装 Claude for Desktop
1. 安装 uv,设置环境变量
打开 Powershell,输入如下命令:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"