Skip to main content
Glama

fs

Execute file system actions: read, write, edit, delete, copy, move, search, grep, diff, hash, and manage directories. Unsandboxed local access.

Instructions

Full shell filesystem access (UNSANDBOXED, 50MB read limit). Use for all file operations. Doesn't encounter race conditions with file watchers. grep contains all the functionality of bash + powershell filesystem search. Auto-fixes code fences and smart quotes on write. Actions: read, write, edit, delete, copy, move, mkdir, rmdir, list, tree, search, grep, stat, diff, hash, touch, head, tail, duplicates. edit: [{old_text, new_text}]. grep: regex search in directories. diff: compare files/strings. hash: SHA256/MD5 checksums. duplicates: find duplicate files by hash.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoWrite mode (default: overwrite)
pathNo
editsNoFor edit: [{old_text, new_text}, ...]
limitNoLines to read (0=all) or lines to replace in replace_lines mode
linesNoFor head/tail: number of lines (default: 10)
regexNoFor grep: treat pattern as regex instead of substring (default: false)
actionYes
offsetNoStarting line (1-based) for read chunk or write insert/replace
path_aNoFor diff: first file path
path_bNoFor diff: second file path
confirmNoFor rmdir: confirm deleting a directory that contains more than 50 items.
contentNo
dry_runNoFor edit: preview diff without writing
patternNo
min_sizeNoFor duplicates: min file size in bytes (default: 1)
algorithmNoFor duplicates: hash algorithm (default: sha256)
content_aNoFor diff: first content string
content_bNoFor diff: second content string
max_depthNoFor grep: max directory depth
recursiveNoFor rmdir: recurse into non-empty directories.
algorithmsNoFor hash: list of algorithms (md5, sha1, sha256, sha512)
destinationNo
ignore_caseNoFor grep: case-insensitive search (default: false)
max_resultsNoFor grep: max matches
file_patternNoFor grep: file glob (*.py)
context_linesNoFor grep/diff: lines of context (default: 0/3)
output_formatNoFor diff: output format (default: unified)
create_parentsNoFor touch: create parent dirs (default: true)
max_line_lengthNoFor grep: max chars per line in output (default: 500)
include_metadataNoFor list: include size, type, and mtime for each entry.
preserve_indentationNoFor edit: apply old_text's leading indentation to new_text (default: true).
Behavior3/5

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

The description discloses important behavioral traits: 'UNSANDBOXED, 50MB read limit' and 'Auto-fixes code fences and smart quotes on write.' However, with 31 parameters and many actions, it lacks detail on side effects or specific behaviors for each action. Given no annotations, the description carries the burden but provides moderate transparency.

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 description is long but front-loaded with critical info (unsandboxed, read limit). It then lists all actions without clear structure or grouping. While efficient, it could be better organized for readability.

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?

The description covers the full range of 19 actions, important constraints (read limit, no race conditions), and additional features (auto-fix). With no output schema, it provides sufficient context for the tool's capabilities, though more detail on return values for each action would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 84%, the schema already documents most parameters. The description adds minimal value, e.g., listing actions and mentioning 'edit: [{old_text, new_text}]' but does not enhance understanding beyond the schema. It misses opportunities to clarify parameter usage or dependencies.

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 clearly states 'Full shell filesystem access (UNSANDBOXED, 50MB read limit). Use for all file operations.' The tool's purpose is specific and distinct from sibling tools js_exec, python_exec, and terminal, which are code execution environments.

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 advises 'Use for all file operations' and notes that it 'Doesn't encounter race conditions with file watchers.' It also mentions that 'grep contains all the functionality of bash + powershell filesystem search.' This provides good context for when to use this tool, although it does not explicitly exclude scenarios or mention alternatives.

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

Install Server

Other Tools

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/cutlerbenjamin1-cmd/shell-0'

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