This MCP server provides a set of tools that support AI-driven Development workflows.
Server provides 29 well-structured tools with consistent naming (verb_noun pattern) and comprehensive descriptions (avg ~180 chars). All tools have explicit input schemas with typed parameters. However, output schemas are not documented, LLMs cannot predict response structure for planning. Parameter descriptions are present but often lack constraints (enums, ranges, formats). Error handling is minimal; most tools lack recovery guidance. Security concerns: execute_code and execute_shell_script accept arbitrary code/commands with minimal sandboxing documentation. No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification in metadata.
Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Useful for setting up project structure or organizing files. Only works within the allowed directory. Example: Enter 'src/components' to create nested directories.
Delete a file or empty directory from the file system. Use with caution as this operation cannot be undone. For safety, this tool will not delete non-empty directories. Only works within the allowed directory. Example: path='old_file.txt' removes the specified file.
Get a recursive tree view of files and directories in the specified path as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within the allowed directory. Useful for understanding project structure. Example: Enter '.' for current directory, or 'src' for a specific directory.
Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within the allowed directory. Always use dryRun first to preview changes before applying them.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for planning downstream tool calls. Violates pattern:tool and pattern:response-shaper.
execute_code and execute_shell_script lack sandboxing documentation and error recovery guidance. Descriptions do not explain security boundaries, timeout behavior, or what happens on failure. Violates pattern:recovery-guide and pattern:secret-injection.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification in metadata (READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE). LLMs cannot infer safety properties without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Execute Python code in a sandboxed environment. The code is executed with access to common libraries and the file system within the allowed directory. Returns the output of the code execution.
Execute shell commands in the allowed directory. Returns the output of the command execution.
Get the current working directory that this server is allowed to access.
Get detailed information about a file or directory. Returns size, creation time, modification time, access time, type (file/directory), and permissions. All times are in ISO 8601 format. This tool is perfect for understanding file characteristics without reading the actual content. Only works within the allowed directory. Example: path='src/main.py' returns details about main.py
Get detailed system information including OS, CPU, memory, disk, and network details (such as WiFi network name). This tool provides comprehensive information about the system environment. Also returns the current working directory (allowed directory) of the AiDD MCP server. Useful for system analysis, debugging, environment verification, and workspace management.
Adds file contents to the staging area. Stages specified files for the next commit. Repository must be within the allowed directory.
Switches branches. Checks out the specified branch. Repository must be within the allowed directory.
Records changes to the repository. Commits all staged changes with the provided message. Repository must be within the allowed directory.
Creates a new branch. Creates a new branch from the specified base branch or current HEAD. Repository must be within the allowed directory.
Shows differences between branches or commits. Returns a unified diff format comparing current state with target. Repository must be within the allowed directory.
Shows changes staged for commit. Returns a unified diff format of all staged changes. Repository must be within the allowed directory.
Shows changes in working directory not yet staged for commit. Returns a unified diff format of all unstaged changes. Repository must be within the allowed directory.
Initialize a new Git repository. Creates a new Git repository in the specified directory. If the directory doesn't exist, it will be created. Directory must be within the allowed directory.
Shows the commit logs. Returns information about recent commits including hash, author, date, and message. Repository must be within the allowed directory.
Unstages all staged changes. Removes all files from the staging area. Repository must be within the allowed directory.
Shows the contents of a commit. Returns detailed information about a specific commit including the changes it introduced.
Shows the working tree status of a git repository. Returns information about staged, unstaged, and untracked files. Repository must be within the allowed directory.
Get a detailed listing of files and directories in the specified path. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within the allowed directory. Example: Enter 'src' to list contents of the src directory, or '.' for current directory.
Move or rename a file or directory to a new location. This tool can be used to reorganize files and directories. Both source and destination must be within the allowed directory. If the destination already exists, the operation will fail. Parent directories of the destination will be created if they don't exist. Example: source='old.txt', destination='new/path/new.txt'
Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within the allowed directory.Example: Enter 'src/main.py' to read a Python file.
Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within the allowed directory.Example: Enter ['src/main.py', 'README.md'] to read both files.
Search for files and directories matching a pattern. The search is recursive and case-insensitive. Only searches within the allowed directory. Returns paths relative to the allowed directory. Searches in file and directory names, not content. For searching within file contents, use the tree_sitter_map tool which can locate specific code elements like functions and classes. Example: pattern='.py' finds all Python files, pattern='test' finds all items with 'test' in the name.
Parse source code files using tree-sitter to extract code structure including functions, classes, methods, and other code elements. Returns a hierarchical map of code elements with their locations and signatures.
Change the working directory that this server is allowed to access. Use this to switch between different projects.
Create a new file or overwrite an existing file with new content. Use this to save changes, create new files, or update existing ones. Use with caution as it will overwrite existing files without warning. Path must be relative to the allowed directory. Creates parent directories if needed. Example: Path='notes.txt', Content='Meeting notes for project X'
Parameter constraints missing. Many parameters lack enums, ranges, or format specifications. E.g., git_log max_count has no bounds; edit_file options lack validation; search_files pattern is free-form. Violates pattern:constrained-input.
Error handling lacks recovery guidance. Tools return generic error messages without suggesting next steps. E.g., 'Access denied' does not suggest checking allowed_directory or calling update_allowed_directory. Violates pattern:recovery-guide.