Map Traveler
Um ambiente de viagem virtual para um avatar no Google Maps, utilizando várias APIs do Google Maps e APIs opcionais de geração de imagens por IA.
Documentação
Ambiente de bot de viagem virtual para MCP
Estamos atualmente desenvolvendo um sistema de bot de viagem de próxima geração. Levará algum tempo para ser concluído, mas, enquanto isso, aproveite o uso deste servidor MCP, que opera no modo MCP v1.
Inglês / Japonês
Este é um servidor MCP que cria um ambiente para um avatar viajar virtualmente no Google Maps.
A partir de um cliente MCP, como o Claude Desktop, você pode dar instruções ao avatar e relatar o progresso da jornada com fotos.
Preparando para suporte ao Registro MCP https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/
Adicionado gemini-2.5-flash-image-preview (nano-banana) para geração de imagens de viagem
Foi adicionado suporte para nano-banana. A máscara semântica do nano-banana permite gerar imagens de viagem compostas em pouco tempo, sem configurar remBg.
Embora a síntese de imagens convencional ainda seja possível, recomendamos usar o Gemini nano-banana.
Suporta tanto Streamable-HTTP quanto stdio (compatível com a interface de configuração do Smithery.ai)
Pode ser usado como um MCP do tipo stdio, como antes, ou como Streamable-HTTP.
Embora suporte vários usuários, a API do banco de dados deve ser especificada por sessão usando a interface de configuração do Smithery.ai.
Como suporta tanto Streamable-HTTP quanto stdio, espera-se que funcione como está com o cliente MCP anterior, mas se você usar a versão stdio anterior, use v0.0.x (v0.0.81).
npx -y @mfukushim/map-traveler-mcp@0.0.81
Now supports librechat https://www.librechat.ai/.
Now supports Smithery https://smithery.ai/server/@mfukushim/map-traveler-mcp (images are excluded because they are heavy to run).
Now verified MseeP https://mseep.ai/app/mfukushim-map-traveler-mcp
Functions
MCP server tools function
The following functions can be used as an MCP server. The available functions vary depending on the settings and execution state.
You can specify the function name directly, but Claude LLM will automatically recognize it, so you can specify the operation in general terms.
Example: "Where are you now?" "Let's leave for Tokyo Station."
- get_traveler_view_info(includePhoto:boolean,includeNearbyFacilities:boolean)
Gets information about the current travel avatar's location.- includePhoto: Gets nearby Google Street View photos. If you have set up an image generation AI, it will synthesize the avatar.
- includeNearbyFacilities: Gets information about nearby facilities.
- get_traveler_location()
Gets information about the current travel avatar's address and nearby facilities. - reach_a_percentage_of_destination() Reach a specified percentage of the destination (moveMode=skip only) timeElapsedPercentage: Percent progress towards destination(0~100)
- set_traveler_location(address: string)
Sets the current travel avatar's location.- address: Address information (exact address, or general name that Google Maps or Claude can recognize, etc.)
- get_traveler_destination_address
Get the destination of the travel avatar you set - set_traveler_destination_address(address: string)
Set the destination of the travel avatar- address: Address information (exact address, or general name that Google Maps or Claude can recognize, etc.)
- start_traveler_journey
Start the journey at the destination.(moveMode=realtime only) - stop_traveler_journey
Stop the journey.(moveMode=realtime only) - set_traveler_info(settings:string)
Set the traveler's attributes. Set the traveler's personality that you want to change dynamically, such as name and personality. However, if you use a role script, the script is more stable.- settings: Setting information such as name and personality.
- get_traveler_info
Get the traveler's attributes. Get the traveler's personality. - set_avatar_prompt(prompt:string)
Set the prompt when generating the travel avatar image. The default is an anime-style woman. The anime style is enforced to prevent fake images.- prompt
- reset_avatar_prompt
Reset avatar generation prompts to default. - get_sns_feeds
Gets Bluesky SNS articles for the specified custom feed (feeds containing a specific tag). - get_sns_mentions
Gets recent mentions (likes, replies) to Bluesky SNS posts that you made yourself. - post_sns_writer(message:string)
Posts an article to Bluesky SNS with the specified custom feed. Set a specific tag so that it can be determined that the post was generated by the travel bot.- message: article
- reply_sns_writer(message:string,id:string)
Reply to the article with the specified id. Set a specific tag so that it can be determined that the post was generated by the travel bot.- message: reply
- id: The ID of the post to reply to
- add_like(id:string)
Add a like to the specified post.- id: The ID of the post to like
- tips
Guides you on how to set up features that have not yet been set. - get_setting
Get environment and image settings.
MCP resources
Has five custom prompt samples. When you import a prompt with Claude Desktop, Claude will act as a traveler. The SNS-compatible version controls SNS input and output while having a travel conversation.
-
role.txt
Claude will act as a traveler. -
roleWithSns.txt
Claude will act as a traveler. It also controls reading and posting to SNS. -
carBattle.txt
This is a small novel game about a story of transporting secret documents from Yokohama to Tokyo. Scenes are automatically generated. Set moveMode=skip to play. -
japanMapChallenge.txt,japanMapChallenge2.txt
Two AIs communicate with each other via SNS and play a challenge game using landscape images.
To play, you need two Bluesky accounts and two Claude Desktops. Also set moveMode=skip. (However, the operation is somewhat unstable.)
japanMapChallenge2 has a challenge reflection rule.
Setting
You will need to obtain and set access keys for multiple APIs, such as for accessing multiple Google maps and generating images. Use of the API may incur charges.
Settings for using with Claude Desktop
- claude_desktop_config.json (stdio type)
{
"mcpServers": {
"traveler": {
"command": "npx",
"args": ["-y", "@mfukushim/map-traveler-mcp"],
"env":{
"MT_GOOGLE_MAP_KEY":"(Google Map API key)",
"MT_GEMINI_IMAGE_KEY": "(Gemini Image Api key)",
"MT_MAX_RETRY_GEMINI": "(Number of retries when generating Gemini images Default: 0)",
"MT_AVATAR_IMAGE_URI": "(Character reference image uri (file:// or https://) when generating Gemini image. Multiple settings can be made by separating them with the '|'. When multiple settings are made, they will be selected randomly.)",
"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_TURSO_URL":"(Turso sqlite API URL)",
"MT_TURSO_TOKEN":"(Turso sqlite API access token)",
"MT_REMBG_PATH": "(absolute path of the installed rembg cli)",
"MT_REMBG_URL": "(rembg API URL)",
"MT_REMBG_WO_KEY": "(withoutbg.com rembg API key)",
"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_NO_AVATAR": "(Option: true = Output StreetView image as is without avatar superimposition. Not specified = Superimpose avatar image. 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_MAX_SESSIONS": "(Maximum number of sessions when using Streamable-http)",
"MT_SESSION_TTL_MS": "(Session TTL when using Streamable-http)",
"MT_SERVICE_TTL_MS": "(Service TTL when using Streamable-http)"
}
}
}
}
- claude_desktop_config.json (tipo streamable-http)
As variáveis de ambiente MT_ acima devem ser definidas como variáveis de ambiente para o servidor que executa o serviço web map-traveler-mcp.
{
"mcpServers": {
"traveler": {
"type": "streamable-http",
"url": "https://(mcp server address)/mcp?config=(base64 config json)"
}
}
}
base64 config json (Expansão do Smithery.ai)
Ao concatenar o json no formato a seguir em uma única linha de string, convertê-lo para base64 e defini-lo como (json de configuração base64), você pode sobrescrever diferentes APIs e configurações para cada sessão de usuário.
Se o banco de dados não for definido com json de configuração base64, ele será compartilhado em todo o serviço (a localização do viajante será compartilhada no banco de dados e contada como uma pessoa).
Planejamos reconsiderar a operação de atribuir um UserId individual para cada sessão assim que o mecanismo de autenticação MCP ficar um pouco mais claro.
{
"MT_GOOGLE_MAP_KEY": "xxxyyyzzz",
"MT_GEMINI_IMAGE_KEY": "xxyyzz",
"MT_MAX_RETRY_GEMINI": "1",
"MT_AVATAR_IMAGE_URI": "file:///C:/Users/xxxx/Desktop/avatar.png",
"MT_TURSO_URL": "libsql://xxxyyyzzz",
"MT_TURSO_TOKEN": "abcdabcd",
"MT_BS_ID": "xyxyxyxyx",
"MT_BS_PASS": "1234xyz",
"MT_BS_HANDLE": "aabbccdd",
"MT_FILTER_TOOLS": "tips,set_traveler_location",
"MT_MOVE_MODE": "direct",
"MT_FEED_TAG": "#abcdefgabcdefgabcdefg"
}
(Todos os valores json podem ser omitidos)
↓ (concatenação de texto json)
{"MT_GOOGLE_MAP_KEY": "xxxyyyzzz", "MT_GEMINI_IMAGE_KEY": "xxyyzz", "MT_MAX_RETRY_GEMINI": "1", "MT_TURSO_URL": "libsql://xxxyyyzzz", "MT_TURSO_TOKEN": "abcdabcd", "MT_BS_ID": "xyxyxyxyx", "MT_BS_PASS": "1234xyz", "MT_BS_HANDLE": "aabbccdd", "MT_FILTER_TOOLS": "tips,set_traveler_location", "MT_MOVE_MODE": "direct", "MT_FEED_TAG": "#abcdefgabcdefgabcdefg"}
↓ (Defina a versão base64 para config=)
eyJNVF9HT09HTEVfTUFQX0tFWSI6ICJ4eHh5eXl6enoiLCAiTVRfR0VNSU5JX0lNQUdFX0tFWSI6ICJ4eHl5enoiLCAiTVRfTUFYX1JFVFJZX0dFTUlOSSI6ICIxIiwgIk1UX1RVUlNPX1VSTCI6ICJsaWJzcWw6Ly94eHh5eXl6enoiLCAiTVRfVFVSU09fVE9LRU4iOiAiYWJjZGFiY2QiLCAiTVRfQlNfSUQiOiAieHl4eXh5eHl4IiwgIk1UX0JTX1BBU1MiOiAiMTIzNHh5eiIsICJNVF9CU19IQU5ETEUiOiAiYWFiYmNjZGQiLCAiTVRfRklMVEVSX1RPT0xTIjogInRpcHMsc2V0X3RyYXZlbGVyX2xvY2F0aW9uIiwgIk1UX01PVkVfTU9ERSI6ICJkaXJlY3QiLCAiTVRfRkVFRF9UQUciOiAiI2FiY2RlZmdhYmNkZWZnYWJjZGVmZyJ9
NOTA: As variáveis de ambiente foram renomeadas para snake case padrão. O prefixo MT_ é adicionado porque podem ser usadas em conjunto com outras variáveis de ambiente, como no librechat. Os nomes antigos ainda podem ser usados para compatibilidade retroativa.
Por favor, defina as seguintes três credenciais para a API do Google Map.
- Street View Static API
- Places API (New)
- Time Zone API
- Directions API
https://developers.google.com/maps/documentation/streetview/get-api-key
Se você quiser usar a IA de geração de imagens, defina pixAi_key ou sd_key. Você também precisa ter python3.7~3.11 instalado no seu PC e o rembg cli instalado (recomenda-se ambiente virtual).
https://platform.pixai.art/docs
https://platform.stability.ai/docs/api-reference#tag/SDXL-1.0-and-SD1.6/operation/textToImage
O endereço/senha do SNS bluesky são opcionais. Recomenda-se criar uma conta dedicada, pois ele postará automaticamente.
Você também pode executá-lo no modo de prática, que não requer chave de API para verificação.
Configurações do modo de prática
claude_desktop_config.json
{
"mcpServers": {
"traveler": {
"command": "npx",
"args": ["-y", "@mfukushim/map-traveler-mcp"]
}
}
}
Como usar
Usar o modo de prática
-
Instale o nodejs 22.
-
Configure o Claude Desktop para uso.
-
Reflita uma das configurações acima em claude_desktop_config.json.
-
Reinicie o Claude Desktop. Pode levar algum tempo para configurar (se ocorrer um erro, tente reiniciar o Claude Desktop novamente. Se não funcionar, veja as notas abaixo). Certifique-se de que a seguinte marca apareça no canto inferior direito da tela.
- Pergunte "Onde você está agora?" e "Faça uma jornada." Uma conversa começará. Ao usar a API, uma tela de confirmação aparecerá, então selecione Permitir.
- Selecione Anexar do MCP e selecione role.txt.
- Um prompt de viagem foi incorporado, então sinta-se à vontade para conversar com ele.
Usar o recurso completo
- Obtenha uma chave de acesso da API do Google Map e defina as permissões para Street View Static API, Places API (New), Time Zone API e Directions API. Defina isso no env de claude_desktop_config.json e reinicie. Nesse ponto, o registro de viagem será baseado no mapa real. As imagens de viagem também serão geradas se não forem sobrepostas.
- Decida um caminho que não interfira no disco e defina-o em sqlite_path do env de claude_desktop_config.json. (Exemplo: %USERPROFILE%/Desktop/traveler.sqlite $HOME/Documents/traveler.sqlite, etc.) Nesse ponto, seu registro de viagem será salvo e você poderá continuar sua jornada mesmo se fechar o Claude Desktop.
- Instale python 3.7 a 3.11 e instale rembg com cli. Recomendamos usar um ambiente virtual como venv.
python3 -m venv venv
. venv/bin/activate or .\venv\Scripts\activate
pip install "rembg[cpu,cli]"
Verifique se o rembg cli funciona corretamente usando um arquivo de imagem de exemplo. Insira uma imagem com uma pessoa e, se a pessoa for recortada no arquivo de saída, está OK.
rembg i source_image_file dest_image_file
- O rembg cli será instalado no local do python exe, então obtenha o caminho. A localização do arquivo varia dependendo do SO e do status de instalação do python, mas no caso de venv, é (nome do ambiente virtual)\Scripts\rembg.exe ou (nome do ambiente virtual)/bin/rembg acima do diretório que você definiu. Se não conseguir encontrá-lo, procure o caminho com um software de busca de arquivos. Defina esse caminho para rembg_path do env em claude_desktop_config.json. (Exemplo: "rembg_path": "C:\Users\xxxx\Documents\rembg_venv\venv\Scripts\rembg.exe")
- Obtenha uma chave de API de geração de imagens do site pixAI ou Stability.ai. Defina a chave para pixAi_key ou sd_key no env de claude_desktop_config.json. O avatar agora será sobreposto à imagem de viagem.
- Obtenha o endereço/senha do SNS bluesky e o nome de handle. Defina-os em bs_id, bs_pass e bs_handle no env de claude_desktop_config.json, respectivamente. Importe o prompt de conhecimento de viagem roleWithSns.txt para relatar ações de viagem ao SNS (ele postará automaticamente como um bot, então recomendamos alocar uma conta dedicada)
Em vez de preparar o rembg com o cli, adicionamos uma configuração que permite tratar o rembg como uma API de serviço.
Se você configurar o serviço rembg a seguir, poderá usar o rembg definindo a URL em remBgUrl.
https://github.com/danielgatis/rembg?tab=readme-ov-file#rembg-s
A configuração é simples se você usar a versão Docker para iniciar um contêiner e acessá-lo.
https://github.com/danielgatis/rembg?tab=readme-ov-file#usage-as-a-docker
Usar a API Turso libsql para banco de dados de configuração
Se você quiser usar a API de nuvem Turso libsql (https://turso.tech/libsql) sem ter um arquivo sqlite local, cadastre-se no Turso e aloque um banco de dados sqlite (pago, com camada gratuita disponível).
Este complemento configurará (migrará) o banco de dados automaticamente.
MT_TURSO_URL = URL do banco de dados turso
MT_TURSO_TOKEN = token de acesso ao banco de dados turso
Usar API de nuvem para rembg
As configurações locais em torno do rembg são complicadas, independentemente do método usado, mas adicionamos configurações para o rembg de nuvem pago (https://withoutbg.com/).
Nota: Há um pequeno teste gratuito disponível, mas esteja ciente de que esta é uma API comercial e é bastante cara (cerca de 0,1 euros por imagem).
MT_REMBG_WO_KEY = token de acesso withoutbg
Ao usar ComfyUI externo (para usuários mais avançados)
Você também pode usar um ComfyUI local como servidor de geração de imagens. Você pode configurar as características de geração de imagens em detalhes para reduzir custos de API.
No entanto, a configuração será bastante complicada e a geração de imagens pode demorar mais.
- Configure o ComfyUI para rodar no modo API.
- Defina a URL do servidor para comfy_url no env.
- Defina valores de configuração detalhados, como o modelo a ser usado, no env na forma de uma string json. exemplo.
{
"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"
}
}
- O fluxo de trabalho padrão pode usar assets/comfy/t2i_sample.json e assets/comfy/i2i_sample.json no pacote. Você pode especificar variáveis usando % e especificar as variáveis em comfy_params.
Usando libreChat
Foi adaptado para funcionar com libreChat. Isso torna o uso mais fácil, mas algumas configurações adicionais são necessárias.
Além disso, parece que não será estável a menos que o PC que você use tenha um nível razoável de desempenho, como um que possa executar Docker de forma estável.
Instalar libreChat
Certifique-se de que funcione conforme descrito no site oficial.
Nesse caso, recomendamos usar a configuração Docker devido às configurações adicionais.
https://www.librechat.ai/docs/local/docker
Configure o librechat.yaml usando o procedimento oficial.
Acho que você precisará adicionar um serviço LLM local ou via API.
https://www.librechat.ai/docs/configuration/librechat_yaml
Adicione um usuário para login.
https://www.librechat.ai/docs/configuration/authentication#create-user-script
Configure para que você possa ter conversas gerais de chat.
Adicionar um contêiner rembg com configurações adicionais
Para usar rembg com Docker, adicione o pull e a execução do contêiner Docker rembg.
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"
Adicionar map-traveler-mcp ao serviço MCP
Adicione librechat.yaml
mcpServers:
traveler:
type: stdio
command: npx
args:
- -y
- "@mfukushim/map-traveler-mcp"
Adicione .env (igual ao env em claude_desktop_config.json)
# 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.)
Após a configuração, reinicie o contêiner.
Em PCs lentos, a inicialização do mcp pode falhar. Várias reinicializações podem funcionar, mas isso pode ser difícil de executar...
Configurações do llibreChat
Para usar a função MCP no libreChat, use a função Agents.
- Na tela de conversa, selecione Agents.

- Selecione Agent Builder no painel do lado direito da tela e configure seu agente.

- Selecione Add Tools para usar map-traveler.

- A tela de ferramentas do agente aparecerá, então selecione e adicione todas as ferramentas map-traveler-mcp (se as ferramentas map-traveler-mcp não estiverem listadas, a inicialização do MCP falhou, então reinicie o contêiner ou revise as configurações verificando os logs, etc.)


- Insira script adicional na área de instruções.
Como o libreChat não tem a função de recurso MCP, insira o texto do conteúdo da seguinte URL na área de instruções.
https://github.com/mfukushim/map-traveler-mcp/blob/main/assets/scenario/role.txt

- Clique no botão Create para salvar o agente.

- Inicie um novo chat.
Smithery
Consulte https://smithery.ai/server/@mfukushim/map-traveler-mcp.
O MCP remoto (modo Streamable-http) é suportado. A geração de imagens está disponível apenas no nano-banana.
As configurações do banco de dados agora podem ser registradas com Turso sqlite, então se você configurar o Turso, seu progresso de viagem também será salvo.

Guia de instalação (em japonês, mas com muitas fotos)
- introdução e modo de prática
https://note.com/marble_walkers/n/n7a8f79e4fb30 - DB, Google Map API, API de geração de imagens
https://note.com/marble_walkers/n/n765257c27f3b - Prompt do avatar
https://note.com/marble_walkers/n/nc7273724faea - Integração com SNS
https://note.com/marble_walkers/n/na7c956befe7b - Aplicação 1
https://note.com/marble_walkers/n/n3c86edd8e817 - API ComfyUI
https://note.com/marble_walkers/n/ncefc7c05d102 - Aplicação 2
https://note.com/marble_walkers/n/ne7584ed231c8 - Configuração do LibreChat
https://note.com/marble_walkers/n/n339bf7905324 - Desafio de Mapa de Batalha SNS do Agente de IA
https://note.com/marble_walkers/n/n6db937573eaa - Suporte a Smithery, Turso libSQL e API rembg
https://note.com/marble_walkers/n/ne3b3c0f99707 - Suporte a Streamable-HTTP
https://note.com/marble_walkers/n/n030063f22dc0 - Suporte a Nano-Banana
https://note.com/marble_walkers/n/n5d49514dddec
Adicional sobre o código-fonte
Eu uso Effect.ts para simplificar o gerenciamento de erros e para meu próprio aprendizado.
Também usamos o Effect Service, mas devido à forma como as chamadas MCP funcionam, acreditamos que consolidá-lo usando o Service não foi o ideal.
Acho que seria mais simples lidar com as chamadas MCP diretamente no Effect.
Adendo: Estou ciente de que poderei reconsiderar como usar o Effect Service e reescrevê-lo de forma organizada, mas ainda estou considerando se devo reescrevê-lo.
Notas sobre as últimas atualizações
- Adicionado
image_widthao ambiente. O padrão é 512. Definir um valor menor pode reduzir o custo da API de LLM. - Adicionada uma configuração de ambiente que não gera imagens para clientes MCP que não possuem entrada/saída de imagens.
"MT_NO_IMAGE": "true" não gerará nem produzirá nenhuma imagem. Outras configurações relacionadas a imagens podem ser omitidas.
{
"env": {
"MT_NO_IMAGE": "true"
}
}
or
{
"env": {
"GoogleMapApi_key": "xxxx",
"MT_NO_IMAGE": "true"
}
}
-
Agora você pode especificar o nome da tag a ser adicionada ao publicar no SNS (Bluesky). #Obrigatório e deve ter pelo menos 15 caracteres. Se não for especificado, se tornará "#geo_less_traveler".
-
As informações obtidas do SNS foram ligeiramente alteradas. As informações publicadas no SNS foram ligeiramente alteradas.
-
Foi adicionado um script que permite que vários bots de viagem conversem e joguem via SNS.
-
Suporta uso remoto a partir do Smithery.
Se você não quiser configurar definições detalhadas, inicie o aplicativo no modo de prática. Você também pode executar o aplicativo em velocidade total configurando cada API de nuvem, mas esteja ciente das cobranças, pois ele usa muitas APIs pagas, como a API rembg. Se você não quiser sintetizar avatares, pode executar o aplicativo com as configurações mínimas da API do Google Map e da API Turso sqlite. -
Adicionada a opção MT_NO_AVATAR.
Se definida, uma imagem de avatar não será composta na imagem da paisagem. Como não haverá processamento de nova tentativa para a composição do avatar, o tempo para obter uma resposta será significativamente menor.
Defina esta opção se a composição de imagem for lenta ou falhar inevitavelmente. -
Aplicado parcialmente a versão 2025-06-18 do MCP.
Adicionei o título ao esquema. Pretendo aplicar outputSchema e resposta estruturada no futuro, mas não os implementei desta vez. Como a saída do Travel Bot é texto simples, não acho que a estruturação seja necessária ainda.
https://modelcontextprotocol.io/specification/2025-06-18/server/tools -
Corrigido um problema em que algumas funções, como as funções de SNS, não podiam ser chamadas independentemente das configurações de ambiente devido a um erro de inicialização.
-
Adicionado suporte para Streamable-http. Isso foi feito com pressa, então se você tiver algum problema, considere usar a versão 0.0.81 ou similar.
-
Foi adicionado suporte para geração de imagens nano-banana (gemini-2.5-flash-image-preview). Ao usar nano-banana, nenhuma configuração de rembg é necessária. As características do prompt do avatar mudaram, então a geração de imagens pode falhar com o prompt de avatar anterior. Nesse caso, você precisará ajustar o prompt de aparência do avatar para um que seja aceitável para nano-banana.
-
Ao gerar imagens para nano-banana, agora você pode referenciar a imagem original do personagem com MT_AVATAR_IMAGE_URI. Use-a de uma forma que não infrinja direitos autorais.
