SG

savethepolarbears/google-photos-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

56 stars 18 forks Качество 77 Тренд 34

savethepolarbears / Google-photos-mcp - кандидат на сервер MCP, импортированный из https://github.com/savethepolarbears/google-photos-mcp.

Обзор

savethepolarbears / Google-photos-mcp - кандидат на сервер MCP, импортированный из https://github.com/savethepolarbears/google-photos-mcp.

Обзор (машинный перевод)

Сервер Model Context Protocol (MCP) для интеграции Google Photos, позволяющий Клоду, Близнецам и другим помощникам ИИ ** читать, писать и выбирать ** фотографии из вашей библиотеки Google Photos.

Поддержка API Picker (март 2025+)

Этот сервер реализует API Picker, обеспечивающий полный доступ к библиотеке даже после амортизации некоторых областей API библиотеки 31 марта 2025 года.

Обсуждение Capability | Status | API [править править код] Просмотр полной библиотеки фотографий | | Picker API | Поиск фотографий по тексту/дате/категории | | Библиотека API | Создавайте альбомы и загружайте фотографии | | Библиотека API | | Созданный приложением контент | - | Библиотека API |

Как работает Picker API

  1. Call create_picker_session — возвращает аутентифицированный URL сеанса pickerUri, который пользователь открывает в своем браузере. 2.Пользователь интерактивно выбирает фотографии и видео из своей личной библиотеки Google Photos. 3.Звонок poll_picker_session — проверяет статус сеанса. Когда [[Т3]] истинно, выбранные элементы Идентификаторы, имена файлов, типы MIME, размеры и базовые URL возвращаются.
  2. Call download_picker_media — загрузка аутентифицированных медиа байтов с использованием токенов-носителей OAuth:

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

Google Photos MCP Server

A Model Context Protocol (MCP) server for Google Photos integration, enabling Claude, Gemini, and other AI assistants to read, write, and pick photos from your Google Photos library.

✅ Picker API Support (March 2025+)

This server implements the Google Photos Picker API, providing full library access even after the March 31, 2025 deprecation of certain Library API scopes.

Capability Status API
Browse full photo library ✅ Picker API
Search photos by text/date/category ✅ Library API
Create albums & upload photos ✅ Library API
Access app-created content ✅ Library API

How the Picker API works

  1. Call create_picker_session — returns an authenticated session URL (pickerUri) that the user opens in their browser.
  2. The user interactively selects photos and videos from their entire personal Google Photos library.
  3. Call poll_picker_session — checks session status. When mediaItemsSet is true, the selected items’ IDs, filenames, MIME types, dimensions, and base URLs are returned.
  4. Call download_picker_media — downloads authenticated media bytes using OAuth bearer tokens:
    • Image downloads: Downloads original full-resolution files (=d) by default. Supports custom bounding boxes via width and height parameters (=w{width}-h{height}, range: 1–16,383 pixels). When downloadOriginal: false is supplied without explicit dimensions, defaults to =w2048-h2048 preview.
    • Video downloads: Google Photos base URLs exclusively provide high-quality transcoded MP4 streams (=dv). Unmodified original video files are not exposed via base URLs per Google API design; responses include isTranscoded: true. Video bytes can only be requested once video processingStatus is explicitly READY.
    • Session & identity validation: When specifying baseUrl alongside sessionId, the server verifies the item exists in the session. If mediaItemId is also provided, both must identify the same selected item.
    • Storage & memory safety: Media bytes can be streamed directly to disk via savePath with O(1) heap overhead (strongly recommended for large files and videos). In-memory base64 responses (includeBase64: true) are capped at 10MB to avoid process heap exhaustion (raw binary payloads exceeding ~7.5MB, which expand to >10MB in base64, are rejected with guidance to use savePath). When includeBase64: false is specified, savePath is required.
    • Origin allowlist: Enforces HTTPS and strictly restricts base URLs to official Google Photos media domains (*.googleusercontent.com, *.photos.google.com, photoslibrary.googleapis.com) to prevent SSRF and token exfiltration.
  5. Call delete_picker_session — cleans up the session after all desired media items and bytes have been retrieved.

🛡️ Security Notice: CORS Removed

CORS middleware has been removed for security (prevents drive-by attacks on localhost).

Открыть полный README на GitHub

Установка

npx -y @smithery/cli install google-photos-mcp --client claude
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "google-photos": { "command": "node", "args": ["/path/to/google-photos-mcp/dist/index.js", "--stdio"], "env": { "GOOGLE_CLIENT_ID": "your_client_id", "GOOGLE_CLIENT_SECRET": "your_client_secret", "GOOGLE_REDIRECT_URI": "http://localhost:3000/auth/callback" } } } }