Skip to main content
Glama

Create Photo

aidelly_create_photo
Destructive

Upload a photo to a connected platform's media gallery (separate from posts). Today only google_business is wired.

Input Schema

NameRequiredDescriptionDefault
bodyNoOptional body override for endpoints with sparse parameter schemas.
queryNoOptional query overrides for endpoints with sparse parameter schemas.
brand_idNo
categoryYesWhere the photo lands on the location's listing. `PROFILE`, `LOGO`, and `COVER` replace the existing identity photos; the rest append to the gallery.
metadataNo
platformYesCurrently only google_business is supported.
account_idNoFor `google_business`, the location resource name to upload to — either fully-qualified `accounts/{accountId}/locations/{locationId}` or the relative `locations/{locationId}` form. If omitted, the workspace's default location is used.
source_urlYesPublic URL of the image to upload. Must be reachable by Google's servers. Use a `read_url` returned by `POST /media/upload-url` for files stored in Aidelly.
descriptionNoOptional caption associated with the photo on Google's side.
workspace_idNoWorkspace ID for this operation.
idempotency_keyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / idempotency_key / example
      Added value: +"order-123:create-post:v1"
    • addedInput schema / properties / idempotency_key / maxLength
      Added value: +255
    • addedInput schema / properties / idempotency_key / minLength
      Added value: +1
    • addedInput schema / properties / idempotency_key / pattern
      Added value: +"^[\\x21-\\x7E]{1,255}$"
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description adds useful context that this writes to a platform gallery outside the post pipeline and that only google_business is currently wired, but says nothing about auth requirements, rate limits, or what the destructive PROFILE/LOGO/COVER replacements do (that detail lives only in the schema).

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?

One compact sentence, front-loaded with the action and resource, with the parenthetical scope qualifier and the platform constraint appended. Nothing is wasted and nothing important is buried.

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

Completeness3/5

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

For an 11-parameter mutation tool with nested objects and no output schema, the definition leans heavily on the schema and annotations. It omits what a successful call returns (photo identifier, URL) and any note that identity categories overwrite existing assets, so it is adequate but leaves real gaps.

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?

Schema description coverage is 73% and 11 parameters exist; the schema documents category, platform, account_id, source_url, description and idempotency_key well. The description contributes no parameter meaning beyond restating the platform restriction already in the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("Upload a photo to a connected platform's media gallery") and scopes it with "(separate from posts)," which cleanly separates it from aidelly_create_post. It does not, however, differentiate itself from the sibling aidelly_upload_media, leaving one plausible alternative unaddressed.

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

Usage Guidelines3/5

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

"Separate from posts" gives implied usage guidance, and "Today only google_business is wired" sets an availability constraint. But there is no explicit when-to-use/when-not statement, and the closest alternative (aidelly_upload_media) is never named or excluded.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.