Skip to main content
Glama
proton-bridge-mcp

proton-bridge-mcp

Read an attachment

read_attachment
Read-only

Read an email attachment inline to extract text from PDFs, CSV, JSON, ICS, and EML files or view images when local files are inaccessible; use save for other binary types.

Instructions

Read an attachment inline. Text comes back as text: PDFs via pypdf, plus text/csv/json/ics/eml, for invoices, decks, reports. An image comes back as a viewable image, the only way to see a photo or a scan when the client cannot read local files. Other binary types must use save_attachment instead.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "uid": "<uid>"
    },
    "name": "read_attachment"
  }
}

Input Schema

NameRequiredDescriptionDefault
uidYes
folderNoDefault INBOX.
filenameNoWhich attachment (partial match OK). Optional if there is only one.
uidvalidityNoUIDVALIDITY reported alongside the uid. Pass it back so a mailbox resync cannot make this act on the wrong message.
include_inlineNoAlso consider inline images and PGP keys, which are hidden by default. A filename no document matches is looked for among them anyway.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.0.0
    • addedInput schema / properties / include_inline
      Added value: +{
      +  "description": "Also consider inline images and PGP keys, which are hidden by default. A filename no document matches is looked for among them anyway.",
      +  "type": "boolean"
      +}
  2. First observedv1.2.1

TDQS

A4.1/5.0
Behavior4/5

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

With readOnlyHint already declaring safety, the description adds the real behavioral payload: output modality per content type (text vs. viewable image) and the pypdf extraction path. It does not cover failure modes (corrupt PDFs, unsupported encodings) or size limits, which matters for a tool that pulls arbitrary binaries over an open-world resource.

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 tightly packed sentences, front-loaded with the action and its result format. Dense but every clause carries information; nothing is redundant.

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?

No output schema exists, and the description compensates by describing what comes back for text and image inputs. For a 5-param read tool with annotations, the remaining gap is error/edge-case behavior, which is minor but not zero.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already explains folder, filename, uidvalidity and include_inline. The description adds no parameter-level meaning — notably the bare required 'uid' is left to the schema alone. Baseline 3 is appropriate here.

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 ('Read an attachment inline') and immediately scopes what 'read' means: text extraction for PDFs and text/csv/json/ics/eml, image rendering for images. It distinguishes itself from list_attachments and save_attachment, so the agent can choose without opening the 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?

Explicitly routes non-text binaries to save_attachment ('Other binary types must use save_attachment instead') and names the case where this is the only viable option ('when the client cannot read local files'). It does not state when to prefer list_attachments first or any preconditions, so not quite a 5.

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