Skip to main content
Glama

Set the project's logo

logo
DestructiveIdempotent

Set the project's logo from an image in its repo, only once the human says yes to that file: find the project's own mark at its largest (an app icon or brand image before a small favicon) and show it to them first. Offer it once when the project has none; a no (no: true) stops only the offer. The reply gives an address to send the file to.

Input Schema

NameRequiredDescriptionDefault
noNotrue: the human said no to your offer
yesNotrue: the human said yes to this file
fileNothe image's path in the repo: a PNG, JPEG or WebP of 2 MB at most (an SVG as a PNG of 512 pixels or more)
removeNotrue: take the logo off, with the human's yes
projectNoIts name or id, as the projects tool lists them; leave it out on one project, or in a folder linked to one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds genuinely non-structural behavior: the tool is human-gated, and the response is not the operation result but 'an address to send the file to' — a two-step upload flow an agent could not infer from the schema. It does not explicitly say whether a successful set replaces an existing logo, which is the one remaining behavioral gap.

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?

Three sentences, front-loaded with the purpose before the workflow and the no-handling. The first sentence is dense and syntactically winding ('...only once the human says yes to that file: find the project's own mark...'), but every clause carries actionable meaning, so there is little fat to trim.

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

Completeness4/5

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

For a destructive, human-in-the-loop mutation with full schema coverage and no output schema, the description covers motivation, preconditions, image selection, refusal handling, and the shape of the reply. The only material omission is whether setting a logo overwrites an existing one rather than being refused, which matters given destructiveHint=true.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all five parameters and a baseline of 3 applies. The description still adds meaning beyond it: it clarifies that 'no' terminates only the offer, that 'yes' authorizes a specific file, and that the file should be chosen by size/prominence (app icon or brand image over a small favicon), which the 'file' parameter description does not convey.

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?

Opens with a specific verb and resource: 'Set the project's logo from an image in its repo'. It also scopes the scope of the action (repo-sourced image, human approval) and implies the selection criteria for which image, so an agent knows exactly what it does and none of the sibling tools (edit, add, claim) compete for this action.

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

Usage Guidelines5/5

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

Explicitly states the precondition ('only once the human says yes to that file'), the procedure ('find the project's own mark at its largest... and show it to them first'), and the when-not ('offer it once when the project has none'), plus the scope of a refusal ('a no stops only the offer'). Nothing about when to invoke or not invoke is left to inference.

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.

Resources