SkyDeck AI 开发服务器

@skydeckai/mcp-server-aidd
0 Stars 459 次浏览 skydeckai 更新于 2026-08-23

AiDD MCP服务器为AI代理提供了一个安全的接口,以执行文件系统操作和代码分析,增强跨多种编程语言的AI辅助开发工作流程。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "aidd-ai-software-development-utilities": {
      "args": [
        "mcp-server-aidd"
      ],
      "command": "uvx"
    }
  }
}

可用工具 (29 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

get_allowed_directory

Get the current working directory that this server is allowed to access.

该工具无需必填参数,直接调用即可

write_file 2 个参数 需填 2 项

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'

必填参数:path、content

update_allowed_directory 1 个参数 需填 1 项

Change the working directory that this server is allowed to access. Use this to switch between different projects.

必填参数:directory

create_directory 1 个参数 需填 1 项

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.

必填参数:path

edit_file 4 个参数 需填 2 项

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.

必填参数:path、edits

list_directory 1 个参数 需填 1 项

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.

必填参数:path

read_file 1 个参数 需填 1 项

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.

必填参数:path

read_multiple_files 1 个参数 需填 1 项

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.

必填参数:paths

move_file 2 个参数 需填 2 项

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'

必填参数:source、destination

search_files 3 个参数 需填 1 项

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.

必填参数:pattern

delete_file 1 个参数 需填 1 项

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.

必填参数:path

get_file_info 1 个参数 需填 1 项

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

必填参数:path

directory_tree 1 个参数 需填 1 项

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.

必填参数:path

execute_code 3 个参数 需填 2 项

Execute arbitrary code in various programming languages on the user's local machine within the current working directory. Supported languages: python, javascript, ruby, php, go, rust. Always review the code carefully before execution to prevent unintended consequences. You MUST explicitly show the user the code that will be executed and get his confirmation before using this tool. Examples: - Python: code='print(sum(range(10)))'. - JavaScript: code='console.log(Array.from({length: 5}, (_, i) => i*2))'. - Ruby: code='puts (1..5).reduce(:+)'.

必填参数:language、code

execute_shell_script 2 个参数 需填 1 项

Execute a shell script (bash/sh) on the user's local machine within the current working directory. This tool can execute shell commands and scripts for system automation and management tasks. It is designed to perform tasks on the user's local environment, such as opening applications, installing packages and more. Always review the script carefully before execution to prevent unintended consequences. You MUST explicitly show the user the script that will be executed and get his confirmation before using this tool. Examples: - script='echo "Current directory:" && pwd'. - script='for i in {1..5}; do echo $i; done'.

必填参数:script

tree_sitter_map 1 个参数 需填 1 项

Build a tree-sitter based structural map of source code files. This tool analyzes code structure to identify classes, functions, and methods. Only analyzes files within the allowed directory. Useful for code analysis and understanding project structure. Example: Enter '.' to analyze all source files in current directory, or 'src' to analyze all files in the src directory.

必填参数:path

git_init 2 个参数 需填 1 项

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.

必填参数:path

git_status 1 个参数 需填 1 项

Shows the working tree status of a git repository. Returns information about staged, unstaged, and untracked files. Repository must be within the allowed directory.

必填参数:repo_path

git_diff_unstaged 1 个参数 需填 1 项

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.

必填参数:repo_path

git_diff_staged 1 个参数 需填 1 项

Shows changes staged for commit. Returns a unified diff format of all staged changes. Repository must be within the allowed directory.

必填参数:repo_path

git_diff 2 个参数 需填 2 项

Shows differences between branches or commits. Returns a unified diff format comparing current state with target. Repository must be within the allowed directory.

必填参数:repo_path、target

git_commit 2 个参数 需填 2 项

Records changes to the repository. Commits all staged changes with the provided message. Repository must be within the allowed directory.

必填参数:repo_path、message

git_add 2 个参数 需填 2 项

Adds file contents to the staging area. Stages specified files for the next commit. Repository must be within the allowed directory.

必填参数:repo_path、files

git_reset 1 个参数 需填 1 项

Unstages all staged changes. Removes all files from the staging area. Repository must be within the allowed directory.

必填参数:repo_path

git_log 2 个参数 需填 1 项

Shows the commit logs. Returns information about recent commits including hash, author, date, and message. Repository must be within the allowed directory.

必填参数:repo_path

git_create_branch 3 个参数 需填 2 项

Creates a new branch. Creates a new branch from the specified base branch or current HEAD. Repository must be within the allowed directory.

必填参数:repo_path、branch_name

git_checkout 2 个参数 需填 2 项

Switches branches. Checks out the specified branch. Repository must be within the allowed directory.

必填参数:repo_path、branch_name

git_show 2 个参数 需填 2 项

Shows the contents of a commit. Returns detailed information about a specific commit including the changes it introduced. Repository must be within the allowed directory.

必填参数:repo_path、revision

get_system_info

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.

该工具无需必填参数,直接调用即可

服务介绍

AiDD MCP 服务器

smithery 徽章

这是一个MCP服务器,为AI驱动的开发工作流程提供了一整套工具。功能包括文件系统操作、使用tree-sitter对多种编程语言进行代码分析、Git操作、代码执行以及系统信息检索。旨在增强AI在软件开发任务中的辅助能力。

安装

通过 Smithery 安装

要通过 Smithery 自动安装适用于 Claude 桌面版的 AiDD:

npx -y @smithery/cli install mcp-server-aidd --client claude

手动安装

# 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 桌面设置

将以下内容添加到您的 claude_desktop_config.json 文件中:

{
    "mcpServers": {
        "aidd-ai-software-development-utilities": {
            "command": "uvx",
            "args": ["mcp-server-aidd"]
        }
    }
}

SkyDeck AI 辅助应用程序

如果您正在使用 SkyDeck AI 辅助应用程序,您可以搜索 "AiDD" 并安装 mcp-server-aidd。

SkyDeck AI 辅助应用程序

主要功能

  • 文件系统操作(读取、写入、编辑、移动、删除)
  • 目录管理和遍历
  • 使用 tree-sitter 对多语言代码进行分析
  • 具有安全措施的多语言代码执行
  • Git 操作(状态、差异、提交、分支管理)
  • 可配置工作区边界的安控控制
  • 截图和屏幕上下文工具
  • 图像处理工具

可用工具

基本文件操作

工具 参数 返回
read_file path: 字符串 文件内容
read_multiple_files paths: 字符串数组 多个文件的内容及其头部信息
write_file path: 字符串, content: 字符串 成功确认
move_file source: 字符串, destination: 字符串 成功确认
delete_file path: 字符串 成功确认
get_file_info path: 字符串 文件元数据(大小、时间戳、权限)

常用示例:

# 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"}'

复杂文件操作

edit_file

支持预览的基于模式的文件编辑:

{
    "path": "src/main.py",
    "edits": [
        {
            "oldText": "def old_function():",
            "newText": "def new_function():"
        }
    ],
    "dryRun": false,
    "options": {
        "preserveIndentation": true,
        "normalizeWhitespace": true,
        "partialMatch": true
    }
}

返回:变更差异或在干运行模式下的预览。

目录操作

工具 参数 返回值
get_allowed_directory 当前允许的目录路径
update_allowed_directory directory: 字符串 (绝对路径) 成功确认
list_directory path: 字符串 目录内容列表
create_directory path: 字符串 成功确认
search_files pattern: 字符串, path?: 字符串, include_hidden?: 布尔值 匹配文件列表

directory_tree

生成完整的目录结构:

{
    "path": "src",
    "include_hidden": false
}

返回:目录内容的 JSON 树结构。

常用示例:

# List directory
aidd-cli --tool list_directory --args '{"path": "."}'

# Search for Python files
aidd-cli --tool search_files --args '{"pattern": ".py", "path": "src"}'

Git 操作

工具 参数 返回值
git_init path: 字符串, initial_branch?: 字符串 仓库初始化状态
git_status repo_path: 字符串 工作目录状态
git_add repo_path: 字符串, files: 字符串数组 暂存确认
git_reset repo_path: 字符串 取消暂存确认
git_checkout repo_path: 字符串, branch_name: 字符串 分支切换确认

复杂的 Git 操作

git_commit
{
    "repo_path": ".",
    "message": "feat: add new feature"
}

返回:提交哈希和确认信息。

git_diff
{
    "repo_path": ".",
    "target": "main"
}

返回:详细的差异输出。

git_log
{
    "repo_path": ".",
    "max_count": 10
}

返回:包含哈希、作者、日期和消息的提交条目数组。

常用示例:

# 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"}'

代码分析

tree_sitter_map

分析源代码结构:

{
    "path": "src"
}

返回:

  • 类及其方法
  • 函数及参数
  • 模块结构
  • 代码组织统计
  • 继承关系

支持的语言:

  • 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)

