Skip to main content
Glama
Sealjay

mcp-signal

decrypt_attachment

Decrypt a locally stored Signal attachment using the encrypted file path and decryption key from message metadata, returning the path to the decrypted file.

Instructions

Decrypt a locally stored Signal attachment and return the path to the decrypted file.

The encrypted_path and local_key values come from attachment metadata in read_messages or search_messages results. Read-only on Signal data; writes a decrypted copy to a temporary directory. Use this after reading messages that contain attachments.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
encrypted_pathYesAbsolute filesystem path to the encrypted attachment file, as returned in the 'encrypted_path' field of message attachment metadata.
local_keyYesBase64-encoded 64-byte key (32-byte AES-CBC + 32-byte HMAC-SHA256), from the 'local_key' field of attachment metadata.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

No annotations provided, so description bears full burden. Discloses that it is read-only on Signal data and writes a decrypted copy to a temporary directory. Adds important safety and side-effect information beyond basic decryption.

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

Conciseness5/5

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

Three sentences covering purpose, parameter source, and usage context. No redundancy, well-structured, and front-loaded with the core action.

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?

Given the tool's moderate complexity (2 parameters, output schema exists), the description covers purpose, parameter sourcing, safety behavior, and usage timing. No obvious gaps for an agent to correctly select and invoke the tool.

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% with detailed descriptions. Description adds context on the origin and nature of the parameters (from attachment metadata, base64-encoded key structure), which aids correct invocation beyond schema alone.

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?

Clearly states verb ('Decrypt'), resource ('locally stored Signal attachment'), and outcome ('return the path to the decrypted file'). Distinct from siblings which involve chat activity, status, lists, and messages.

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?

Explicitly states where the input parameters come from ('encrypted_path and local_key values come from attachment metadata in read_messages or search_messages') and advises using it after reading messages with attachments. No explicit exclusions, but context is clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sealjay/mcp-signal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server