Skip to main content
Glama

app_list_documents

Lists all documents in the current EDA workspace, including project members and free files, and flags which are loaded in the editor.

Instructions

List all documents known to the current Altium workspace.

Returns both project members and any free documents. Each entry carries a loaded flag that distinguishes "listed as project member on disk" from "actually resident in the editor". Project-scope queries (query_objects, batch_modify, ...) only iterate loaded sheets, if loaded is false for sheets you need to hit, call load_project_sheets first.

Returns: List of document information dictionaries containing: - file_name: Document file name - file_path: Full file path - document_kind: Type of document (SCH, PCB, etc.) - loaded: True if the doc is resident in the editor server. False means it's a project member on disk whose editor state hasn't been opened yet. - modified: True if the editor holds unsaved edits. A false is a floor rather than a clean bill, since the flag does not always propagate from ProcessControl. app_save_all measures file timestamps instead of trusting it.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it explains that `loaded` separates on-disk project membership from editor-resident state, and warns that `modified` is a floor rather than a clean bill because it doesn't always propagate from ProcessControl. It never explicitly states that the operation is read-only or whether an attached session is required.

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 opening sentence is well front-loaded, but the long Returns block enumerates file_name, file_path, and document_kind, which an existing output schema already covers. Only the `loaded` and `modified` commentary earns its place; the field-name bullets are redundancy.

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?

Because an output schema exists, the return values needn't be restated, and the description supplies the semantic and reliability context an agent actually needs (loaded vs. resident, modified unreliability). The one meaningful gap is the absence of any contrast with proj_list_documents, which leaves a real sibling ambiguity unresolved.

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?

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate at the input level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List all documents known to the current Altium workspace") and clarifies scope by naming both project members and free documents. It never distinguishes itself from the sibling proj_list_documents, so an agent cannot tell the two apart from the description alone.

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 concrete routing guidance: project-scope queries like query_objects/batch_modify only iterate loaded sheets, so call load_project_sheets first when `loaded` is false. That is real when-to-use advice, but it covers downstream follow-up actions rather than when to prefer this tool over proj_list_documents.

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

Deploy Server

Other Tools