Skip to main content
Glama

list_files_tool

List every file in an Obsidian vault or subfolder, including non-note files. Filter by extension to find specific types and get vault-relative paths.

Instructions

List every file in the vault (or a subfolder), any type — not just notes/attachments/bases/canvases (e.g. .lock files, stray non-Markdown files). extension filters by suffix without the dot (e.g. "lock", "canvas"); omit for everything. Hidden files/folders are skipped. data.items is a list of vault-relative paths.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vaultNo
folderNo
extensionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility. It discloses hidden files are skipped, extension filtering behavior, and the output format (data.items as vault-relative paths). These are the key behavioral traits an agent needs. Minor gaps like recursion behavior or sorting are not critical for a listing tool.

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

Conciseness5/5

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

The description is three sentences with no fluff. It front-loads the primary purpose, then adds the extension filter, hidden-file behavior, and output format. Every sentence adds value, and the structure is easy to scan.

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?

For a 3-parameter tool with an output schema, the description covers the main functional aspects: scope (vault/subfolder), filtering (extension), exceptions (hidden files), and return shape (data.items). The only missing piece is a clear explanation of the 'vault' parameter, but overall it is sufficient for correct invocation.

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 coverage is 0%, so the description must compensate. It thoroughly explains the 'extension' parameter (suffix without dot, omit for everything) and partially explains 'folder' (subfolder context). However, the 'vault' parameter is left unexplained, leaving ambiguity about its purpose or accepted values. This is a notable gap given zero schema descriptions.

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?

The description states a specific action ('List every file in the vault (or a subfolder)') and explicitly differentiates from siblings by noting it covers any type, not just notes/attachments/bases/canvases. This makes the tool's purpose unmistakable and sets it apart from list_notes_tool and list_attachments_tool.

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?

The description implies when to use it: when you need all files, including non-standard types like .lock files, and explains the extension filter for narrowing. It contrasts with note/attachment tools, giving clear context for selection, though it doesn't name alternatives explicitly.

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