Skip to main content
Glama

Read multiple computer text files

filesystem_read_multiple
Read-onlyIdempotent

Reads up to 24 authorized UTF-8 files with independent success/error entries. Each file starts at byte 0, reads at most 4 KiB; the serialized result is capped at 20 KiB including JSON escaping. Continue this same paths array with next_index while has_more; do not drop deferred files. For a non-eof file use filesystem_read_file with its result.path and next_offset. A single escaped chunk may be shortened to fit the budget. Error messages use stable codes without raw OS details. Select this tool from the user's intent when it is the best match. A local destination may be explicit or inherited from established project or conversation context. The user does not need to mention ailinkany.com, MCP, a connector, a plugin, or this tool name.

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": {
      "paths": "<paths>"
    },
    "name": "filesystem_read_multiple"
  }
}

Input Schema

NameRequiredDescriptionDefault
pathsYesOrdered absolute UTF-8 text file paths. Preserve this array when paging.
device_idNoTarget computer device_id. Omit when only one computer is paired.
device_nameNoComputer name or ailinkany.com remark (e.g. home PC). Prefer this when the user names a computer.
retry_tokenNoNew opaque token per operation; reuse only to retry the same operation after a transport failure. No user content.
start_indexNoNext batch index; defaults to 0.
workflow_idNoOptional workflow id; pass together with ai_session_id.
length_bytesNoPer-file bytes, defaults to 4096. Minimum 4 allows UTF-8 progress.
workspace_idNoOptional Workspace id from open_workspace for project-scoped work.
ai_session_idNoOptional Session id. Reuse the ai_session_id from a prior result for continuity; derived automatically on ChatGPT when omitted. Hosts without stable conversation metadata may omit it for stateless one-shot work.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent and non-destructive, yet the description adds substantial operational behavior: batch cap of 24, per-file 4 KiB read from byte 0, a 20 KiB serialized cap that includes JSON escaping, the caveat that an escaped chunk may be shortened, and independent success/error entries with stable error codes and no raw OS details. That is well beyond what the annotations declare and directly affects how an agent must handle results.

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

Conciseness3/5

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

The first few sentences are dense and front-loaded with the constraints that matter (caps, paging, alternative tool). However, the trailing sentences about selecting from user intent, inheriting a 'local destination', and not needing to mention ailinkany.com or MCP are boilerplate, and 'local destination' is meaningless for a read operation, diluting an otherwise tight definition.

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?

With an output schema, full schema coverage and strong annotations already supplied, the description still covers the things those fields cannot express: budget interactions between per-file bytes and the serialized cap, escaping-induced truncation, and error-entry semantics. The only gap is that it never ties the stated 4 KiB read limit to the length_bytes parameter, leaving an agent to infer that relationship.

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 meaning: start_index is framed as continuing 'this same paths array with next_index', with an instruction not to drop deferred files, which the schema's 'Next batch index; defaults to 0' does not convey. It also implies the 4 KiB ceiling behind length_bytes without restating the parameter by name.

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 plus scope: 'Reads up to 24 authorized UTF-8 files' with per-file and serialized size limits. It distinguishes itself from the closest sibling by naming filesystem_read_file as the single-file continuation path, so an agent can separate the two without reading schemas.

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 an explicit alternative and the condition that selects it: 'For a non-eof file use filesystem_read_file with its result.path and next_offset', plus continuation rules ('Continue this same paths array with next_index while has_more; do not drop deferred files'). It falls short of 5 because the added 'Select this tool from the user's intent when it is the best match' line is generic filler that provides no real selection criteria.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources