第一章:Model Context Protocol (MCP)

Chapter 1: Model Context Protocol (MCP)


🌟 为什么需要MCP?

想象你正在训练一只小狗,希望它能听懂你的指令并执行任务。但如果你和小狗用不同语言交流,它可能完全不知道你的意思。类似地,大型语言模型(LLM)想要安全地使用外部工具或数据源时,也需要一个统一的"翻译协议"------这就是**Model Context Protocol(MCP)**诞生的原因!

中心用例:让LLM安全访问文件

假设你想让LLM帮你整理电脑里的文件,但直接让模型直接操作文件系统可能有风险。MCP通过标准化的服务器,让LLM能用自然语言请求(如"查找所有PDF文件"),同时确保操作符合安全规则。


🚀 MCP的核心概念

MCP定义了三个关键部分,让LLM与外部工具安全协作:

1. 标准化通信格式

就像快递单有统一格式,MCP规定了LLM和工具之间如何"对话"。例如:

  • 请求 :LLM发送类似"查找昨天创建的Excel文件"的指令
  • 响应:工具返回结构化数据(如文件路径列表)

2. 安全沙箱机制

MCP服务器像"保安",控制LLM能访问哪些资源。例如:

  • 文件服务器可能只允许读取/safe_folder/目录
  • 数据库服务器可能限制只能查询公开表

3. 工具抽象层

MCP将复杂工具包装成简单接口。例如:

python 复制代码
# 用户视角:只需调用统一的MCP接口
tool_response = mcp_server.invoke_tool("search_files", {"query": "report.pdf"})

🔧 如何用MCP解决用例?

步骤1:选择或创建服务器

使用现成的文件系统服务器(如代码片段中的@modelcontextprotocol/server-filesystem):

bash 复制代码
# 启动文件系统服务器(允许访问特定目录)
npx -y @modelcontextprotocol/server-filesystem /path/to/safe/directory

步骤2:配置LLM客户端

在客户端配置文件中注册该服务器:

json 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/my/docs"]
    }
  }
}

步骤3:让LLM使用工具

现在LLM可以安全地请求文件操作:

plaintext 复制代码
用户:请列出所有以"2023"开头的PDF文件  
LLM内部调用:  
invoke_tool("filesystem", "search", {"pattern": "2023*.pdf"})

🕵️ 内部实现揭秘

流程图:从指令到结果

LLM MCP客户端 MCP服务器 文件系统 发送请求 "查找报告" 转换请求为标准化格式 搜索符合条件的文件 返回文件列表 格式化响应 提供结果 LLM MCP客户端 MCP服务器 文件系统

关键代码片段

服务器初始化时定义允许的操作:

typescript 复制代码
// 文件系统服务器的核心代码(简化版)
class FilesystemServer {
  constructor(allowedPath: string) {
    this.safeDir = allowedPath; // 安全目录白名单
  }

  async searchFiles(query: string): Promise<File[]> {
    // 只在允许的目录内搜索
    const files = search(this.safeDir, query);
    return sanitizeFiles(files); // 过滤敏感文件
  }
}

💡 总结与展望

本章我们了解了:

  1. MCP如何成为LLM与工具间的"翻译官"
  2. 通过简单配置就能让模型安全访问资源
  3. 标准化协议如何简化复杂系统的协作

接下来,我们将深入探索MCP服务器分类,了解不同类型的服务器如何解决具体问题------例如有的服务器连接数据库,有的则用于网络爬虫!

📚 接下来,你将学会如何根据需求选择或定制自己的MCP服务器!

相关推荐
wan5555cn3 分钟前
AI生成内容的版权问题解析与实操指南
人工智能·笔记·深度学习·算法·音视频
Python×CATIA工业智造6 分钟前
Python迭代协议完全指南:从基础到高并发系统实现
python·pycharm
THMAIL15 分钟前
机器学习从入门到精通 - Transformer颠覆者:BERT与预训练模型实战解析
python·随机森林·机器学习·分类·bootstrap·bert·transformer
板鸭〈小号〉20 分钟前
UDP-Server(2)词典功能
网络·网络协议·udp
0wioiw028 分钟前
Python基础(①⑧Queue)
windows·python
catcfm37 分钟前
MiniDrive:面向自动驾驶的更高效的视觉语言模型
人工智能·深度学习·语言模型·自动驾驶
腾讯云大数据40 分钟前
IDC MarketScape:腾讯云位居国内生成式AI数据基础设施“领导者”象限
人工智能·云计算·腾讯云
我有一颗五叶草41 分钟前
告别 “无效阅读”!2025 开学季超赞科技书单,带孩子解锁 AI、编程新技能
人工智能·科技
地平线开发者44 分钟前
理想汽车智驾方案介绍 4 World model + 强化学习重建自动驾驶交互环境
人工智能·自动驾驶·汽车
whaosoft-1431 小时前
51c自动驾驶~合集20
人工智能