PipedreamHQ / PipedreamHQ/pipedream
Google Photos MCP: List Library Contents returns empty results - photoslibrary.readonly.appcreateddata only sees app-created content
- 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
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