download_document
Get an owned temporary document as base64 (maximum 5 MB). Prefer authenticated GET /api/mcp/files?id=FILE_ID for binary downloads to avoid large model context.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes |
Get an owned temporary document as base64 (maximum 5 MB). Prefer authenticated GET /api/mcp/files?id=FILE_ID for binary downloads to avoid large model context.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral context: the document is owned and temporary, the result is base64, the size is capped at 5 MB, and using this tool may put large content into model context. These details go beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences, front-loaded with the core action and format, followed by a relevant routing instruction. Every sentence contributes actionable information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation, the description provides the key operational details: base64 output, 5 MB limit, ownership/temporary nature, and a safer alternative for binary downloads. It does not cover error behavior or expiration, but the annotations and simple input schema keep the remaining gap minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for parameter documentation, but it does not explain the fileId parameter at all. The name fileId and pattern hint at an identifier, but the description never states that this parameter selects the document to download or connects it to the 'owned temporary document' concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a resource ('owned temporary document'), and a concrete output format ('base64' with a maximum size). This clearly differentiates it from the sibling pdf/upload/delete tools and makes the tool's function immediately identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names an alternative endpoint and gives the condition for preferring it: 'Prefer authenticated GET /api/mcp/files?id=FILE_ID for binary downloads to avoid large model context.' This provides clear context for when not to use this tool, though it does not explicitly spell out the positive condition for choosing this tool beyond its base64 purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.