Skip to main content
Glama

Filesystem MCP β€” ARCHIVED

ARCHIVED / NON-PRIMARY
This product is not an active Sylphx agent-instrument.
Prefer independent products: Citra, Iris, Cue, Prism, Spine, Lookout.

Historical source remains for reference only. Do not treat npm/Docker badges or install CTAs below as current install authority.


Filesystem MCP

Your agent touched the repo. Did it stay in the project?

Secure, token-optimized filesystem operations for AI agents β€” batch reads, surgical edits, and project-root confinement without shell spawn overhead.

npm version Docker Pulls License TypeScript

Batch operations Β· Project root safety Β· Zod validation Β· 13 MCP tools Β· Docker-ready

⭐ Star this repo if agents should read and edit your codebase safely β€” not spawn shells per file. Β· Quick start Β· See it work Β· Why not shell commands? Β· Roadmap


The problem

Agents need filesystem access to read code, apply edits, and search across a repo. The default path is shell commands β€” one spawn per operation, no batching, stderr parsing, and paths that can wander outside the project.

That costs tokens, adds latency, and turns every file touch into a trust exercise.

Filesystem MCP is built for the moment your agent needs fast, bounded, batch-friendly file operations β€” confined to the project root.

Related MCP server: image-reader MCP Server

Why not shell commands?

Shell commands per file

Filesystem MCP

One operation per spawn

Batch 10+ files in one MCP call

Full shell access

Confined to server cwd at launch

stderr parsing

Per-item success/failure in structured JSON

High token round trips

Fewer host↔server calls

Path traversal risk

Relative paths only; traversal blocked

No schema

Zod-validated arguments on every tool

Full benchmark contract: docs/benchmark.md.

See it work

Configure once. Read many files in one call.

claude mcp add filesystem -- npx @sylphx/filesystem-mcp
{
  "paths": ["src/index.ts", "package.json", "README.md"]
}

read_content returns per-file results in one response:

{
  "results": [
    { "path": "src/index.ts", "content": "...", "success": true },
    { "path": "package.json", "content": "...", "success": true },
    { "path": "README.md", "content": "...", "success": true }
  ]
}

Important: launch the MCP server with cwd set to your project root. All paths are relative to that directory.

Why agents use it

Need

What you get

Read multiple files

read_content β€” batch paths, optional line ranges

Write or append

write_content β€” multiple files per call

Surgical edits

apply_diff, replace_content β€” diff output and per-file status

Search the tree

search_files β€” regex with context

Refactor across files

replace_content β€” multi-file search & replace

Explore structure

list_files β€” recursive listing with optional stats

Move/copy/delete

move_items, copy_items, delete_items

Permissions

chmod_items, chown_items

Inspect metadata

stat_items, create_directories

Quick Start

Claude Code

claude mcp add filesystem -- npx @sylphx/filesystem-mcp

Run from your project directory so cwd is the repo root.

Claude Desktop / any MCP host

{
  "mcpServers": {
    "filesystem-mcp": {
      "command": "npx",
      "args": ["@sylphx/filesystem-mcp"]
    }
  }
}

Set the host's working directory to your project root.

Docker

{
  "mcpServers": {
    "filesystem-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/path/to/your/project:/app",
        "sylphx/filesystem-mcp:latest"
      ]
    }
  }
}

Local development

git clone https://github.com/SylphxAI/filesystem-mcp.git
cd filesystem-mcp
bun install
bun run build
bun run test

MCP Tool Surface

Tool

Use it when the agent needs to...

read_content

Read one or more files (optional line ranges)

write_content

Write or append to files

apply_diff

Apply structured diffs across files

search_files

Regex search with context lines

replace_content

Multi-file search and replace

list_files

List a directory tree (optional stats)

stat_items

Get detailed file/directory metadata

create_directories

Create directories (with parents)

delete_items

Remove files or directories

move_items

Move or rename items

copy_items

Copy files or directories

chmod_items

Change POSIX permissions

chown_items

Change ownership

Release proof

Claims are backed by CI benchmark:release-gate, safety fixture corpus, and the shipped-path matrix (Rust-default primary tools).

bun run benchmark:release-gate

Artifact: benchmark-artifacts/filesystem_release_gate.json β€” must report status: passed before release.

Performance benchmarks

Reproduce local throughput on the shipped Rust CLI path:

