Skip to main content
Glama
navidmoazzez

Google Photos MCP

by navidmoazzez

Copy picked media into this app's library

save_to_library
Destructive

Save picked media from a picker session as app-created items in your Google Photos library, so other tools can read, describe, and organize them.

Instructions

Take items the user chose in a picker session and upload them as app-created media, so the other tools can then read, describe and organise them.

This is the bridge between the two halves of the API. A picked item is readable only for the life of its session; once saved it is a normal media item this app owns. It does create a second copy in the user's library. Requires confirm: true.

Pass base_urls from list_picked_media, up to 20.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountNoWhich connected Google account to act as, by the name it was configured under (or its email). Defaults to the first one. Call list_accounts to see them.
confirmNoMust be true for this to run. The effect cannot be undone through the API, so it is refused without an explicit confirmation.
album_idNoSave them straight into this album.
base_urlsYes`base_url` values from list_picked_media, up to 20.
Install Server

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations' destructiveHint, the description discloses that this creates a second copy, that the item becomes an app-owned normal media item, and that picked items are only readable for the session lifetime. This meaningfully clarifies the side effects and persistence model, which annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, purposeful sentences: main action, lifecycle context, and input requirement. Nothing is redundant; the critical constraints and side effects are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the schema covers all parameters and annotations cover safety/destructive traits, the description gives everything needed to call it correctly: where to get base_urls, the limit, the confirmation requirement, and the persistence consequences. No output schema is expected, so return-value omission is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage, fully documenting base_urls, account, confirm, and album_id. The description essentially restates base_urls' source and limit, which the schema already provides, adding no new parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action: take picked items, upload them as app-created media, and make them usable by the app's read/describe/organise tools. It clearly distinguishes this from sibling tools like list_picked_media, download_picked, or upload_from_url by framing it as the bridge between the picker session and the app library.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear workflow context: use after list_picked_media, because picked items are only readable during the session, and before the app's media tools can work on them. It names the exact input source and the confirm: true requirement, though it does not explicitly discuss when not to use alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/navidmoazzez/google-photos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server