Skip to main content
Glama

Well Told

Upload a logo

upload_logo
Idempotent

Stores the buyer's own logo with Well Told and checks it for etching problems, returning a logo_id and plain-language warnings. Accepts a chat attachment (logo_file, where the app can pass attachments to tools), a logo_url the buyer pasted, or the upload_code from an earlier call. Called with no arguments it shows an upload box in the chat (with a secure upload page link as a fallback, works on phones) and returns an upload_code; calling again with that code returns the logo once the buyer has uploaded it.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "upload_logo"
  }
}

Input Schema

NameRequiredDescriptionDefault
logo_urlNoPublic https link to the buyer's logo file, only when the buyer pasted it in this conversation. Never a URL you found by searching or browsing, or a company website.
logo_fileNoThe logo file attached in chat
upload_codeNoCode from a previous upload_logo call after the buyer used the upload page

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which only say non-read-only, open-world, idempotent, non-destructive), the description discloses a genuinely non-obvious two-phase async interaction: no-arg call shows an upload box and yields an upload_code, a later call with that code returns the finished logo. It also states that the tool performs an etching-problem check and returns human-readable warnings, and mentions a secure upload-page fallback that works on phones.

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 purpose and return values, then input modes, then the interactive flow — no filler or repetition. The sentences are long and densely packed, which costs a bit of scannability, but every clause carries information.

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?

There is no output schema, and the description compensates fully by naming the return values (logo_id, warnings, upload_code) and explaining the multi-turn handoff between the two calls. For a tool with a nested parameter and a stateful flow, an agent has everything it needs to invoke it correctly.

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 baseline is 3, but the description adds sequencing meaning the schema does not: it explains that upload_code comes from a prior call and is what you pass on the second invocation to retrieve the uploaded logo. It also frames logo_file as a chat attachment the app passes through to tools, which clarifies the nested object's role rather than restating its fields.

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?

The opening sentence names a specific verb and resource — storing the buyer's logo and checking it for etching problems — and states what comes back (logo_id plus plain-language warnings). That is enough to distinguish it from siblings like generate_proof or save_design without opening any schema.

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?

The description lays out all three input paths (chat attachment, pasted URL, prior upload_code) and the zero-argument path that renders an upload box, so the agent knows exactly which invocation shape to pick. It also constrains logo_url to URLs pasted in this conversation, which is a useful exclusion. It stops short of naming sibling tools or saying when this step should be skipped in a larger flow.

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