使用说明
项目简介
Map Traveler MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它模拟了一个虚拟旅行环境,允许大型语言模型(LLM)客户端控制一个虚拟角色在 Google 地图上进行旅行。通过集成 Google 地图 API 和图像生成 AI,该服务器能够为 LLM 提供丰富的上下文信息和工具,实现沉浸式的虚拟旅行体验。你可以使用支持 MCP 协议的客户端,如 Claude Desktop 或 LibreChat,与该服务器连接,让 LLM 指挥虚拟角色,探索世界各地的风景。
主要功能点
- 资源管理: 提供预设的角色扮演 Prompt 模板(role.txt, roleWithSns.txt, carBattle.txt),允许用户快速设定旅行情境。
- 工具注册与执行: 注册并提供一系列工具 (Tools),允许 LLM 客户端调用,控制虚拟角色的行为,例如:
- 获取当前位置信息 (get_traveler_view_info, get_traveler_location)
- 设置旅行目的地 (set_traveler_destination_address)
- 开始和停止旅行 (start_traveler_journey, stop_traveler_journey)
- 设置和获取角色信息 (set_traveler_info, get_traveler_info)
- 控制虚拟形象的 Prompt (set_avatar_prompt, reset_avatar_prompt)
- 模拟 SNS 互动 (get_sns_feeds, get_sns_mentions, post_sns_writer, reply_sns_writer, add_like)
- 获取使用提示 (tips)
- 获取服务器设置 (get_setting)
- Prompt 模板: 内置多种 Prompt 模板,如 role.txt (旅行者角色扮演)、roleWithSns.txt (带 SNS 功能的旅行者角色扮演) 和 carBattle.txt (小说游戏剧本)。
- 图像生成: 支持集成 PixAi, Stability.ai 或 ComfyUI 等图像生成 AI,根据旅行场景合成虚拟角色的旅行照片。
- SNS 集成: 支持 Bluesky SNS,允许自动发布旅行动态,与社交媒体互动。
- 多种运行模式: 支持实践模式 (Practice mode) 和完整功能模式,实践模式无需 API 密钥即可体验基本功能。
安装步骤
- 安装 Node.js: 确保你的电脑上已安装 Node.js 22 或更高版本。
- 安装 Claude Desktop 或 LibreChat (MCP 客户端): 根据你的选择安装 Claude Desktop 或 LibreChat,并确保它们可以正常运行。
- 配置 MCP 服务器信息: 根据你使用的 MCP 客户端,配置连接到 Map Traveler MCP Server 的信息。具体配置方法请参考 "服务器配置" 部分。
- 启动 MCP 客户端: 重启 Claude Desktop 或 LibreChat,使配置生效。
服务器配置 (MCP 客户端配置)
以下是 Claude Desktop 客户端的 'claude_desktop_config.json' 配置文件示例。你需要将以下配置添加到你的 'claude_desktop_config.json' 文件中,以连接到 Map Traveler MCP Server。
{ "mcpServers": { "traveler": { // 服务器名称,可以自定义 "command": "npx", // 启动服务器的命令,这里使用 npx "args": ["-y", "@mfukushim/map-traveler-mcp"], // 启动服务器的参数,这里使用 @mfukushim/map-traveler-mcp 包 "env":{ // 环境变量配置,用于配置 API 密钥等 "MT_GOOGLE_MAP_KEY":"(Google Map API key)", // Google Map API 密钥,用于访问 Google 地图服务,**完整功能模式必须配置** "MT_MAP_API_URL": "(Optional: Map API custom endpoint. Example: direction=https://xxxx,places=https://yyyy )", // 可选:自定义 Map API 端点 "MT_TIME_SCALE": "(Optional:Scale of travel time on real roads duration. default 4)", // 可选:旅行时间比例尺 "MT_SQLITE_PATH":"(db save path: e.g. %USERPROFILE%/Desktop/traveler.sqlite ,$HOME/traveler.sqlite )", // 可选:SQLite 数据库文件保存路径,用于持久化旅行数据,**完整功能模式建议配置** "MT_REMBG_PATH": "(absolute path of the installed rembg cli)", // 可选:rembg CLI 可执行文件绝对路径,用于图像背景移除,**如果使用本地 rembg 需配置** "MT_REMBG_URL": "(rembg API URL)", // 可选:rembg 服务 API URL,用于图像背景移除,**如果使用 rembg 服务 API 需配置** "MT_PIXAI_KEY":"(pixAi API key)", // PixAi 图像生成 API 密钥,用于生成虚拟角色图像,**可选,用于完整功能模式** "MT_SD_KEY":"(or Stability.ai image generation API key", // Stability.ai 图像生成 API 密钥,**可选,用于完整功能模式,PixAi 和 Stability.ai 二选一配置即可** "MT_PIXAI_MODEL_ID": "(Optional: pixAi ModelId, if not set use default model 1648918127446573124 ", // 可选:PixAi 模型 ID "MT_COMFY_URL": "(Option: Generate image using ComfyUI API at specified URL. Example: http://192.168.1.100:8188)", // 可选:ComfyUI API URL,用于使用 ComfyUI 生成图像,**可选,高级用户配置** "MT_COMFY_WORKFLOW_T2I": "(Optional: Path to API workflow file when using text to image with ComfyUI. If not specified: assets/comfy/t2i_sample.json)", // 可选:ComfyUI 文生图工作流文件路径 "MT_COMFY_WORKFLOW_I2I": "(Optional: Path of API workflow file when image to image in ComfyUI. If not specified: assets/comfy/i2i_sample.json)", // 可选:ComfyUI 图生图工作流文件路径 "MT_COMFY_PARAMS": "(Optional: Variable values to send to the workflow via comfyUI API)", // 可选:ComfyUI 工作流参数 "MT_FIXED_MODEL_PROMPT": "(Optional: Fixed avatar generation prompt. You will no longer be able to change your avatar during conversations.)", // 可选:固定角色形象 Prompt,设置后对话中无法更改形象 "MT_BODY_AREA_RATIO": "(Optional: Acceptable avatar image area ratio. default 0.042)", // 可选:可接受的角色图像区域比例 "MT_BODY_HW_RATIO": "(Optional: Acceptable avatar image aspect ratios. default 1.5~2.3)", // 可选:可接受的角色图像宽高比 "MT_BODY_WINDOW_RATIO_W": "(Optional: Avatar composite window horizontal ratio. default 0.5)", // 可选:角色合成窗口水平比例 "MT_BODY_WINDOW_RATIO_H": "(Optional: Avatar composite window aspect ratio. default 0.75)", // 可选:角色合成窗口垂直比例 "MT_BS_ID":"(Bluesky sns registration address)", // Bluesky SNS 注册地址,**可选,用于 SNS 功能** "MT_BS_PASS":"(bluesky sns password)", // Bluesky SNS 密码,**可选,用于 SNS 功能** "MT_BS_HANDLE":"(bluesky sns handle name: e.g. xxxxxxxx.bsky.social )", // Bluesky SNS Handle 名称,**可选,用于 SNS 功能** "MT_FILTER_TOOLS": "(Optional: Directly filter the tools to be used. All are available if not specified. e.g. tips,set_traveler_location)", // 可选:工具过滤器,用于限制可使用的工具 "MT_MOVE_MODE": "(Option: Specify whether the movement mode is realtime or skip. default realtime)", // 可选:移动模式,realtime (实时) 或 skip (跳过),默认为 realtime "MT_IMAGE_WIDTH": "(Option: Output image width (pixels) Default is 512)" // 可选:输出图像宽度 } } } }
基本使用方法 (Claude Desktop 客户端)
- 启动 Claude Desktop 客户端。
- 在对话框中输入指令。 你可以像与普通聊天机器人对话一样,向 Claude 发送指令,例如:
- "你在哪里?" (Where are you now?)
- "我们去东京站吧。" (Let's go to Tokyo Station.)
- 允许 API 访问。 当 Claude Desktop 首次调用 MCP 服务器的功能时,会弹出 API 权限请求,请选择 "Allow" (允许)。
- 附加 Prompt 资源。 点击 Claude Desktop 对话框中的 "Attach from MCP" 按钮,选择 "role.txt" 或 "roleWithSns.txt" Prompt 资源,以设定虚拟角色的行为模式。
- 开始对话。 现在你可以开始与虚拟旅行者进行对话,并指示它进行各种旅行操作了。
完整功能模式配置说明
要体验 Map Traveler MCP Server 的完整功能,你需要进行以下配置:
- 获取 Google Maps API 密钥: 访问 Google Cloud Console,创建一个新的 API 项目,并启用 Street View Static API, Places API (New), Time Zone API 和 Directions API。将获得的 API 密钥填入 'claude_desktop_config.json' 的 'MT_GOOGLE_MAP_KEY' 环境变量中。
- 配置 SQLite 数据库: 在 'claude_desktop_config.json' 的 'MT_SQLITE_PATH' 环境变量中设置 SQLite 数据库文件的保存路径,用于持久化旅行数据。
- 配置图像生成 AI (可选): 如果你希望使用图像生成 AI 功能,你需要选择 PixAi, Stability.ai 或 ComfyUI,并获取相应的 API 密钥或服务 URL。将 API 密钥或服务 URL 填入 'claude_desktop_config.json' 的 'MT_PIXAI_KEY', 'MT_SD_KEY' 或 'MT_COMFY_URL' 环境变量中。 如果使用本地 rembg 进行图像背景移除,还需要配置 'MT_REMBG_PATH' 为 rembg CLI 可执行文件的绝对路径。 如果使用 rembg 服务 API 进行图像背景移除,还需要配置 'MT_REMBG_URL' 为 rembg 服务 API URL。
- 配置 Bluesky SNS (可选): 如果你希望使用 SNS 功能,创建一个专用的 Bluesky SNS 账号,并将账号的注册地址、密码和 Handle 名称填入 'claude_desktop_config.json' 的 'MT_BS_ID', 'MT_BS_PASS' 和 'MT_BS_HANDLE' 环境变量中。
配置完成后,重启 Claude Desktop 或 LibreChat,即可体验 Map Traveler MCP Server 的完整功能。
信息
分类
AI与计算