mcp-server-code-assist
The mcp-server-code-assist is a Model Context Protocol server for code modification and generation powered by Large Language Models. It enables:
File Operations: Create, read, modify, completely rewrite, and delete files
Directory Management: List directory contents, create new directories, and display directory tree structures
Code Modification: Use search/replace patterns to make targeted changes, returning diffs
Git Integration: View git status, diffs, commit history, and detailed commit information for repositories
These capabilities allow for comprehensive code assistance through file manipulation and version control 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-server-code-assistcreate a new Python file at /src/utils.py with a function to calculate factorial"
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.
mcp-server-code-assist: A Code Assistant MCP Server
Overview
A Model Context Protocol server for code modification and generation. This server provides tools to create, modify, and delete code via Large Language Models.
Tools
createCreates new files
Input: XML instruction with path and content
Returns: Confirmation of file creation
modifyModifies existing files with search/replace
Input: XML instruction with path, search pattern, and new content
Returns: Diff of changes
rewriteCompletely rewrites a file
Input: XML instruction with path and new content
Returns: Confirmation of rewrite
deleteRemoves files
Input: XML instruction with path
Returns: Confirmation of deletion
XML Format
<Plan>
Describe approach and reasoning
</Plan>
<file path="/path/to/file" action="create|modify|rewrite|delete">
<change>
<description>What this change does</description>
<search>
===
Original code for modification
===
</search>
<content>
===
New or modified code
===
</content>
</change>
</file>Related MCP server: Code Merge MCP
Installation
Using uv (recommended)
uvx mcp-server-code-assistUsing pip
pip install mcp-server-code-assist
python -m mcp_server_code_assistConfiguration
Usage with Claude Desktop
"mcpServers": {
"code-assist": {
"command": "uvx",
"args": ["mcp-server-code-assist"]
}
}"mcpServers": {
"code-assist": {
"command": "docker",
"args": ["run", "--rm", "-i", "--mount", "type=bind,src=/Users/username,dst=/Users/username", "mcp/code-assist"]
}
}Usage with Zed
Add to settings.json:
"context_servers": {
"mcp-server-code-assist": {
"command": {
"path": "uvx",
"args": ["mcp-server-code-assist"]
}
}
},Development
cd src/code-assist
uvx mcp-server-code-assist
# For docker:
docker build -t mcp/code-assist .License
MIT License. See LICENSE file for details.
Available Tools
12 toolscreate_directoryD
Creates a new directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
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 action ('creates') but fails to describe critical traits: whether this requires specific permissions, if it overwrites existing directories, what happens on success or error (e.g., returns a path or error message), or any rate limits. 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 extremely concise with a single sentence ('Creates a new directory'), which is front-loaded and wastes no words. However, this conciseness comes at the cost of under-specification, but per the scoring rules, it earns full points for brevity and structure.
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 (a mutation operation with no annotations), low schema coverage (0%), and no output schema, the description is completely inadequate. It lacks essential details: parameter meaning, behavioral traits, usage context, and expected outcomes. For a tool that creates directories—a potentially destructive or permission-sensitive action—this leaves the agent ill-equipped 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?
The schema description coverage is 0%, meaning the parameter 'path' is undocumented in the schema. The description adds no information about this parameter—it does not explain what 'path' represents (e.g., absolute or relative path, format requirements like slashes), valid values, or examples. With one required parameter and no compensation in the description, this is a significant gap.
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 'Creates a new directory' is essentially a tautology that restates the tool name 'create_directory' with minimal elaboration. While it does specify the verb ('creates') and resource ('directory'), it lacks any distinguishing details from sibling tools like 'create_file' or specificity about what constitutes a directory in this context.
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 does not mention prerequisites (e.g., permissions, existing parent directories), exclusions (e.g., cannot create nested directories in one call), or comparisons to siblings like 'create_file' or 'list_directory'. This leaves the agent without 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.
create_fileC
Creates a new file with content
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | No |
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 the action ('creates') but doesn't mention permissions needed, whether it overwrites existing files, error conditions, or what happens on success. 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.
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 for a basic 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?
For a file creation tool with 2 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, error conditions, or important behavioral aspects like whether it overwrites existing files at the same path.
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 0%, so the description must compensate but doesn't. It mentions 'content' but not 'path', and provides no details about parameter formats, constraints, or relationships. Both parameters remain essentially undocumented beyond their schema titles.
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 ('creates') and resource ('new file with content'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'modify_file' or 'rewrite_file', which also involve file content manipulation.
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?
No guidance is provided about when to use this tool versus alternatives like 'modify_file' (for existing files) or 'create_directory' (for directories). The description offers no context about prerequisites, constraints, or appropriate scenarios for file creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileC
Deletes a file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
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. 'Deletes a file' implies a destructive, irreversible mutation, but the description doesn't specify whether deletion is permanent, requires specific permissions, has confirmation prompts, or what happens on success/failure. For a destructive tool with zero annotation coverage, this is critically inadequate.
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 three words, with zero wasted language. It's front-loaded with the core action and resource. While it's too brief to be helpful, it earns full marks for conciseness as every word serves a purpose.
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 this is a destructive mutation tool with no annotations, 0% schema description coverage, no output schema, and multiple sibling tools that modify files, the description is completely inadequate. It doesn't address safety concerns, error conditions, return values, or differentiation from similar tools, leaving the agent with insufficient information 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?
The description adds no parameter information beyond what the input schema provides. With 0% schema description coverage and 1 parameter ('path'), the description doesn't explain what 'path' represents (e.g., absolute vs relative, file system constraints), expected format, or examples. It fails to compensate for the schema's lack of descriptions.
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 ('Deletes') and resource ('a file'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'create_file', 'read_file', or 'modify_file' by specifying a deletion operation. However, it doesn't specify whether this is permanent deletion or moves to trash, which would make it more specific.
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 directories - though 'create_directory' is a sibling), or alternatives like moving to trash if available. With sibling tools like 'modify_file' and 'rewrite_file' that also alter files, the lack of differentiation is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_treeC
Lists directory tree structure with git tracking support
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
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 mentions 'git tracking support,' hinting at additional functionality beyond basic listing, but doesn't specify what that entails (e.g., shows git status per file, includes untracked files, or handles git repositories only). It lacks details on output format, error handling, or any constraints, making it insufficient for a mutation-free tool.
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: 'Lists directory tree structure with git tracking support.' It's front-loaded with the core purpose and includes the key feature without unnecessary words. Every part earns its place, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (directory tree with git support), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't explain the output (e.g., tree format, git indicators), error cases, or how git tracking integrates, leaving significant gaps for an AI 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?
The input schema has 1 parameter ('path') with 0% description coverage, so the schema provides no semantic details. The description adds no information about the parameter—it doesn't explain what 'path' represents (e.g., absolute vs. relative, default to current directory), its format, or any constraints. This fails to compensate for the low 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 tool's purpose: 'Lists directory tree structure with git tracking support.' It specifies the verb ('Lists') and resource ('directory tree structure'), and adds the unique feature of 'git tracking support.' However, it doesn't explicitly distinguish it from sibling tools like 'list_directory' or 'git_status,' 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. It doesn't mention when to choose 'file_tree' over 'list_directory' (which might list files without tree structure or git info) or 'git_status' (which might show git status without a full tree). No exclusions or prerequisites are stated, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_diffD
Shows git diff
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes | ||
| target | Yes |
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. 'Shows git diff' gives no information about whether this is a read-only operation, what permissions might be required, whether it modifies any state, what format the output takes, or any error conditions. For a tool with two required parameters and no output schema, this is completely inadequate 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 at just two words. While this represents severe under-specification, from a pure conciseness perspective, it contains zero wasted words and is front-loaded with the core function. Every word earns its place, even though those words provide insufficient 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 has 2 required parameters, 0% schema description coverage, no annotations, no output schema, and multiple sibling git tools, the description is completely inadequate. 'Shows git diff' doesn't explain what the tool actually does, how to use its parameters, what behavior to expect, or how it differs from alternatives. This fails to provide the necessary context for an agent to effectively select and invoke this tool.
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 0% schema description coverage for both parameters (repo_path and target), the description provides absolutely no information about what these parameters mean or how they should be used. 'Shows git diff' doesn't mention parameters at all, leaving the agent with no guidance about what 'repo_path' and 'target' represent in the context of showing git differences.
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 'Shows git diff' is essentially a tautology that restates the tool name with minimal elaboration. While it correctly identifies the verb ('shows') and resource ('git diff'), it lacks specificity about what 'git diff' means in this context or how it differs from similar operations like git_show or git_status among the sibling tools. The description doesn't clarify whether this shows differences between commits, branches, working directory changes, or other git comparisons.
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 sibling tools like git_log, git_show, and git_status available, there's no indication of what scenarios warrant using git_diff over these other git-related tools. No context about prerequisites, typical use cases, 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.
git_logC
Shows git commit history
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes | ||
| max_count | No |
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. 'Shows git commit history' implies a read-only operation, but it doesn't specify output format (e.g., list of commits with metadata), pagination behavior (handled by max_count), or potential errors (e.g., invalid repo_path). For a tool with two parameters and no annotation coverage, this is insufficient.
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—a single three-word phrase—with zero wasted words. It's front-loaded with the core purpose. While brevity risks under-specification, every word ('Shows git commit history') directly contributes to understanding the tool's function, making it efficient in structure.
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 moderate complexity (two parameters, no output schema, no annotations), the description is incomplete. It lacks details on parameter usage, output format, error conditions, and differentiation from sibling git tools. For a tool that interacts with version control systems, more context is needed to ensure reliable agent invocation.
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 0%, so the schema provides no parameter descriptions. The tool description adds no information about parameters—it doesn't explain what 'repo_path' means (e.g., local path to git repository) or how 'max_count' affects output (e.g., limits number of commits shown). With two undocumented parameters, the description fails to compensate for the schema gap.
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 'Shows git commit history' clearly states the tool's function with a specific verb ('Shows') and resource ('git commit history'), distinguishing it from non-git siblings like file operations. However, it doesn't differentiate from other git tools (git_diff, git_show, git_status), leaving ambiguity about its specific scope within git operations.
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 when to prefer git_log over git_show (for viewing specific commits) or git_status (for current state), nor does it specify prerequisites like needing a git repository. This lack of context leaves 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.
git_showC
Shows git commit details
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes | ||
| revision | Yes |
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. 'Shows' implies a read-only operation, but it doesn't specify what 'details' include (e.g., commit message, author, diff), whether it requires git to be initialized, or if there are any error conditions. The description is too vague to inform the agent about how the tool behaves beyond a basic read action.
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 just three words: 'Shows git commit details.' It's front-loaded and wastes no words, making it easy to parse. However, this conciseness comes at the cost of completeness, as noted in other dimensions.
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 (a git tool with 2 required parameters), no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how to interpret parameters, or any behavioral nuances. For a tool that likely outputs structured commit data, this minimal description leaves significant gaps for the agent to operate 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 0%, meaning the input schema provides no descriptions for the two parameters (repo_path and revision). The description 'Shows git commit details' doesn't add any semantic meaning to these parameters—it doesn't explain what repo_path should be (e.g., a file path or URL) or what revision entails (e.g., a commit hash, branch name). The description fails to compensate for the lack of schema documentation.
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 'Shows git commit details' clearly states the verb ('shows') and resource ('git commit details'), which is better than a tautology. However, it doesn't distinguish this from sibling tools like git_log or git_diff, which also show git-related information. The purpose is understandable but lacks specificity about what makes this tool unique.
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 when git_show is appropriate compared to git_log (which might list commits) or git_diff (which shows changes). There's no context about prerequisites, such as needing a valid git repository or revision. 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.
git_statusC
Shows git repository status
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes |
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. 'Shows' implies a read-only operation, but it doesn't specify what information is included in the status output, whether it's safe to run, or any performance considerations. The description is too minimal for a tool that likely returns complex repository state information.
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 that directly convey the core function. There's zero wasted language, and it's perfectly front-loaded with 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?
For a git status tool with no annotations, no output schema, and 0% schema description coverage, the description is inadequate. It doesn't explain what information will be returned (staged/unstaged changes, untracked files, etc.), doesn't document the single parameter, and provides no behavioral context for a potentially complex 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?
Schema description coverage is 0%, so the description must compensate but fails to do so. It mentions no parameters at all, leaving the single required 'repo_path' parameter completely undocumented. Users wouldn't know what format or constraints apply to the repository path.
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 ('shows') and resource ('git repository status'), making the purpose immediately understandable. However, it doesn't differentiate from sibling git tools like git_diff, git_log, or git_show, 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 git_diff or git_log. It doesn't mention prerequisites (e.g., needing a git repository) or context for when status checks are appropriate versus other git operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryC
Lists directory contents using system ls/dir command
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
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 using 'system ls/dir command', which implies platform-specific behavior (Unix vs. Windows) and potential command-line output formatting, but doesn't disclose critical details like error handling, permissions required, output format, or whether it's read-only (though implied by 'Lists'). This leaves significant gaps in behavioral understanding.
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 directly states the tool's function without unnecessary words. It's front-loaded with the core action and includes a useful implementation detail, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema coverage, the description is incomplete for a tool that interacts with the filesystem. It lacks details on output format, error conditions, permissions, and how it differs from siblings like 'file_tree'. For a directory listing tool, this leaves the agent with insufficient context to use it 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?
The schema description coverage is 0%, with one parameter 'path' undocumented in the schema. The description adds no specific meaning about the parameter beyond what's implied by the tool name (e.g., it doesn't clarify if 'path' is absolute/relative, supports wildcards, or has default values). However, with only one parameter and a straightforward purpose, the baseline is met but not exceeded.
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 ('Lists directory contents') and the resource ('directory'), with the specific implementation detail 'using system ls/dir command' adding precision. However, it doesn't explicitly differentiate from sibling tools like 'file_tree' or 'read_file', which might have overlapping functionality for directory inspection.
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_tree' that might also list directory contents, there's no indication of when this tool is preferred or what its specific scope or limitations are compared to others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_fileC
Modifies parts of a file using string replacements
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| replacements | Yes |
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 the tool modifies a file, implying mutation, but doesn't disclose critical behavioral traits: whether it requires write permissions, if changes are destructive or reversible, error handling (e.g., for invalid paths), or output format. The description is minimal and lacks necessary context for safe operation.
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 is front-loaded with the core action and mechanism, making it easy to parse. Every word earns its place, though this conciseness comes at the cost of completeness.
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 (mutation tool with 2 parameters, 0% schema coverage, no annotations, no output schema), the description is inadequate. It doesn't explain return values, error conditions, or behavioral nuances. For a tool that modifies files, more context is needed to ensure correct and safe usage, especially with sibling tools like 'rewrite_file' present.
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 0%, so the description must compensate. It mentions 'string replacements' which hints at the 'replacements' parameter, but doesn't explain the structure (object mapping) or the 'path' parameter's role. No details on format, constraints, or examples are provided, leaving significant gaps beyond the schema's basic property definitions.
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 ('modifies') and resource ('parts of a file') with the specific mechanism 'using string replacements'. It distinguishes from siblings like 'rewrite_file' (likely full rewrite) and 'read_file' (read-only), though it doesn't explicitly name alternatives. The purpose 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.
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 'rewrite_file' or 'create_file'. It doesn't mention prerequisites (e.g., file must exist), exclusions, or typical use cases. The context is implied but not articulated, leaving the agent to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileC
Reads file content
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
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. 'Reads file content' implies a read-only operation, but it doesn't disclose any behavioral traits such as error handling (e.g., what happens if the file doesn't exist or isn't readable), performance characteristics, encoding considerations, or what 'content' specifically includes (e.g., binary vs. text). This leaves significant gaps for an agent to understand how to use it effectively.
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 just three words, front-loaded with the core action. There's no wasted language or 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 (a file operation with no annotations, 0% schema coverage, and no output schema), the description is incomplete. It doesn't provide enough context for an agent to reliably invoke the tool, missing details on parameters, behavior, and output. For a tool that reads files, more information is needed to ensure correct usage.
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 meaning beyond what the input schema provides. With 0% schema description coverage and one parameter ('path'), the schema only indicates it's a required string. The description doesn't explain what 'path' represents (e.g., absolute vs. relative, file system specifics), its format, or any constraints, failing to compensate for the low 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 'Reads file content' clearly states the verb ('reads') and resource ('file content'), making the basic purpose understandable. However, it doesn't distinguish this tool from potential sibling read operations (like 'git_show' or 'git_diff' which might also read file content), and it's somewhat vague about what exactly is being read (e.g., metadata vs. content).
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 'git_show', 'git_diff', 'file_tree', and 'list_directory' that might involve reading file information, there's no indication of when 'read_file' is the appropriate choice versus these other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rewrite_fileC
Rewrites entire file content
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Rewrites entire file content' implies a destructive mutation (overwrites existing content), but it doesn't address permissions, error handling (e.g., if file doesn't exist), or side effects. This is a significant gap 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 waste. It's appropriately sized and front-loaded, making it easy to parse quickly, though it sacrifices detail for brevity.
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 (a destructive file operation), no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on behavior, error cases, and output, making it insufficient for safe and effective tool invocation by an agent.
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 0%, so the description must compensate for undocumented parameters. It mentions 'file content' which hints at the 'content' parameter, but doesn't explain 'path' or add meaning beyond the schema's basic titles. With 2 parameters and no schema descriptions, this is inadequate.
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 'Rewrites entire file content' clearly states the action (rewrites) and target (file content), but it's vague about scope and lacks differentiation from sibling tools like 'modify_file'. It doesn't specify whether this replaces all content or handles partial updates, making it adequate but with clear gaps.
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?
No guidance is provided on when to use this tool versus alternatives like 'modify_file' or 'create_file'. The description implies a full rewrite but doesn't mention prerequisites (e.g., file must exist), exclusions, or specific contexts, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity. For example, create_file vs. modify_file vs. rewrite_file handle different file operations, while git tools target specific git commands. The descriptions make it easy to tell tools apart.
All tools follow a consistent verb_noun pattern with snake_case throughout. The naming is predictable and readable, such as create_directory, list_directory, git_status, and modify_file, with no deviations in style.
With 12 tools, the count is well-scoped for code assistance, covering file operations and git commands. Each tool earns its place without feeling excessive or thin, aligning with the server's purpose.
The tool surface is nearly complete for code assistance, covering file CRUD and key git operations. Minor gaps exist, such as no git commit or branch management tools, but agents can work around this with the provided tools.
Maintenance
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…
A Model Context Protocol server for Wix AI tools
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server that enables LLMs to read, search, and analyze code files with advanced caching and real-time file watching capabilities.61939MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that helps large language models process code repositories by providing file tree generation, code merging, and code analysis capabilities.321MIT
- -licenseAqualityNot gradedmaintenanceA Model Context Protocol server that allows LLMs to interact with Python environments, enabling code execution, file operations, package management, and development workflows.9
- AlicenseAqualityBmaintenanceA robust, language-agnostic Model Context Protocol (MCP) server that provides AI coding agents with the ability to edit files surgically via Abstract Syntax Trees (AST) instead of relying on token-heavy, brittle search-and-replace or diff operations.287MIT
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/abhishekbhakat/mcp_server_code_assist'
If you have feedback or need assistance with the MCP directory API, please join our Discord server