前置知识: 大语言模型

模型上下文协议

00:00
3 min Intermediate

理解 MCP(Model Context Protocol)协议的设计和实现,标准化 LLM 与工具的交互

模型上下文协议

每个模型提供商都有自己的工具调用格式。MCP 试图统一这一切——一个标准协议,让任何 LLM 都能使用任何工具。

类型: 概念 前置条件: Phase 11 Lesson 09(函数调用) 预计时间: ~30 分钟

学习目标

  • 理解 MCP 的设计目标和架构
  • 掌握 MCP 的核心概念:资源、工具、提示
  • 理解 MCP 服务器的实现方式
  • 分析 MCP 与传统函数调用的区别

MCP 架构

LLM 应用(Host)
  ↓ MCP 协议
MCP 客户端
  ↓ 标准化通信
MCP 服务器 ← 连接工具/数据源

MCP 定义了三个心原语:

  1. 资源(Resources)应用可以向 LLM 提供上下文数据
  2. 工具(Tools):LLM 可以调用的功能
  3. 提示(Prompts):预定义提示模板

MCP 工具定义

# MCP 工具定义格式
{
    "name": "database_query",
    "description": "执行 SQL 查询并返回结果",
    "inputSchema": {
        "type": "object",
        "properties": {
            "sql": {
                "type": "string",
                "description": "要执行的 SQL 查询语句"
            },
            "limit": {
                "type": "integer",
                "description": "返回结果的最大行数",
                "default": 100
            }
        },
        "required": ["sql"]
    }
}

MCP 服务器实现

from mcp.server import Server
from mcp.types import Tool, TextContent


server = Server("my-tools")


@server.list_tools()
async def list_tools():
    """列出可用工具"""
    return [
        Tool(
            name="calculator",
            description="执行数学计算",
            inputSchema={
                "type": "object",
                "properties": {
                    "expression": {"type": "string", "description": "数学表达式"},
                },
                "required": ["expression"],
            },
        ),
    ]


@server.call_tool()
async def call_tool(name, arguments):
    """执行工具调用"""
    if name == "calculator":
        try:
            result = eval(arguments["expression"])  # 生产环境应使用安全解析器
            return [TextContent(type="text", text=str(result))]
        except Exception as e:
            return [TextContent(type="text", text=f"计算错误: {e}")]

MCP vs 传统函数调用

维度传统函数调用MCP
标准化每个提供商不同统一协议
工具发现手动定义自动发现
传输方式API 内嵌独立通信
组合工具可跨服务器组合)
生态系统孤立共享

关键术语

术语通俗说法实际含义
MCP工具协议”Model Context Protocol,标准化 LLM 与工具交互的协议
MCP 服务器工具服务器”提供工具和资源的 MCP 服务
资源上下文数据”MCP 中应用向 LLM 提供的数据
工具发现”自动找工具MCP 客户端自动获取服务器提供工具

延伸阅读

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式