系统信息

工具 参数 返回值
get_system_info 全面的系统详细信息

返回:

{
  "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"
  }
}

以清晰可读的格式提供关键系统信息。

# Get system information
aidd-cli --tool get_system_info

屏幕上下文和图像工具

get_active_apps

返回用户系统中当前活动的应用程序列表。

{
    "with_details": true
}

参数:

参数 类型 是否必需 描述
with_details boolean 是否包含每个应用程序的附加详细信息(默认:false)

返回值:

{
    "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
        }
    ]
}

此工具提供了关于用户系统中当前运行的应用程序的重要上下文,有助于提供更相关的帮助。

get_available_windows

返回用户屏幕上当前显示的所有可用窗口的详细信息。

{}

返回值:

{
    "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
        }
    ]
}

此工具帮助理解用户屏幕上显示的内容,并可用于情境感知的帮助。

capture_screenshot

捕获用户屏幕或特定窗口的截图。

{
    "output_path": "screenshots/capture.png",
    "capture_mode": {
        "type": "named_window",
        "window_name": "Visual Studio Code"
    }
}

参数:

参数 类型 是否必需 描述
output_path string 截图应保存的路径(默认:生成的路径)
capture_mode object 指定要捕获的内容
capture_mode.type string 截图类型:'full', 'active_window', 或 'named_window'(默认:'full')
capture_mode.window_name string 要捕获的窗口名称(当类型为 'named_window' 时需要)

