PipedreamHQ / PipedreamHQ/pipedream

Google Photos MCP: List Library Contents returns empty results - photoslibrary.readonly.appcreateddata only sees app-created content

Open
#21,621 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
11.7k
Forks
5.8k
Avg merge
3d 10h
Merged PRs (30d)
102

Description

## Description

The Google Photos MCP integration appears to work (tools load, OAuth succeeds, no errors), but **List Library Contents returns empty results** for users who have existing photos and albums in their Google Photos library.

## Root Cause

Google deprecated the `photoslibrary.readonly` scope on March 31, 2025. The current Pipedream OAuth app for Google Photos requests `photoslibrary.readonly.appcreateddata` instead, which only provides read access to **media items and albums created by the developer's application** (i.e., content Pipedream itself uploaded).

This means:
- `list-library-contents` returns an empty list for any user who has not previously uploaded photos through Pipedream
- `add-items-to-album` cannot see the user's existing albums (only app-created albums)
- `share-album` is already tracked in #20274 as broken due to the missing `photoslibrary.sharing` scope

## Impact

The Google Photos MCP integration cannot fulfill its advertised purpose ("Browse, search, and organize photos and videos in your Google Photos library"). Users connect their account, accept permissions, and see tools load - but every action that reads existing content returns empty results or fails.

This is particularly confusing because there are **no error messages** - the tools simply return empty data, making it appear like the user's library is empty.

## Related Issues

- #17118 - Original issue tracking Google Photos API scope changes (stale since Sept 2025)
- #20274 - Share Album action broken due to missing `photoslibrary.sharing` scope

## Suggested Resolution

Google's recommended path for reading a user's existing photos is the [Google Photos Picker API](https://developers.google.com/photos/picker), which uses the `photospicker.mediaitems.readonly` scope. Migrating the read operations to the Picker API would restore the ability to browse existing user photos.

If migration is not planned, the `list-library-contents` action description should be updated to clarify that it only returns photos uploaded by Pipedream, not the user's full library.

Contributor guide

Open the contributing guide

Research direction

Review the Google Photos MCP integration's OAuth scope configuration and the list-library-contents and add-items-to-album actions first. Determine whether the implementation will migrate read operations to the Picker API or clarify the existing scope limitation; done means the affected actions and their advertised behavior are consistent.

Written by the indexing model from the issue text.

Assessment

Domain
api
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.