AiDD MCP Server
by skydeckai
# AiDD MCP Server
An MCP server that provides a comprehensive set of tools for AI-driven development workflows. Features include file system operations, code analysis using tree-sitter for multiple programming languages, Git operations, code execution, and system information retrieval. Designed to enhance AI's capability to assist in software development tasks.
<a href="https://glama.ai/mcp/servers/mpixtij6se"><img width="380" height="200" src="https://glama.ai/mcp/servers/mpixtij6se/badge" alt="AiDD Server MCP server" /></a>
## Installation
```bash
# Using mcp-get
npx @michaellatman/mcp-get@latest install mcp-server-aidd
# Using pip
pip install mcp-server-aidd
# Using uv
uvx mcp-server-aidd
```
## Claude Desktop Setup
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"aidd-ai-software-development-utilities": {
"command": "uvx",
"args": ["mcp-server-aidd"]
}
}
}
```
## Key Features
- File system operations (read, write, edit, move, delete)
- Directory management and traversal
- Multi-language code analysis using tree-sitter
- Multi-language code execution with safety measures
- Git operations (status, diff, commit, branch management)
- Security controls with configurable workspace boundaries
- Screenshot and screen context tools
- Image handling tools
## Available Tools
### Basic File Operations
| Tool | Parameters | Returns |
| ------------------- | ----------------------------------- | --------------------------------------------- |
| read_file | path: string | File content |
| read_multiple_files | paths: string[] | Multiple file contents with headers |
| write_file | path: string, content: string | Success confirmation |
| move_file | source: string, destination: string | Success confirmation |
| delete_file | path: string | Success confirmation |
| get_file_info | path: string | File metadata (size, timestamps, permissions) |
Common usage:
```bash
# Read file
aidd-cli --tool read_file --args '{"path": "src/main.py"}'
# Write file
aidd-cli --tool write_file --args '{"path": "output.txt", "content": "Hello World"}'
# Get file info
aidd-cli --tool get_file_info --args '{"path": "src/main.py"}'
```
### Complex File Operations
#### edit_file
Pattern-based file editing with preview support:
```json
{
"path": "src/main.py",
"edits": [
{
"oldText": "def old_function():",
"newText": "def new_function():"
}
],
"dryRun": false,
"options": {
"preserveIndentation": true,
"normalizeWhitespace": true,
"partialMatch": true
}
}
```
Returns: Diff of changes or preview in dry run mode.
### Directory Operations
| Tool | Parameters | Returns |
| ------------------------ | -------------------------------------------------------- | ------------------------------ |
| get_allowed_directory | none | Current allowed directory path |
| update_allowed_directory | directory: string (absolute path) | Success confirmation |
| list_directory | path: string | Directory contents list |
| create_directory | path: string | Success confirmation |
| search_files | pattern: string, path?: string, include_hidden?: boolean | Matching files list |
#### directory_tree
Generates complete directory structure:
```json
{
"path": "src",
"include_hidden": false
}
```
Returns: JSON tree structure of directory contents.
Common usage:
```bash
# List directory
aidd-cli --tool list_directory --args '{"path": "."}'
# Search for Python files
aidd-cli --tool search_files --args '{"pattern": ".py", "path": "src"}'
```
### Git Operations
| Tool | Parameters | Returns |
| ------------ | -------------------------------------- | -------------------------------- |
| git_init | path: string, initial_branch?: string | Repository initialization status |
| git_status | repo_path: string | Working directory status |
| git_add | repo_path: string, files: string[] | Staging confirmation |
| git_reset | repo_path: string | Unstaging confirmation |
| git_checkout | repo_path: string, branch_name: string | Branch switch confirmation |
#### Complex Git Operations
##### git_commit
```json
{
"repo_path": ".",
"message": "feat: add new feature"
}
```
Returns: Commit hash and confirmation.
##### git_diff
```json
{
"repo_path": ".",
"target": "main"
}
```
Returns: Detailed diff output.
##### git_log
```json
{
"repo_path": ".",
"max_count": 10
}
```
Returns: Array of commit entries with hash, author, date, and message.
Common usage:
```bash
# Check status
aidd-cli --tool git_status --args '{"repo_path": "."}'
# Create and switch to new branch
aidd-cli --tool git_create_branch --args '{"repo_path": ".", "branch_name": "feature/new-branch"}'
```
### Code Analysis
#### tree_sitter_map
Analyzes source code structure:
```json
{
"path": "src"
}
```
Returns:
- Classes and their methods
- Functions and parameters
- Module structure
- Code organization statistics
- Inheritance relationships
Supported Languages:
- Python (.py)
- JavaScript (.js, .jsx, .mjs, .cjs)
- TypeScript (.ts, .tsx)
- Java (.java)
- C++ (.cpp, .hpp, .cc)
- Ruby (.rb, .rake)
- Go (.go)
- Rust (.rs)
- PHP (.php)
- C# (.cs)
- Kotlin (.kt, .kts)
### System Information
| Tool | Parameters | Returns |
| --------------- | ---------- | ---------------------------- |
| get_system_info | none | Comprehensive system details |
Returns:
```json
{
"working_directory": "/path/to/project",
"system": {
"os", "os_version", "architecture", "python_version"
},
"wifi_network": "MyWiFi",
"cpu": {
"physical_cores", "logical_cores", "total_cpu_usage"
},
"memory": { "total", "available", "used_percentage" },
"disk": { "total", "free", "used_percentage" },
"mac_details": { // Only present on macOS
"model": "Mac mini",
"chip": "Apple M2",
"serial_number": "XXX"
}
}
```
Provides essential system information in a clean, readable format.
```bash
# Get system information
aidd-cli --tool get_system_info
```
### Screen Context and Image Tools
#### get_active_apps
Returns a list of currently active applications on the user's system.
```json
{
"with_details": true
}
```
**Parameters:**
| Parameter | Type | Required | Description |
|-----------|---------|----------|---------------------------------------|
| with_details | boolean | No | Whether to include additional details about each application (default: false) |
**Returns:**
```json
{
"success": true,
"platform": "macos",
"app_count": 12,
"apps": [
{
"name": "Firefox",
"has_windows": true,
"window_count": 3,
"visible_windows": [
{ "name": "GitHub - Mozilla Firefox", "width": 1200, "height": 800 }
]
},
{
"name": "VSCode",
"has_windows": true
}
]
}
```
This tool provides valuable context about applications currently running on the user's system, which can help with providing more relevant assistance.
#### get_available_windows
Returns detailed information about all available windows currently displayed on the user's screen.
```json
{}
```
**Returns:**
```json
{
"success": true,
"platform": "macos",
"count": 8,
"windows": [
{
"id": 42,
"title": "Document.txt - Notepad",
"app": "Notepad",
"visible": true
},
{
"title": "Terminal",
"app": "Terminal",
"visible": true,
"active": true
}
]
}
```
This tool helps understand what's visible on the user's screen and can be used for context-aware assistance.
#### capture_screenshot
Captures a screenshot of the user's screen or a specific window.
```json
{
"output_path": "screenshots/capture.png",
"capture_mode": {
"type": "named_window",
"window_name": "Visual Studio Code"
}
}
```
**Parameters:**
| Parameter | Type | Required | Description |
|-----------|---------|----------|---------------------------------------|
| output_path | string | No | Path where the screenshot should be saved (default: generated path) |
| capture_mode | object | No | Specifies what to capture |
| capture_mode.type | string | No | Type of screenshot: 'full', 'active_window', or 'named_window' (default: 'full') |
| capture_mode.window_name | string | No | Name of window to capture (required when type is 'named_window') |
**Returns:**
```json
{
"success": true,
"path": "/path/to/screenshots/capture.png"
}
```
This tool captures screenshots for visualization, debugging, or context-aware assistance.
#### read_image_file
Reads an image file from the file system and returns its contents as a base64-encoded string.
```json
{
"path": "images/logo.png"
}
```
**Parameters:**
| Parameter | Type | Required | Description |
|-----------|---------|----------|---------------------------------------|
| path | string | Yes | Path to the image file to read |
| max_size | integer | No | Maximum file size in bytes (default: 100MB) |
**Returns:**
Base64-encoded image data that can be displayed or processed.
This tool supports common image formats like PNG, JPEG, GIF, and WebP, and automatically resizes images for optimal viewing.
### Code Execution
#### execute_code
Executes code in various programming languages with safety measures and restrictions.
```json
{
"language": "python",
"code": "print('Hello, World!')",
"timeout": 5
}
```
**Supported Languages:**
- Python (python3)
- JavaScript (Node.js)
- Ruby
- PHP
- Go
- Rust
**Parameters:**
| Parameter | Type | Required | Description |
|-----------|---------|----------|---------------------------------------|
| language | string | Yes | Programming language to use |
| code | string | Yes | Code to execute |
| timeout | integer | No | Maximum execution time (default: 5s) |
**Example Usage:**
```bash
# Python example
aidd-cli --tool execute_code --args '{
"language": "python",
"code": "print(sum(range(10)))"
}'
# JavaScript example
aidd-cli --tool execute_code --args '{
"language": "javascript",
"code": "console.log(Array.from({length: 5}, (_, i) => i*2))"
}'
# Ruby example
aidd-cli --tool execute_code --args '{
"language": "ruby",
"code": "puts (1..5).reduce(:+)"
}'
# Go example
aidd-cli --tool execute_code --args '{
"language": "go",
"code": "fmt.Println(\"Hello, Go!\")"
}'
```
**Requirements:**
- Respective language runtimes must be installed
- Commands must be available in system PATH
- Proper permissions for temporary file creation
⚠️ **Security Warning:**
This tool executes arbitrary code on your system. Always:
1. Review code thoroughly before execution
2. Understand the code's purpose and expected outcome
3. Never execute untrusted code
4. Be aware of potential system impacts
5. Monitor execution output
#### execute_shell_script
Executes shell scripts (bash/sh) with safety measures and restrictions.
```json
{
"script": "echo \"Current directory:\" && pwd",
"timeout": 300
}
```
**Parameters:**
| Parameter | Type | Required | Description |
|-----------|---------|----------|---------------------------------------|
| script | string | Yes | Shell script to execute |
| timeout | integer | No | Maximum execution time (default: 300s, max: 600s) |
**Example Usage:**
```bash
# List directory contents with details
aidd-cli --tool execute_shell_script --args '{
"script": "ls -la"
}'
# Find all Python files recursively
aidd-cli --tool execute_shell_script --args '{
"script": "find . -name \"*.py\" -type f"
}'
# Complex script with multiple commands
aidd-cli --tool execute_shell_script --args '{
"script": "echo \"System Info:\" && uname -a && echo \"\nDisk Usage:\" && df -h"
}'
```
**Features:**
- Uses /bin/sh for maximum compatibility across systems
- Executes within the allowed directory
- Separate stdout and stderr output
- Proper error handling and timeout controls
⚠️ **Security Warning:**
This tool executes arbitrary shell commands on your system. Always:
1. Review the script thoroughly before execution
2. Understand the script's purpose and expected outcome
3. Never execute untrusted scripts
4. Be aware of potential system impacts
5. Monitor execution output
## Configuration
Configuration file: `~/.aidd/config.json`
```json
{
"allowed_directory": "/path/to/workspace"
}
```
## CLI Usage
Basic command structure:
```bash
aidd-cli --tool <tool_name> --args '<json_arguments>'
# List available tools
aidd-cli --list-tools
# Enable debug output
aidd-cli --debug --tool <tool_name> --args '<json_arguments>'
```
## Debugging
Use MCP Inspector for debugging:
```bash
npx @modelcontextprotocol/inspector run
```
## Security
- Operations restricted to configured allowed directory
- Path traversal prevention
- File permission preservation
- Safe operation handling
## Upcoming Features
- GitHub tools:
- PR Description Generator
- Code Review
- Actions Manager
- Pivotal Tracker tools:
- Story Generator
- Story Manager
## Development Status
Currently in active development. Features and API may change.
## License
MIT License - see [LICENSE](LICENSE)