自定义 MCPServer 函数制作流程
概述
CFC 上线MCPServer 托管功能,您可以使用 CFC 内置的 MCP 热门模板一键部署热门 MCPServer,或者基于模板制作并发布自己的MCPServer。
使用模板创建 MCP 函数
操作步骤
- 登录 函数计算控制台。
- 依次点击『函数列表』->『创建函数』->『模板创建 MCP 服务』->『基础模板』/『热门 MCP 模板』



- 以热门模板为例,选择『github』热门模板,点击下一步
- 填写函数名称、github apikey,点击下一步

- 使用模板创建的 MCP 函数,触发器都默认配置好,点击提交即可以完成MCP 函数创建。
- 进入函数详情页,选择『触发器』

- 复制第一个触发器的URL 路径(/sse 结尾)就可以在 Cursor 等Agent 等配置使用。
MCP 函数使用
- 在 Cursor 中配置 MCPServer
1{
2 "mcpServers": {
3 "cfc-github": {
4 "url": "https://xxxxx.cfc-execute.su.baidubce.com/sse"
5 }
6 }
7}
- 配置完成后,在 Cursor 的 MCP 中可以看到配置的 github MCPServer 已经起作用

- 然后使用大模型提问『查询 app-builder 相关的 github 仓库』
- 大模型会提示是否要调用 mcp 工具

- 点击调用后大模型会根据 MCPServer 返回的结果组织回答,给出答案

自定义 MCP 函数
以基础 MCP 模板『mcp multiply』为例,这里展示下如何基于现有模板制作自己的 MCP 函数
下载函数模板
- 先参照上面的步骤,使用基础模板『mcp multiply』为例创建 MCP 函数
- 创建完成之后,进入函数详情页-函数代码

- 点击下载完整 zip 包程序,下载函数模板代码
制作新的模板
模板详解
- 下载完成后,在本地解压 zip 文件,进入解压后的目录
-
主要目录结构如下
- bootstrap:函数启动入口文件(不能改动)
- start.sh:函数启动脚本,包含函数环境变量以及启动命令
- index-sse.py:sse 模式函数代码
- index-stdio.py:stdio 模式函数代码
- dep:python 依赖包
- node_modules:nodejs 相关依赖包(主要是 supergateway 等组件)
该项目为使用 python mcp 标准库制作的的 mcpserver,包含了 stdio 与 sse 两种模式的示例代码。index-sse.py 和 index-stdio.py 都包含了一个简单 mcp 乘法工具。
1@mcp.tool()
2def multiply(a: int, b: int) -> int:
3 """
4 计算两个数字的乘积
5
6 Args:
7 a: 第一个数字
8 b: 第二个数字
9
10 Returns:
11 两个数字相乘的结果
12 """
13 return a * b
所不同的是 index-sse.py 会启动一个 MCP 服务器(sse 模式)。
1# sse 模式
2mcp = FastMCP("Demo SSE Server", port=8080)
3if __name__ == "__main__":
4 mcp.run(transport="sse")
5
6# stdio 模式
7mcp = FastMCP("Demo SSE Server")
8if __name__ == "__main__":
9 mcp.run(transport="stdio")
如果使用 stdio 模式启动 mcpserver,需要通过 supergateway 组件将其进行转换 sse模式对外暴露服务,才能让 MCP 函数对外可以提供访问。下面将具体讲解如何实现。
模板制作
Stdio 模式
对于 stdio 模式,先在 index-stdio.py 中修改或增加自己的 MCPServer 工具。
1python -m pip install mcp --target=./dep --upgrade
这里仅为安装 mcp 包的示例,如果有其他依赖包也需要一起安装到本地
1npm install supergateway
使用如下命令将 Python 依赖包安装到本地 dep 目录。注意需要使用 Python 3.10 及以上版本。
安装 supergateway 到本地依赖。
1./node_modules/supergateway/dist/index.js --stdio "python3 index-stdio.py" --port 8080 --ssePath /sse --messagePath /messages/
然后在 start.sh 中设置 NODE_PATH 和 PYTHONPATH 指向依赖包目录。函数环境中可直接使用模板中配置好的路径;如果需要本地调试,可临时改为本地路径。
最后,在 start.sh 中设置 MCPServer 的完整启动命令。
SSE 模式
对于 sse 模式,先在 index-sse.py 中修改或增加自己的 MCPServer 工具。
1python -m pip install mcp --target=./dep --upgrade
这里仅为安装 mcp 包的示例,如果有其他依赖包也需要一起安装到本地
使用如下命令将 Python 依赖包安装到本地 dep 目录。注意需要使用 Python 3.10 及以上版本。
然后在 start.sh 中设置 NODE_PATH 和 PYTHONPATH 指向依赖包目录。函数环境中可直接使用模板中配置好的路径;如果需要本地调试,可临时改为本地路径。
1python3 index-sse.py
最后,将 start.sh 中的启动命令改为直接启动 index-sse.py。
说明
其他 MCP 函数支持
上面的方法主要是通过修改代码模板,增加功能的方式来实现新的 MCPServer 函数。如果想制作完全新的 MCPServer 函数,例如想部署一个开源的 MCPServer,按照如下的流程即可:
- 将开源 MCPServer 的代码安装到代码目录
- 安装上对应的依赖包
- 在启动脚本中配置启动命令和环境变量即可
整个流程和上面制作模板的流程是一样的。
其他语言支持
目前 CFC 支持的 MCPServer 函数环境为 Python 和 Nodejs,但是在实际的函数运行环境中,python 和 nodejs 环境都可以使用,只要在启动脚本中设置到对应的环境变量即可加载到对应的环境。如果是其他语言编写的 MCPServer,例如 golang,可以将其编译为可执行文件,然后在脚本中直接启动,或者通过 supergateway 代理都可以。
打包代码
参考:https://cloud.baidu.com/doc/CFC/s/9jzqubw7f
文件格式要求
代码格式要求为 zip 格式。用于压缩或解压的工具,在 Windows 平台下可使用例如 7-Zip 工具,在 Linux 平台下可使用 zip 命令行工具,在 macOS 平台下也可以使用 zip 命令行工具。
打包方式
打包时,需要对文件打包,而不是对文件外的目录打包;打包完成后,入口函数文件需要位于包内的根目录。
Windows 平台下,您可以使用图形界面打开函数代码目录,挨个选择需要打包的文件以后,单击鼠标右键,选择“压缩为 zip 包”。用 WinRAR、7-Zip 等工具打开 zip 包时,应该直接能显示入口文件。
Linux 和 macOS 平台下,打开终端程序,例如系统自带的终端或者 iTerm2,cd 进入函数代码目录,调用 zip 命令打包所需文件,打包命令应该是:
1cd mcpserver_code
2zip -ry xxx.zip .
切记不可直接将代码目录打包成 zip,否则会导致函数代码解析和运行出错。
打包完成后,可以再解压验证下,目录下的 start.sh 是否有执行权限,如果打包方式不对,造成入口脚本可执行权限丢失的话,函数执行时会报错。
更新代码
- 进入函数列表,点击函数名称,进入函数详情。
- 点击函数代码,进行更新。

