{
  "name": "virtual-location-google-street-view-etc",
  "display_name": "Virtual Traveling Bot",
  "description": "Integrates Google Map, Google Street View, PixAI, Stability.ai, ComfyUI API and Bluesky to provide a virtual location simulation in LLM (written in Effect.ts)",
  "repository": {
    "type": "git",
    "url": "https://github.com/mfukushim/map-traveler-mcp"
  },
  "homepage": "https://github.com/mfukushim/map-traveler-mcp",
  "author": {
    "name": "mfukushim"
  },
  "license": "MIT",
  "categories": [
    "Web Services"
  ],
  "tags": [
    "Google Maps",
    "Avatar",
    "Virtual Travel"
  ],
  "tools": [
    {
      "name": "tips",
      "description": "Inform you of recommended actions for your device",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "get_setting",
      "description": "Get current setting",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "get_traveler_info",
      "description": "get a traveler's setting.For example, traveler's name, the language traveler speak, Personality and speaking habits, etc.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "settings": {}
        }
      }
    },
    {
      "name": "set_traveler_info",
      "description": "set a traveler's setting.For example, traveler's name, the language traveler speak, Personality and speaking habits, etc.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "settings": {
            "type": "string",
            "description": "traveler's setting. traveler's name, the language traveler speak, etc."
          }
        },
        "required": [
          "settings"
        ]
      }
    },
    {
      "name": "set_avatar_prompt",
      "description": "set a traveler's avatar prompt. A prompt for AI image generation to specify the appearance of a traveler's avatar",
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "traveler's avatar AI image generation prompt."
          }
        },
        "required": [
          "prompt"
        ]
      }
    },
    {
      "name": "reset_avatar_prompt",
      "description": "reset to default traveler's avatar prompt.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "start_journey",
      "description": "Start the journey to destination",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "stop_journey",
      "description": "Stop the journey",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "reach_a_percentage_of_destination",
      "description": "Reach a specified percentage of the destination",
      "inputSchema": {
        "type": "object",
        "properties": {
          "timeElapsedPercentage": {
            "type": "number",
            "description": "Percent progress towards destination. (0~100)"
          }
        },
        "required": [
          "timeElapsedPercentage"
        ]
      }
    },
    {
      "name": "get_current_view_info",
      "description": "Get the address of the current location and information on nearby facilities,view snapshot",
      "inputSchema": {
        "type": "object",
        "properties": {
          "includePhoto": {
            "type": "boolean",
            "description": "Get scenery photos of current location"
          },
          "includeNearbyFacilities": {
            "type": "boolean",
            "description": "Get information on nearby facilities"
          }
        }
      }
    },
    {
      "name": "get_traveler_location",
      "description": "Get the address of the current traveler's location",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "get_sns_mentions",
      "description": "Get recent social media mentions",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "get_sns_feeds",
      "description": "Get recent social media posts from fellow travelers feeds",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "post_sns_writer",
      "description": "Post your recent travel experiences to social media for fellow travelers and readers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "A description of the journey. important: Do not use offensive language."
          }
        },
        "required": [
          "message"
        ]
      }
    },
    {
      "name": "reply_sns_writer",
      "description": "Write a reply to the article with the specified ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "A description of the reply article. important: Do not use offensive language."
          },
          "id": {
            "type": "string",
            "description": "The ID of the original post to which you want to add a reply."
          }
        },
        "required": [
          "message",
          "id"
        ]
      }
    },
    {
      "name": "add_like",
      "description": "Add a like to the specified post",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the post to like."
          }
        },
        "required": [
          "id"
        ]
      }
    },
    {
      "name": "set_current_location",
      "description": "Set my current address",
      "inputSchema": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "address to set"
          }
        },
        "required": [
          "address"
        ]
      }
    },
    {
      "name": "get_destination_address",
      "description": "get a address of destination location",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "set_destination_address",
      "description": "set a address of destination",
      "inputSchema": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "address of destination"
          }
        },
        "required": [
          "address"
        ]
      }
    }
  ],
  "installations": {
    "npm": {
      "type": "npm",
      "command": "npx",
      "args": [
        "-y",
        "@mfukushim/map-traveler-mcp"
      ],
      "env": {
        "GoogleMapApi_key": "${GoogleMapApi_key}",
        "mapApi_url": "${mapApi_url}",
        "time_scale": "${time_scale}",
        "sqlite_path": "${sqlite_path}",
        "rembg_path": "${rembg_path}",
        "remBgUrl": "${remBgUrl}",
        "pixAi_key": "${pixAi_key}",
        "sd_key": "${sd_key}",
        "pixAi_modelId": "${pixAi_modelId}",
        "comfy_url": "${comfy_url}",
        "comfy_workflow_t2i": "${comfy_workflow_t2i}",
        "comfy_workflow_i2i": "${comfy_workflow_i2i}",
        "comfy_params": "${comfy_params}",
        "fixed_model_prompt": "${fixed_model_prompt}",
        "bodyAreaRatio": "${bodyAreaRatio}",
        "bodyHWRatio": "${bodyHWRatio}",
        "bodyWindowRatioW": "${bodyWindowRatioW}",
        "bodyWindowRatioH": "${bodyWindowRatioH}",
        "bs_id": "${bs_id}",
        "bs_pass": "${bs_pass}",
        "bs_handle": "${bs_handle}",
        "filter_tools": "${filter_tools}",
        "moveMode": "${moveMode}",
        "image_width": "${image_width}",
        "DATABASE_URL": "${DATABASE_URL}"
      }
    }
  },
  "examples": [
    {
      "title": "Travel to Tokyo",
      "description": "Instruct the avatar to travel to Tokyo Station.",
      "prompt": "Go to Tokyo Station."
    },
    {
      "title": "Current Location Info",
      "description": "Get the current location information of the avatar.",
      "prompt": "Where are you now?"
    }
  ],
  "arguments": {
    "GoogleMapApi_key": {
      "description": "API key for accessing Google Maps services.",
      "required": true,
      "example": "YOUR_GOOGLE_MAP_API_KEY"
    },
    "mapApi_url": {
      "description": "Custom endpoint for the Map API, if any; otherwise, the default endpoint is used.",
      "required": false,
      "example": "https://your-custom-map-api.com"
    },
    "time_scale": {
      "description": "Scale factor to adjust the travel time based on real roads duration; default is 4.",
      "required": false,
      "example": "5"
    },
    "sqlite_path": {
      "description": "Path for saving the SQLite database file. It determines where the travel log will be stored.",
      "required": true,
      "example": "%USERPROFILE%/Desktop/traveler.sqlite"
    },
    "rembg_path": {
      "description": "Absolute path of the installed rembg command line interface for removing backgrounds from images.",
      "required": true,
      "example": "C:\\path\\to\\your\\rembg.exe"
    },
    "remBgUrl": {
      "description": "URL for the rembg API service if used; this is an alternative to the command line interface.",
      "required": false,
      "example": "http://rembg:7000"
    },
    "pixAi_key": {
      "description": "API key for accessing PixAI image generation services; either this or sd_key must be set to use image generation.",
      "required": true,
      "example": "YOUR_PIXAI_API_KEY"
    },
    "sd_key": {
      "description": "API key for accessing Stability.ai image generation services; either this or pixAi_key must be set.",
      "required": true,
      "example": "YOUR_STABILITY_AI_API_KEY"
    },
    "pixAi_modelId": {
      "description": "ID for the PixAI model to be used, if not set, the default model will be used.",
      "required": false,
      "example": "1648918127446573124"
    },
    "comfy_url": {
      "description": "URL to the ComfyUI API for image generation; must be set if using ComfyUI for this purpose.",
      "required": false,
      "example": "http://192.168.1.100:8188"
    },
    "comfy_workflow_t2i": {
      "description": "Path to the workflow JSON file for text-to-image conversion in ComfyUI.",
      "required": false,
      "example": "C:\\path\\to\\workflow\\t2i.json"
    },
    "comfy_workflow_i2i": {
      "description": "Path to the workflow JSON file for image-to-image conversion in ComfyUI.",
      "required": false,
      "example": "C:\\path\\to\\workflow\\i2i.json"
    },
    "comfy_params": {
      "description": "Parameters for the ComfyUI workflow in key-value format, received during the request.",
      "required": false,
      "example": "key1=value1,key2=value2"
    },
    "fixed_model_prompt": {
      "description": "A fixed prompt for avatar generation that prevents changes during conversations.",
      "required": false,
      "example": "Generate a friendly avatar."
    },
    "bodyAreaRatio": {
      "description": "Acceptable ratio for the avatar image area; affects how much of the image is used for the avatar.",
      "required": false,
      "example": "0.042"
    },
    "bodyHWRatio": {
      "description": "Acceptable aspect ratios for the avatar image; ensures correct proportions for the avatar.",
      "required": false,
      "example": "1.5~2.3"
    },
    "bodyWindowRatioW": {
      "description": "Horizontal ratio for the avatar composite window; affects layout.",
      "required": false,
      "example": "0.5"
    },
    "bodyWindowRatioH": {
      "description": "Aspect ratio for the avatar composite window; also affects layout.",
      "required": false,
      "example": "0.75"
    },
    "bs_id": {
      "description": "Bluesky SNS registration address for posting travel updates.",
      "required": false,
      "example": "YOUR_BSKY_ID"
    },
    "bs_pass": {
      "description": "Bluesky SNS password for the dedicated account used for posting.",
      "required": false,
      "example": "YOUR_BSKY_PASSWORD"
    },
    "bs_handle": {
      "description": "Bluesky SNS handle name for the account; used in the posts.",
      "required": false,
      "example": "myusername.bsky.social"
    },
    "filter_tools": {
      "description": "Settings to filter the tools available for use; all tools will be available by default.",
      "required": false,
      "example": "tips,set_traveler_location"
    },
    "moveMode": {
      "description": "Indicates whether the movement mode is realtime or skip; default is realtime.",
      "required": false,
      "example": "realtime"
    },
    "image_width": {
      "description": "Width of the generated output image in pixels; the default is 512.",
      "required": false,
      "example": "512"
    },
    "DATABASE_URL": {
      "description": "Database URL for persistent storage; used if a different database should be connected.",
      "required": false,
      "example": "mysql://user:password@host/dbname"
    }
  }
}