项目简介

本项目是一个基于Model Context Protocol (MCP) 实现的服务器端应用,旨在为大型语言模型 (LLM) 客户端(如Claude Desktop、Cursor IDE等)提供访问和操作用户Google Photos照片库的能力。它通过标准化的MCP工具接口,将复杂的Google Photos API操作封装起来,使AI能够理解和利用您的个人照片数据,用于搜索、组织和理解图像内容。

主要功能点

  • 照片搜索: 根据文字描述、日期、位置等信息搜索您的照片库。
  • 照片详情获取: 根据照片ID获取特定照片的详细信息,包括描述、日期、尺寸、URL,并可选择获取Base64编码的图像数据。
  • 位置信息: 尝试从照片描述中提取并提供照片的大致位置信息。
  • 相册管理: 列出您的所有相册,或获取特定相册的详细信息和包含的照片列表。
  • 多种传输协议: 支持通过标准输入输出 (STDIO) 和 HTTP/SSE 协议与MCP客户端通信。

安装步骤

  1. 设置Google Cloud项目:

    • 前往 Google Cloud 控制台
    • 创建一个新项目。
    • 在“API和服务”>“库”中,搜索并启用“Photos Library API”。
    • 在“API和服务”>“凭据”中,创建“OAuth客户端ID”。
    • 应用类型选择“Web application”。
    • 授权的重定向URI添加 'http://localhost:3000/auth/callback'。
    • 记下您的客户端ID和客户端密钥。
  2. 克隆仓库:

    git clone https://github.com/savethepolarbears/google-photos-mcp.git
    cd google-photos-mcp
  3. 安装依赖:

    npm install
  4. 创建配置文件:

    • 在项目根目录下创建名为 '.env' 的文件。
    • 将您的Google Cloud凭据添加到 '.env' 文件中:
      GOOGLE_CLIENT_ID=您的客户端ID
      GOOGLE_CLIENT_SECRET=您的客户端密钥
      GOOGLE_REDIRECT_URI=http://localhost:3000/auth/callback
      PORT=3000
      NODE_ENV=development
  5. 构建服务器:

    npm run build
  6. 启动服务器并进行身份验证:

    • 启动 HTTP 模式 (推荐首次运行,用于身份验证):
      npm start
    • 在浏览器中访问 'http://localhost:3000'。
    • 点击页面上的“Authenticate with Google Photos”按钮。
    • 按照Google OAuth流程授权应用访问您的Google Photos。
    • 授权成功后,您将看到成功页面,可以关闭浏览器窗口。身份凭据将保存在本地文件。
    • 如果需要使用STDIO模式(例如与Claude Desktop集成),在认证成功后,停止HTTP服务器(按 'Ctrl+C'),然后启动STDIO模式。
    • 启动 STDIO 模式 (用于部分客户端如Claude Desktop):
      npm run stdio
    • (注意:STDIO模式下如果未认证,服务器会打印警告,需要先在HTTP模式下完成认证。)

服务器配置

MCP客户端(如Claude Desktop, Cursor IDE)需要配置如何启动或连接到MCP服务器。对于此Google Photos MCP服务器,通常配置为通过命令启动Node.js进程。

配置时需要提供以下信息:

  • 服务器名称 (server name): 'google-photos-mcp'
  • 启动命令 (command): 'node'
  • 命令参数 (args):
    • 对于STDIO模式 (例如用于Claude Desktop):'[/path/to/your/project/dist/index.js, --stdio]'。'/path/to/your/project/' 需要替换为您的项目实际路径。
    • 对于HTTP/SSE模式 (例如用于Cursor IDE):'[/path/to/your/project/dist/index.js]'。您可以配置客户端连接到HTTP端点 'http://localhost:3000/mcp',具体取决于客户端支持的配置方式。
  • 环境变量 (env): 通常需要将您的Google Cloud凭据作为环境变量传递给服务器进程。例如:'GOOGLE_CLIENT_ID=您的客户端ID', 'GOOGLE_CLIENT_SECRET=您的客户端密钥', 'GOOGLE_REDIRECT_URI=http://localhost:3000/auth/callback'。

请参考您的MCP客户端文档,将上述信息填入相应的服务器配置界面。

基本使用方法

配置并连接成功后,您可以通过LLM客户端与MCP服务器交互。LLM会根据其理解和可用的工具描述,生成调用MCP工具的请求。您可以尝试向AI提出如下问题:

  • “帮我搜索一下去年夏天在巴黎拍的照片。” (可能调用 'search_photos' 工具)
  • “列出我的相册。” (调用 'list_albums' 工具)
  • “给我看看ID为 xyz123 的那张照片的详情。” (调用 'get_photo' 工具)
  • “查找我在‘家庭旅行’相册里的照片。” (可能调用 'list_album_photos' 工具)
  • “找找有没有关于猫的照片。” (调用 'search_photos' 工具)

服务器会执行相应的Google Photos API操作并将结果返回给LLM客户端,LLM再将结果呈现给您。

信息

分类

AI与计算