返回值:

{
    "success": true,
    "path": "/path/to/screenshots/capture.png"
}

此工具用于可视化、调试或情境感知的帮助时捕捉屏幕截图。

read_image_file

从文件系统读取图像文件并将其内容作为 base64 编码的字符串返回。

{
    "path": "images/logo.png"
}

参数:

参数 类型 是否必需 描述
path string 要读取的图像文件的路径
max_size integer 文件最大大小(以字节为单位,默认:100MB)

返回值:
可以显示或处理的 Base64 编码的图像数据。

此工具支持常见的图像格式如 PNG、JPEG、GIF 和 WebP,并自动调整图像大小以优化查看效果。

代码执行

execute_code

在各种编程语言中执行代码,同时采取安全措施和限制。

{
    "language": "python",
    "code": "print('Hello, World!')",
    "timeout": 5
}

支持的语言:

  • Python (python3)
  • JavaScript (Node.js)
  • Ruby
  • PHP
  • Go
  • Rust

参数:

参数 类型 是否必需 描述
language string 使用的编程语言
code string 要执行的代码
timeout integer 最大执行时间(默认:5秒)

示例用法:

# 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!\")"
}'

要求:

  • 必须安装相应的语言运行时
  • 命令必须在系统 PATH 中可用
  • 创建临时文件所需的适当权限

⚠️ 安全警告:
此工具会在您的系统上执行任意代码。请始终:

确保您了解所执行代码的内容以及可能带来的风险。

  1. 在执行前彻底审查代码
  2. 了解代码的目的和预期结果
  3. 永不执行不可信的代码
  4. 注意潜在的系统影响
  5. 监控执行输出

execute_shell_script

以安全措施和限制执行 shell 脚本(bash/sh)。

{
    "script": "echo \"Current directory:\" && pwd",
    "timeout": 300
}

参数:

参数 类型 是否必需 描述
script string 要执行的 Shell 脚本
timeout integer 最大执行时间(默认:300秒,最大:600秒)

使用示例:

# 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"
}'

特性:

  • 使用 /bin/sh 以实现跨系统的最大兼容性
  • 在允许的目录内执行
  • 分别输出 stdout 和 stderr
  • 正确处理错误及控制超时

⚠️ 安全警告:
此工具会在您的系统上执行任意的 shell 命令。请始终:

  1. 在执行前彻底审查脚本
  2. 了解脚本的目的和预期结果
  3. 永不执行不可信的脚本
  4. 注意潜在的系统影响
  5. 监控执行输出

配置

配置文件: ~/.aidd/config.json

{
    "allowed_directory": "/path/to/workspace"
}

CLI 使用

基本命令结构:

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>'

调试

使用 MCP Inspector 进行调试:

npx @modelcontextprotocol/inspector run

安全性

  • 操作限制在配置的允许目录内
  • 防止路径遍历
  • 保持文件权限
  • 安全操作处理

即将推出的功能

  • GitHub 工具:
    • PR 描述生成器
    • 代码审查
    • Actions 管理器
  • Pivotal Tracker 工具:
    • 故事生成器
    • 故事管理器

开发状态

当前处于积极开发中。功能和 API 可能会发生变化。

许可证

Apache License 2.0 - 查看 LICENSE

相关 MCP 服务