Map Traveler MCP
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: Travel Assistant MCP Server
环境
您需要获取并设置多个 API 的访问密钥,例如访问多个 Google 地图和生成图片。使用这些 API 可能会产生费用。
与 Claude Desktop 一起使用的设置
claude_desktop_config.json
{
"mcpServers": {
"traveler": {
"command": "npx",
"args": ["-y", "@mfukushim/map-traveler-mcp"],
"env":{
"MT_GOOGLE_MAP_KEY":"(Google Map API key)",
"MT_MAP_API_URL": "(Optional: Map API custom endpoint. Example: direction=https://xxxx,places=https://yyyy )",
"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 )",
"MT_REMBG_PATH": "(absolute path of the installed rembg cli)",
"MT_REMBG_URL": "(rembg API URL)",
"MT_PIXAI_KEY":"(pixAi API key)",
"MT_SD_KEY":"(or Stability.ai image generation API key",
"MT_PIXAI_MODEL_ID": "(Optional: pixAi ModelId, if not set use default model 1648918127446573124 ",
"MT_COMFY_URL": "(Option: Generate image using ComfyUI API at specified URL. Example: http://192.168.1.100:8188)",
"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)",
"MT_COMFY_WORKFLOW_I2I": "(Optional: Path of API workflow file when image to image in ComfyUI. If not specified: assets/comfy/i2i_sample.json)",
"MT_COMFY_PARAMS": "(Optional: Variable values to send to the workflow via comfyUI API)",
"MT_FIXED_MODEL_PROMPT": "(Optional: Fixed avatar generation prompt. You will no longer be able to change your avatar during conversations.)",
"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)",
"MT_BS_PASS":"(bluesky sns password)",
"MT_BS_HANDLE":"(bluesky sns handle name: e.g. xxxxxxxx.bsky.social )",
"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)",
"MT_IMAGE_WIDTH": "(Option: Output image width (pixels) Default is 512)",
"MT_NO_IMAGE": "(Options: true = do not output image, not specified = output image if possible, default is not specified)",
"MT_FEED_TAG": "(Optional: Specify the feed tag when posting to SNS (#required, 15 characters or more) Default is #geo_less_traveler)"
}
}
}
}注意:环境变量已重命名为标准蛇形命名法。添加 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
{
"mcpServers": {
"traveler": {
"command": "npx",
"args": ["-y", "@mfukushim/map-traveler-mcp"]
}
}
}如何使用
使用练习模式
安装 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 等虚拟环境。
python3 -m venv venv
. venv/bin/activate or .\venv\Scripts\activate
pip install "rembg[cpu,cli]"使用示例图像文件检查 rembg cli 是否正常工作。输入一张包含人物的图像,如果输出文件中人物被裁剪掉,则表示正常。
rembg i source_image_file dest_image_filerembg 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中要使用的模型等详细的配置值。示例。
{
"env": {
"comfy_url": "http://192.168.1.100:8188",
"comfy_workflow_t2i": "C:\\Documents\\t2itest.json",
"comfy_workflow_i2i":"C:\\Documents\\i2itest.json",
"comfy_params":"ckpt_name='animagineXL40_v40.safetensors',denoise=0.65"
}
}默认工作流可以使用包中的 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
services:
api:
volumes:
- type: bind
source: ./librechat.yaml
target: /app/librechat.yaml
rembg:
image: danielgatis/rembg:latest
restart: always
command: "s --host 0.0.0.0 --port 7000 --log_level info"
将 map-traveler-mcp 添加到 MCP 服务
添加 librechat.yaml
mcpServers:
traveler:
type: stdio
command: npx
args:
- -y
- "@mfukushim/map-traveler-mcp"添加 .env(与 claude_desktop_config.json 中的 env 相同)
# map-traveler-mcp
GoogleMapApi_key=(Google Map API key)
sqlite_path=/home/run_test.sqlite (e.g. librechat in an unobtrusive location inside the container, or in an external directory that you don't want to mount.)
remBgUrl=http://rembg:7000 (rembg Service API URL, container URL)
(Other settings such as image generation AI settings, PixAI key, stability.ai API key, ComfyUI settings, etc.)
设置完成后重启容器。
在速度较慢的电脑上,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 表示不生成或输出任何图像。其他与图像相关的设置可以省略。
{
"env": {
"MT_NO_IMAGE": "true"
}
}
or
{
"env": {
"GoogleMapApi_key": "xxxx",
"MT_NO_IMAGE": "true"
}
}
您现在可以指定在 SNS(Bluesky)上发布时添加的标签名称。#必填,且必须至少包含 15 个字符。如果未指定,则将变为“#geo_less_traveler”。
从SNS获取的信息略有更改。发布到SNS的信息略有更改。
添加了允许多个旅行机器人通过 SNS 进行对话和玩耍的脚本。
Available Tools
8 toolsget_settingGet the current settingDInspect
Get current setting
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it offers no information about traits such as whether this is a read-only operation, if it requires authentication, potential rate limits, or what the return format might be. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('Get current setting'), which could be seen as efficient. However, it's under-specified rather than appropriately sized, failing to provide necessary context. It's front-loaded but lacks substance, making it borderline between conciseness and insufficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'setting' refers to, what data is returned, or how this tool fits into the context of sibling tools (e.g., traveler-related operations). For a tool with no structured data support, the description fails to provide essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion. A baseline score of 4 is appropriate as the schema fully handles the parameter aspect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get current setting' is a tautology that merely restates the tool name and title without adding specificity. It doesn't clarify what type of setting (e.g., system, user, application) or which resource it retrieves, nor does it distinguish this tool from its siblings like 'get_traveler_info' or 'get_traveler_location'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, leaving the agent with no information to decide between this tool and sibling tools like 'get_traveler_info' or 'set_traveler_info'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_traveler_infoGet the traveler's preferences (optional).CInspect
get a traveler's setting.For example, traveler's name, the language traveler speak, Personality and speaking habits, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| settings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but only mentions what data is retrieved without disclosing behavioral traits like permissions needed, rate limits, or response format. It lacks details on whether this is a read-only operation or has other constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, using a single sentence with examples to convey the purpose efficiently. However, it could be more structured by explicitly stating the tool's scope or limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 undocumented parameter, no annotations, and no output schema, the description is incomplete. It provides basic purpose but lacks details on parameters, behavior, and output, making it inadequate for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, and the tool description does not explain the 'settings' parameter at all. It fails to add any meaning beyond the schema, leaving the parameter undocumented and unclear in usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves a traveler's settings with examples (name, language, personality), which clarifies the purpose beyond the name. However, it doesn't differentiate from sibling tools like 'get_setting' or 'get_traveler_view_info', making it somewhat vague in comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_setting' or 'get_traveler_view_info'. The description only lists examples of what it retrieves, offering no context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_traveler_locationGet the traveler's current locationBInspect
Get the address of the current traveler's location
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't reveal any behavioral traits such as permissions needed, rate limits, whether the location is real-time or cached, or what happens if no traveler exists. This is inadequate for a tool that likely involves sensitive location data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded and wastes no words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of location data (potentially sensitive) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., address format, coordinates), error conditions, or behavioral context, leaving significant gaps for the agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it could briefly note the lack of inputs for clarity. A baseline of 4 is given as it meets the requirement for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('address of the current traveler's location'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_traveler_info' or 'get_traveler_view_info', which might also provide location-related information, so it doesn't achieve full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_traveler_info' or 'get_traveler_view_info'. It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_traveler_view_infoGet the current location's viewCInspect
Get the address of the current traveler's location and information on nearby facilities,view snapshot
| Name | Required | Description | Default |
|---|---|---|---|
| includeNearbyFacilities | No | Get information on nearby facilities | |
| includePhoto | No | Get scenery photos of current location |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what information is retrieved but lacks details on permissions, rate limits, data freshness, or error handling. For a tool that accesses location and facility data, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the core purpose in a single sentence. However, the phrase 'view snapshot' is ambiguous and could be clarified, slightly reducing efficiency. Overall, it's appropriately sized with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving location and facility data), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral aspects and output format, which are important for effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters ('includeNearbyFacilities' and 'includePhoto'). The description mentions 'information on nearby facilities' and 'view snapshot', which align with the parameters but don't add significant meaning beyond what the schema provides. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the address of the current traveler's location and information on nearby facilities, view snapshot'. This specifies the verb ('Get') and resources (address, nearby facilities, view snapshot). However, it doesn't explicitly distinguish this tool from sibling tools like 'get_traveler_location' or 'get_traveler_info', which appear related to traveler data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or clarify the context for selecting this specific tool over others like 'get_traveler_location' or 'get_traveler_info', leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_traveler_infoSet the traveler's preferences (optional).CInspect
set a traveler's setting.For example, traveler's name, the language traveler speak, Personality and speaking habits, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | traveler's setting. traveler's name, the language traveler speak, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation operation ('set'), but doesn't specify whether this requires permissions, if changes are reversible, what happens to existing settings, or any rate limits. The description adds minimal context beyond the basic action, failing to address key behavioral traits for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core action ('set a traveler's setting'), followed by illustrative examples. It avoids unnecessary elaboration, though the use of 'etc.' and minor grammatical issues ('traveler's name, the language traveler speak') slightly reduce clarity. Overall, it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation nature, lack of annotations, and no output schema, the description is insufficiently complete. It doesn't cover behavioral aspects like permissions, reversibility, or response format, and while the parameter is documented in the schema, the description doesn't compensate for the missing context needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'settings' documented as 'traveler's setting. traveler's name, the language traveler speak, etc.' The description adds examples ('traveler's name, the language traveler speak, Personality and speaking habits, etc.') that align with the schema but don't provide additional syntax, format, or constraints beyond what's already in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose ('set a traveler's setting') and provides examples ('traveler's name, the language traveler speak, Personality and speaking habits'), which clarifies the resource and scope. However, it doesn't explicitly differentiate from siblings like 'get_traveler_info' or 'get_setting', and the phrasing is somewhat vague with 'etc.' leaving some ambiguity about the full range of settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, such as how it differs from sibling tools like 'get_traveler_info' or 'get_setting'. It lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name and examples alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_traveler_journeyStart the journeyCInspect
Start the traveler's journey to destination
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action ('Start') but doesn't disclose behavioral traits such as whether this is a mutation, what permissions are needed, if it's idempotent, or what happens if a journey is already in progress. This leaves significant gaps for a tool that likely changes state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's action. It's appropriately sized for a simple tool with no parameters, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'destination' means, how it's determined, what the expected outcome is, or any error conditions. For a tool that likely initiates a state change, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add parameter details, which is acceptable here since there are none to explain, aligning with the baseline for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Start') and resource ('traveler's journey to destination'), making the purpose understandable. However, it doesn't differentiate from the sibling tool 'stop_traveler_journey' beyond the verb, and 'destination' is vague without specifying what it refers to or how it's determined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'stop_traveler_journey' or other sibling tools. The description implies it's for initiating travel, but it doesn't specify prerequisites, conditions, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_traveler_journeyStop the journeyCInspect
Stop the traveler's journey
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Stop the traveler's journey' implies a mutation or state change, but the description doesn't specify whether this action is reversible, what permissions are required, what side effects occur (e.g., does it cancel ongoing processes?), or what the response looks like. This is inadequate for a tool that likely alters system state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words, which is efficient. However, it's under-specified rather than appropriately sized—it lacks necessary context for a mutation tool, so its brevity doesn't earn full credit for being 'front-loaded' with helpful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool likely performs a mutation (stopping a journey) with no annotations and no output schema, the description is incomplete. It doesn't explain what 'stopping' entails, what happens post-execution, or any error conditions, leaving significant gaps for an agent to understand the tool's behavior and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter details, and it correctly implies no parameters are required by not mentioning any. This meets the baseline for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stop the traveler's journey' is a tautology that merely restates the tool name 'stop_traveler_journey' and title 'Stop the journey' without adding specificity. It doesn't clarify what 'journey' means in this context or what resources are affected, though it does include the verb 'stop' and resource 'traveler's journey' which provides minimal differentiation from siblings like 'start_traveler_journey'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that a journey must be active), exclusions, or comparisons to sibling tools like 'start_traveler_journey', leaving the agent with no contextual usage information beyond the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tipsTips for using this MCP serverCInspect
Inform you of recommended actions for your device
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Inform you' but doesn't clarify whether this is a read-only operation, if it requires permissions, how recommendations are generated, or what the output format might be. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose ('Inform you of recommended actions'), making it easy to parse. However, it could be slightly more specific to improve clarity without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple informational tool with no parameters) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'recommended actions' entail, how they're determined, or what the return value looks like. For a tool that might provide actionable advice, more context is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics beyond what the schema provides. A baseline score of 4 is appropriate as the description doesn't contradict the empty schema and the lack of parameters is handled adequately by the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose as informing about recommended actions for a device, which is clear but vague. It uses a specific verb ('Inform') and resource ('recommended actions for your device'), but doesn't distinguish this from sibling tools like 'get_setting' or 'get_traveler_info' that might also provide device-related information. The purpose is understandable but lacks specificity about what types of recommendations or actions are involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_setting' or 'get_traveler_info' that might retrieve device information, there's no indication of when 'tips' is appropriate—e.g., for proactive advice versus status queries. Usage is implied as informational but without explicit context or exclusions, leaving the agent to guess based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v1.0.0- First observed
get_setting - First observed
get_traveler_info - First observed
get_traveler_location - First observed
get_traveler_view_info - First observed
set_traveler_info - First observed
start_traveler_journey - First observed
stop_traveler_journey - First observed
tips
TDQS
Scored across 8 tools
Most tools have distinct purposes, but there is some overlap between get_traveler_info and get_setting, and get_traveler_location and get_traveler_view_info share similar location-related functions. The descriptions help clarify differences, but an agent might occasionally misselect between these pairs.
The naming follows a consistent verb_noun pattern with snake_case throughout, such as get_traveler_info and set_traveler_info. The only minor deviation is 'tips', which is a noun rather than a verb_noun pattern, but it fits the overall style and does not break consistency severely.
With 8 tools, the count is well-scoped for a travel or mapping server. Each tool appears to serve a specific function in managing traveler settings, location, and journey control, making the set neither too sparse nor overloaded.
The tool set covers core operations like getting/setting traveler info, location, and journey control, but there are notable gaps. For example, there is no tool for updating journey details mid-travel or handling multiple travelers, which could limit agent workflows in a travel domain.
Maintenance
Related MCP Connectors
A MCP server that works with Google Calendar to manage event listing, reading, and updates.
An MCP server that automatically collects feedback on your MCP server.
Geo-based flight search MCP server. Find more flights between any two places on earth
Related MCP Servers
- -licenseNot gradedqualityAmaintenanceMCP Server for the Google Maps API.11,868 npm91,276MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server for intelligent travel planning that integrates 16 tools, live APIs, and a gamification system to help users plan trips, track expenses, and discover events.5 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Japanese public transit journey planning with interactive map UI, enabling station search, route planning, and departure lookups via natural language.MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for generating interactive 3D Earth visualizations with annotated news from multiple global sources.-