第一章: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服务器!

相关推荐
kjkdd几秒前
6.1 核心组件(Agent)
python·ai·语言模型·langchain·ai编程
刘大大Leo4 分钟前
GPT-5.3-Codex 炸了:第一个「自己造自己」的 AI 编程模型,到底意味着什么?
人工智能·gpt
小镇敲码人7 分钟前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
萧鼎8 分钟前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
摘星编程14 分钟前
CANN ops-nn Pooling算子解读:CNN模型下采样与特征提取的核心
人工智能·神经网络·cnn
AI视觉网奇21 分钟前
3d数字人 ue blender 绑定衣服对齐 2026
学习·ue5
Nan_Shu_61425 分钟前
学习: Blender 基础篇
学习·blender
程序员清洒29 分钟前
CANN模型安全:从对抗防御到隐私保护的全栈安全实战
人工智能·深度学习·安全
island131433 分钟前
CANN ops-nn 算子库深度解析:神经网络计算引擎的底层架构、硬件映射与融合优化机制
人工智能·神经网络·架构
小白|36 分钟前
CANN与实时音视频AI:构建低延迟智能通信系统的全栈实践
人工智能·实时音视频