MCP File Forge
MCP File Forge is a sandboxed MCP server that gives AI agents secure, policy-controlled file system operations and project scaffolding across 17 tools in five categories.
Reading
Read a single file (with encoding, line range, and size limits)
List directory contents (with recursion, depth limits, hidden files, and glob filtering)
Batch-read multiple files with configurable error handling
Writing & Management
Write/overwrite files (with auto-parent-creation and backup options)
Create directories (recursively)
Copy, move/rename, or delete files and directories
Search
Find files by glob pattern
Search file contents via regex (
grep_search) with context lines and case sensitivityFind files containing a specific literal string
Metadata
Get file/directory statistics (size, timestamps, type)
Check existence and type at a given path
Calculate disk usage for a directory
Compare two files or directories
Scaffolding
Create a new project from a named template with variable substitution
List available templates, optionally filtered by category
Security: All operations are sandboxed to explicitly allowed directories, with path traversal and symlink protection, denied path patterns, configurable read-only mode, and file size/recursion depth limits. It is cross-platform with configuration via environment variables, config files, or Claude Desktop integration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP File Forgescaffold a new project from the web-app template in C:/Projects/my-app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
At a Glance
MCP File Forge is a Model Context Protocol (MCP) server that gives AI agents sandboxed, policy-controlled access to the local file system. It ships 17 tools across five categories:
Category | Tools | Description |
Reading |
| Read files and directory listings |
Writing |
| Create, modify, copy, move, and delete |
Search |
| Find files by name pattern or content |
Metadata |
| Inspect size, timestamps, existence |
Scaffolding |
| Create projects from templates with variable substitution |
Key properties:
Sandboxed -- operations are restricted to explicitly allowed directories.
Read-only mode -- flip one env var to disable all write tools.
Symlink-safe -- symlink following is off by default to prevent sandbox escapes.
Windows-first -- designed for Windows paths and conventions, works everywhere.
Template engine --
{{var}}/${var}substitution plus path-level__var__renaming.
Installation
npm install -g @mcptoolshop/file-forgeOr run directly with npx:
npx @mcptoolshop/file-forgeClaude Desktop Configuration
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"file-forge": {
"command": "npx",
"args": ["-y", "@mcptoolshop/file-forge"],
"env": {
"MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects,C:/Users/you/Documents"
}
}
}
}If you installed globally you can point directly at the binary:
{
"mcpServers": {
"file-forge": {
"command": "mcp-file-forge",
"env": {
"MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects"
}
}
}
}Tool Reference
Reading
Tool | Description | Key Parameters |
| Read file contents |
|
| List directory entries |
|
| Batch-read multiple files |
|
Writing
Tool | Description | Key Parameters |
| Write or overwrite a file |
|
| Create a directory |
|
| Copy a file or directory |
|
| Move or rename |
|
| Delete a file or directory |
|
Search
Tool | Description | Key Parameters |
| Find files by glob pattern |
|
| Search file contents with regex |
|
| Literal text search (no regex) |
|
Metadata
Tool | Description | Key Parameters |
| File/directory statistics |
|
| Check existence and type |
|
| Directory size breakdown |
|
| Compare two paths |
|
Scaffolding
Tool | Description | Key Parameters |
| Create project from template |
|
| List available templates |
|
Full parameter documentation, examples, and error codes are in the HANDBOOK.md.
Environment Variables
Variable | Description | Default |
| Comma-separated list of allowed root directories |
|
| Comma-separated denied path glob patterns |
|
| Disable all write operations |
|
| Maximum file size in bytes |
|
| Maximum recursion depth |
|
| Allow following symlinks outside sandbox |
|
| Comma-separated template directories |
|
| Log verbosity ( |
|
| Path to a log file (in addition to stderr) | none |
Config File
Create mcp-file-forge.json (or .mcp-file-forge.json) in or above your working directory:
{
"sandbox": {
"allowed_paths": ["C:/Projects", "C:/Users/you/Documents"],
"denied_paths": ["**/secrets/**", "**/.env"],
"follow_symlinks": false,
"max_file_size": 52428800,
"max_depth": 20
},
"templates": {
"paths": ["./templates", "~/.mcp-file-forge/templates"]
},
"logging": {
"level": "info",
"file": "./logs/mcp-file-forge.log"
},
"read_only": false
}Configuration priority (highest wins):
Environment variables
Config file
Built-in defaults
Security
MCP File Forge enforces several layers of protection to keep AI agents from reaching outside their designated workspace:
Path sandboxing -- every path is resolved to an absolute path and checked against the
allowed_pathslist before any I/O occurs.Denied paths -- glob patterns that are blocked even within allowed directories (e.g.
**/secrets/**).Symlink protection -- symlinks are not followed by default; if a symlink target resolves outside the sandbox, the operation is denied.
Path traversal detection --
..sequences that would escape the sandbox are rejected.Size limits -- files larger than
max_file_sizeare refused to prevent memory exhaustion.Depth limits -- recursive operations are capped at
max_depthlevels.Read-only mode -- set
MCP_FILE_FORGE_READ_ONLY=trueto disablewrite_file,create_directory,copy_file,move_file,delete_file, andscaffold_project.Null-byte rejection -- paths containing
\0are refused.Windows long-path guard -- paths exceeding 32,767 characters are refused.
Documentation
Document | Description |
Deep-dive: security model, tool reference, templates, architecture, FAQ | |
Release history (Keep a Changelog format) | |
Internal planning and research notes |
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run tests
npm test
# Lint
npm run lintSecurity & Data Scope
MCP File Forge is an MCP server providing sandboxed file operations for AI agents.
Data accessed: Files within explicitly allowed directories only. Config files, template directories
Data NOT accessed: No cloud sync. No telemetry. No analytics. No data outside sandbox
Network: stdio transport by default — no network listeners, no egress. HTTP mode available via
PORTenv var for remote deploymentNo telemetry is collected or sent
Full policy: SECURITY.md
Scorecard
Category | Score |
A. Security | 10/10 |
B. Error Handling | 10/10 |
C. Operator Docs | 10/10 |
D. Shipping Hygiene | 10/10 |
E. Identity (soft) | 10/10 |
Overall | 50/50 |
License
Available Tools
17 toolscompare_filesC
Compare two files or directories
| Name | Required | Description | Default |
|---|---|---|---|
| path1 | Yes | First path | |
| path2 | Yes | Second path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Compare' implies a read-only operation, but it doesn't specify what aspects are compared (content, metadata, structure), the output format, whether it's recursive for directories, error handling for missing files, or performance characteristics. This leaves significant gaps for agent decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core functionality and appropriately sized for a simple comparison tool with only two parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a comparison tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'compare' means in practice—whether it returns differences, similarity scores, or just boolean equality. With 2 parameters and behavioral uncertainty, more context about the comparison operation and expected outputs is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions ('First path', 'Second path'), so the schema does the heavy lifting. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score for good schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and the resources 'two files or directories', making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'file_exists' or 'file_stat' that might also involve file examination, but the comparison function is distinct enough for basic understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'file_exists' (checking existence), 'file_stat' (getting metadata), and 'find_by_content' (searching within files), there's no indication of when comparison is the appropriate choice or what specific comparison scenarios it handles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_fileC
Copy a file or directory
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source path | |
| destination | Yes | Destination path | |
| overwrite | No | Overwrite if exists | |
| recursive | No | Copy directories recursively |
TDQS
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 but offers minimal information. It mentions copying files or directories but doesn't cover critical aspects like permissions needed, whether it preserves metadata, error conditions (e.g., if source doesn't exist), or side effects. This is inadequate for a mutation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (a mutation with potential side effects), no annotations, and no output schema, the description is incomplete. It lacks details on return values, error handling, permissions, or how it interacts with sibling tools, leaving significant gaps for an AI agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all four parameters (source, destination, overwrite, recursive). The description adds no additional parameter semantics beyond what's in the schema, but the baseline score of 3 is appropriate when the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Copy a file or directory' clearly states the verb (copy) and resource (file or directory), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'move_file' or 'write_file' beyond the basic action name, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'move_file' (for moving instead of copying) or 'write_file' (for creating new files). There's no mention of prerequisites, typical use cases, or exclusions, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_directoryC
Create a directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to create | |
| recursive | No | Create parent directories |
TDQS
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. 'Create a directory' implies a write/mutation operation but reveals nothing about permissions required, whether the operation is idempotent, what happens if the directory already exists, error conditions, or side effects. For a mutation tool with zero annotation coverage, this is a significant gap in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise with just three words. There's zero waste or unnecessary elaboration. While this conciseness comes at the cost of completeness, as a standalone attribute, the description is perfectly structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a directory creation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens on success or failure, doesn't mention permissions or constraints, and provides no context about the filesystem environment. Given the complexity of a write operation 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what the schema already provides. However, with 100% schema description coverage where both parameters ('path' and 'recursive') have clear descriptions in the schema, the baseline score of 3 is appropriate. The description doesn't compensate for gaps because there are none, but it also doesn't add value beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a directory' is a tautology that essentially restates the tool name. While it includes a verb ('Create') and resource ('directory'), it lacks specificity about what kind of directory or context. It doesn't distinguish this tool from potential sibling operations like creating files or other directory-related operations beyond the obvious name difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There's no mention of prerequisites, when this operation is appropriate, or how it relates to sibling tools like 'write_file', 'scaffold_project', or 'read_directory'. The agent receives no contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileC
Delete a file or directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to delete | |
| recursive | No | Delete directories recursively | |
| force | No | Ignore errors |
TDQS
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 basic action. It doesn't disclose critical behavioral traits: whether deletion is permanent or reversible, permission requirements, error handling (beyond the 'force' parameter), or effects on linked resources. For a destructive tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks information on return values (e.g., success confirmation or error details), side effects, and safety considerations, which are crucial 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.
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 no semantic context beyond implying 'path' targets the item to delete. It doesn't explain parameter interactions (e.g., 'recursive' for directories) or practical usage, but the schema provides adequate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a file or directory'), making the purpose immediately understandable. It distinguishes from siblings like 'move_file' or 'copy_file' by specifying deletion. However, it doesn't explicitly differentiate from all destructive operations like 'remove' or 'unlink' if they existed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., file must exist), when not to use it (e.g., for read-only files), or compare with similar tools like 'move_file' 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.
file_existsC
Check if a file or directory exists
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to check | |
| type | No | Type to check for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Check if a file or directory exists' implies a read-only, non-destructive operation, it doesn't explicitly state this or address potential behaviors like error handling (e.g., what happens with invalid paths), performance characteristics, or return format. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It directly answers 'what does this tool do?' in a compact form, making it easy for an agent to parse and understand quickly. Every word earns its place by contributing to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 effective tool use. It doesn't explain what the tool returns (e.g., a boolean, an error message, or structured data), how errors are handled, or any constraints like path format requirements. For a basic utility tool with no structured behavioral hints, this leaves the agent guessing about important operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('path' and 'type') well-documented in the schema itself. The description adds no additional meaning about parameters beyond implying the tool checks existence based on a path and optionally a type. Since the schema already provides clear descriptions and enum values for 'type', the description meets the baseline without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a specific verb ('Check') and resource ('file or directory'), making it immediately understandable. However, it doesn't explicitly differentiate this existence check from similar operations like 'file_stat' (which provides detailed metadata) or 'read_file' (which attempts to read content), leaving room for ambiguity about when to choose this simpler check over more comprehensive alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'file_stat' (which also reveals existence through metadata) and 'read_file' (which fails if a file doesn't exist), the agent receives no hints about preferring this lightweight existence check for simple validation versus using other tools that might serve dual purposes. No context about prerequisites or exclusions is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_statC
Get file or directory statistics
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to file or directory |
TDQS
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 'gets' statistics, implying a read-only operation, but doesn't specify what statistics are returned (e.g., size, type, permissions), error handling for invalid paths, or performance considerations. This leaves significant gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded in a single sentence, with zero wasted words. It directly communicates the core functionality without unnecessary elaboration, making it efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. It doesn't explain what statistics are returned (e.g., file size, modification time), how errors are handled, or the tool's scope compared to siblings. For a tool that retrieves metadata, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides. With 100% schema description coverage, the schema already documents the 'path' parameter adequately. The baseline score of 3 reflects that the schema does the heavy lifting, and the description doesn't compensate with additional context like path format examples or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a specific verb ('Get') and resource ('file or directory statistics'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'file_exists' or 'get_disk_usage' that also retrieve file system information, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'file_exists' (checks existence), 'get_disk_usage' (gets space usage), and 'read_directory' (lists contents), there's no indication of when 'file_stat' is preferred for retrieving metadata such as size, permissions, or timestamps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_by_contentC
Find files containing specific text
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to search for (literal, not regex) | |
| path | No | Directory to search | |
| file_pattern | No | File pattern (e.g., *.ts) | |
| max_results | No | Maximum results |
TDQS
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 searches for text in files but doesn't mention whether it's case-sensitive, recursive, what happens with large result sets, error conditions, or performance characteristics. For a search tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a search tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, search functionality) and the absence of both annotations and output schema, the description is insufficient. It doesn't explain what the tool returns (file paths? content snippets? match counts?), error handling, or important behavioral constraints needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies text searching but doesn't add meaning beyond what the 100% schema coverage already provides. The schema fully documents all 4 parameters including their purposes and constraints (e.g., 'literal, not regex' for text). The description doesn't explain parameter interactions or provide additional context, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find files containing specific text' clearly states the tool's purpose with a specific verb ('Find') and resource ('files'), and distinguishes it from siblings like 'grep_search' by focusing on content matching rather than pattern-based search. However, it doesn't explicitly differentiate from all siblings like 'glob_search' which searches by filename pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'grep_search' or 'glob_search'. It doesn't mention prerequisites, exclusions, or comparative advantages, 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.
get_disk_usageC
Get disk usage for a directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to directory | |
| max_depth | No | Max depth for breakdown |
TDQS
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 but offers minimal information. It doesn't specify whether this is a read-only operation, what permissions are required, how it handles errors (e.g., invalid paths), or what format the disk usage information is returned in. The description only states what the tool does at the most basic level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just five words, front-loading the essential information with zero wasted words. Every word earns its place by communicating the core functionality efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and multiple sibling tools, the description is inadequate. It doesn't explain what information is returned (e.g., total size, breakdown by subdirectory), how errors are handled, or when to choose this over similar tools. The description provides only the most basic functional statement without necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, both parameters are already documented in the schema. The description doesn't add any additional meaning about the parameters beyond what's in the schema descriptions ('Path to directory' and 'Max depth for breakdown'), so it meets the baseline but doesn't provide extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('disk usage for a directory'), making the purpose immediately understandable. However, it doesn't differentiate from potential siblings like 'file_stat' or 'read_directory' that might provide related file system information, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'file_stat' (which might include size info) and 'read_directory' (which could list contents), there's no indication of when this specific disk usage tool is appropriate or what distinguishes it from other file operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glob_searchC
Find files matching a glob pattern
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Glob pattern (e.g., **/*.ts) | |
| base_path | No | Base directory for search | |
| max_results | No | Maximum results (default: 1000) | |
| include_dirs | No | Include directories in results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but reveals little beyond the basic operation. It doesn't disclose behavioral traits like whether the search is recursive by default, how errors are handled (e.g., invalid patterns), performance implications for large directories, or what the output format looks like (e.g., list of paths).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a tool with well-documented parameters in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns (e.g., array of file paths, error formats), how results are ordered, or constraints like pattern syntax limitations. The schema covers parameter mechanics, but the description fails to provide necessary context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all parameters. The description adds no additional meaning beyond implying a search operation, which the schema already covers with parameter descriptions like 'Glob pattern' and 'Base directory for search'. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'files matching a glob pattern', making the purpose immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'find_by_content' or 'grep_search', which also search for files but using different criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'find_by_content' (content-based search) or 'grep_search' (regex-based search). It also doesn't mention prerequisites, such as whether the base_path must exist or be accessible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grep_searchC
Search file contents with regex
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Regex pattern to search for | |
| path | No | File or directory to search | |
| glob | No | File pattern filter (e.g., *.ts) | |
| case_sensitive | No | Case sensitive search | |
| max_results | No | Maximum results (default: 100) | |
| context_lines | No | Lines of context around matches |
TDQS
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 mentions searching with regex but lacks details on permissions, rate limits, error handling, or output format (e.g., whether it returns matches, lines, or files). For a tool with 6 parameters and no output schema, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, 'Search file contents with regex,' which is front-loaded and wastes no words. It efficiently communicates the core function without unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return values, error cases, or behavioral traits like how context_lines or max_results affect output. This leaves critical gaps for an agent to invoke the tool correctly without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the input schema (e.g., pattern, path, glob). The description adds no additional semantic context beyond 'regex,' which is already implied by the schema. This meets the baseline for high schema coverage but doesn't enhance understanding of parameter interactions or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'Search file contents with regex,' which specifies the verb (search) and resource (file contents) with the method (regex). However, it doesn't differentiate from sibling tools like 'find_by_content' or 'glob_search,' which may offer similar or overlapping functionality, leaving room for ambiguity in tool selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'find_by_content' and 'glob_search' available, there's no indication of specific contexts, prerequisites, or exclusions for using grep_search, making it challenging for an agent to choose appropriately without additional context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesC
List available project templates
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states it's a listing operation, implying read-only behavior, but doesn't specify whether it returns all templates or paginated results, what format the output takes, or any rate limits or authentication requirements. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose ('List available project templates'), making it immediately clear. Every word earns its place, and there's no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 listing tool. It doesn't explain what 'available' means (e.g., user-specific vs. system-wide), the return format, or any behavioral traits like pagination. For a tool with no structured output documentation, the description should provide more context about what to expect from the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with one parameter ('category') documented as 'Filter by category'. The description doesn't add any meaning beyond this—it doesn't explain what categories exist, how filtering works, or provide examples. With high schema coverage, the baseline is 3, and the description doesn't compensate with additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List available project templates' clearly states the verb ('List') and resource ('project templates'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'scaffold_project' or 'glob_search' that might also involve templates, leaving room for ambiguity about when to use this specific listing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'scaffold_project' (which might use templates) and 'glob_search' (which could search for templates), there's no indication of when listing is preferred over searching or other operations. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_fileC
Move or rename a file or directory
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source path | |
| destination | Yes | Destination path | |
| overwrite | No | Overwrite if exists |
TDQS
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 'move or rename' but doesn't disclose critical behavioral traits like whether it requires write permissions, if it's destructive (overwrites by default or not), error handling for missing sources, or what happens on success/failure. The 'overwrite' parameter hints at potential data loss, but this isn't explicitly warned in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 on permissions, error conditions, return values (e.g., success confirmation or error details), and how it differs from similar tools like 'copy_file'. Given the complexity of file operations, more context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameters (source, destination, overwrite) clearly. The description adds no additional meaning beyond what's in the schema, such as path format examples or rename-specific usage. Baseline 3 is appropriate when the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 the resource ('a file or directory'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'copy_file' or 'rename_file' (if present), but the verb 'move' inherently implies relocation rather than duplication or simple name change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_file' or 'rename_file' (if applicable), nor does it mention prerequisites such as file existence or permissions. It simply states what the tool does without contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_directoryC
List contents of a directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the directory | |
| recursive | No | Include subdirectories | |
| max_depth | No | Max recursion depth | |
| include_hidden | No | Include hidden files | |
| pattern | No | Glob pattern filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'List contents of a directory' implies a read-only operation but doesn't specify permissions needed, whether it follows symlinks, error conditions (e.g., non-existent directory), or output format. For a tool with 5 parameters and no annotations, this minimal description leaves significant behavioral gaps unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point: 'List contents of a directory.' There's no wasted words, no unnecessary elaboration, and the core purpose is immediately clear. This is an excellent example of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description is insufficiently complete. A directory listing tool with filtering options (recursive, max_depth, include_hidden, pattern) needs more context about how these interact, what the output looks like, and error handling. The minimal description doesn't compensate for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no parameter-specific information beyond what's already in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List contents of a directory' clearly states the verb ('List') and resource ('contents of a directory'), making the purpose immediately understandable. It distinguishes from siblings like 'file_stat' or 'read_file' by focusing on directory listing rather than file operations. However, it doesn't explicitly differentiate from 'glob_search' which also lists files, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'glob_search' (pattern-based file finding) and 'find_by_content' (content-based searching), there's no indication of when directory listing is preferred over these other listing/search tools. The description simply states what it does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileC
Read the contents of a file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file | |
| encoding | No | File encoding (default: utf-8) | |
| start_line | No | Start line (1-indexed) | |
| end_line | No | End line (inclusive) | |
| max_size_kb | No | Max file size in KB (default: 10240) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Read' implies a read-only operation, it doesn't specify permissions needed, error handling for missing files, or output format. It mentions 'contents' but not whether it returns text, binary data, or structured content. For a tool with 5 parameters and no annotations, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose ('Read the contents of a file') and contains no unnecessary elaboration. Every word earns its place in conveying the essential function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address what the tool returns (text? binary? error formats?), how it handles large files (streaming? memory limits?), or permissions required. For a file I/O tool with multiple configuration options, this minimal description leaves too many operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no parameter-specific information beyond the basic purpose. It doesn't explain how parameters interact (e.g., that start_line/end_line enable partial reads) or provide examples. With complete schema coverage, baseline 3 is appropriate as the description doesn't add value beyond what's already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read') and resource ('contents of a file'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'read_multiple' or 'read_directory', which also involve reading operations. The purpose is clear but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'read_multiple' (for multiple files), 'read_directory' (for directory contents), and 'file_stat' (for metadata), there's no indication of when this single-file read operation is appropriate versus other reading tools. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_multipleC
Read multiple files at once
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Array of file paths | |
| encoding | No | File encoding | |
| fail_on_error | No | Fail if any file errors |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: whether it returns concatenated content or structured results, how errors are handled (beyond the 'fail_on_error' parameter), or performance implications of reading multiple files simultaneously. This is inadequate for a tool with mutation potential (reading files).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core functionality and appropriately sized for a straightforward tool. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a batch file-reading operation with no annotations and no output schema, the description is insufficient. It doesn't explain what format the results take (array of contents? object with paths as keys?), how encoding applies across multiple files, or what happens when some files succeed and others fail. For a tool with 3 parameters and file system interaction, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema descriptions. This meets the baseline expectation when the schema does the heavy lifting, but provides no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read multiple files at once' clearly states the verb ('Read') and resource ('multiple files'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'read_file' beyond the 'multiple' aspect, missing an opportunity to clarify the batch operation versus single-file reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'read_file' or 'read_directory'. It doesn't mention prerequisites, performance considerations, or error handling scenarios, 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.
scaffold_projectC
Create a project from a template
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | Template name or path | |
| destination | Yes | Destination directory | |
| variables | No | Template variables | |
| overwrite | No | Overwrite existing files |
TDQS
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 states 'Create a project from a template', which implies a write/mutation operation, but doesn't disclose behavioral traits like permissions needed, whether it's idempotent, error handling, or what happens on failure. The 'overwrite' parameter hints at some behavior, but the description itself doesn't elaborate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's complexity, earning its place by stating the core purpose clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, return values, or error conditions. For a mutation tool with this complexity, more context 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.
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 all parameters. The description adds no additional meaning beyond the schema—it doesn't explain parameter interactions, default values, or examples. Baseline is 3 since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('project'), specifying it's 'from a template'. It distinguishes from siblings like 'create_directory' by mentioning the template aspect. However, it doesn't explicitly differentiate from all siblings (e.g., 'list_templates' is related but not directly contrasted).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., needing templates available), exclusions, or comparisons to sibling tools like 'create_directory' or 'list_templates'. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileC
Write content to a file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to write to | |
| content | Yes | Content to write | |
| encoding | No | File encoding (default: utf-8) | |
| create_dirs | No | Create parent directories | |
| overwrite | No | Overwrite if exists | |
| backup | No | Create backup before overwrite |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Write content to a file' implies a mutation operation but lacks details on permissions, side effects (e.g., overwriting), error handling, or performance. This is inadequate for a tool with potential destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded and directly communicates the core function without unnecessary elaboration, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 insufficient. It doesn't address behavioral traits like overwriting implications, error cases, or return values, leaving critical gaps for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional semantic context beyond the basic action, meeting the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Write content to a file' clearly states the verb ('write') and resource ('file'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'copy_file' or 'move_file' that also involve file operations, missing explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'copy_file', 'move_file', and 'read_file', there's no indication of use cases, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v1.0.0- First observed
compare_files - First observed
copy_file - First observed
create_directory - First observed
delete_file - First observed
file_exists - First observed
file_stat - First observed
find_by_content - First observed
get_disk_usage - First observed
glob_search - First observed
grep_search - First observed
list_templates - First observed
move_file - First observed
read_directory - First observed
read_file - First observed
read_multiple - First observed
scaffold_project - First observed
write_file
TDQS
Each tool has a clearly distinct purpose with no significant overlap. For example, compare_files, copy_file, move_file, and delete_file all handle different file operations, while search tools like find_by_content, glob_search, and grep_search target different search methods. The descriptions reinforce these distinctions, making tool selection unambiguous.
All tool names follow a consistent snake_case pattern with clear verb_noun structures, such as read_file, write_file, create_directory, and delete_file. This uniformity makes the toolset predictable and easy to navigate, with no deviations in naming conventions across the 17 tools.
With 17 tools, the count is slightly high but reasonable for a file management server, covering a broad range of operations from basic CRUD to advanced searches and project scaffolding. It avoids being overwhelming while providing comprehensive functionality, though it edges toward the upper limit of typical scoping.
The toolset offers complete coverage for file and directory management, including creation, reading, updating, deletion, searching, and templating. It supports both basic operations (e.g., read_file, write_file) and advanced workflows (e.g., scaffold_project, compare_files), with no apparent gaps that would hinder agent performance in this domain.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
A Model Context Protocol server for Wix AI tools
The OpenZeppelin Cairo Contracts MCP server generates secure smart contracts in the Cairo language for Starknet environments based on OpenZeppelin templates. It brings OpenZeppelin's proven security and style rules directly into AI-driven development workflows to create safe, production-ready contracts. Key capabilities include providing templates for ERC-20, ERC-721, ERC-1155, Multisig, Governor, and Vesting contracts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mcp-tool-shop-org/mcp-file-forge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server