MCP Python SDK 快速上手教程:5步构建你的第一个AI应用

MCP Python SDK 快速上手教程:5步构建你的第一个AI应用

【免费下载链接】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 是一个强大的开源工具,它让开发者能够轻松构建连接大型语言模型(LLM)的服务器和客户端。通过标准化的协议,MCP将上下文提供与LLM交互分离,为AI应用开发带来了全新的可能性。

🚀 快速入门:5分钟搭建你的第一个MCP服务器

环境准备

首先确保你的系统已安装Python 3.8+,然后通过以下命令安装MCP SDK:

pip install "mcp[cli]"

第一步:创建基础服务器

让我们从一个简单的计算器服务器开始,这是理解MCP核心概念的最佳方式:

from mcp.server.fastmcp import FastMCP

# 创建MCP服务器实例
mcp = FastMCP("计算器服务")

# 添加加法工具
@mcp.tool()
def add(a: int, b: int) -> int:
    """计算两个整数的和"""
    return a + b

# 添加动态问候资源
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """生成个性化的问候语"""
    return f"你好,{name}!欢迎使用MCP服务"

# 运行服务器
if __name__ == "__main__":
    mcp.run(transport="stdio")

第二步:添加更多实用工具

扩展你的服务器功能,添加更多有用的工具:

@mcp.tool()
def multiply(x: float, y: float) -> float:
    """计算两个数的乘积"""
    return x * y

@mcp.tool()
def get_weather(city: str) -> str:
    """获取城市天气信息(示例)"""
    return f"{city}的天气:晴朗,25°C"

第三步:运行和测试服务器

保存代码为server.py,然后在终端中运行:

python server.py

你的第一个MCP服务器现在已经开始运行了!

📊 核心概念解析:理解MCP的工作原理

工具(Tools):让AI执行操作

工具是MCP服务器中最核心的功能,它们允许LLM通过你的服务器执行具体操作。每个工具都应该有清晰的描述和类型注解:

@mcp.tool()
def calculate_bmi(weight: float, height: float) -> float:
    """计算身体质量指数(BMI)"""
    return weight / (height ** 2)

资源(Resources):为AI提供数据

资源类似于REST API中的GET端点,它们提供数据但不执行复杂计算:

@mcp.resource("config://app/settings")
def get_app_settings() -> str:
    """获取应用程序配置"""
    return """
{
  "theme": "dark",
  "language": "zh-CN",
  "auto_save": true
}

🛠️ 进阶功能:构建生产级应用

使用上下文对象

上下文对象为工具提供强大的附加功能,包括日志记录、进度报告等:

@mcp.tool()
async def process_data(data: str, ctx) -> str:
    """处理数据并记录进度"""
    await ctx.info("开始处理数据")
    
    # 模拟处理进度
    for i in range(5):
        progress = (i + 1) / 5
        await ctx.report_progress(
            progress=progress,
            message=f"处理进度:{i + 1}/5"
        )
    
    return f"处理完成:{data}"

结构化输出

MCP支持结构化数据输出,让客户端能够更好地处理返回结果:

from pydantic import BaseModel

class WeatherData(BaseModel):
    temperature: float
    humidity: float
    condition: str

@mcp.tool()
def get_detailed_weather(city: str) -> WeatherData:
    """获取详细的天气数据"""
    return WeatherData(
        temperature=22.5,
        humidity=45.0,
        condition="晴朗"
    )

🌟 实际应用场景

场景一:智能客服助手

@mcp.tool()
def answer_customer_question(question: str) -> str:
    """回答客户问题"""
    return f"关于'{question}'的回答:我们提供24/7客户支持服务"

场景二:数据分析工具

@mcp.tool()
def analyze_dataset(dataset_name: str, analysis_type: str) -> str:
    """分析数据集"""
    return f"正在对{dataset_name}进行{analysis_type}分析..."

🔧 部署与集成

在Claude Desktop中集成

将你的MCP服务器集成到Claude Desktop中:

claude mcp add --transport stdio my-server "python /path/to/server.py"

使用HTTP传输

对于需要远程访问的场景,可以使用HTTP传输:

if __name__ == "__main__":
    mcp.run(transport="streamable-http", host="0.0.0.0", port=8000)

❓ 常见问题解答

Q: MCP服务器与普通API有什么区别?

A: MCP专门为LLM交互设计,提供更自然的上下文管理和工具调用机制。

Q: 如何处理长时间运行的任务?

A: 使用上下文对象的进度报告功能,可以实时向客户端反馈任务执行状态。

Q: 可以同时运行多个MCP服务器吗?

A: 是的,MCP支持多服务器并行运行,每个服务器可以专注于不同的功能领域。

📈 项目生态与发展

MCP Python SDK拥有丰富的生态系统,包括:

  • MCP Inspector:用于测试和调试MCP服务器的工具
  • 示例项目:提供多种使用场景的参考实现
  • 社区资源:活跃的开发者社区和持续更新的文档

通过本教程,你已经掌握了MCP Python SDK的核心使用方法。现在可以开始构建你自己的AI应用,将大型语言模型的能力与你的业务需求完美结合!

MCP架构图

【免费下载链接】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、付费专栏及课程。

余额充值