Skip to main content
Glama

get_attachment

Idempotent

Look up and save a received Signal attachment locally: pass a filename or signal-cli attachment ID to ensure it is in ~/Downloads/signal-attachments and get its path and metadata, not content.

Instructions

Look up one received attachment and make sure it is saved locally. filename (required): a filename from list_attachments, or a signal-cli attachment id from a message's attachments; path components such as '../' are rejected. If the file is not in ~/Downloads/signal-attachments, it is copied there from signal-cli's own attachment store (only attachments signal-cli already downloaded; otherwise 'Attachment not found'). Returns {filename, path, size (bytes), modified (ISO datetime)}: metadata and the local path, not the file content. Nothing is sent to Signal. Use send_attachment or send_group_attachment to send a file.

Input Schema

NameRequiredDescriptionDefault
filenameYesAttachment filename (from list_attachments) or signal-cli attachment id

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.40.1
    • changedInput schema / properties / filename / description
      Previous value: -"Attachment filename (get from list_attachments)"New value: +"Attachment filename (from list_attachments) or signal-cli attachment id"
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: it explains the local copy into ~/Downloads/signal-attachments, that only attachments signal-cli already downloaded are available, the exact 'Attachment not found' failure, and that nothing is sent to Signal. This reconciles readOnlyHint=false with destructiveHint=false and idempotentHint=true meaningfully.

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?

Dense but front-loaded: the action and the required parameter come first, then resolution behavior, then return shape, then routing to siblings. Slightly long, though nearly every sentence carries distinct operational detail.

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?

With no output schema, the description compensates by enumerating the return object ({filename, path, size, modified}) and clarifying it returns metadata rather than file content. For a single-parameter, non-destructive read/copy tool this is complete.

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 real semantics: accepted formats (filename or signal-cli attachment id) and the security constraint that path components such as '../' are rejected. That is genuine information not present in the schema.

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?

States a specific verb and resource ('Look up one received attachment and make sure it is saved locally'), and distinguishes itself from siblings by naming list_attachments as the source of the identifier and send_attachment/send_group_attachment as the senders. An agent can route correctly 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?

Gives clear context and an explicit alternative ('Use send_attachment or send_group_attachment to send a file') plus where the filename comes from (list_attachments or a message's attachments). It does not spell out when-not to use it for other attachment operations, so it falls just short of the top band.

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