Key Points
- 研究表明,MCP Python SDK 是一个实现 Model Context Protocol(MCP)的 Python 库,旨在为大型语言模型(LLM)提供标准化上下文管理。
- 它似乎易于安装,可通过
pip install mcp
或uv add "mcp[cli]"
设置,并支持创建服务器以暴露资源、工具和提示。 - 证据倾向于它提供快速入门示例,如创建一个简单的计算器工具服务器,并支持开发模式和 Claude Desktop 集成。
直接回答
简介
MCP Python SDK 是一个帮助大型语言模型(LLM)管理上下文的工具。它让开发者可以轻松地为 LLM 应用程序提供数据和功能,研究表明这通过标准化方式简化了开发过程。
安装与快速入门
安装很简单,你可以运行 pip install mcp
或使用 uv add "mcp[cli]"
。想快速上手?试试创建一个简单的服务器,比如一个计算器工具:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
然后用 mcp dev server.py
测试,或用 mcp install server.py
集成到 Claude Desktop。
核心功能
它支持创建服务器,暴露资源(像提供数据的 GET 端点)、工具(像执行计算的 POST 端点)和提示(交互模板)。意外的是,它还能处理图像数据,适合需要视觉内容的场景。
调查笔记:MCP Python SDK 详细分析
引言
本文深入分析 MCP Python SDK,这是一个实现 Model Context Protocol(MCP)的 Python 库,旨在为大型语言模型(LLM)提供上下文管理。MCP 是一种协议,通过标准化方式让应用程序为 LLM 提供上下文,将上下文管理与 LLM 交互分离,从而提高效率和安全性。随着 LLM 在各种应用中的日益普及,理解此 SDK 对开发者至关重要。
背景与目的
MCP,即 Model Context Protocol,允许应用程序以标准化方式为 LLM 提供上下文。Python SDK 实现了完整的 MCP 规范,方便构建暴露资源、提示和工具的服务器,并处理协议消息和生命周期事件。这种关注点的分离特别适用于需要高效、安全上下文管理的复杂应用。
SDK 支持标准传输如 stdio 和 SSE,确保与各种环境的兼容性。它特别适合希望创建强大 LLM 应用程序的开发者,因为它处理了底层协议复杂性,让开发者可以专注于定义功能组件。
安装与设置
安装 MCP Python SDK 很简单,提供传统和现代依赖管理选项:
- 使用 pip:运行
pip install mcp
即可安装。 - 使用 uv:推荐现代 Python 项目使用
uv add "mcp[cli]"
。
这种灵活性确保了新手和经验丰富的用户都能选择适合的工作流程。
核心概念与功能
SDK 围绕几个核心概念展开,每个概念在上下文管理中扮演特定角色:
-
服务器:FastMCP 服务器是 MCP 协议的核心接口,处理连接管理、协议合规性和消息路由。示例代码展示了如何创建带依赖和生命周期支持的服务器。
-
资源:用于向 LLM 暴露数据,类似于 REST API 中的 GET 端点,无需重大计算或副作用。提供了静态和动态资源的示例。
-
工具:允许 LLM 调用功能,可能有副作用,类似于 POST 端点。示例包括异步计算 BMI 或获取天气数据。
-
提示:是 LLM 交互的可重用模板,定义用户或模型如何与服务器交互。示例展示了如何定义返回字符串或消息列表的提示。
-
图像:SDK 包括
Image
类处理图像数据,使用 PIL 库,方便处理视觉内容。 -
上下文:Context 对象在工具和资源中提供 MCP 功能访问,例如长任务期间的进度跟踪。
实际使用与示例
SDK 提供了实际示例来说明其使用:
-
Echo Server:一个简单服务器,展示资源、工具和提示,如通过资源和工具回显消息。适合初学者理解基本功能。
-
SQLite Explorer:一个更复杂的示例,集成数据库操作,将模式信息作为资源暴露,并通过工具允许 SQL 查询执行,展示实际应用。
运行服务器有几种模式:
-
开发模式:使用
mcp dev server.py
与 MCP Inspector 测试,可选添加依赖如pandas
或通过--with-editable
挂载本地代码。 -
Claude Desktop 集成:使用
mcp install server.py
安装到 Claude Desktop,可自定义名称和环境变量。 -
直接执行:对于自定义部署,运行
python server.py
或mcp run server.py
,提供灵活性。
高级功能
对于需要更多控制的开发者,SDK 提供高级使用选项:
-
低级服务器:使用低级服务器实现直接访问协议,允许自定义每个方面,包括通过生命周期 API 管理生命周期。
-
编写 MCP 客户端:SDK 提供高层次客户端接口连接 MCP 服务器,支持 stdio 连接和采样回调。
-
MCP 基元:协议定义三个核心基元——提示(用户控制,交互模板)、资源(应用控制,上下文数据)和工具(模型控制,执行动作的函数),如下表所示:
基元 | 控制 | 描述 | 示例使用 |
---|---|---|---|
提示 | 用户控制 | 由用户选择调用的交互模板 | 斜杠命令,菜单选项 |
资源 | 应用控制 | 客户端应用管理的上下文数据 | 文件内容,API 响应 |
工具 | 模型控制 | 暴露给 LLM 执行动作的功能 | API 调用,数据更新 |
- 服务器能力:服务器在初始化时声明能力,如提示管理、资源更新、工具执行、日志记录和参数补全,确保兼容性和功能发现。
文档与社区参与
SDK 文档齐全,资源包括:
鼓励贡献,项目提供 贡献指南,欢迎所有级别的开发者参与增强生态系统。项目采用 MIT 许可证,确保开放和可访问的开发。
结论
MCP Python SDK 是一个强大的工具,简化了 LLM 应用程序的上下文管理。通过标准化数据和功能暴露,它便于创建强大、安全的服务器,辅以全面的文档和社区参与。从安装到高级功能,其易用性使其成为 LLM 开发者的必备资源。