news 2026/4/23 16:41:25

模型上下文协议(MCP)完全指南:从AI代理痛点到实战开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
模型上下文协议(MCP)完全指南:从AI代理痛点到实战开发

模型上下文协议(MCP)完全指南:从AI代理痛点到实战开发

🔍 MCP基础与核心价值(背景)

(一) AI代理的局限性

  • LLM原生能力边界:大型语言模型(LLM)仅能生成文本/图像等内容,无法直接执行外部操作(如预订航班、调用API)。
    • 传统工具集成痛点:第三方平台API接口标准不一(如航班查询接口可能为API/flightsflights/listlist-flights),需手动编写适配代码,扩展性极低。

(二) MCP的定义与定位

  • 全称模型上下文协议(Model Context Protocol)
  • 核心功能:为AI代理提供与第三方平台交互的标准化上下文,定义工具调用、数据格式及通信规则。
  • 类比:可视为AI代理与外部系统交互的"API使用说明书",解决跨平台兼容性问题。

🤖 AI代理与MCP的关系(原理)

(一) AI代理工作流

  1. 用户输入解析:AI代理调用LLM识别用户意图(如"飞往伦敦"→提取目的地、日期等参数)。
  2. 工具选择:LLM协助确定需调用的第三方服务(如航班API、酒店数据库)。
  3. 数据交互:代理通过工具获取外部数据(如航班列表),结合用户偏好(如低价优先)。
  4. 决策执行:LLM分析数据后生成决策,代理执行操作(如预订航班)并反馈结果。

(二) MCP的解决痛点

无MCP场景有MCP场景
需为每个API编写定制化适配代码统一遵循MCP标准,代理自动适配各类服务
工具调用格式混乱(参数/响应不统一)标准化工具定义(输入输出schema、描述)
无法动态发现第三方服务能力MCP服务器暴露工具列表,支持自动发现

🏗️ MCP架构与核心组件(技术细节)

(一) 架构 overview

  • 客户端-服务器模型
  • MCP客户端:嵌入AI代理(如IDE插件Cursor、Windsurf),发起工具调用请求。
  • MCP服务器:提供标准化接口,封装第三方服务能力,响应客户端请求。
  • 传输协议:支持HTTP(远程通信)和标准IO(本地进程通信)。

(二) 三大核心组件

组件定义示例
资源(Resources)静态数据或元信息,供AI决策参考机场代码列表、退改签政策、城市天气数据
工具(Tools)可执行操作接口,封装第三方API调用航班搜索(输入:起止地/日期;输出:航班列表)、座位选择
提示(Prompts)预定义指令模板,优化LLM交互效果“作为旅行助手,调用search_flights工具时需指定origin/destination/date参数,日期格式为YYYY-MM-DD”

📋 MCP规范与通信协议(标准)

