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를 위한 가상 여행 봇 환경
영어 / 일본어
이는 아바타가 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에는 도전 반영 규칙이 있습니다.
환경
여러 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
사용 방법
연습 모드를 사용하세요
- 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와 같은 가상 환경을 사용하는 것을 권장합니다.
샘플 이미지 파일을 사용하여 rembg cli가 제대로 작동하는지 확인하세요. 사람이 포함된 이미지를 입력하고, 출력 파일에서 해당 사람이 잘려나간다면 문제가 없는 것입니다.
- rembg 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 문자열 형태로 설정합니다. 예.
- 기본 워크플로는 패키지의 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
MCP 서비스에 map-traveler-mcp를 추가합니다.
librechat.yaml을 추가하세요
.env 추가(claude_desktop_config.json의 env와 동일)
설정 후 컨테이너를 다시 시작합니다.
느린 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\ - 에이전트를 저장하려면 생성 버튼을 클릭하세요.
- 새로운 채팅을 시작하세요.
설치 가이드(일본어지만 사진이 많음)
- 소개 및 연습 모드
https://note.com/marble\_walkers/n/n7a8f79e4fb30 - DB, 구글 맵 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를 사용하여 오류 관리를 단순화하고 나만의 학습을 돕습니다.
우리는 또한 Effect Service를 사용하고 있지만, MCP 통화의 작동 방식으로 인해 이 서비스를 사용하여 통합하는 것이 최선이 아니라고 생각합니다.
Effect에서 직접 MCP 호출을 처리하는 것이 더 간단할 것 같습니다.
최신 업데이트에 대한 참고 사항
env에 image_width를 추가했습니다. 기본값은 512입니다. 이 값을 더 작게 설정하면 LLM API 비용이 절감될 수 있습니다.
이미지 입력/출력이 없는 MCP 클라이언트에 대해 이미지를 출력하지 않는 env 설정을 추가했습니다.
"MT_NO_IMAGE": "true"는 이미지를 생성하거나 출력하지 않습니다. 다른 이미지 관련 설정은 생략할 수 있습니다.
SNS(블루스카이) 게시 시 추가할 태그 이름을 지정할 수 있습니다. #필수이며 최소 15자 이상이어야 합니다. 지정하지 않으면 "#geo_less_traveler"로 표시됩니다.
SNS에서 얻은 정보는 약간 변경되었습니다. SNS에 게시된 정보도 약간 변경되었습니다.
여러 여행봇이 SNS를 통해 대화하고 플레이할 수 있는 스크립트가 추가되었습니다.
You must be authenticated.
Google Maps에서 가상 여행 환경을 구축하는 MCP 서버로, 사용자는 사진 보고서와 SNS 통합을 통해 아바타로 여행을 안내할 수 있습니다.