SG

savethepolarbears/google-photos-mcp

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

56 stars 19 forks 품질 76 트렌드 28

savethepolarbears/google-photos-mcp는 https://github.com/savethepolarbears/google-photos-mcp.]에서 수입된 MCP 서버 후보입니다

개요

savethepolarbears/google-photos-mcp는 https://github.com/savethepolarbears/google-photos-mcp.]에서 수입된 MCP 서버 후보입니다

개요(AI 번역)

Google 사진 통합을위한 모델 콘텍스 프로토콜 (MCP) 서버, Claude, Gemini 및 기타 AI 조수가 ** 읽기, 쓰기 및 선택 ** Google 사진 라이브러리에서 사진.

✅ 피커 API 지원 (3 월 2025 +)

이 서버는 Google Photos Picker API를 구현하고, 특정 라이브러리 API 범위의 2025 deprecation 이후 전체 라이브러리 액세스를 제공합니다.

| 현황 | API | 인포메이션 | 전체 사진 라이브러리 | ✅ | Picker API | | 본문/날짜/카테고리 검색 | ✅ | 라이브러리 API | | 앨범 및 업로드 사진 만들기 | ✅ | 라이브러리 API | | 액세스 앱 제작 내용 | ✅ | 라이브러리 API |

Picker API가 어떻게 작동하나요?

  1. create_picker_session] - 사용자가 브라우저에서 열 수 있도록 정통 세션 URL (pickerUri)을 반환합니다.
  2. 사용자는 상호 작용적으로 그들의 전체 개인적인 구글 사진 도서관에서 사진 그리고 영상을 선정합니다.
  3. poll_picker_session] - 세션 상태를 확인합니다. mediaItemsSet가 true일 때, 선택된 항목 ID, 파일명, MIME 유형, 치수 및 기본 URL이 반환됩니다.
  4. 전화 download_picker_media - OAuth Bearer 토큰을 사용하여 정통 된 미디어 바이트 다운로드 :

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

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).

GitHub에서 전체 README 보기

설치

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" } } } }