项目简介

该项目是一个Model Context Protocol (MCP) 服务器,旨在让大语言模型 (LLM) 能够通过标准化的JSON-RPC接口,访问和利用Google街景视图API的功能。它作为LLM应用的后端服务,提供按需获取街景图像、查询地点街景元数据以及将多张图像整合为虚拟游览页面的能力。

主要功能点

  • 获取街景图像: 根据提供的地址、经纬度坐标或特定的全景ID,从Google街景API获取图像,并保存到本地文件。
  • 查询街景元数据: 获取指定地点或全景ID的街景元数据,如全景ID、坐标、拍摄日期等,以判断街景可用性。
  • 本地图片查看: 在本地默认应用程序中打开已保存的街景图像文件。
  • 创建虚拟游览: 根据LLM提供的街景图像文件引用(需先通过获取图像功能保存)和HTML内容片段,生成一个包含多张图片和描述文本的HTML页面,模拟虚拟游览体验,并在本地浏览器中打开。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/vlad-ds/street-view-mcp.git
    cd street-view-mcp
  2. 创建并激活虚拟环境 (推荐使用 'uv'):
    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  3. 安装依赖:
    uv pip install -e ".[dev]"
  4. 获取Google Maps API Key: 访问 Google Cloud Console,创建一个项目,在API库中启用 "Street View Static API",然后在凭据页面创建API Key。
  5. 配置API Key: 在项目根目录下创建 '.env' 文件,并添加以下内容,替换 '"你的_api_key_here"' 为您的Google Maps API Key:
    API_KEY=你的_api_key_here

服务器配置 (面向MCP客户端)

MCP客户端(如Claude Desktop或其他支持MCP的应用)需要配置如何启动并连接到此服务器。以下是配置所需的信息结构示例,您需要将其添加到客户端的MCP服务器配置中:

// 这是一个MCP客户端配置示例的片段,展示如何配置Street View MCP服务
{
  // "street_view": {  // 这个键名是客户端内部用来标识服务的名称
  "command": "uv", // 启动服务器的可执行程序。根据您的安装方式,可能是 "uv" 或 "python"。
  "args": [ // 传递给启动命令的参数列表。
    "run", // uv 特定的运行命令
    "--directory", "/path/to/street-view-mcp", // 替换为您的Street View MCP仓库的实际路径
    "mcp", // fastmcp 框架的运行命令
    "run",
    "src/street_view_mcp/server.py" // 指定要运行的服务器文件
  ],
  // 如果不使用 uv,并且直接用 python 启动 src/street_view_mcp/main.py,args 可能类似:
  // "args": [
  //   "-m", "street_view_mcp.main",
  //   "--host", "127.0.0.1", // 可选,指定服务器监听的地址
  //   "--port", "8000" // 可选,指定服务器监听的端口
  // ],
  "env": { // 启动服务器进程时需要设置的环境变量
    "API_KEY": "你的_google_maps_api_key_here" // 非常重要,将您的Google API Key在此处或通过 .env 文件提供
  }
  // }, // 结束客户端配置片段
}

请根据您实际的安装路径和启动方式调整 'command' 和 'args',并务必设置 'API_KEY' 环境变量。

基本使用方法 (面向AI模型/MCP客户端用户)

配置完成后,支持MCP的AI客户端即可通过调用此服务器提供的工具来使用街景功能。与服务器的交互通过JSON-RPC进行,AI模型通常会通过对话或内部机制触发相应的工具调用。

主要可用工具:

  • 'get_street_view': 用于根据地点信息获取街景图片并保存为文件。
  • 'get_metadata': 用于查询特定地点的街景元数据。
  • 'open_image_locally': 用于在本地系统默认程序中打开已保存的街景图片文件。
  • 'create_html_page': 用于组合已保存的街景图片和文本,创建HTML页面作为虚拟游览展示。

(注意:具体的工具调用格式和参数需参考MCP客户端或AI模型本身的交互方式,此处描述的是服务器提供的功能。)

您也可以手动启动服务器进行测试:

python -m street_view_mcp.main --host 127.0.0.1 --port 8000

信息

分类

AI与计算