Skip to main content
Glama

Save a signature

set_signature
Destructive

Use this when the person wants their handwritten signature printed on their letters. It saves one picture of their signature for their account, in place of any saved before, and their letters then print it under the closing. Take the picture as a file the person attached (image) or a link to it (imageUrl). It works best as dark ink on white paper, photographed flat and close. The server crops it to the ink and turns the paper white, and refuses a picture with no signature in it. Use only the person's own signature. It is free.

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": "set_signature"
  }
}

Input Schema

NameRequiredDescriptionDefault
imageNoA photo of the person's signature, attached in the conversation
imageUrlNoA link to a photo of the person's signature, when no file was attached

Output Schema

NameRequiredDescriptionDefault
savedYes
widthYesThe cleaned signature's width, in pixels
heightYesThe cleaned signature's height, in pixels
messageYes
replacedYesWhether it replaced a signature saved before

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

This adds substantial behavior beyond the annotations: the save replaces any previously stored signature (matching destructiveHint=true), the server crops to the ink and whitens the paper, it rejects an image containing no signature, and the operation is free. Those are exactly the consequences and failure modes an agent needs before calling a mutating tool.

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?

The trigger condition is front-loaded and every sentence carries information: replacement semantics, input choice, image quality, server-side processing, rejection rule, and the own-signature restriction. It is slightly long and the closing 'It is free' reads as an afterthought, but nothing is redundant.

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?

For a two-parameter mutation tool with nested object input, the description covers trigger, input selection, expected image quality, server-side transformation, the rejection case, and the ownership constraint. Return values are covered by the existing output schema, so no meaningful gap remains.

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

Parameters5/5

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

Schema coverage is already 100%, but the description still adds real semantic guidance: pick `image` for an attached file versus `imageUrl` for a link, and supply a photo that is dark ink on white paper, shot flat and close. That quality guidance explains why a given parameter value will succeed or fail, which the schema cannot express.

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 concrete verb+resource: it saves one picture of the person's handwritten signature to their account, replacing any prior one, so letters print it under the closing. That is far more specific than the title 'Save a signature'. It does not, however, distinguish itself from the sibling set_letter_signature, which an agent could easily confuse with this account-level operation.

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 a clear trigger condition ('Use this when the person wants their handwritten signature printed on their letters') and tells the agent which input form to prefer depending on whether a file was attached. It stops short of naming an alternative or exclusion, e.g. when to use set_letter_signature or clear_signature instead, so it is a clear context rather than a full routing rule.

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