bunx vitest bench __tests__/benchmarks/throughput.bench.ts --run

See docs/benchmark.md for scenarios, design goals, and how to interpret results.

Security model

  • All operations confined to the server cwd at launch.

  • Absolute paths rejected; path traversal blocked.

  • Zod schemas validate every tool argument.

  • Batch tools return per-item status β€” one failure does not hide the rest.

Documentation

Development

bun run validate    # lint + typecheck + test
bun run docs:build  # VitePress + API docs
bun run benchmark   # vitest bench

Support

Help this reach more builders

If shell-per-file agent workflows have burned your tokens or your trust in path safety, this project is for you.

⭐ Star the repo β€” it helps more agent builders find secure, batch-friendly filesystem access.

Discovery (in progress)

Channel

Status

Glama MCP directory

Listed β€” claim server for full discoverability

Official MCP Registry

Not listed yet

mcp.so submit

Not listed yet β€” directory submission

mcpservers.org submit

Not listed yet β€” free web-form submission

Know another MCP directory? Open an issue with the link.

License

MIT Β© Sylphx

Available Tools

12 tools
chmod_itemsC

Change permissions mode for multiple specified files/directories (POSIX-style).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesThe permission mode as an octal string (e.g., '755', '644').
pathsYesAn array of relative paths.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose whether this requires elevated permissions, if changes are destructive or reversible, potential side effects on nested items, or error handling for invalid paths/modes. 'Change permissions' implies mutation but lacks critical safety and operational context.

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 a single, efficient sentence with zero wasted words. It front-loads the core action ('Change permissions mode') and includes essential technical context ('POSIX-style') without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information about permissions required, whether changes apply recursively, what happens on partial failures, or the return format. Given the complexity of file system operations and absence of structured safety hints, more behavioral disclosure is needed.

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 description coverage is 100%, so parameters are fully documented in the schema. The description adds minimal value beyond implying 'multiple' paths (hinting at array usage) and POSIX context, but doesn't elaborate on parameter interactions or usage nuances beyond what the schema already provides.

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?

The description clearly states the verb ('Change permissions mode') and resource ('multiple specified files/directories'), with the parenthetical '(POSIX-style)' adding technical specificity. It distinguishes from siblings like chown_items (ownership changes) and delete_items (removal), but doesn't explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like chown_items for ownership changes or stat_items for checking permissions. The description implies it's for permission modification but offers no context about prerequisites, constraints, or appropriate scenarios.

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

chown_itemsC

Change owner (UID) and group (GID) for multiple specified files/directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
gidYesGroup ID.
pathsYesAn array of relative paths.
uidYesUser ID.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool changes ownership, implying a mutation operation, but lacks details on permissions required, whether changes are reversible, error handling (e.g., for invalid paths), or side effects (e.g., affecting file access). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 a single, efficient sentence that front-loads the core action ('Change owner and group') and target ('multiple specified files/directories'). It avoids redundancy and wastes no words, making it easy to parse quickly. Every part of the sentence contributes directly to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation operation with 3 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions needed, error cases, or return values, leaving gaps that could hinder an agent's ability to use it correctly. More context is needed for a mutation tool in this environment.

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 description coverage is 100%, with clear descriptions for 'gid' (Group ID), 'paths' (array of relative paths), and 'uid' (User ID). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints (e.g., numeric ranges for IDs). Baseline 3 is appropriate since the schema adequately documents parameters.

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?

The description clearly states the action ('Change owner and group') and target ('multiple specified files/directories'), which is specific and unambiguous. It distinguishes itself from siblings like 'chmod_items' (change permissions) and 'stat_items' (view metadata), though it doesn't explicitly name these alternatives. The purpose is well-defined but could be slightly more precise about the scope of change.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., requiring appropriate permissions), exclusions (e.g., not for single files), or contextual cues (e.g., use for bulk ownership changes). Given siblings like 'chmod_items' for permissions and 'stat_items' for viewing metadata, explicit differentiation would help agents choose correctly.

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

copy_itemsC