(一) 核心规范要求

  • 通信格式:采用JSON RPC 2.0协议,请求需包含:
  • jsonrpc: “2.0”(固定版本)
  • method: 调用的工具名称(如"search_flights")
  • params: 输入参数(如{"origin":"LAX","destination":"JFK"}
  • id: 请求唯一标识-状态要求:连接必须有状态(Stateful),支持上下文保持(如长对话中的用户偏好记忆)。

(二) 客户端-服务器交互

  1. 能力发现:客户端请求MCP服务器暴露资源/工具列表(如list_tools())。
  2. 工具调用:客户端发送标准化请求(如调用search_flights工具)。
  3. 上下文传递:服务器返回结构化响应,客户端结合LLM分析结果执行下一步操作。

🛠️ MCP实战开发(操作指南)

(一) 环境准备-

开发工具:Python +fast-mcpSDK(官方推荐)

  • 依赖安装uv add mcp(通过uv包管理器安装MCP核心库)
  • Lab环境:提供VS Code服务器、Root Code AI助手及预配置API密钥(如OpenAI兼容接口)。

(二) 服务器开发步骤

1. 初始化服务器
frommcp.server.fastmcpimportFastMCP mcp=FastMCP(transport="stdio")# 传输方式:标准IO(本地)或HTTP(远程)
  1. 定义资源(Resource)
@mcp.resource(type="file",name="airports")defget_airport_info():return{"LAX":"洛杉矶国际机场","JFK":"肯尼迪国际机场"}
  1. 定义工具(Tool)
@mcp.tool(name="search_flights",description="查询航班信息")defsearch_flights(origin:str,destination:str,date:str):# 调用第三方API逻辑return[{"flight_no":"CA987","price":500}]
  1. 定义提示(Prompt)
@mcp.prompt(name="find_best_flight",title="最优航班推荐")deffind_best_flight_prompt(preferences:dict):returnf"根据用户偏好{preferences},从工具返回结果中选择最低价航班"
  1. 启动服务器
mcp.run()# 默认监听标准IO,HTTP模式需指定端口:mcp.run(transport="http", port=8080)

(三) 客户端配置

  • IDE集成:通过mcp.json文件配置服务器连接信息,示例:
{"mcp_servers":[{"id":"flight-booking","command":"uv run python server.py","env":{"API_KEY":"xxx"}}]}
  • 核心功能:支持资源读取(read_resource(“airports”))、工具调用(call_tool(“search_flights”, params))及提示获取(get_prompt(“find_best_flight”))。

💡 MCP高级特性(进阶)

(一) 客户端三大核心能力

能力定义应用场景
Roots(根目录共享)客户端向服务器暴露本地文件系统路径AI代理读取项目代码(如Git历史、日志文件)进行调试
Sampling(采样)服务器请求客户端调用LLM处理数据服务器将航班列表发送给LLM,由其生成自然语言总结
Elicitation(启发)服务器通过客户端向用户请求补充信息航班预订时询问用户"是否需要购买行李额"

(二) 典型应用场景

  1. 前端开发调试:MCP服务器提供浏览器控制台日志、HTML元素访问能力,AI代理自动定位UI bug。
  2. 数据工程:连接Stride/BigQuery等工具,AI代理分析缺失数据并生成清洗建议。
  3. 自动化运维:通过MCP访问监控系统,自动识别异常指标并执行恢复操作。

动手实践

MCP Labs for Free: https://kode.wiki/4lFwf5p

可以看到右手边已经起来配置远程的MCP

输入: Search for flights from LAX to JFK using the flight-booking server

点击VSCode 左下角的Approve就开始执行MCP

📝 补充细节

  • MCP与LangChain的关系:MCP专注于外部系统交互标准化,可与LangChain等框架结合,增强代理的工具调用能力。
  • 安全考量:远程MCP服务器需配置认证机制(如API密钥),客户端通过roots限制文件系统访问范围。

参考

  • https://www.youtube.com/watch?v=RhTiAOGwbYE
  • MCP Labs for Free: https://kode.wiki/4lFwf5p
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:43:22

9 个高效降AI率工具,自考人必看!

9 个高效降AI率工具,自考人必看! AI降重工具:自考论文的得力助手 在当前学术写作环境中,越来越多的自考生开始关注论文的AIGC率问题。随着AI技术的普及,许多学生在撰写论文时会借助AI工具辅助写作,但这也导…

作者头像 李华
网站建设 2026/4/23 14:33:38

8个降AI率工具推荐,本科生高效降重指南

8个降AI率工具推荐,本科生高效降重指南 AI降重工具:高效降低AIGC率,让论文更自然 随着人工智能技术的不断发展,越来越多的学生在撰写论文时会借助AI工具进行辅助。然而,许多学生发现,使用AI生成的内容往往存…

作者头像 李华
网站建设 2026/4/23 16:13:57

19、线性方程求解与量子 - 经典混合算法解析

线性方程求解与量子 - 经典混合算法解析 1. 线性方程求解概述 线性方程求解是一个历史悠久的数学问题。早在近两千年前,中国就有关于求解线性方程的技术记载,其方法与现代的高斯消元法有显著的相似之处。而第一台数字计算机——阿塔纳索夫 - 贝瑞计算机(ABC),也是专门为…

作者头像 李华
网站建设 2026/4/13 12:02:13

大模型应用:RAG与向量数据库结合Ollama调用模型深度融合全解析.27

一、引言 通过多篇博文我们也反复介绍说明了大模型知识滞后、生成幻觉成为制约智能问答、企业知识库等场景落地的核心痛点,检索增强生成(RAG)技术通过“外部知识检索 LLM 生成” 的模式,为解决这些问题提供了关键思路&#xff0c…

作者头像 李华
网站建设 2026/4/23 12:48:50

Xiaomi MiMo-V2-Flash:高效推理、代码与 Agent 基座模型

小米在2025年12月17日正式发布了新一代大模型 Xiaomi MiMo-V2-Flash。该模型定位为高效推理、代码生成和智能体(Agent)应用的基础模型,其核心特点是在保持顶尖性能的同时,实现了极高的推理效率和极低的使用成本。 为了方便你快速…

作者头像 李华
网站建设 2026/4/23 13:19:46

Legado书源开发终极指南:从JSONPath到JavaScript的完整解决方案

Legado书源开发终极指南:从JSONPath到JavaScript的完整解决方案 【免费下载链接】legado Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方…

作者头像 李华