[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-composio-googlephotos-automation":3,"mdc--ordjm5-key":50,"related-org-composio-googlephotos-automation":1032,"related-repo-composio-googlephotos-automation":1179},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":45,"sourceUrl":48,"mdContent":49},"googlephotos-automation","automate Google Photos tasks via Composio","Automate Google Photos tasks via Rube MCP (Composio): upload media, manage albums, search photos, batch add items, create and update albums. Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"composio","Composio","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcomposio.png","ComposioHQ",[13,15,18,21],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Automation","automation",{"name":19,"slug":20,"type":14},"Media","media",{"name":22,"slug":23,"type":14},"Images","images",67499,"https:\u002F\u002Fgithub.com\u002FComposioHQ\u002Fawesome-claude-skills","2026-07-15T05:56:59.370054",null,7603,[30,31,32,17,33,34,35,8,36,37,38,39,40,41,42,43,44],"agent-skills","ai-agents","antigravity","claude","claude-code","codex","cursor","developer-tools","gemini-cli","mcp","openai-codex","rube","saas","skill","workflow-automation",{"repoUrl":25,"stars":24,"forks":28,"topics":46,"description":47},[30,31,32,17,33,34,35,8,36,37,38,39,40,41,42,43,44],"A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows","https:\u002F\u002Fgithub.com\u002FComposioHQ\u002Fawesome-claude-skills\u002Ftree\u002FHEAD\u002Fcomposio-skills\u002Fgooglephotos-automation","---\nname: googlephotos-automation\ndescription: \"Automate Google Photos tasks via Rube MCP (Composio): upload media, manage albums, search photos, batch add items, create and update albums. Always search tools first for current schemas.\"\nrequires:\n  mcp: [rube]\n---\n\n# Google Photos Automation via Rube MCP\n\nUpload photos, manage albums, search media items, and batch-organize content in Google Photos using Rube MCP (Composio).\n\n**Toolkit docs**: [composio.dev\u002Ftoolkits\u002Fgooglephotos](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fgooglephotos)\n\n## Prerequisites\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `googlephotos`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `googlephotos`\n3. If connection is not ACTIVE, follow the returned auth link to complete setup\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List Albums\nUse `GOOGLEPHOTOS_LIST_ALBUMS` to retrieve all albums visible in the user's Albums tab.\n```\nTool: GOOGLEPHOTOS_LIST_ALBUMS\nParameters:\n  - pageSize: Number of albums per page\n  - pageToken: Pagination token\n  - excludeNonAppCreatedData: Only show albums created by this app\n```\n\n### 2. Create a New Album\nUse `GOOGLEPHOTOS_CREATE_ALBUM` to create a new album in Google Photos.\n```\nTool: GOOGLEPHOTOS_CREATE_ALBUM\nParameters:\n  - title (required): Album title\n```\n\n### 3. Upload Media\nUse `GOOGLEPHOTOS_UPLOAD_MEDIA` to upload an image or video file to Google Photos.\n```\nTool: GOOGLEPHOTOS_UPLOAD_MEDIA\nParameters:\n  - file_to_upload: Local file path to upload\n  - url: URL of file to upload (alternative to file_to_upload)\n  - file_name: Name for the uploaded file\n  - description: Description\u002Fcaption for the media item\n```\n\n### 4. Batch Upload and Create Media Items\nUse `GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS` to upload multiple files and create media items in one operation.\n```\nTool: GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS\nParameters:\n  - files: Local file paths to upload\n  - urls: URLs of files to upload\n  - media_files: Mixed input (files and URLs)\n  - albumId: Album to add items to\n  - albumPosition: Position within the album\n```\n\n### 5. Search Media Items\nUse `GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS` to search the user's photo library with filters.\n```\nTool: GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS\nParameters:\n  - albumId: Filter by album\n  - filters: Search filters (date ranges, content categories, media types)\n  - orderBy: Sort order\n  - pageSize: Results per page\n  - pageToken: Pagination token\n```\n\n### 6. Add Items to an Album\nUse `GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS` to add existing media items to an album.\n```\nTool: GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS\nParameters:\n  - albumId (required): Target album ID\n  - mediaItemIds (required): Array of media item IDs to add\n```\n\n## Common Patterns\n\n- **Create album then upload**: Use `GOOGLEPHOTOS_CREATE_ALBUM` to create an album, then `GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS` with the album ID to upload and organize photos in one step.\n- **List then organize**: Use `GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS` or `GOOGLEPHOTOS_LIST_MEDIA_ITEMS` to find media item IDs, then `GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS` to add them to albums.\n- **Update album metadata**: Use `GOOGLEPHOTOS_UPDATE_ALBUM` to change an album's title or cover photo.\n- **Get album details**: Use `GOOGLEPHOTOS_GET_ALBUM` with an album ID to retrieve full album information.\n- **Add enrichments**: Use `GOOGLEPHOTOS_ADD_ENRICHMENT` to add text overlays, locations, or map enrichments to album positions.\n- **Upload from URLs**: Use the `url` parameter in `GOOGLEPHOTOS_UPLOAD_MEDIA` or `urls` in `GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS` to upload images directly from web URLs.\n\n## Known Pitfalls\n\n- `GOOGLEPHOTOS_LIST_MEDIA_ITEMS` is **deprecated** -- prefer `GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS` for listing and filtering media.\n- `GOOGLEPHOTOS_UPLOAD_MEDIA` supports images up to **200MB** and videos up to a larger limit. Exceeding these will fail.\n- Album IDs must be obtained from `GOOGLEPHOTOS_LIST_ALBUMS` or `GOOGLEPHOTOS_CREATE_ALBUM` responses -- they are opaque strings.\n- `GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS` can only add items to albums **created by the app** or albums the user owns.\n- The `filters` parameter in `GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS` uses a specific Google Photos API filter structure -- consult the schema for date range and content category formats.\n- Media items created via the API may not immediately appear in the Google Photos web UI due to processing delays.\n\n## Quick Reference\n| Action | Tool | Key Parameters |\n|--------|------|----------------|\n| List albums | `GOOGLEPHOTOS_LIST_ALBUMS` | `pageSize`, `pageToken` |\n| Create album | `GOOGLEPHOTOS_CREATE_ALBUM` | `title` |\n| Get album | `GOOGLEPHOTOS_GET_ALBUM` | `albumId` |\n| Update album | `GOOGLEPHOTOS_UPDATE_ALBUM` | `albumId`, `title`, `coverPhotoMediaItemId` |\n| Upload media | `GOOGLEPHOTOS_UPLOAD_MEDIA` | `file_to_upload` or `url`, `description` |\n| Batch upload | `GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS` | `files` or `urls`, `albumId` |\n| Search media | `GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS` | `albumId`, `filters`, `pageSize` |\n| List media items | `GOOGLEPHOTOS_LIST_MEDIA_ITEMS` | `pageSize`, `pageToken` |\n| Add items to album | `GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS` | `albumId`, `mediaItemIds` |\n| Add enrichment | `GOOGLEPHOTOS_ADD_ENRICHMENT` | `albumId`, `newEnrichmentItem`, `albumPosition` |\n\n---\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n",{"data":51,"body":54},{"name":4,"description":6,"requires":52},{"mcp":53},[41],{"type":55,"children":56},"root",[57,66,72,92,99,142,148,166,208,214,221,234,246,252,264,273,279,291,300,306,318,327,333,345,354,360,372,381,387,535,541,644,650,1013,1017],{"type":58,"tag":59,"props":60,"children":62},"element","h1",{"id":61},"google-photos-automation-via-rube-mcp",[63],{"type":64,"value":65},"text","Google Photos Automation via Rube MCP",{"type":58,"tag":67,"props":68,"children":69},"p",{},[70],{"type":64,"value":71},"Upload photos, manage albums, search media items, and batch-organize content in Google Photos using Rube MCP (Composio).",{"type":58,"tag":67,"props":73,"children":74},{},[75,81,83],{"type":58,"tag":76,"props":77,"children":78},"strong",{},[79],{"type":64,"value":80},"Toolkit docs",{"type":64,"value":82},": ",{"type":58,"tag":84,"props":85,"children":89},"a",{"href":86,"rel":87},"https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fgooglephotos",[88],"nofollow",[90],{"type":64,"value":91},"composio.dev\u002Ftoolkits\u002Fgooglephotos",{"type":58,"tag":93,"props":94,"children":96},"h2",{"id":95},"prerequisites",[97],{"type":64,"value":98},"Prerequisites",{"type":58,"tag":100,"props":101,"children":102},"ul",{},[103,109,129],{"type":58,"tag":104,"props":105,"children":106},"li",{},[107],{"type":64,"value":108},"Rube MCP must be connected (RUBE_SEARCH_TOOLS available)",{"type":58,"tag":104,"props":110,"children":111},{},[112,114,121,123],{"type":64,"value":113},"Active connection via ",{"type":58,"tag":115,"props":116,"children":118},"code",{"className":117},[],[119],{"type":64,"value":120},"RUBE_MANAGE_CONNECTIONS",{"type":64,"value":122}," with toolkit ",{"type":58,"tag":115,"props":124,"children":126},{"className":125},[],[127],{"type":64,"value":128},"googlephotos",{"type":58,"tag":104,"props":130,"children":131},{},[132,134,140],{"type":64,"value":133},"Always call ",{"type":58,"tag":115,"props":135,"children":137},{"className":136},[],[138],{"type":64,"value":139},"RUBE_SEARCH_TOOLS",{"type":64,"value":141}," first to get current tool schemas",{"type":58,"tag":93,"props":143,"children":145},{"id":144},"setup",[146],{"type":64,"value":147},"Setup",{"type":58,"tag":67,"props":149,"children":150},{},[151,156,158,164],{"type":58,"tag":76,"props":152,"children":153},{},[154],{"type":64,"value":155},"Get Rube MCP",{"type":64,"value":157},": Add ",{"type":58,"tag":115,"props":159,"children":161},{"className":160},[],[162],{"type":64,"value":163},"https:\u002F\u002Frube.app\u002Fmcp",{"type":64,"value":165}," as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.",{"type":58,"tag":167,"props":168,"children":169},"ol",{},[170,182,198,203],{"type":58,"tag":104,"props":171,"children":172},{},[173,175,180],{"type":64,"value":174},"Verify Rube MCP is available by confirming ",{"type":58,"tag":115,"props":176,"children":178},{"className":177},[],[179],{"type":64,"value":139},{"type":64,"value":181}," responds",{"type":58,"tag":104,"props":183,"children":184},{},[185,187,192,193],{"type":64,"value":186},"Call ",{"type":58,"tag":115,"props":188,"children":190},{"className":189},[],[191],{"type":64,"value":120},{"type":64,"value":122},{"type":58,"tag":115,"props":194,"children":196},{"className":195},[],[197],{"type":64,"value":128},{"type":58,"tag":104,"props":199,"children":200},{},[201],{"type":64,"value":202},"If connection is not ACTIVE, follow the returned auth link to complete setup",{"type":58,"tag":104,"props":204,"children":205},{},[206],{"type":64,"value":207},"Confirm connection status shows ACTIVE before running any workflows",{"type":58,"tag":93,"props":209,"children":211},{"id":210},"core-workflows",[212],{"type":64,"value":213},"Core Workflows",{"type":58,"tag":215,"props":216,"children":218},"h3",{"id":217},"_1-list-albums",[219],{"type":64,"value":220},"1. List Albums",{"type":58,"tag":67,"props":222,"children":223},{},[224,226,232],{"type":64,"value":225},"Use ",{"type":58,"tag":115,"props":227,"children":229},{"className":228},[],[230],{"type":64,"value":231},"GOOGLEPHOTOS_LIST_ALBUMS",{"type":64,"value":233}," to retrieve all albums visible in the user's Albums tab.",{"type":58,"tag":235,"props":236,"children":240},"pre",{"className":237,"code":239,"language":64},[238],"language-text","Tool: GOOGLEPHOTOS_LIST_ALBUMS\nParameters:\n  - pageSize: Number of albums per page\n  - pageToken: Pagination token\n  - excludeNonAppCreatedData: Only show albums created by this app\n",[241],{"type":58,"tag":115,"props":242,"children":244},{"__ignoreMap":243},"",[245],{"type":64,"value":239},{"type":58,"tag":215,"props":247,"children":249},{"id":248},"_2-create-a-new-album",[250],{"type":64,"value":251},"2. Create a New Album",{"type":58,"tag":67,"props":253,"children":254},{},[255,256,262],{"type":64,"value":225},{"type":58,"tag":115,"props":257,"children":259},{"className":258},[],[260],{"type":64,"value":261},"GOOGLEPHOTOS_CREATE_ALBUM",{"type":64,"value":263}," to create a new album in Google Photos.",{"type":58,"tag":235,"props":265,"children":268},{"className":266,"code":267,"language":64},[238],"Tool: GOOGLEPHOTOS_CREATE_ALBUM\nParameters:\n  - title (required): Album title\n",[269],{"type":58,"tag":115,"props":270,"children":271},{"__ignoreMap":243},[272],{"type":64,"value":267},{"type":58,"tag":215,"props":274,"children":276},{"id":275},"_3-upload-media",[277],{"type":64,"value":278},"3. Upload Media",{"type":58,"tag":67,"props":280,"children":281},{},[282,283,289],{"type":64,"value":225},{"type":58,"tag":115,"props":284,"children":286},{"className":285},[],[287],{"type":64,"value":288},"GOOGLEPHOTOS_UPLOAD_MEDIA",{"type":64,"value":290}," to upload an image or video file to Google Photos.",{"type":58,"tag":235,"props":292,"children":295},{"className":293,"code":294,"language":64},[238],"Tool: GOOGLEPHOTOS_UPLOAD_MEDIA\nParameters:\n  - file_to_upload: Local file path to upload\n  - url: URL of file to upload (alternative to file_to_upload)\n  - file_name: Name for the uploaded file\n  - description: Description\u002Fcaption for the media item\n",[296],{"type":58,"tag":115,"props":297,"children":298},{"__ignoreMap":243},[299],{"type":64,"value":294},{"type":58,"tag":215,"props":301,"children":303},{"id":302},"_4-batch-upload-and-create-media-items",[304],{"type":64,"value":305},"4. Batch Upload and Create Media Items",{"type":58,"tag":67,"props":307,"children":308},{},[309,310,316],{"type":64,"value":225},{"type":58,"tag":115,"props":311,"children":313},{"className":312},[],[314],{"type":64,"value":315},"GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS",{"type":64,"value":317}," to upload multiple files and create media items in one operation.",{"type":58,"tag":235,"props":319,"children":322},{"className":320,"code":321,"language":64},[238],"Tool: GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS\nParameters:\n  - files: Local file paths to upload\n  - urls: URLs of files to upload\n  - media_files: Mixed input (files and URLs)\n  - albumId: Album to add items to\n  - albumPosition: Position within the album\n",[323],{"type":58,"tag":115,"props":324,"children":325},{"__ignoreMap":243},[326],{"type":64,"value":321},{"type":58,"tag":215,"props":328,"children":330},{"id":329},"_5-search-media-items",[331],{"type":64,"value":332},"5. Search Media Items",{"type":58,"tag":67,"props":334,"children":335},{},[336,337,343],{"type":64,"value":225},{"type":58,"tag":115,"props":338,"children":340},{"className":339},[],[341],{"type":64,"value":342},"GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS",{"type":64,"value":344}," to search the user's photo library with filters.",{"type":58,"tag":235,"props":346,"children":349},{"className":347,"code":348,"language":64},[238],"Tool: GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS\nParameters:\n  - albumId: Filter by album\n  - filters: Search filters (date ranges, content categories, media types)\n  - orderBy: Sort order\n  - pageSize: Results per page\n  - pageToken: Pagination token\n",[350],{"type":58,"tag":115,"props":351,"children":352},{"__ignoreMap":243},[353],{"type":64,"value":348},{"type":58,"tag":215,"props":355,"children":357},{"id":356},"_6-add-items-to-an-album",[358],{"type":64,"value":359},"6. Add Items to an Album",{"type":58,"tag":67,"props":361,"children":362},{},[363,364,370],{"type":64,"value":225},{"type":58,"tag":115,"props":365,"children":367},{"className":366},[],[368],{"type":64,"value":369},"GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS",{"type":64,"value":371}," to add existing media items to an album.",{"type":58,"tag":235,"props":373,"children":376},{"className":374,"code":375,"language":64},[238],"Tool: GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS\nParameters:\n  - albumId (required): Target album ID\n  - mediaItemIds (required): Array of media item IDs to add\n",[377],{"type":58,"tag":115,"props":378,"children":379},{"__ignoreMap":243},[380],{"type":64,"value":375},{"type":58,"tag":93,"props":382,"children":384},{"id":383},"common-patterns",[385],{"type":64,"value":386},"Common Patterns",{"type":58,"tag":100,"props":388,"children":389},{},[390,414,445,462,479,496],{"type":58,"tag":104,"props":391,"children":392},{},[393,398,400,405,407,412],{"type":58,"tag":76,"props":394,"children":395},{},[396],{"type":64,"value":397},"Create album then upload",{"type":64,"value":399},": Use ",{"type":58,"tag":115,"props":401,"children":403},{"className":402},[],[404],{"type":64,"value":261},{"type":64,"value":406}," to create an album, then ",{"type":58,"tag":115,"props":408,"children":410},{"className":409},[],[411],{"type":64,"value":315},{"type":64,"value":413}," with the album ID to upload and organize photos in one step.",{"type":58,"tag":104,"props":415,"children":416},{},[417,422,423,428,430,436,438,443],{"type":58,"tag":76,"props":418,"children":419},{},[420],{"type":64,"value":421},"List then organize",{"type":64,"value":399},{"type":58,"tag":115,"props":424,"children":426},{"className":425},[],[427],{"type":64,"value":342},{"type":64,"value":429}," or ",{"type":58,"tag":115,"props":431,"children":433},{"className":432},[],[434],{"type":64,"value":435},"GOOGLEPHOTOS_LIST_MEDIA_ITEMS",{"type":64,"value":437}," to find media item IDs, then ",{"type":58,"tag":115,"props":439,"children":441},{"className":440},[],[442],{"type":64,"value":369},{"type":64,"value":444}," to add them to albums.",{"type":58,"tag":104,"props":446,"children":447},{},[448,453,454,460],{"type":58,"tag":76,"props":449,"children":450},{},[451],{"type":64,"value":452},"Update album metadata",{"type":64,"value":399},{"type":58,"tag":115,"props":455,"children":457},{"className":456},[],[458],{"type":64,"value":459},"GOOGLEPHOTOS_UPDATE_ALBUM",{"type":64,"value":461}," to change an album's title or cover photo.",{"type":58,"tag":104,"props":463,"children":464},{},[465,470,471,477],{"type":58,"tag":76,"props":466,"children":467},{},[468],{"type":64,"value":469},"Get album details",{"type":64,"value":399},{"type":58,"tag":115,"props":472,"children":474},{"className":473},[],[475],{"type":64,"value":476},"GOOGLEPHOTOS_GET_ALBUM",{"type":64,"value":478}," with an album ID to retrieve full album information.",{"type":58,"tag":104,"props":480,"children":481},{},[482,487,488,494],{"type":58,"tag":76,"props":483,"children":484},{},[485],{"type":64,"value":486},"Add enrichments",{"type":64,"value":399},{"type":58,"tag":115,"props":489,"children":491},{"className":490},[],[492],{"type":64,"value":493},"GOOGLEPHOTOS_ADD_ENRICHMENT",{"type":64,"value":495}," to add text overlays, locations, or map enrichments to album positions.",{"type":58,"tag":104,"props":497,"children":498},{},[499,504,506,512,514,519,520,526,528,533],{"type":58,"tag":76,"props":500,"children":501},{},[502],{"type":64,"value":503},"Upload from URLs",{"type":64,"value":505},": Use the ",{"type":58,"tag":115,"props":507,"children":509},{"className":508},[],[510],{"type":64,"value":511},"url",{"type":64,"value":513}," parameter in ",{"type":58,"tag":115,"props":515,"children":517},{"className":516},[],[518],{"type":64,"value":288},{"type":64,"value":429},{"type":58,"tag":115,"props":521,"children":523},{"className":522},[],[524],{"type":64,"value":525},"urls",{"type":64,"value":527}," in ",{"type":58,"tag":115,"props":529,"children":531},{"className":530},[],[532],{"type":64,"value":315},{"type":64,"value":534}," to upload images directly from web URLs.",{"type":58,"tag":93,"props":536,"children":538},{"id":537},"known-pitfalls",[539],{"type":64,"value":540},"Known Pitfalls",{"type":58,"tag":100,"props":542,"children":543},{},[544,568,585,603,620,639],{"type":58,"tag":104,"props":545,"children":546},{},[547,552,554,559,561,566],{"type":58,"tag":115,"props":548,"children":550},{"className":549},[],[551],{"type":64,"value":435},{"type":64,"value":553}," is ",{"type":58,"tag":76,"props":555,"children":556},{},[557],{"type":64,"value":558},"deprecated",{"type":64,"value":560}," -- prefer ",{"type":58,"tag":115,"props":562,"children":564},{"className":563},[],[565],{"type":64,"value":342},{"type":64,"value":567}," for listing and filtering media.",{"type":58,"tag":104,"props":569,"children":570},{},[571,576,578,583],{"type":58,"tag":115,"props":572,"children":574},{"className":573},[],[575],{"type":64,"value":288},{"type":64,"value":577}," supports images up to ",{"type":58,"tag":76,"props":579,"children":580},{},[581],{"type":64,"value":582},"200MB",{"type":64,"value":584}," and videos up to a larger limit. Exceeding these will fail.",{"type":58,"tag":104,"props":586,"children":587},{},[588,590,595,596,601],{"type":64,"value":589},"Album IDs must be obtained from ",{"type":58,"tag":115,"props":591,"children":593},{"className":592},[],[594],{"type":64,"value":231},{"type":64,"value":429},{"type":58,"tag":115,"props":597,"children":599},{"className":598},[],[600],{"type":64,"value":261},{"type":64,"value":602}," responses -- they are opaque strings.",{"type":58,"tag":104,"props":604,"children":605},{},[606,611,613,618],{"type":58,"tag":115,"props":607,"children":609},{"className":608},[],[610],{"type":64,"value":369},{"type":64,"value":612}," can only add items to albums ",{"type":58,"tag":76,"props":614,"children":615},{},[616],{"type":64,"value":617},"created by the app",{"type":64,"value":619}," or albums the user owns.",{"type":58,"tag":104,"props":621,"children":622},{},[623,625,631,632,637],{"type":64,"value":624},"The ",{"type":58,"tag":115,"props":626,"children":628},{"className":627},[],[629],{"type":64,"value":630},"filters",{"type":64,"value":513},{"type":58,"tag":115,"props":633,"children":635},{"className":634},[],[636],{"type":64,"value":342},{"type":64,"value":638}," uses a specific Google Photos API filter structure -- consult the schema for date range and content category formats.",{"type":58,"tag":104,"props":640,"children":641},{},[642],{"type":64,"value":643},"Media items created via the API may not immediately appear in the Google Photos web UI due to processing delays.",{"type":58,"tag":93,"props":645,"children":647},{"id":646},"quick-reference",[648],{"type":64,"value":649},"Quick Reference",{"type":58,"tag":651,"props":652,"children":653},"table",{},[654,678],{"type":58,"tag":655,"props":656,"children":657},"thead",{},[658],{"type":58,"tag":659,"props":660,"children":661},"tr",{},[662,668,673],{"type":58,"tag":663,"props":664,"children":665},"th",{},[666],{"type":64,"value":667},"Action",{"type":58,"tag":663,"props":669,"children":670},{},[671],{"type":64,"value":672},"Tool",{"type":58,"tag":663,"props":674,"children":675},{},[676],{"type":64,"value":677},"Key Parameters",{"type":58,"tag":679,"props":680,"children":681},"tbody",{},[682,716,741,766,803,841,878,914,944,975],{"type":58,"tag":659,"props":683,"children":684},{},[685,691,699],{"type":58,"tag":686,"props":687,"children":688},"td",{},[689],{"type":64,"value":690},"List albums",{"type":58,"tag":686,"props":692,"children":693},{},[694],{"type":58,"tag":115,"props":695,"children":697},{"className":696},[],[698],{"type":64,"value":231},{"type":58,"tag":686,"props":700,"children":701},{},[702,708,710],{"type":58,"tag":115,"props":703,"children":705},{"className":704},[],[706],{"type":64,"value":707},"pageSize",{"type":64,"value":709},", ",{"type":58,"tag":115,"props":711,"children":713},{"className":712},[],[714],{"type":64,"value":715},"pageToken",{"type":58,"tag":659,"props":717,"children":718},{},[719,724,732],{"type":58,"tag":686,"props":720,"children":721},{},[722],{"type":64,"value":723},"Create album",{"type":58,"tag":686,"props":725,"children":726},{},[727],{"type":58,"tag":115,"props":728,"children":730},{"className":729},[],[731],{"type":64,"value":261},{"type":58,"tag":686,"props":733,"children":734},{},[735],{"type":58,"tag":115,"props":736,"children":738},{"className":737},[],[739],{"type":64,"value":740},"title",{"type":58,"tag":659,"props":742,"children":743},{},[744,749,757],{"type":58,"tag":686,"props":745,"children":746},{},[747],{"type":64,"value":748},"Get album",{"type":58,"tag":686,"props":750,"children":751},{},[752],{"type":58,"tag":115,"props":753,"children":755},{"className":754},[],[756],{"type":64,"value":476},{"type":58,"tag":686,"props":758,"children":759},{},[760],{"type":58,"tag":115,"props":761,"children":763},{"className":762},[],[764],{"type":64,"value":765},"albumId",{"type":58,"tag":659,"props":767,"children":768},{},[769,774,782],{"type":58,"tag":686,"props":770,"children":771},{},[772],{"type":64,"value":773},"Update album",{"type":58,"tag":686,"props":775,"children":776},{},[777],{"type":58,"tag":115,"props":778,"children":780},{"className":779},[],[781],{"type":64,"value":459},{"type":58,"tag":686,"props":783,"children":784},{},[785,790,791,796,797],{"type":58,"tag":115,"props":786,"children":788},{"className":787},[],[789],{"type":64,"value":765},{"type":64,"value":709},{"type":58,"tag":115,"props":792,"children":794},{"className":793},[],[795],{"type":64,"value":740},{"type":64,"value":709},{"type":58,"tag":115,"props":798,"children":800},{"className":799},[],[801],{"type":64,"value":802},"coverPhotoMediaItemId",{"type":58,"tag":659,"props":804,"children":805},{},[806,811,819],{"type":58,"tag":686,"props":807,"children":808},{},[809],{"type":64,"value":810},"Upload media",{"type":58,"tag":686,"props":812,"children":813},{},[814],{"type":58,"tag":115,"props":815,"children":817},{"className":816},[],[818],{"type":64,"value":288},{"type":58,"tag":686,"props":820,"children":821},{},[822,828,829,834,835],{"type":58,"tag":115,"props":823,"children":825},{"className":824},[],[826],{"type":64,"value":827},"file_to_upload",{"type":64,"value":429},{"type":58,"tag":115,"props":830,"children":832},{"className":831},[],[833],{"type":64,"value":511},{"type":64,"value":709},{"type":58,"tag":115,"props":836,"children":838},{"className":837},[],[839],{"type":64,"value":840},"description",{"type":58,"tag":659,"props":842,"children":843},{},[844,849,857],{"type":58,"tag":686,"props":845,"children":846},{},[847],{"type":64,"value":848},"Batch upload",{"type":58,"tag":686,"props":850,"children":851},{},[852],{"type":58,"tag":115,"props":853,"children":855},{"className":854},[],[856],{"type":64,"value":315},{"type":58,"tag":686,"props":858,"children":859},{},[860,866,867,872,873],{"type":58,"tag":115,"props":861,"children":863},{"className":862},[],[864],{"type":64,"value":865},"files",{"type":64,"value":429},{"type":58,"tag":115,"props":868,"children":870},{"className":869},[],[871],{"type":64,"value":525},{"type":64,"value":709},{"type":58,"tag":115,"props":874,"children":876},{"className":875},[],[877],{"type":64,"value":765},{"type":58,"tag":659,"props":879,"children":880},{},[881,886,894],{"type":58,"tag":686,"props":882,"children":883},{},[884],{"type":64,"value":885},"Search media",{"type":58,"tag":686,"props":887,"children":888},{},[889],{"type":58,"tag":115,"props":890,"children":892},{"className":891},[],[893],{"type":64,"value":342},{"type":58,"tag":686,"props":895,"children":896},{},[897,902,903,908,909],{"type":58,"tag":115,"props":898,"children":900},{"className":899},[],[901],{"type":64,"value":765},{"type":64,"value":709},{"type":58,"tag":115,"props":904,"children":906},{"className":905},[],[907],{"type":64,"value":630},{"type":64,"value":709},{"type":58,"tag":115,"props":910,"children":912},{"className":911},[],[913],{"type":64,"value":707},{"type":58,"tag":659,"props":915,"children":916},{},[917,922,930],{"type":58,"tag":686,"props":918,"children":919},{},[920],{"type":64,"value":921},"List media items",{"type":58,"tag":686,"props":923,"children":924},{},[925],{"type":58,"tag":115,"props":926,"children":928},{"className":927},[],[929],{"type":64,"value":435},{"type":58,"tag":686,"props":931,"children":932},{},[933,938,939],{"type":58,"tag":115,"props":934,"children":936},{"className":935},[],[937],{"type":64,"value":707},{"type":64,"value":709},{"type":58,"tag":115,"props":940,"children":942},{"className":941},[],[943],{"type":64,"value":715},{"type":58,"tag":659,"props":945,"children":946},{},[947,952,960],{"type":58,"tag":686,"props":948,"children":949},{},[950],{"type":64,"value":951},"Add items to album",{"type":58,"tag":686,"props":953,"children":954},{},[955],{"type":58,"tag":115,"props":956,"children":958},{"className":957},[],[959],{"type":64,"value":369},{"type":58,"tag":686,"props":961,"children":962},{},[963,968,969],{"type":58,"tag":115,"props":964,"children":966},{"className":965},[],[967],{"type":64,"value":765},{"type":64,"value":709},{"type":58,"tag":115,"props":970,"children":972},{"className":971},[],[973],{"type":64,"value":974},"mediaItemIds",{"type":58,"tag":659,"props":976,"children":977},{},[978,983,991],{"type":58,"tag":686,"props":979,"children":980},{},[981],{"type":64,"value":982},"Add enrichment",{"type":58,"tag":686,"props":984,"children":985},{},[986],{"type":58,"tag":115,"props":987,"children":989},{"className":988},[],[990],{"type":64,"value":493},{"type":58,"tag":686,"props":992,"children":993},{},[994,999,1000,1006,1007],{"type":58,"tag":115,"props":995,"children":997},{"className":996},[],[998],{"type":64,"value":765},{"type":64,"value":709},{"type":58,"tag":115,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":64,"value":1005},"newEnrichmentItem",{"type":64,"value":709},{"type":58,"tag":115,"props":1008,"children":1010},{"className":1009},[],[1011],{"type":64,"value":1012},"albumPosition",{"type":58,"tag":1014,"props":1015,"children":1016},"hr",{},[],{"type":58,"tag":67,"props":1018,"children":1019},{},[1020],{"type":58,"tag":1021,"props":1022,"children":1023},"em",{},[1024,1026],{"type":64,"value":1025},"Powered by ",{"type":58,"tag":84,"props":1027,"children":1030},{"href":1028,"rel":1029},"https:\u002F\u002Fcomposio.dev",[88],[1031],{"type":64,"value":9},{"items":1033,"total":1178},[1034,1049,1065,1074,1084,1096,1105,1118,1132,1145,1158,1168],{"slug":1035,"name":1036,"fn":1037,"description":1038,"org":1039,"tags":1040,"stars":24,"repoUrl":25,"updatedAt":1048},"21risk-automation","-21risk-automation","automate 21risk compliance and safety tasks","Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1041,1042,1043,1045],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},"MCP",{"name":1046,"slug":1047,"type":14},"Risk Assessment","risk-assessment","2026-07-15T05:54:18.790529",{"slug":1050,"name":1051,"fn":1052,"description":1053,"org":1054,"tags":1055,"stars":24,"repoUrl":25,"updatedAt":1064},"2chat-automation","-2chat-automation","automate 2chat messaging tasks","Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1056,1057,1060,1061],{"name":16,"slug":17,"type":14},{"name":1058,"slug":1059,"type":14},"Communications","communications",{"name":1044,"slug":39,"type":14},{"name":1062,"slug":1063,"type":14},"Messaging","messaging","2026-07-15T05:51:27.190332",{"slug":1066,"name":1066,"fn":1067,"description":1068,"org":1069,"tags":1070,"stars":24,"repoUrl":25,"updatedAt":1073},"ably-automation","automate Ably tasks with Composio","Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1071,1072],{"name":16,"slug":17,"type":14},{"name":1044,"slug":39,"type":14},"2026-07-12T08:09:55.453088",{"slug":1075,"name":1075,"fn":1076,"description":1077,"org":1078,"tags":1079,"stars":24,"repoUrl":25,"updatedAt":1083},"abstract-automation","automate Abstract tasks via Composio","Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1080,1081,1082],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},"2026-07-15T05:45:16.470309",{"slug":1085,"name":1085,"fn":1086,"description":1087,"org":1088,"tags":1089,"stars":24,"repoUrl":25,"updatedAt":1095},"abuselpdb-automation","automate Abuselpdb tasks via Composio","Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1090,1091,1092],{"name":16,"slug":17,"type":14},{"name":1044,"slug":39,"type":14},{"name":1093,"slug":1094,"type":14},"Security","security","2026-07-15T05:56:20.013366",{"slug":1097,"name":1097,"fn":1098,"description":1099,"org":1100,"tags":1101,"stars":24,"repoUrl":25,"updatedAt":1104},"abyssale-automation","automate Abyssale tasks via Composio","Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1102,1103],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},"2026-07-15T05:54:50.762889",{"slug":1106,"name":1106,"fn":1107,"description":1108,"org":1109,"tags":1110,"stars":24,"repoUrl":25,"updatedAt":1117},"accelo-automation","automate Accelo tasks via Composio","Automate Accelo tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1111,1112,1113,1116],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1114,"slug":1115,"type":14},"CRM","crm",{"name":1044,"slug":39,"type":14},"2026-07-15T05:48:43.429136",{"slug":1119,"name":1119,"fn":1120,"description":1121,"org":1122,"tags":1123,"stars":24,"repoUrl":25,"updatedAt":1131},"accredible-certificates-automation","automate Accredible certificate management","Automate Accredible Certificates tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1124,1125,1128],{"name":16,"slug":17,"type":14},{"name":1126,"slug":1127,"type":14},"Documents","documents",{"name":1129,"slug":1130,"type":14},"E-Signature","e-signature","2026-07-15T05:55:33.159639",{"slug":1133,"name":1133,"fn":1134,"description":1135,"org":1136,"tags":1137,"stars":24,"repoUrl":25,"updatedAt":1144},"acculynx-automation","automate Acculynx construction management tasks","Automate Acculynx tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1138,1139,1140,1141],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},{"name":1142,"slug":1143,"type":14},"Operations","operations","2026-07-15T05:58:48.059284",{"slug":1146,"name":1146,"fn":1147,"description":1148,"org":1149,"tags":1150,"stars":24,"repoUrl":25,"updatedAt":1157},"active-campaign-automation","automate ActiveCampaign marketing and CRM tasks","Automate ActiveCampaign tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1151,1152,1153,1154],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1114,"slug":1115,"type":14},{"name":1155,"slug":1156,"type":14},"Email Marketing","email-marketing","2026-07-15T05:49:44.281711",{"slug":1159,"name":1159,"fn":1160,"description":1161,"org":1162,"tags":1163,"stars":24,"repoUrl":25,"updatedAt":1167},"addresszen-automation","automate Addresszen address validation","Automate Addresszen tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1164,1165,1166],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},"2026-07-15T05:47:51.742515",{"slug":1169,"name":1169,"fn":1170,"description":1171,"org":1172,"tags":1173,"stars":24,"repoUrl":25,"updatedAt":1177},"adobe-automation","automate Adobe tasks via Composio","Automate Adobe tasks via Rube MCP (Composio). Always search tools first for current schemas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1174,1175,1176],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},"2026-07-15T05:45:05.303254",863,{"items":1180,"total":1224},[1181,1188,1195,1200,1206,1212,1217],{"slug":1035,"name":1036,"fn":1037,"description":1038,"org":1182,"tags":1183,"stars":24,"repoUrl":25,"updatedAt":1048},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1184,1185,1186,1187],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},{"name":1046,"slug":1047,"type":14},{"slug":1050,"name":1051,"fn":1052,"description":1053,"org":1189,"tags":1190,"stars":24,"repoUrl":25,"updatedAt":1064},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1191,1192,1193,1194],{"name":16,"slug":17,"type":14},{"name":1058,"slug":1059,"type":14},{"name":1044,"slug":39,"type":14},{"name":1062,"slug":1063,"type":14},{"slug":1066,"name":1066,"fn":1067,"description":1068,"org":1196,"tags":1197,"stars":24,"repoUrl":25,"updatedAt":1073},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1198,1199],{"name":16,"slug":17,"type":14},{"name":1044,"slug":39,"type":14},{"slug":1075,"name":1075,"fn":1076,"description":1077,"org":1201,"tags":1202,"stars":24,"repoUrl":25,"updatedAt":1083},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1203,1204,1205],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1044,"slug":39,"type":14},{"slug":1085,"name":1085,"fn":1086,"description":1087,"org":1207,"tags":1208,"stars":24,"repoUrl":25,"updatedAt":1095},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1209,1210,1211],{"name":16,"slug":17,"type":14},{"name":1044,"slug":39,"type":14},{"name":1093,"slug":1094,"type":14},{"slug":1097,"name":1097,"fn":1098,"description":1099,"org":1213,"tags":1214,"stars":24,"repoUrl":25,"updatedAt":1104},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1215,1216],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"slug":1106,"name":1106,"fn":1107,"description":1108,"org":1218,"tags":1219,"stars":24,"repoUrl":25,"updatedAt":1117},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1220,1221,1222,1223],{"name":16,"slug":17,"type":14},{"name":9,"slug":8,"type":14},{"name":1114,"slug":1115,"type":14},{"name":1044,"slug":39,"type":14},860]