Skip to main content
Glama

Give a place its picture or cover

set_place_picture

A place's picture or cover: generate makes one from their words, an image in this conversation goes as file, or url, base64, library. Never a stock photo unless they ask.

Input Schema

NameRequiredDescriptionDefault
urlNoA public https link to the image file itself.
fileNoAn image file from this conversation (ChatGPT passes it here).
modeNo"draft" always makes a card. Default: as far as yourAi goes.
placeNoIts name or id. Left out when they run exactly one.
styleNogenerate: illustration (default) or photo-like (no people).
whichYespicture: the round picture · cover: the wide photo on top of its page.
base64NoA small image's bytes as base64 (≤ 2 MB decoded).
generateNoWhat the picture shows, e.g. "stickor och garnnystan på ett kafébord i Limhamn".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / file / additionalProperties
      Removed value: -false
    • changedInput schema / properties / mode / description
      Previous value: -"\"draft\" always makes a draft the person taps. Default: as far as the person's choice for their AI in this place goes (list_places → yourAi)."New value: +"\"draft\" always makes a card. Default: as far as yourAi goes."
    • changedInput schema / properties / place / description
      Previous value: -"Which place — its name (e.g. \"Poker night\") or its id from list_places. May be left out when the person runs exactly one."New value: +"Its name or id. Left out when they run exactly one."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "itemId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "place": {
      -      "type": "string"
      -    },
      -    "status": {
      -      "enum": [
      -        "done",
      -        "sent",
      -        "draft",
      -        "read",
      -        "held",
      -        "published"
      -      ],
      -      "type": "string"
      -    },
      -    "url": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "which": {
      -      "type": "string"
      -    },
      -    "why": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "place",
      -    "which",
      -    "url",
      -    "itemId",
      -    "why",
      -    "note"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Added

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare a non-readonly, non-idempotent, non-destructive write with closed-world scope. The description adds the no-stock-photo policy, but it never says whether setting a picture replaces an existing one, what permissions are required, or what `mode: draft` produces beyond the schema hint.

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

Conciseness4/5

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

One sentence, front-loaded with the resource and then the source options; no filler. The trailing 'or `url`, `base64`, `library`' is telegraphic and the dangling `library` reference costs it a point.

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?

With eight parameters, a nested `file` object, and no output schema, the description covers source selection but omits replacement semantics and the draft/direct `mode` consequence. The `library` source named in the description is absent from the schema, a real gap for an agent building the call.

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 coverage is 100%, so the schema already carries the semantics of all eight parameters. The description adds the link between natural-language intent and the `generate`/`file` params, but it also mentions `library` as a source that does not exist in the schema, which muddies rather than clarifies.

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?

The description states a specific verb+resource ('a place's picture or cover') and enumerates the input channels (generate, file, url, base64). It is distinguishable from siblings like place_settings or upload_media, though it doesn't name them explicitly.

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?

It gives genuine source-selection guidance: `generate` for words, `file` for an image in this conversation, plus url/base64. The policy line 'Never a stock photo unless they ask' is a useful constraint. It stops short of explicit exclusions vs. sibling tools or prerequisites (e.g., ownership of the place).

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.