5分钟上手MCP Python SDK:零代码基础搭建AI上下文服务器
你是否还在为搭建AI上下文服务器而烦恼复杂的配置和冗长的代码?本文将带你5分钟内完成第一个MCP(Model Context Protocol)服务器的搭建,无需深厚的编程基础,只需简单几步即可拥有一个功能完备的AI上下文服务。读完本文后,你将能够:
- 掌握MCP Python SDK的基本安装与配置
- 创建包含工具和资源的AI上下文服务器
- 运行并测试你的第一个MCP服务
- 了解如何扩展和定制服务器功能
什么是MCP?
MCP(Model Context Protocol)是模型上下文协议的简称,它提供了一种标准化的方式来构建和交互AI上下文服务器。通过MCP Python SDK,开发者可以快速创建能够处理AI模型上下文、提供工具调用和资源访问的服务器应用。
官方文档:docs/index.md 项目教程:README.md
安装准备
MCP Python SDK已发布到PyPI,支持Python 3.8及以上版本。安装过程非常简单,只需使用pip命令即可:
pip install mcp
如果你使用uv作为包管理器,可以执行:
uv add mcp
安装包将自动包含所有必要依赖,包括HTTP客户端、Web框架、数据验证工具等。详细依赖列表请参考docs/installation.md。
快速开始:5分钟搭建服务器
第一步:创建基础服务器
创建一个名为quickstart.py的文件,输入以下代码:
from mcp.server.fastmcp import FastMCP
# 创建MCP服务器实例
mcp = FastMCP("MyFirstServer")
# 运行服务器
if __name__ == "__main__":
mcp.run()
这段代码创建了一个最基本的MCP服务器,使用默认配置在本地8000端口运行。
第二步:添加工具函数
MCP服务器的核心功能之一是提供工具函数供AI模型调用。我们来添加一个简单的加法工具:
from mcp.server.fastmcp import FastMCP
# 创建MCP服务器
mcp = FastMCP("Demo")
# 添加加法工具
@mcp.tool()
def sum(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
if __name__ == "__main__":
mcp.run()
通过@mcp.tool()装饰器,我们轻松将普通Python函数转换为MCP服务器的工具。
完整示例代码:examples/fastmcp/readme-quickstart.py
第三步:添加资源访问
除了工具函数,MCP服务器还可以提供资源访问功能。我们添加一个动态生成问候语的资源:
# 添加动态问候资源
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
这个资源可以通过greeting://{name}的URL格式访问,为不同用户提供个性化问候。
第四步:运行服务器
在代码末尾添加运行代码,并执行脚本:
if __name__ == "__main__":
mcp.run()
python quickstart.py
服务器启动后,你将看到类似以下的输出:
INFO: Started server process [12345]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
测试你的服务器
服务器启动后,你可以通过多种方式与其交互:
1. 工具调用测试
使用curl命令测试sum工具:
curl -X POST http://localhost:8000/tools/sum \
-H "Content-Type: application/json" \
-d '{"a": 5, "b": 3}'
你将得到响应:8
2. 资源访问测试
访问我们创建的问候资源:
curl http://localhost:8000/resources/greeting/World
你将得到响应:Hello, World!
3. 查看服务器信息
访问服务器根目录可以查看基本信息:
curl http://localhost:8000/
进阶示例:回声服务器
下面是一个更完整的回声服务器示例,它可以返回你输入的任何文本:
from mcp.server.fastmcp import FastMCP
# 创建服务器
mcp = FastMCP("Echo Server")
@mcp.tool()
def echo(text: str) -> str:
"""Echo the input text"""
return text
if __name__ == "__main__":
mcp.run(host="0.0.0.0", port=8000)
完整代码:examples/fastmcp/simple_echo.py
这个示例展示了如何自定义服务器的主机和端口,以及创建简单的文本回声工具。
项目结构解析
MCP Python SDK的项目结构清晰,主要包含以下几个部分:
-
src/mcp/: SDK核心代码目录
- src/mcp/server/fastmcp/: FastMCP服务器实现
- src/mcp/client/: 客户端相关代码
- src/mcp/shared/: 共享工具和类型定义
-
examples/: 示例代码目录
- examples/fastmcp/: FastMCP相关示例
- examples/servers/: 各种服务器实现示例
- examples/clients/: 客户端示例代码
-
docs/: 文档目录
- docs/installation.md: 安装指南
- docs/api.md: API参考文档
扩展你的服务器
MCP Python SDK提供了丰富的扩展功能,让你可以根据需求定制服务器:
添加更多工具和资源
只需继续使用@mcp.tool()和@mcp.resource()装饰器添加更多功能:
# 添加乘法工具
@mcp.tool()
def multiply(a: int, b: int) -> int:
"""Multiply two numbers"""
return a * b
# 添加时间资源
@mcp.resource("time")
def get_current_time() -> str:
"""Get current time"""
from datetime import datetime
return datetime.now().isoformat()
配置服务器参数
在创建FastMCP实例时,可以传入各种配置参数:
mcp = FastMCP(
"ConfiguredServer",
description="A server with custom configuration",
version="1.0",
host="0.0.0.0",
port=8080
)
实现高级功能
MCP Python SDK还支持会话管理、认证授权、流式响应等高级功能。你可以在examples/目录中找到更多示例代码,如:
- 认证服务器示例:examples/servers/simple-auth/
- 分页服务器示例:examples/servers/simple-pagination/
- 流式响应示例:examples/fastmcp/streaming.py
总结与展望
通过本文的介绍,你已经了解了如何使用MCP Python SDK快速搭建AI上下文服务器。我们从基础安装开始,创建了包含工具和资源的简单服务器,并学习了如何测试和扩展服务器功能。
MCP Python SDK为AI应用开发提供了强大而灵活的工具,无论是构建简单的演示原型还是复杂的生产系统,都能满足你的需求。接下来,你可以尝试:
- 探索更多高级功能和配置选项
- 集成实际的AI模型到你的服务器
- 开发自定义客户端与服务器交互
- 参与MCP社区贡献代码或文档
希望本文能帮助你快速入门MCP Python SDK,如果你有任何问题或建议,欢迎通过项目仓库提交issue或PR。
点赞收藏本文,关注项目更新,下期我们将介绍如何构建MCP客户端应用,实现与服务器的复杂交互。
项目地址:gh_mirrors/pythonsd/python-sdk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



