如果现有的MCP服务不满足您的需求,通义灵码智能体能够帮助您开发专属MCP服务,直达业务目标。本案例以高德提供的基础MCP服务为基础,借助智能体开发一个订制旅游攻略的高级MCP服务。
开发过程
点击视频查看开发过程:https://cloud.video.taobao.com/vod/qgg7pTSL23KMpoSZcdaHIniKiDzLNV5rpsOFngoAq88.mp4
如果您想快速体验开发完成后的效果,操作步骤如下:
1. 部署您的专属MCP服务
尽管您可以在MCP广场搜索或直接添加服务商提供的MCP服务,但更通用的做法是部署您的专属MCP服务,它可以通过灵活定制来贴合实际业务场景。
本地部署
本地部署支持Linux系统和macOS系统,Windows用户建议通过WSL运行Linux子系统来部署服务。
在命令行终端执行以下操作:
- 安装UV工具:
curl -LsSf https://astral.sh/uv/install.sh | sh
,您可以通过执行uv --version
来验证安装成功。 - 部署MCP服务:
- 下载MCP服务示例代码:
git clone https://atomgit.com/lanxi1/amap_tour_guide_mcp_server.git && cd amap_tour_guide_mcp_server/
。
- 如果报错提示未检测到git命令,需要先安装git。
- 如果您不希望安装git,可以直接在代码仓库页面下载压缩包,解压后在IDE中打开。
- 配置环境变量:
- 将文件夹下
.env.sample
文件更名为.env
。 - 将其中
your_own_amap_key
替换为您在高德申请的key。 - 将其中
your_own_dashscope_api_key
替换为您的API Key。
- 运行MCP服务:
uv run python mcp_server.py
。
本地部署-通过Docker(推荐)
本地部署支持Linux系统和macOS系统,Windows用户建议通过WSL运行Linux子系统来部署服务。
在命令行终端执行以下操作:
- 准备运行环境:确保环境中已安装Docker,您可以通过执行
docker --version
来验证,如果返回报错信息,请安装Docker。 - 部署MCP服务:
- 下载MCP服务示例代码:
git clone https://atomgit.com/lanxi1/amap_tour_guide_mcp_server.git && cd amap_tour_guide_mcp_server/
。如果报错提示未检测到git命令,需要先安装git。 - 构建并运行MCP服务:执行以下命令,注意将其中
your_own_amap_key
替换为您在高德申请的key;将其中your_own_dashscope_api_key
替换为您的API Key。
docker build -t amap_mcp_server:1.0 . docker run -d -p 8000:8000 --name my_amap_mcp_server \ -e AMAP_KEY='your_own_amap_key' \ -e DASHSCOPE_API_KEY='your_own_dashscope_api_key' \ amap_mcp_server:1.0
通过FC部署(推荐)
- 构建镜像:通过FC部署之前,您需要一台主机来构建MCP服务的镜像。可以使用Linux系统或macOS系统,Windows用户建议通过WSL运行Linux子系统来构建镜像。
- 确保环境中已安装Docker,您可以通过执行
docker --version
来验证,如果返回报错信息,请安装Docker。 - 下载MCP服务示例代码:
git clone https://atomgit.com/lanxi1/amap_tour_guide_mcp_server.git && cd amap_tour_guide_mcp_server/
。 - 构建镜像:
docker build --platform linux/amd64 -t amap_mcp_server:1.0 .
。
- 推送镜像:由于FC只能从同地域的ACR镜像仓库中拉取镜像,在部署前,需要先将镜像推送到目标部署地域下归属您的ACR镜像仓库。ACR支持
个人版
或企业版
,本文以个人版
为例:
- 登录ACR控制台,点击个人版实例,在左侧导航栏选择镜像仓库,点击创建镜像仓库。
- 自定义仓库名称和摘要,点击下一步。
- 代码源选择
本地仓库
,点击创建镜像仓库,然后根据页面提示推送镜像。
- 部署服务:
- 登录FC控制台,在页面顶部选择与ACR相同的地域,在左侧导航栏选择函数,点击创建函数。配置以下参数,其余保持默认,然后点击创建。
- 函数类型选择
Web函数
。 - 自定义函数名称。
- 运行环境选择
自定义镜像 / 使用ACR中的镜像
。 - 容器镜像选择您之前推送到ACR中的镜像。
- 监听端口设置为
8000
。 - 环境变量中,添加变量如下:变量:
AMAP_KEY
,值:'your_own_amap_key'
;变量:DASHSCOPE_API_KEY
,值:'your_own_dashscope_api_key'
。注意将其中your_own_amap_key
替换为您在高德申请的key,your_own_dashscope_api_key
替换为您的API Key,注意保留''
。
- 在函数详情页,等待函数状态显示
函数已激活
,则说明服务已部署成功。点击HTTP触发器即可查看公网访问地址。
通过ECS部署
- 创建ECS实例:登录ECS控制台,点击创建实例。配置以下参数,其余保持默认,然后点击确认下单。
- 付费类型建议先尝试
按量付费
,后续可以随时更改。 - 实例规格建议选择
ecs.e-c1m2.large
。 - 镜像选择
Alibaba Cloud Linux 3.2104 LTS 64位
。 - 扩展程序选择
Docker 社区版
。 - 公网 IP开启
分配公网 IPv4 地址
。 - 登录凭证选择
密钥对
或自定义密码
,并完成相应配置,用于登录ECS实例。
- 部署MCP服务:等待ECS实例创建完成后,连接实例。在命令行终端执行以下操作:
- 下载MCP服务示例代码:
git clone https://atomgit.com/lanxi1/amap_tour_guide_mcp_server.git && cd amap_tour_guide_mcp_server/
。如果报错提示未检测到git命令,需要先安装git。 - 构建并运行MCP服务:执行以下命令,注意将其中
your_own_amap_key
替换为您在高德申请的key;将其中your_own_dashscope_api_key
替换为您的API Key。
docker build -t amap_mcp_server:1.0 . docker run -d -p 8000:8000 --name my_amap_mcp_server \ -e AMAP_KEY='your_own_amap_key' \ -e DASHSCOPE_API_KEY='your_own_dashscope_api_key' \ amap_mcp_server:1.0
- 开放ECS安全组端口:MCP Server运行在ECS实例的
8000
端口,为了使客户端可以从公网访问,需要为ECS安全组开放入方向的TCP 8000
端口,授权对象列的源设置为客户端的公网IP地址,如果不确定,可以暂时设置为0.0.0.0/0
,表示允许所有IP访问。
2. 连接并调用MCP服务
- 为智能编码助手手动添加MCP服务,参数配置如下:
- 类型选择
SSE
。 - 服务地址设置如下:
- 如果是本地部署的,则为
http://127.0.0.1:8000/mcp
。 - 如果是通过FC部署的,则为
/mcp
,注意将其中用实际地址进行替换,不要保留
<>
,不要遗漏/mcp
。 - 如果是通过ECS部署的,则为
http://:8000/mcp
,注意将其中用实际ECS公网IP进行替换,不要保留
<>
,不要遗漏/mcp
。
重要
后续对话过程中,如果出现MCP服务器断连的现象,请返回本页面,在MCP服务列表中点击对应服务的刷新按钮,确保服务恢复为连接状态。
- 返回会话窗口,设置模式为
智能体
,选择模型为qwen3
,在对话框中输入以下提示词并回车:生成北京旅游攻略的html页面
。
- 观察大模型是否调用正确的工具并传入正确的参数,如果确认无误,则点击确认执行。
- 如果没有自动生成页面,则需要展开已执行MCP工具,点击执行结果中的复制按钮。手动创建名为
output_tour_tips.html
的文件,将内容粘贴到文件中并保存文件。 - 生成的页面可以在浏览器中打开。
重要
您部署的MCP服务依赖于远程调用高德平台提供的API、百炼平台提供的大模型文本生成服务,由于网络波动或大模型生成内容的随机性,可能导致MCP工具调用失败。通常等待一段时间后重新执行上述步骤,或稍微调整下提示词,即可执行成功。
3. 释放资源
若不继续使用MCP Server,则需要释放相关资源,避免产生额外费用:
说明
想动手试试?作为开发者的您可以在本项目提供的代码基础上二次开发、深度定制,在此过程中也请积极尝试借助灵码来完成那些开发任务。即使业务差别很大,您也可以把代码的实现思路快速迁移到自身的业务领域中。以下提供一些思考和探索方向,期待您的参与:
- 优化本例代码的架构、算法,完善异常捕获、日志记录等能力,使其具有更好的可维护性、执行效率、健壮性。
- 当前生成的HTML内容以字符串形式返回结果,需要手动粘贴到HTML文件中。您可以尝试通过调用MCP服务来将内容自动保存为HTML文件,如果当前没有可用的MCP服务,可以尝试自己编写一个。
- 当前生成的推荐景点是通过调用高德地图的关键字搜索API实现的,无法实现个性化定制和创造性内容的生成。您可以尝试通过MCP服务来实时捕捉社交平台上的旅游热点和推荐内容,并将其整合到定制旅游攻略时的决策链路中,如果当前没有可用的MCP服务,可以尝试自己编写一个。