Read File
file_readRead a file's full content. Text files return content inline. Binary files (images, video) return a download URL.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The file ID (e.g. "ast_a1b2c3d4e5f67890"). |
file_readRead a file's full content. Text files return content inline. Binary files (images, video) return a download URL.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The file ID (e.g. "ast_a1b2c3d4e5f67890"). |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds genuinely useful behavioral context beyond those flags: text files return content inline while binary files (images, video) return a download URL. This directly shapes an agent's expectation of the response without an output schema present.
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?
Two short sentences with zero wasted words. The core action is front-loaded first, and the behavioral caveat (text vs binary return behavior) is placed second where it belongs. Every sentence earns its place.
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 one-parameter read-only tool whose safety profile is fully covered by annotations, this is complete. The description specifies return behavior for both file categories, compensating for the absence of an output schema. Error cases and permission requirements are minor gaps at this level of complexity.
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 description coverage is 100%, with file_id fully documented including a concrete example ('ast_a1b2c3d4e5f67890'). The description adds no parameter-specific detail, but the baseline 3 applies because the schema already carries the full documentation burden for the single parameter.
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?
States a specific verb and resource ('Read a file's full content') and immediately clarifies the behavioral scope with the text/binary distinction. The name plus description clearly differentiate it from file_list, file_write, and file_delete without needing to open any schema.
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?
Usage context is implied — an agent can infer this is for retrieving a file's full content — but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as file_list for discovering file IDs or file_write for modifying content. The description does not actively mislead, but leaves selection logic to inference.
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.
Tools are grouped by clear resource prefixes (account_, brain_, connector_, credential_, file_, job_, key_), and most actions have distinct purposes. A few boundaries overlap—brain_admin's lint action duplicates brain_lint, and account_preferences/setup/switch could momentarily confuse—but the descriptions resolve most ambiguity.
The dominant pattern is resource_verb for actions (file_read, job_cancel, key_create) and resource_noun for state views (credits_balance, brain_settings, account_preferences), which is readable. However, exceptions like discover, use_tool, top_up_credits, and feedback_request_tool break the pattern, and the set is not consistently verb_noun.
47 tools is well beyond the comfortable range; even though prefixes organize them, the agent faces a large selection surface with many narrowly scoped tools. A more consolidated set with action-based subcommands would be easier to navigate.
Core workflows are covered end-to-end: account setup and billing, connector and credential management, file CRUD, job polling, key lifecycle, brain knowledge management, and catalogue discovery/execution. Gaps are minor—outfit/persona/product/scene are list-only, connectors lack an update operation, and there is no explicit single-page brain get—but agents can generally work around them.