测试 MCPServer
云端测试
创建完函数之后,通过暴露的 sse 链接可以使用以下两种方式进行测试
- 配置在Cursor、Cluade 等支持 MCP 的智能体中使用(可以协同大模型一起测试,但是一般有调用次数的限制)
- 使用 MCP Inspector 进行本地测试(仅测试MCP 协议,无调用次数限制)
以 MCP Inspector 为例,测试方法如下
- 在本地运行以下指令启动 Inspector
1npx -y @modelcontextprotocol/inspector
- 浏览器打开 http://127.0.0.1:6274
选择 SSE 模式,填写函数触发器中的 sse 连接,然后点击 Connect

连接成功后,点击 ListTools 获取MCP 函数的工具列表

选择一个具体的工具,然后输入参数,点击 RunTool 获取结果,返回正确结果即表示测试成功

本地测试
如果在本地修改了 MCP 模板代码,想先进行测试验证,可以先在 start.sh 中将 NODE_PATH 和 PYTHONPATH 指向本地依赖目录,再按当前模式启动 MCPServer。
步骤 1:启动本地 MCPServer
导航路径:本地终端->模板代码目录
在模板代码目录中完成本地依赖路径配置后,执行 start.sh 启动本地 MCPServer。
步骤 2:启动 Inspector
导航路径:本地终端
在另一个本地终端运行以下命令启动 Inspector。
步骤 3:连接本地 /sse 地址并验证结果
导航路径:Inspector->SSE 导航路径:Inspector->工具面板
在 Inspector 中连接本地 MCPServer 暴露的 /sse 地址,点击 【ListTools】 获取工具列表。然后选择具体工具,输入参数并点击 【RunTool】 验证返回结果。
步骤 4:恢复函数环境配置
导航路径:本地终端->模板代码目录
验证通过后,将 NODE_PATH、PYTHONPATH 等环境变量恢复为函数运行环境配置,再将代码打包并更新到函数中运行。
评价此篇文章
