hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Enables reading from custom feeds, getting mentions, posting articles, replying to posts, and adding likes to content on Bluesky SNS
Provides virtual travel capabilities including location setting, navigation, journey planning, and retrieving information about destinations and nearby facilities
Retrieves Street View photos of locations which can be combined with generated avatars to create immersive travel imagery
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 有一个挑战反映规则。
环境
您需要获取并设置多个 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\ - 单击“创建”按钮保存代理。\
- 开始新的聊天。
安装指南(日语,但有很多图片)
- 介绍和练习模式
https://note.com/marble\_walkers/n/n7a8f79e4fb30 - 数据库、谷歌地图 API、图像生成 API
https://note.com/marble\_walkers/n/n765257c27f3b - 头像提示
https://note.com/marble\_walkers/n/nc7273724faea - SNS 集成
https://note.com/marble\_walkers/n/na7c956befe7b - 应用 1
https://note.com/marble\_walkers/n/n3c86edd8e817 - ComfyUI API
https://note.com/marble\_walkers/n/ncefc7c05d102 - 应用 2
https://note.com/marble\_walkers/n/ne7584ed231c8 - LibreChat 设置
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 进行对话和玩耍的脚本。
You must be authenticated.
在 Google 地图上创建虚拟旅行环境的 MCP 服务器,允许用户通过照片报告和 SNS 集成来引导虚拟形象进行旅程。