如何使用 FastMCP 库来创建一个简单的 MCP 服务器?
FastMCP 是一个专注于简化 MCP(Model Context Protocol)服务器开发的 Python 框架。它通过提供简洁的装饰器语法和高层级接口,帮助开发者快速构建功能强大的 MCP 服务。本文将通过一个简单的示例,指导你如何使用 FastMCP 创建一个 MCP 服务器。
一、环境准备
在开始之前,请确保你已经安装了 Python(版本 3.10 或更高)和 FastMCP 库。以下是安装步骤:
- 安装 Python:如果你还没有安装 Python,可以从 Python 官方网站 下载并安装。
- 安装 FastMCP:使用以下命令安装 FastMCP:
pip install fastmcp
二、创建 MCP 服务器
我们将创建一个简单的 MCP 服务器,包含几个基本功能,例如问候用户、获取文件列表等。
1. 编写服务器代码
创建一个名为 server.py 的文件,并添加以下代码:
# server.py
from fastmcp import FastMCP
# 创建一个 MCP 服务器实例,命名为 "SmartToolServer"
mcp = FastMCP("SmartToolServer")
# 定义一个工具:问候用户
@mcp.tool()
def greet(name: str) -> str:
"""问候用户,返回个性化的问候语"""
return f"你好,{name}!欢迎使用 SmartToolServer。"
# 定义一个工具:获取当前目录下的文件列表
@mcp.tool()
def list_files() -> list:
"""获取当前目录下的文件列表"""
import os
return os.listdir(".")
# 定义一个工具:计算 BMI
@mcp.tool()
def calculate_bmi(weight: float, height: float) -> float:
"""计算身体质量指数(BMI)"""
return round(weight / (height ** 2), 2)
if __name__ == "__main__":
# 启动服务器
mcp.run()
代码解释:
FastMCP:FastMCP 的核心类,用于创建 MCP 服务器实例。@mcp.tool():装饰器,用于将函数注册为 MCP 服务器的工具(tool)。greet、list_files、calculate_bmi:定义了三个工具函数,分别用于问候用户、获取文件列表和计算 BMI。mcp.run():启动 MCP 服务器。
2. 运行服务器
在终端中运行以下命令启动服务器:
python server.py
启动后,你会看到类似以下的输出:
INFO: Starting MCP server...
INFO: Server is running on http://localhost:8000
此时,你的 MCP 服务器已经成功运行,并提供了三个工具供外部调用。
三、测试 MCP 服务
为了验证服务器是否正常工作,我们可以使用 FastMCP 提供的客户端工具来调用服务器的功能。
1. 使用 FastMCP 客户端调用工具
创建一个名为 client.py 的文件,并添加以下代码:
# client.py
from fastmcp import MCPClient
# 连接到本地的 MCP 服务器
client = MCPClient("http://localhost:8000")
# 调用 greet 工具
print("调用 greet 工具:")
print(client.call_tool("greet", name="Alice"))
# 调用 list_files 工具
print("\n调用 list_files 工具:")
print(client.call_tool("list_files"))
# 调用 calculate_bmi 工具
print("\n调用 calculate_bmi 工具:")
print(client.call_tool("calculate_bmi", weight=60, height=1.75))
运行以下命令测试客户端:
python client.py
输出示例:
调用 greet 工具:
你好,Alice!欢迎使用 SmartToolServer。
调用 list_files 工具:
['server.py', 'client.py', ...]
调用 calculate_bmi 工具:
20.41
四、注意事项
-
工具函数的命名和文档
工具函数的名称和文档字符串(docstring)非常重要,因为它们会暴露给外部调用者,帮助用户理解工具的功能。 -
类型注解
FastMCP 支持类型注解,可以自动验证输入参数的类型。确保在定义工具函数时,为参数和返回值添加合适的类型注解。 -
安全性
在实际应用中,建议对敏感操作添加权限控制,例如通过身份验证或访问控制列表(ACL)来限制工具的使用。
五、总结
通过本文的示例,你已经掌握了使用 FastMCP 创建一个简单的 MCP 服务器的基本方法。FastMCP 的简洁性和灵活性使其成为开发 MCP 服务的理想选择。无论是开发 AI 工具集、企业知识库,还是其他复杂应用,FastMCP 都能为你提供强大的支持。
如果你觉得这篇文章对你有所帮助,请点赞收藏关注!关注**公主号 **后可私信领取《MCP协议实战手册》和《智能工具开发案例集》!
更多推荐


所有评论(0)