Labsco
MCP SERVER

Google Photos

by savethepolarbears

Search, upload and organise a Google Photos library — and reach the whole library through the Picker API, which survives the Library API scope changes.

Office Suites & Cloud File Storage
Summary
The Picker path is why this still reaches the whole library.

Google narrowed the Library API scopes, and the answer here is a two-step handshake: create a picker session, open the URL, choose photos, poll for the result. It is more clicking than an API call, and it is the reason browsing the full library still works. Two practical notes: the first OAuth run has to happen over HTTP before Claude Desktop's stdio mode will work, and Google's daily quota is 10,000 requests.

What it is

A Google Photos server that combines the Library API for search and writes with the Picker API for full-library browsing. Tokens are stored in the OS keychain and refreshed automatically.

What you get
  • 19 tools in total, split across search, writes, picking and auth
  • search_photos, search_photos_by_location and search_media_by_filter cover text, place, date range, category, media type, favourites and archived state; describe_filter_capabilities returns the full filter reference
  • get_photo returns one photo's details, optionally base64-encoded; list_albums, get_album, list_album_photos and list_media_items walk the library
  • create_album, upload_media, add_media_to_album and create_album_with_media handle writes, with a maximum of 50 items per batch call
  • add_album_enrichment adds text or location to an album and set_album_cover picks its cover photo
  • create_picker_session returns a URL you open in a browser; after you choose photos, poll_picker_session returns the selection
  • auth_status and start_auth tell you whether the OAuth flow has completed and restart it if not
Requirements

Node.js 22.22 or newer, a Google Cloud project with the Photos Library API enabled, and OAuth 2.0 web-application credentials with http://localhost:3000/auth/callback as an authorised redirect URI. GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET and GOOGLE_REDIRECT_URI go in the environment. Authentication must be completed in HTTP mode first — start the server, visit http://localhost:3000/auth — after which stdio mode works.

Setup effort

One command plus a key — npx -y @smithery/cli install google-photos-mcp --client claude, then supply credentials