MCP 的虚拟旅行机器人环境
英语 /日语
这是一个 MCP 服务器,它为虚拟形象在 Google 地图上虚拟旅行创造了一个环境。
从 Claude Desktop 等 MCP 客户端,您可以向头像发出指令并通过照片报告其旅程的进度。
现在支持 librechat https://www.librechat.ai/ 。
功能
MCP 服务器工具功能
以下功能可用作 MCP 服务器。可用的功能根据设置和执行状态而有所不同。
您可以直接指定函数名称,但 Claude LLM 会自动识别它,因此您可以用通用术语指定操作。
例如:“你现在在哪里?”“我们出发去东京站吧。”
获取旅行者视图信息(包括照片:布尔值,包括附近设施:布尔值)
获取有关当前旅行头像位置的信息。includePhoto:获取附近的谷歌街景照片。如果你设置了图像生成 AI,它会合成头像。
includeNearbyFacilities:获取有关附近设施的信息。
获取旅行者位置()
获取当前旅行头像的地址和附近设施的信息。reach_a_percentage_of_destination() 到达目的地的指定百分比(moveMode=skip only)timeElapsedPercentage:到达目的地的进度百分比(0~100)
设置旅行者位置(地址:字符串)
设置当前旅行头像的位置。address:地址信息(确切的地址,或者Google Maps或Claude可以识别的通用名称等)
获取旅行者目的地地址
获取你设置的旅行头像的目的地设置旅行者目的地地址(地址:字符串)
设置旅行头像的目的地address:地址信息(确切的地址,或者Google Maps或Claude可以识别的通用名称等)
开始旅行者之旅
从目的地开始旅程。(仅限 moveMode=realtime)停止旅行者旅程
停止旅程。(moveMode=realtime only)设置旅行者信息(设置:字符串)
设置旅行者的属性。设置旅行者想要动态更改的个性,例如姓名和性格。但是,如果使用角色脚本,脚本会更稳定。设置:设置姓名、个性等信息。
获取旅行者信息
获取旅行者的属性。获取旅行者的个性。设置头像提示(提示:字符串)
设置生成旅行头像时的提示。默认为动漫风格女性。强制使用动漫风格,以防止出现虚假图像。迅速的
reset_avatar_prompt
将头像生成提示重置为默认值。获取snsfeeds
获取指定自定义 feed(包含特定标签的 feed)的 Bluesky SNS 文章。获取sns提及信息
获取您自己发布的 Bluesky SNS 帖子的最近提及(喜欢、回复)。post_sns_writer(消息:字符串)
使用指定的自定义 feed 将文章发布到 Bluesky SNS。设置特定标签,以便确定该帖子是由旅行机器人生成的。消息:文章
reply_sns_writer(消息:字符串,id:字符串)
回复指定 ID 的文章。设置特定标签,以便确定该帖子是由旅行机器人生成的。消息:回复
id:要回复的帖子的ID
添加_like(id:字符串)
为指定帖子点赞。id:要点赞的帖子的 ID
尖端
指导您如何设置尚未设置的功能。获取设置
获取环境和图像设置。
MCP 资源
包含五个自定义提示示例。使用 Claude Desktop 导入提示时,Claude 将扮演旅行者。SNS 兼容版本可在旅行对话过程中控制 SNS 的输入和输出。
角色.txt
克劳德将扮演一名旅行者。roleWithSns.txt
克劳德将扮演旅行者的角色。它还控制着阅读和发布到SNS的内容。赛车大战.txt
这是一款关于从横滨运送机密文件到东京的小说小游戏。场景自动生成。设置 moveMode=skip 即可开始游戏。japanMapChallenge.txt,japanMapChallenge2.txt
两个人工智能通过SNS相互交流,并使用风景图像玩挑战游戏。
要进行游戏,您需要两个 Bluesky 帐户和两台 Claude Desktop。同时设置 moveMode=skip。(不过,游戏运行可能不太稳定。)
japanMapChallenge2 有一个挑战反映规则。
Related MCP server: TripAdvisor Vacation Planner MCP Server
环境
您需要获取并设置多个 API 的访问密钥,例如访问多个 Google 地图和生成图片。使用这些 API 可能会产生费用。
与 Claude Desktop 一起使用的设置
claude_desktop_config.json
注意:环境变量已重命名为标准蛇形命名法。添加 MT_ 前缀是因为它们可能与其他环境变量(例如在 librechat 中)一起使用。旧名称仍可用于向后兼容。
请为 Google Map API 设置以下三个凭据。
街景静态 API
地点 API(新)
时区 API
路线 API
https://developers.google.com/maps/documentation/streetview/get-api-key
如需使用图像生成 AI,请设置 pixAi_key 或 sd_key。此外,您的电脑需要安装 python3.7~3.11 版本以及 rembg 命令行工具(建议使用虚拟环境)。
https://platform.pixai.art/docs\ https://platform.stability.ai/docs/api-reference#tag/SDXL-1.0-and-SD1.6/operation/textToImage
Bluesky SNS 地址/密码为可选。建议您创建一个专用帐户,因为它会自动发布帖子。
您还可以在练习模式下运行它,这不需要 API 密钥进行验证。
练习模式设置
claude_desktop_config.json
如何使用
使用练习模式
安装 nodejs 22。
设置 Claude Desktop 以供使用。
在 claude_desktop_config.json 中反映上述设置之一。
重启 Claude Desktop。设置可能需要一些时间(如果出现错误,请尝试再次重启 Claude Desktop。如果仍然无效,请参阅以下说明)。确保屏幕右下角出现以下标记。
询问“你现在在哪里?”和“去旅行吧”。对话将开始。使用 API 时,将出现确认屏幕,因此请选择“允许”。
选择从 MCP 附加并选择 role.txt。
已内置旅行提示,请随意与其交谈。
使用完整功能
获取 Google 地图 API 访问密钥,并设置街景静态 API、地点 API(新)、时区 API 和路线 API 的权限。在 claude_desktop_config.json 的环境中设置这些权限,然后重启。此时,行程日志将基于真实地图。行程图像(如果未叠加)也会输出。
确定一个不会干扰磁盘的路径,并将其设置在 claude_desktop_config.json 的 env 文件的 sqlite_path 中。(例如:%USERPROFILE%/Desktop/traveler.sqlite 或 $HOME/Documents/traveler.sqlite 等)此时,您的旅行日志将被保存,即使您关闭 Claude Desktop,也可以继续您的旅程。
安装 Python 3.7 到 3.11,并使用 cli 安装 rembg。建议使用 venv 等虚拟环境。
使用示例图像文件检查 rembg cli 是否正常工作。输入一张包含人物的图像,如果输出文件中人物被裁剪掉,则表示正常。
rembg cli 将安装在 python exe 位置,因此请获取路径。文件位置因操作系统和 python 安装状态而异,但对于 venv,它位于您设置的目录上方的(虚拟环境名称)\Scripts\rembg.exe 或(虚拟环境名称)/bin/rembg。如果找不到,请使用文件搜索软件搜索路径。将该路径设置为 claude_desktop_config.json 中 env 的 rembg_path。(例如:“rembg_path”:“C:\Users\xxxx\Documents\rembg_venv\venv\Scripts\rembg.exe”)
从 pixAI 或 Stability.ai 网站获取图像生成 API 密钥。在 claude_desktop_config.json 的 env 文件中,将密钥设置为 pixAi_key 或 sd_key。现在,头像将叠加在旅行图片上。
获取 Bluesky 的 SNS 地址/密码以及句柄名称。分别在 claude_desktop_config.json 的 env 文件中的 bs_id、bs_pass 和 bs_handle 中设置这些值。导入旅行知识提示 roleWithSns.txt 文件,将旅行活动报告给 SNS(它会以机器人身份自动发布,因此我们建议分配一个专用帐户)
我们添加了一个设置,允许您将 rembg 作为服务 API 来处理,而不是使用 cli 来准备 rembg。
如果配置了如下的rembg服务,则可以通过设置remBgUrl中的URL来使用rembg。
https://github.com/danielgatis/rembg?tab=readme-ov-file#rembg-s
如果您使用 Docker 版本启动容器并访问它,则设置很简单。
https://github.com/danielgatis/rembg?tab=readme-ov-file#usage-as-a-docker
使用外部 ComfyUI 时(适用于更高级的用户)
您也可以使用本地的 ComfyUI 作为图片生成服务器,并可自行详细配置图片生成特性,降低 API 成本。
但是,配置会相当复杂,并且图像生成可能需要更长的时间。
配置 ComfyUI 以 API 模式运行。
在 env 中将服务器 URL 设置为 comfy_url。
以json字符串的形式设置env中要使用的模型等详细的配置值。示例。
默认工作流可以使用包中的 assets/comfy/t2i_sample.json 和 assets/comfy/i2i_sample.json 文件。您可以使用 % 指定变量,并在 comfy_params 中指定变量。
使用 libreChat
它已适配 libreChat。这使其更易于使用,但需要进行一些额外的设置。
此外,除非您使用的 PC 具有相当好的性能,例如可以稳定运行 Docker 的 PC,否则它似乎不会稳定。
安装 libreChat
请确保它按照官方网站的描述运行。
在这种情况下,由于需要额外的设置,我们建议使用 Docker 配置。
https://www.librechat.ai/docs/local/docker
使用官方程序配置librechat.yaml。
我认为您需要添加本地或 API LLM 服务。
https://www.librechat.ai/docs/configuration/librechat\_yaml
添加用户进行登录。
https://www.librechat.ai/docs/configuration/authentication#create-user-script
请进行设置以便您可以进行一般聊天对话。
添加具有附加设置的 rembg 容器
要将 rembg 与 Docker 一起使用,请添加拉取并运行 rembg Docker 容器。
docker-compose.override.yml
将 map-traveler-mcp 添加到 MCP 服务
添加 librechat.yaml
添加 .env(与 claude_desktop_config.json 中的 env 相同)
设置完成后重启容器。
在速度较慢的电脑上,mcp 初始化可能会失败。多次重启或许有效,但这可能比较困难……
llibreChat 设置
要在 libreChat 中使用 MCP 功能,请使用代理功能。
在对话屏幕上,选择“代理”。
从屏幕右侧的面板中选择 Agent Builder 并配置您的代理。\
选择添加工具以使用 map-traveler。\
代理工具屏幕将会出现,因此选择并添加所有 map-traveler-mcp 工具(如果未列出 map-traveler-mcp 工具,则 MCP 初始化失败,因此请重新启动容器或通过检查日志等来检查设置)\ \
在指令区域输入附加脚本。
由于 libreChat 没有 MCP 资源功能,因此请将以下 URL 的内容文本输入到说明区域。
https://github.com/mfukushim/map-traveler-mcp/blob/main/assets/scenario/role.txt\单击“创建”按钮保存代理。\
开始新的聊天。
安装指南(日语,但有很多图片)
数据库、谷歌地图 API、图像生成 API
https://note.com/marble\_walkers/n/n765257c27f3bLibreChat 设置
https://note.com/marble\_walkers/n/n339bf7905324
关于源代码的补充
我使用 Effect.ts 来简化错误管理和用于我自己的学习。
我们也使用效果服务,但由于 MCP 调用的工作方式,我们认为使用该服务进行整合并不是最佳选择。
我认为直接在 Effect 中处理 MCP 调用会更简单。
最新更新说明
在 env 中添加了 image_width。默认值为 512。将其设置得较小可能会降低 LLM API 的成本。
对于没有图像输入/输出的 MCP 客户端,添加了不输出图像的环境设置。
"MT_NO_IMAGE": true 表示不生成或输出任何图像。其他与图像相关的设置可以省略。
您现在可以指定在 SNS(Bluesky)上发布时添加的标签名称。#必填,且必须至少包含 15 个字符。如果未指定,则将变为“#geo_less_traveler”。
从SNS获取的信息略有更改。发布到SNS的信息略有更改。
添加了允许多个旅行机器人通过 SNS 进行对话和玩耍的脚本。