Copy multiple specified files/directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesArray of {source, destination} objects.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action ('copy') but doesn't disclose critical traits like whether it overwrites existing files at destinations, handles permissions or errors, requires specific access, or supports recursive copying for directories. This leaves significant gaps for safe and effective use.

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 extremely conciseβ€”a single sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action ('copy'), making it efficient for quick comprehension, though this brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a file operation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavior (e.g., overwrite rules, error handling), output format, or integration with siblings like 'list_files' for path validation. For a mutation tool in a filesystem context, more completeness is needed to guide the agent effectively.

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 description coverage is 100%, so the schema fully documents the 'operations' parameter with its structure. The description adds no additional meaning beyond implying multiple items can be copied, which is already clear from the schema's array type. This meets the baseline for high schema coverage without enhancing parameter understanding.

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?

The description clearly states the verb ('copy') and resource ('multiple specified files/directories'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'move_items' or 'write_content', which would require mentioning that this creates duplicates rather than relocating or overwriting content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios like duplicating files for backup versus moving them with 'move_items', or how it differs from 'write_content' for creating new files. Without such context, the agent must infer usage from the tool name alone.

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

create_directoriesC

Create multiple specified directories (including intermediate ones).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesAn array of relative directory paths to create.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions creating directories 'including intermediate ones,' which adds some behavioral context (e.g., recursive creation). However, it lacks details on permissions, error handling (e.g., if paths exist), side effects, or response format, leaving gaps for a mutation 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 a single, efficient sentence with zero waste. It front-loads the core action ('Create multiple specified directories') and adds a clarifying detail ('including intermediate ones') without unnecessary elaboration, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It doesn't cover behavioral aspects like error conditions, permissions needed, or what happens on success/failure. For a tool that modifies the filesystem, more context is needed to ensure safe and correct usage.

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 description coverage is 100%, with the parameter 'paths' documented as 'An array of relative directory paths to create.' The description adds minimal value beyond this, only implying the array handles multiple paths. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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?

The description clearly states the verb ('Create') and resource ('multiple specified directories'), specifying it includes intermediate directories. It distinguishes from siblings like 'list_files' or 'delete_items' by focusing on directory creation, though it doesn't explicitly contrast with similar tools (e.g., 'write_content' might also create directories).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., permissions), when not to use it (e.g., for single directories vs. multiple), or refer to sibling tools like 'chmod_items' for post-creation adjustments. Usage is implied by the action but not contextualized.

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

delete_itemsC

Delete multiple specified files or directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesAn array of relative paths (files or directories) to delete.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool deletes files/directories, implying a destructive mutation, but lacks details on permissions required, whether deletions are permanent or reversible, error handling (e.g., if some paths don't exist), or rate limits. This is a significant gap for a destructive 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 a single, efficient sentence that directly states the tool's purpose without redundancy. It is front-loaded and wastes no words, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It does not address critical context like safety warnings, return values (e.g., success/failure status), or error conditions, leaving significant gaps for an agent to use it correctly.

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 description coverage is 100%, with the parameter 'paths' clearly documented in the schema as 'An array of relative paths (files or directories) to delete.' The description adds no additional meaning beyond this, such as path format examples or constraints, so it meets the baseline of 3 where the schema does the heavy lifting.

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?

The description clearly states the action ('Delete') and target ('multiple specified files or directories'), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like 'move_items' or 'replace_content' in terms of destructive intent, though the verb 'Delete' inherently implies removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., permissions), exclusions (e.g., cannot delete system files), or sibling tools for related operations like 'move_items' for relocation instead of deletion.

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

list_filesC

List files/directories. Can optionally include stats and list recursively.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_statsNoInclude detailed stats for each listed item.
pathNoRelative path of the directory..
recursiveNoList directories recursively.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions optional stats and recursive listing, but doesn't describe important behavioral aspects like whether this is a read-only operation (implied but not stated), what permissions are required, how results are formatted, whether there are rate limits, or if it handles symbolic links. The description is insufficient for a tool with no annotation coverage.

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 extremely concise at just two sentences with zero wasted words. It's front-loaded with the core purpose and efficiently covers the two key optional features. Every sentence earns its place by adding meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a file listing tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (list format, what fields are included), how errors are handled, or important constraints. Given the complexity of file system operations and the lack of structured metadata, the description should provide more complete context.

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 description coverage is 100%, so the schema already fully documents all three parameters. The description adds minimal value by mentioning 'stats' and 'recursively' which map to 'include_stats' and 'recursive' parameters, but provides no additional semantic context beyond what's in the schema. This meets the baseline for high schema coverage.

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?

The description clearly states the tool's purpose as 'List files/directories' with a specific verb and resource. It distinguishes itself from siblings like 'search_files' by focusing on listing rather than searching, but doesn't explicitly contrast with 'stat_items' which also provides file information. The description is clear but lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'list_files' over 'search_files' for finding files, or when 'stat_items' might be more appropriate for detailed statistics. There's no context about prerequisites or typical use cases.

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

move_itemsC

Move or rename multiple specified files/directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesArray of {source, destination} objects.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool can 'move or rename' items, implying mutation, but doesn't address critical aspects like permissions required, whether operations are atomic or batched, error handling, or what happens if destinations already exist. This leaves significant gaps for a mutation 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 a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and target, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., overwrite behavior, error responses), usage context compared to siblings, and output expectations, making it inadequate for safe and effective tool 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 description coverage is 100%, with the 'operations' parameter fully documented in the schema as an array of source-destination objects. The description adds no additional parameter semantics beyond what the schema provides, such as path format examples or batch size limits, meeting the baseline for high schema coverage.

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?

The description clearly states the action ('Move or rename') and target ('multiple specified files/directories'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from sibling tools like 'copy_items' or 'rename_items' (if such existed), which would require more precise differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'copy_items' (for copying instead of moving) or 'rename_items' (if available). There's no mention of prerequisites, constraints, or typical use cases, leaving the agent with minimal contextual direction.

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

read_contentC

Read content from multiple specified files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesArray of relative file paths to read.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Read content') but doesn't describe how it behaves: e.g., whether it reads files sequentially or in parallel, error handling for missing files, encoding assumptions, or output format. For a read operation with zero annotation coverage, this leaves significant gaps in understanding tool behavior.

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 a single, efficient sentence with zero waste. It is front-loaded with the core action and resource, making it immediately clear. Every word earns its place, and there is no unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (reading multiple files), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what is returned (e.g., file contents, errors), how results are structured, or behavioral details like performance or limitations. For a tool with no structured output or safety hints, more context is needed.

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?

The schema description coverage is 100%, with the 'paths' parameter fully documented in the schema as 'Array of relative file paths to read.' The description adds no additional meaning beyond this, such as path format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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?

The description clearly states the action ('Read content') and resource ('from multiple specified files'), making the purpose immediately understandable. It distinguishes from siblings like 'list_files' (metadata) and 'write_content' (writing), though it doesn't explicitly name alternatives. The description is specific but lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use 'read_content' over 'search_files' (which might read content during searches) or 'stat_items' (which provides metadata without content). There are no prerequisites, exclusions, or context for tool selection.

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

replace_contentC

Replace content within files across multiple specified paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesAn array of search/replace operations to apply to each file.
pathsYesAn array of relative file paths to perform replacements on.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool performs replacements but doesn't mention critical behaviors: whether it modifies files in-place, requires write permissions, handles errors, backs up original content, or has rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 a single, efficient sentence that front-loads the core action ('Replace content') and scope ('within files across multiple specified paths'). There is zero waste or redundancy, making it highly concise and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations, no output schema, and 2 parameters, the description is incomplete. It lacks information on behavioral traits (e.g., destructive nature, error handling), output format, and usage context. While the schema covers parameters well, the overall context for safe and effective use is insufficient.

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 description coverage is 100%, so the schema fully documents the 'paths' and 'operations' parameters with their nested properties. The description adds no additional meaning beyond implying batch processing across multiple files, which is already clear from the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

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?

The description clearly states the verb 'Replace' and the resource 'content within files across multiple specified paths', which is specific and unambiguous. It distinguishes from siblings like 'write_content' (which creates new content) and 'read_content' (which only reads), though it doesn't explicitly mention these distinctions. The purpose is well-defined but could be more precise about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'write_content' for creating new files or 'search_files' for finding content without replacement. It mentions 'multiple specified paths' but doesn't clarify prerequisites, limitations, or typical use cases, leaving the agent to infer usage from the tool name alone.

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

search_filesB

Search for a regex pattern within files in a specified directory (read-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_patternNoGlob pattern to filter files (e.g., '*.ts'). Defaults to all files ('*').*
pathNoRelative path of the directory to search in..
regexYesThe regex pattern to search for.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the '(read-only)' qualifier, which is valuable context about safety. However, it doesn't describe other important behaviors like whether the search is recursive, case-sensitive, or what the output format looks like (matches, line numbers, etc.).

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 a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded with the core functionality. Every element ('search for regex pattern', 'within files', 'in specified directory', 'read-only') earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (regex search across files), no annotations, and no output schema, the description is minimally adequate. It covers the basic operation and safety qualifier but lacks details about search behavior (recursive?), output format, or error handling. For a search tool with no structured output documentation, more completeness would be helpful.

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 description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it mentions 'regex pattern' and 'specified directory' but provides no extra syntax, format, or usage details. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description clearly states the tool's purpose with specific verbs ('search for a regex pattern within files') and resource ('in a specified directory'), and includes the '(read-only)' qualifier. However, it doesn't explicitly differentiate from sibling tools like 'list_files' or 'read_content' beyond the regex search aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_files' for directory listing or 'read_content' for file reading. It mentions the directory scope but offers no explicit when/when-not instructions or sibling tool comparisons.

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

stat_itemsC

Get detailed status information for multiple specified paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesAn array of relative paths (files or directories) to get status for.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets detailed status information', implying a read-only operation, but doesn't specify what 'detailed status' includes (e.g., permissions, size, timestamps), whether it requires specific permissions, or how it handles errors. This leaves significant gaps in understanding the tool's behavior.

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 a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and appropriately sized, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves status information. It doesn't explain what 'detailed status' entails, how results are returned, or potential limitations, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.

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?

The schema description coverage is 100%, with the 'paths' parameter clearly documented as 'An array of relative paths (files or directories) to get status for.' The description adds no additional meaning beyond this, such as path format examples or constraints, so it meets the baseline for high schema coverage without compensating further.

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?

The description clearly states the verb 'Get' and the resource 'detailed status information for multiple specified paths', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_files' or 'search_files' which might also provide status information, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_files' or 'search_files'. It doesn't mention prerequisites, exclusions, or specific contexts where this tool is preferred, leaving the agent with no usage direction beyond the basic purpose.

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

write_contentC

Write or append content to multiple specified files (creating directories if needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of {path, content, append?} objects.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'creating directories if needed', which is useful context beyond basic write operations. However, it doesn't disclose critical behavioral traits such as file permissions, error handling (e.g., if a file already exists without append), encoding, or whether it's atomic. For a mutation tool with zero annotation coverage, this leaves significant gaps.

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 a single, efficient sentence with zero waste. It front-loads the core action ('Write or append content') and includes essential details ('to multiple specified files', 'creating directories if needed') without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on return values, error conditions, side effects (e.g., impact on existing files), and performance considerations. While it hints at directory creation, it doesn't fully compensate for the missing structured data, making it inadequate for safe and effective use.

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 description coverage is 100%, so the schema already documents the 'items' parameter and its nested properties (path, content, append). The description adds minimal value beyond the schema by implying batch operations ('multiple specified files') and directory creation, but doesn't provide additional syntax, format details, or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

The description clearly states the verb 'write or append' and the resource 'content to multiple specified files', with the additional detail 'creating directories if needed'. It distinguishes from siblings like 'read_content' and 'replace_content' by focusing on writing/appending rather than reading or in-place replacement. However, it doesn't explicitly differentiate from 'create_directories' which might overlap in directory creation functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'replace_content' for overwriting specific content or 'create_directories' for just creating directories. It mentions 'append' as an option but doesn't clarify when appending is preferable to overwriting. No prerequisites or exclusions are stated.

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

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific filesystem operation (e.g., copy_items vs. move_items, read_content vs. write_content), and the descriptions clearly differentiate their functions. There is no overlap that would cause an agent to misselect between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case throughout (e.g., list_files, create_directories, delete_items). The naming is predictable and readable, with no deviations or mixed conventions, making it easy for agents to understand and use the tool set.

Tool Count5/5

With 12 tools, the count is well-scoped for a filesystem server, covering essential operations without being overwhelming. Each tool earns its place by addressing a core filesystem task, such as file management, content handling, and metadata operations, making the set comprehensive yet manageable.

Completeness5/5

The tool set provides complete coverage for filesystem operations, including CRUD/lifecycle functions (create, read, update, delete), file manipulation (copy, move), permissions (chmod, chown), and search capabilities. There are no obvious gaps, and agents can perform typical filesystem workflows without dead ends.

Maintenance

ActivitySlowing
ResponsivenessSlow

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SylphxAI/filesystem-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server