Map Traveler MCP
MCP를 위한 가상 여행 봇 환경
영어 / 일본어
이는 아바타가 Google Maps에서 가상으로 여행할 수 있는 환경을 만드는 MCP 서버입니다.
Claude Desktop과 같은 MCP 클라이언트를 사용하면 아바타에게 지침을 제공하고 사진과 함께 여행 진행 상황을 보고할 수 있습니다.
이제 librechat https://www.librechat.ai/ 을 지원합니다.
기능
MCP 서버 도구 기능
다음 기능을 MCP 서버로 사용할 수 있습니다. 사용 가능한 기능은 설정 및 실행 상태에 따라 달라집니다.
함수 이름을 직접 지정할 수도 있지만, Claude LLM이 자동으로 인식하므로 일반적인 용어로 작업을 지정할 수 있습니다.
예: "지금 어디 계세요?" "도쿄역으로 떠나요."
get_traveler_view_info(사진 포함:부울, 주변 시설 포함:부울)
현재 여행 아바타의 위치에 대한 정보를 가져옵니다.includePhoto: 근처 Google 스트리트 뷰 사진을 가져옵니다. 이미지 생성 AI를 설정한 경우, 아바타를 합성합니다.
includeNearbyFacilities: 근처 시설에 대한 정보를 가져옵니다.
get_traveler_location()
현재 여행 아바타의 주소와 주변 시설에 대한 정보를 가져옵니다.reach_a_percentage_of_destination() 목적지의 지정된 백분율에 도달합니다(moveMode=skip만 해당) timeElapsedPercentage: 목적지까지의 진행률(0~100)
set_traveler_location(주소: 문자열)
현재 여행 아바타의 위치를 설정합니다.주소: 주소 정보(Google Maps나 Claude가 인식할 수 있는 정확한 주소나 일반적인 이름 등)
여행자 목적지 주소를 얻으세요
설정한 여행 아바타의 목적지를 확인하세요set_traveler_destination_address(주소: 문자열)
여행 아바타의 목적지를 설정하세요주소: 주소 정보(Google Maps나 Claude가 인식할 수 있는 정확한 주소나 일반적인 이름 등)
여행 시작
목적지에서 여행을 시작하세요.(moveMode=실시간만 가능)여행 중지
여행을 중단하세요.(moveMode=실시간만 가능)set_traveler_info(설정:문자열)
여행자의 속성을 설정합니다. 이름이나 성격 등 동적으로 변경할 여행자의 성격을 설정합니다. 역할 스크립트를 사용하면 스크립트가 더 안정적입니다.설정: 이름, 성격 등의 설정 정보입니다.
여행자 정보 얻기
여행자의 속성을 파악하세요. 여행자의 성격을 파악하세요.set_avatar_prompt(프롬프트:문자열)
여행 아바타 이미지를 생성할 때 프롬프트를 설정합니다. 기본값은 애니메이션 스타일의 여성입니다. 애니메이션 스타일은 가짜 이미지 생성을 방지하기 위해 적용됩니다.즉각적인
리셋_아바타_프롬프트
아바타 생성 프롬프트를 기본값으로 재설정합니다.get_sns_feeds
지정된 사용자 정의 피드(특정 태그가 포함된 피드)에 대한 Bluesky SNS 기사를 가져옵니다.get_sns_mentions
본인이 직접 작성한 Bluesky SNS 게시물에 대한 최근 언급(좋아요, 답글)을 받습니다.post_sns_writer(메시지:문자열)
지정된 사용자 지정 피드와 함께 Bluesky SNS에 게시물을 게시합니다. 게시물이 여행 봇에서 생성되었음을 확인할 수 있도록 특정 태그를 설정하세요.메시지: 기사
reply_sns_writer(메시지:문자열, ID:문자열)
지정된 ID로 게시물에 답글을 작성하세요. 게시물이 여행 봇에서 생성되었음을 확인할 수 있도록 특정 태그를 설정하세요.메시지: 답장
id: 답글을 달 게시물의 ID
add_like(id:문자열)
지정된 게시물에 '좋아요'를 추가합니다.id : 좋아요를 누르고 싶은 게시물의 ID
팁
아직 설정되지 않은 기능을 설정하는 방법을 안내합니다.get_setting
환경 및 이미지 설정을 가져옵니다.
MCP 리소스
사용자 지정 프롬프트 샘플이 5개 있습니다. Claude Desktop으로 프롬프트를 가져오면 Claude가 여행자 역할을 합니다. SNS 호환 버전은 여행 중 대화하는 동안 SNS 입력 및 출력을 제어합니다.
역할.txt
클로드는 여행자 역할을 할 것입니다.roleWithSns.txt
클로드는 여행자 역할을 합니다. 또한, SNS에 글을 읽고 올리는 것도 관리합니다.자동차 전투.txt
요코하마에서 도쿄로 비밀 문서를 운반하는 이야기를 다룬 작은 소설 게임입니다. 장면은 자동으로 생성됩니다. 플레이하려면 moveMode=skip으로 설정하세요.japanMapChallenge.txt, japanMapChallenge2.txt
두 AI는 SNS를 통해 서로 소통하고 풍경 이미지를 사용하여 챌린지 게임을 합니다.
플레이하려면 Bluesky 계정 두 개와 Claude 데스크톱 두 개가 필요합니다. 또한 moveMode=skip으로 설정하세요. (단, 작동이 다소 불안정합니다.)
japanMapChallenge2에는 도전 반영 규칙이 있습니다.
Related MCP server: Travel Assistant MCP Server
환경
여러 Google 지도에 접근하거나 이미지를 생성하는 등 여러 API에 대한 액세스 키를 획득하고 설정해야 합니다. API 사용 시 요금이 부과될 수 있습니다.
Claude Desktop과 함께 사용하기 위한 설정
클로드_데스크탑_구성.json
지엑스피1
참고: 환경 변수의 이름이 표준 스네이크 케이스(snake case)로 변경되었습니다. librechat 등 다른 환경 변수와 함께 사용될 수 있으므로 MT_ 접두사가 추가되었습니다. 이전 버전과의 호환성을 위해 이전 이름도 계속 사용할 수 있습니다.
Google Map API에 대해 다음 세 가지 자격 증명을 설정하세요.
스트리트 뷰 정적 API
장소 API(신규)
시간대 API
길찾기 API
https://developers.google.com/maps/documentation/streetview/get-api-key
이미지 생성 AI를 사용하려면 pixAi_key 또는 sd_key를 설정하세요. 또한 PC에 python3.7~3.11 버전이 설치되어 있어야 하며, rembg cli도 설치되어 있어야 합니다(가상 환경 권장).
https://platform.pixai.art/docs\ https://platform.stability.ai/docs/api-reference#tag/SDXL-1.0-and-SD1.6/Operation/textToImage
블루스카이 SNS 주소/비밀번호는 선택 사항입니다. 자동 게시되므로 전용 계정을 만드는 것이 좋습니다.
API 키 없이도 검증이 가능한 연습 모드에서 실행할 수도 있습니다.
연습 모드 설정
클로드_데스크탑_구성.json
{
"mcpServers": {
"traveler": {
"command": "npx",
"args": ["-y", "@mfukushim/map-traveler-mcp"]
}
}
}사용 방법
연습 모드를 사용하세요
Node.js 22를 설치합니다.
Claude Desktop을 사용하도록 설정합니다.
위 설정 중 하나를 claude_desktop_config.json에 반영합니다.
Claude Desktop을 다시 시작하세요. 설정하는 데 시간이 걸릴 수 있습니다(오류가 발생하면 Claude Desktop을 다시 시작해 보세요. 그래도 문제가 해결되지 않으면 아래 참고 사항을 참조하세요). 화면 오른쪽 하단에 다음 표시가 나타나는지 확인하세요.
"지금 어디에 계세요?"와 "여행을 떠나세요."라고 질문하세요. 대화가 시작됩니다. API를 사용할 때 확인 화면이 나타나면 "허용"을 선택하세요.
MCP에서 첨부를 선택하고 role.txt를 선택합니다.
여행 안내 메시지가 내장되어 있으니, 자유롭게 말씀해 보세요.
전체 기능을 사용하세요
Google Map API 액세스 키를 받고 Street View Static API, Places API(신규), Time Zone API, Directions API에 대한 권한을 설정하세요. claude_desktop_config.json 파일의 env에 이 값을 설정하고 다시 시작하세요. 이 시점에서 여행 기록은 실제 지도를 기반으로 합니다. 중첩되지 않은 여행 이미지도 출력됩니다.
디스크에 영향을 주지 않는 경로를 결정하고 claude_desktop_config.json 파일의 env에 있는 sqlite_path에 설정하세요. (예: %USERPROFILE%/Desktop/traveler.sqlite $HOME/Documents/traveler.sqlite 등) 이렇게 하면 여행 기록이 저장되므로 Claude Desktop을 닫더라도 여행을 계속할 수 있습니다.
Python 3.7~3.11을 설치하고 rembg를 cli로 설치하세요. 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 파일에 설치되므로 경로를 확인하세요. 파일 위치는 OS 및 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를 cli로 준비하는 대신, rembg를 서비스 API로 처리할 수 있는 설정을 추가했습니다.
다음과 같이 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로 설정합니다.
env에서 사용할 모델 등의 세부적인 구성 값을 JSON 문자열 형태로 설정합니다. 예.
{
"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과 호환되도록 개선되었습니다. 덕분에 사용이 편리해졌지만, 몇 가지 추가 설정이 필요합니다.
또한, 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 컨테이너 추가
Docker와 함께 rembg를 사용하려면 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"
MCP 서비스에 map-traveler-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.)
설정 후 컨테이너를 다시 시작합니다.
느린 PC에서는 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\에이전트를 저장하려면 생성 버튼을 클릭하세요.
새로운 채팅을 시작하세요.
설치 가이드(일본어지만 사진이 많음)
DB, 구글 맵 API, 이미지 생성 API
https://note.com/marble\_walkers/n/n765257c27f3bLibreChat 설정
https://note.com/marble\_walkers/n/n339bf7905324
소스 코드에 대한 추가 정보
저는 Effect.ts를 사용하여 오류 관리를 단순화하고 나만의 학습을 돕습니다.
우리는 또한 Effect Service를 사용하고 있지만, MCP 통화의 작동 방식으로 인해 이 서비스를 사용하여 통합하는 것이 최선이 아니라고 생각합니다.
Effect에서 직접 MCP 호출을 처리하는 것이 더 간단할 것 같습니다.
최신 업데이트에 대한 참고 사항
env에 image_width를 추가했습니다. 기본값은 512입니다. 이 값을 더 작게 설정하면 LLM API 비용이 절감될 수 있습니다.
이미지 입력/출력이 없는 MCP 클라이언트에 대해 이미지를 출력하지 않는 env 설정을 추가했습니다.
"MT_NO_IMAGE": "true"는 이미지를 생성하거나 출력하지 않습니다. 다른 이미지 관련 설정은 생략할 수 있습니다.
{
"env": {
"MT_NO_IMAGE": "true"
}
}
or
{
"env": {
"GoogleMapApi_key": "xxxx",
"MT_NO_IMAGE": "true"
}
}
SNS(블루스카이) 게시 시 추가할 태그 이름을 지정할 수 있습니다. #필수이며 최소 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.-