Model Context Protocol Python SDK 快速入门指南

Model Context Protocol Python SDK 快速入门指南

【免费下载链接】python-sdk The official Python SDK for Model Context Protocol servers and clients 【免费下载链接】python-sdk 项目地址: https://gitcode.com/gh_mirrors/pythonsd/python-sdk

Model Context Protocol (MCP) Python SDK 是一个开源项目,实现了 Model Context Protocol 规范,使开发者能够轻松构建与大型语言模型(LLM)交互的服务器和客户端。该 SDK 允许应用程序以标准化的方式为 LLM 提供上下文信息,分离了提供上下文和 LLM 实际交互的关注点。

环境准备

在开始安装之前,请确保您的系统中已经安装了以下软件:

  • Python 3.7 或更高版本
  • pip 包管理器
  • 稳定的网络连接

安装步骤

使用 uv 包管理器安装

我们推荐使用 uv 来管理您的 Python 项目。如果您还没有创建 uv 管理的项目,请先创建一个:

uv init mcp-server-demo
cd mcp-server-demo

然后将 MCP 添加到项目依赖中:

uv add "mcp[cli]"

使用 pip 安装

对于使用 pip 管理依赖的项目:

pip install "mcp[cli]"

快速开始

让我们创建一个简单的 MCP 服务器,暴露计算器工具和一些数据:

from mcp.server.fastmcp import FastMCP

# 创建 MCP 服务器
mcp = FastMCP("Demo", json_response=True)

# 添加加法工具
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# 添加动态问候资源
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

# 添加提示
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
    """Generate a greeting prompt"""
    styles = {
        "friendly": "Please write a warm, friendly greeting",
        "formal": "Please write a formal, professional greeting",
        "casual": "Please write a casual, relaxed greeting",
    }

    return f"{styles.get(style, styles['friendly'])} for someone named {name}."

# 使用可流式 HTTP 传输运行
if __name__ == "__main__":
    mcp.run(transport="streamable-http")

运行服务器

您可以将此服务器安装在 Claude Code 中并立即与之交互。首先运行服务器:

uv run --with mcp examples/snippets/servers/fastmcp_quickstart.py

然后将其添加到 Claude Code:

claude mcp add --transport http my-server http://localhost:8000/mcp

核心概念

服务器

FastMCP 服务器是您与 MCP 协议的核心接口。它处理连接管理、协议合规性和消息路由。

资源

资源是您向 LLM 暴露数据的方式。它们类似于 REST API 中的 GET 端点 - 它们提供数据但不应该执行重要的计算或产生副作用。

工具

工具让 LLM 通过您的服务器执行操作。与资源不同,工具执行计算并具有副作用。

提示

提示是可重用的模板,帮助 LLM 有效地与您的服务器交互。

进阶功能

结构化输出

工具默认返回结构化结果,如果它们的返回类型注解兼容。否则,它们将返回非结构化结果。

结构化输出支持以下返回类型:

  • Pydantic 模型(BaseModel 子类)
  • TypedDict
  • 具有类型提示的数据类和其他类
  • 原始类型(str、int、float、bool、bytes、None)- 包装在 {"result": value}

上下文管理

Context 对象自动注入到通过类型提示请求它的工具和资源函数中。它提供对 MCP 功能的访问,如日志记录、进度报告、资源读取、用户交互和请求元数据。

实用示例

项目提供了丰富的示例代码,涵盖各种使用场景:

  • 基础工具和资源示例:examples/snippets/servers/basic_tool.py
  • 结构化输出示例:examples/snippets/servers/structured_output.py
  • 进度报告示例:examples/snippets/servers/tool_progress.py
  • 认证集成示例:examples/snippets/servers/oauth_server.py

开发建议

  • 首次使用时建议从简单功能开始
  • 使用 mcp dev 命令进行开发调试
  • 定期检查项目更新获取新功能
  • 参考官方文档获取详细说明

通过以上步骤,您可以快速开始使用 Model Context Protocol Python SDK,构建强大的 LLM 交互应用。

【免费下载链接】python-sdk The official Python SDK for Model Context Protocol servers and clients 【免费下载链接】python-sdk 项目地址: https://gitcode.com/gh_mirrors/pythonsd/python-sdk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值