外观
创建MCP函数
约 1109 字大约 4 分钟
2025-05-21
您可以通过FuncX轻松构建MCP应用。
创建Web函数操作概述
通过本文您将了解如何使用FuncX部署一个MCP应用,整体流程如下:
- 开发及测试MCP应用:在本地使用示例代码创建项目,编辑并测试API代码,确保API功能正常。如果您希望迁移现有应用,可以跳过此步骤。
- 生成代码包:安装必要的依赖库到本地的项目目录,然后将项目打包为一个ZIP文件,用于部署至FuncX。
- 上传并部署应用:配置函数创建参数,然后上传代码包,完成函数创建。
- 测试MCP函数:调用MCP函数以验证应用的运行情况。
操作指引
您可以使用以下方式创建函数并部署代码。
- 控制台创建:适用于构建轻量级应用或快速验证等场景,您可以快速创建单个函数。 为了简化操作,本文将详细介绍使用控制台创建函数的步骤。
1. 开发及测试Web应用
- 请在本地打开一个新的命令行窗口,执行以下命令,将应用所需的fastmcp依赖库安装到本地环境:
pip install fastmcp
- 创建一个名为code的文件夹,并在其中新建一个名为app.py的文件。将以下示例代码粘贴到该文件中。这段代码实现了一个简单的天气查询服务,用户输入城市(如上海),MCP将返回当天的天气。
app.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP('天气查询服务')
@mcp.tool()
def get_weather(city: str) -> str:
# 获取指定城市的天气信息
weather = "晴天,28度,湿度70%" # 此处应根据API获取相应的天气数据
return f"{city}天气为:{weather}"
if __name__ == "__main__":
mcp.run(transport="stdio") # 本地调试模式,生产使用sse远程HTTP
- 执行python3 app.py命令以运行您创建的MCP应用。当输出为Running on http://127.0.0.1:9000,表示您的应用成功启动,接下来可以使用cURL命令来测试应用。
- 打开一个新的终端窗口,使用cURL发送示例请求。如果执行成功,您将得到一个天气信息。
curl -X POST http://127.0.0.1:9000 -d '{"city": "上海"}'
至此本地项目创建和测试完成。
2. 生成代码包
您将在本地构建一个适用于FuncX的代码包,代码包中需要包含以下内容:
- MCP应用所需的项目文件。
- 如果应用所需的依赖库不在MCP函数的运行环境中,则代码包也需要包含这些依赖库。
- 安装依赖:在MCP应用的项目根目录,请您运行以下命令,将应用所需的依赖库(示例中为fastmcp)安装到该目录。完成后,项目根目录下将包含项目文件以及依赖库。
pip install -t . fastmcp
- 打包项目根目录下的所有文件。
Linux或MacOS系统
在项目根目录,执行zip code.zip -r ./*
。通过此步骤,您将打包项目文件及依赖库至一个ZIP文件,完成代码包的构建。
Windows系统
进入项目目录,选中所有文件,单击鼠标右键,选择打包为ZIP包。通过此步骤,您将打包项目文件及依赖库至一个ZIP文件,完成代码包的构建。
3. 创建MCP函数并部署代码包
- 选择运行环境:打开FuncX控制台。然后在函数页面单击创建函数。请根据图示选择Python > Python 3.10,该运行时内置了Flask框架所需的依赖库。
- 部署代码包:请根据图示操作,上传您在上一步中得到的ZIP格式的代码包,并配置启动命令为python3 app.py,监听端口为9000。 完成后单击创建,等待函数创建完成。
4. 测试函数
- 获取函数URL:在新创建函数的详情页面,复制地址。
- 测试函数:您可以使用cURL、Postman或任何HTTP客户端调用函数,验证MCP应用的功能。以cURL为例,请在命令行中执行以下示例命令(将地址替换为上一步复制的地址)。
curl https://******.funcx.run -d '{"city": "上海"}'