AiDD MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Supports code analysis using tree-sitter for C++ files (.cpp, .hpp, .cc)

  • Provides Git operations including repository initialization, status checking, adding files, resetting, checkout, commit, diff, and log viewing

  • Upcoming features include GitHub tools such as PR Description Generator, Code Review, and Actions Manager

SkyDeckAI代码

一个 MCP 服务器,提供一套全面的 AI 驱动开发工作流程工具。功能包括文件系统操作、使用 tree-sitter 进行多种编程语言的代码分析、Git 操作、代码执行、通过 HTML 到 Markdown 转换获取 Web 内容、多引擎 Web 搜索、代码内容搜索、linting 检测以及系统信息检索。旨在通过提供对本地和远程资源的直接访问,增强 AI 辅助软件开发任务的能力。

以前称为 MCP-服务器-AIDD

这个 mcp 服务器以前被称为mcp-server-aidd 。它被重命名为skydeckai-code ,以感谢SkyDeck.ai团队与East Agile共同开发了这款应用程序。但更重要的是,我们意识到人工智能驱动开发 (AIDD) 这个术语并没有流行起来。人们无法一眼就明白它的含义。法学硕士也是如此。“代码”的概念更加直观。而在代理人工智能的世界里,语言的直观性至关重要。

安装

# Using pip pip install skydeckai-code

Claude 桌面设置

添加到您的claude_desktop_config.json

{ "mcpServers": { "skydeckai-code": { "command": "uvx", "args": ["skydeckai-code"] } } }

SkyDeck AI 助手应用程序

如果您正在使用 SkyDeck AI Helper 应用程序,您可以搜索“SkyDeckAI Code”并安装它。

主要特点

  • 文件系统操作(读取、写入、编辑、移动、复制、删除)
  • 目录管理和遍历
  • 使用 tree-sitter 进行多语言代码分析
  • Python 和 JavaScript/TypeScript 的代码 linting 和问题检测
  • 使用正则表达式模式匹配搜索代码内容
  • 具有安全措施的多语言代码执行
  • Git 操作(状态、差异、提交、分支管理、克隆)
  • 通过 HTML 到 Markdown 的转换从 API 和网站获取 Web 内容
  • 具有可靠回退机制的多引擎网络搜索
  • 并行和串行工具执行的批处理操作
  • 具有可配置工作区边界的安全控制
  • 屏幕截图和屏幕上下文工具
  • 图像处理工具

可用工具

基本文件操作

工具参数返回
读取文件路径:字符串,偏移量?:整数,限制?:整数文件内容(全部或部分)
读取多个文件路径:string[]带有标题的多个文件内容
写入文件路径:字符串,内容:字符串成功确认
移动文件源:字符串,目标:字符串成功确认
复制文件源:字符串,目标:字符串,递归?:布尔值成功确认
删除文件路径:字符串成功确认
获取文件信息路径:字符串文件元数据(大小、时间戳、权限)

常见用法:

# Read entire file skydeckai-code-cli --tool read_file --args '{"path": "src/main.py"}' # Read 10 lines starting from line 20 skydeckai-code-cli --tool read_file --args '{"path": "src/main.py", "offset": 20, "limit": 10}' # Read from line 50 to the end of the file skydeckai-code-cli --tool read_file --args '{"path": "src/main.py", "offset": 50}' # Write file skydeckai-code-cli --tool write_file --args '{"path": "output.txt", "content": "Hello World"}' # Copy file or directory skydeckai-code-cli --tool copy_file --args '{"source": "config.json", "destination": "config.backup.json"}' # Get file info skydeckai-code-cli --tool get_file_info --args '{"path": "src/main.py"}'

复杂文件操作

编辑文件

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

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

返回:变化的差异或空运行模式下的预览。

目录操作

工具参数返回
获取允许的目录没有任何当前允许的目录路径
更新允许目录目录:字符串(绝对路径)成功确认
列表目录路径:字符串目录内容列表
创建目录路径:字符串成功确认
搜索文件模式:字符串,路径?:字符串,include_hidden?:布尔值匹配文件列表

search_files工具按名称模式搜索文件,而search_code工具则使用正则表达式在文件内容中搜索。使用search_files查找具有特定名称或扩展名的文件,使用search_code查找文件内的特定文本模式。

目录树

生成完整的目录结构:

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

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

常见用法:

# List directory skydeckai-code-cli --tool list_directory --args '{"path": "."}' # Search for Python files skydeckai-code-cli --tool search_files --args '{"pattern": ".py", "path": "src"}'

Git 操作

工具参数返回
git_init路径:字符串,initial_branch?:字符串存储库初始化状态
git_statusrepo_path:字符串工作目录状态
git_addrepo_path:字符串,文件:字符串[]分期确认
git_resetrepo_path:字符串取消暂存确认
git_checkoutrepo_path:字符串,branch_name:字符串分支切换确认
git_create_branchrepo_path:字符串,branch_name:字符串分支创建确认
git_cloneurl:字符串,target_path:字符串,branch?:字符串克隆确认
git_diff_unstagedrepo_path:字符串未暂存的更改差异
git_diff_stagedrepo_path:字符串分阶段变化差异
git_showrepo_path:字符串,commit_hash:字符串特定提交的详细信息

复杂的 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 skydeckai-code-cli --tool git_status --args '{"repo_path": "."}' # Clone a repository skydeckai-code-cli --tool git_clone --args '{"url": "https://github.com/username/repo.git", "target_path": "repo"}' # Create and switch to new branch skydeckai-code-cli --tool git_create_branch --args '{"repo_path": ".", "branch_name": "feature/new-branch"}'

代码分析

代码库映射器

分析源代码结构:

{ "path": "src" }

返回:

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

支持的语言:

  • Python(.py)
  • JavaScript(.js、.jsx、.mjs、.cjs)
  • TypeScript(.ts、.tsx)
  • Java(.java)
  • C++(.cpp、.hpp、.cc)
  • Ruby(.rb、.rake)
  • 前往(.go)
  • Rust(.rs)
  • PHP(.php)
  • C#(.cs)
  • Kotlin(.kt、.kts)

检查_lint

使用本机 linting 工具检查代码库中的 linting 问题:

{ "path": "src", "languages": ["python", "javascript"], "linters": { "pylint": "--disable=C0111", "flake8": true, "eslint": "--fix" }, "max_issues": 100 }

参数:

范围类型必需的描述
小路细绳要检查的目录或文件(默认值:“。”)
语言大批需要检查的语言列表(如果为空则自动检测)
linters目的特定 linters 的配置 - 可以使用布尔值或 CLI 参数
最大问题数整数返回的最大问题数(默认值:100,0 表示无限制)

**返回:**代码库中发现的 linting 问题的详细报告,包括文件路径、行号、问题描述和严重程度。问题按文件分组,并按严重程度排序。

支持的语言和 Linters:

  • Python:pylint、flake8(自动使用可用资源)
  • JavaScript/TypeScript:ESLint
  • Dart/Flutter:dart_analyze(也报告编译错误)

示例用法:

# Check entire codebase with default settings skydeckai-code-cli --tool check_lint # Check specific directory with custom pylint flags skydeckai-code-cli --tool check_lint --args '{ "path": "src", "linters": { "pylint": "--disable=missing-docstring,invalid-name" } }' # Check only Python files and disable flake8 skydeckai-code-cli --tool check_lint --args '{ "path": "src", "languages": ["python"], "linters": { "flake8": false } }' # Check Dart/Flutter files for linting and compilation errors skydeckai-code-cli --tool check_lint --args '{ "path": "lib", "languages": ["dart"], "linters": { "dart_analyze": "--fatal-infos" } }'

搜索代码

使用正则表达式的快速内容搜索工具:

{ "pattern": "function\\s+\\w+", "include": "*.js", "exclude": "node_modules/**", "max_results": 50, "case_sensitive": false, "path": "src" }

参数:

范围类型必需的描述
图案细绳是的使用正则表达式模式在文件内容中搜索
包括细绳要包含的文件模式(glob 语法,默认值:“*”)
排除细绳要排除的文件模式(glob 语法,默认值:“”)
最大结果整数返回的最大结果(默认值:100)
区分大小写布尔值搜索是否区分大小写(默认值:false)
小路细绳搜索的基本目录(默认值:“。”)

**返回:**按文件分组的匹配行,带有行号,按文件修改时间排序,最新文件排在最前面。

此工具会在可用时使用 ripgrep 以获得最佳性能,并附带 Python 回退实现。它非常适合查找特定的代码模式,例如函数声明、导入、变量使用或错误处理。

示例用法:

# Find function declarations in JavaScript files skydeckai-code-cli --tool search_code --args '{ "pattern": "function\\s+\\w+", "include": "*.js" }' # Find all console.log statements with errors skydeckai-code-cli --tool search_code --args '{ "pattern": "console\\.log.*[eE]rror", "path": "src" }' # Find import statements in TypeScript files skydeckai-code-cli --tool search_code --args '{ "pattern": "import.*from", "include": "*.{ts,tsx}", "exclude": "node_modules/**" }'

系统信息

工具参数返回
获取系统信息没有任何全面的系统细节

返回:

{ "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 skydeckai-code-cli --tool get_system_info

屏幕上下文和图像工具

获取活动应用程序

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

{ "with_details": true }

参数:

范围类型必需的描述
详细信息布尔值是否包含有关每个应用程序的附加详细信息(默认值: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 } ] }

该工具提供了有关用户系统上当前运行的应用程序的宝贵背景信息,有助于提供更相关的帮助。

获取可用窗口

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

{}

返回:

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

该工具有助于了解用户屏幕上可见的内容,并可用于情境感知帮助。

捕获屏幕截图

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

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

参数:

范围类型必需的描述
输出路径细绳屏幕截图保存的路径(默认:生成的路径)
捕获模式目的指定要捕获的内容
捕获模式类型细绳屏幕截图类型:“full”、“active_window”或“named_window”(默认值:“full”)
捕获模式.窗口名称细绳要捕获的窗口的名称(当类型为“named_window”时必需)

返回:

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

该工具可捕获屏幕截图,用于可视化、调试或上下文感知协助。

读取图像文件

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

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

参数:

范围类型必需的描述
小路细绳是的要读取的图像文件的路径
最大尺寸整数最大文件大小(以字节为单位)(默认值:100MB)

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

该工具支持 PNG、JPEG、GIF 和 WebP 等常见图像格式,并自动调整图像大小以获得最佳观看效果。

Web 工具

web_fetch

从 URL 获取内容并可选择将其保存到文件中。

{ "url": "https://api.github.com/users/octocat", "headers": { "Accept": "application/json" }, "timeout": 15, "save_to_file": "downloads/octocat.json", "convert_html_to_markdown": true }

参数:

范围类型必需的描述
网址细绳是的获取内容的 URL(仅限 http/https)
标题目的请求中包含的可选 HTTP 标头
暂停整数等待响应的最长时间(默认值:10秒)
保存到文件细绳保存响应内容的路径(在允许的目录内)
将 html 转换为 markdown布尔值当为 true 时,将 HTML 内容转换为 markdown 以提高可读性(默认值:true)

**返回:**包含 HTTP 状态码和大小信息的文本形式的响应内容。对于二进制内容,返回元数据并根据请求保存到文件。启用 convert_html_to_markdown 后,HTML 内容将自动转换为 Markdown 格式,以提高可读性。

该工具可用于访问 Web API、获取文档或从 Web 下载内容,同时遵守大小限制(最大 10MB)和安全约束。

示例用法:

# Fetch JSON from an API skydeckai-code-cli --tool web_fetch --args '{ "url": "https://api.github.com/users/octocat", "headers": {"Accept": "application/json"} }' # Download content to a file skydeckai-code-cli --tool web_fetch --args '{ "url": "https://github.com/github/github-mcp-server/blob/main/README.md", "save_to_file": "downloads/readme.md" }' # Fetch a webpage and convert to markdown for better readability skydeckai-code-cli --tool web_fetch --args '{ "url": "https://example.com", "convert_html_to_markdown": true }'

网络搜索

使用多个搜索引擎执行强大的网络搜索并返回简洁、相关的结果。

{ "query": "latest python release features", "num_results": 8, "convert_html_to_markdown": true, "search_engine": "bing" }

参数:

范围类型必需的描述
询问细绳是的要处理的搜索查询。为了获得更好的结果,请具体说明。
结果数整数返回的搜索结果的最大数量(默认值:10,最大值:20)
将 html 转换为 markdown布尔值如果为 true,内容将从 HTML 转换为 markdown,以提高可读性(默认值:true)
搜索引擎细绳指定要使用的搜索引擎:“auto”(默认)、“bing”或“duckduckgo”

返回: Markdown 格式的搜索结果列表,包含每个结果的标题、URL 和摘要。结果已去重并按层次结构组织,方便阅读。

此工具采用多引擎方法,会尝试使用各种解析策略的不同搜索引擎,以确保结果可靠。您可以指定首选引擎,但某些引擎可能会阻止自动访问,在这种情况下,如果选择“自动”,该工具将回退到其他引擎。

示例用法:

# Search with default settings (auto engine selection) skydeckai-code-cli --tool web_search --args '{ "query": "latest python release features" }' # Try DuckDuckGo if you want alternative results skydeckai-code-cli --tool web_search --args '{ "query": "machine learning frameworks comparison", "search_engine": "duckduckgo" }' # Use Bing for reliable results skydeckai-code-cli --tool web_search --args '{ "query": "best programming practices 2023", "search_engine": "bing" }'

实用工具

批处理工具

在单个请求中执行多个工具调用,并尽可能并行执行。

{ "description": "Setup new project", "sequential": true, "invocations": [ { "tool": "create_directory", "arguments": { "path": "src" } }, { "tool": "write_file", "arguments": { "path": "README.md", "content": "# New Project\n\nThis is a new project." } }, { "tool": "git_init", "arguments": { "path": ".", "initial_branch": "main" } } ] }

参数:

范围类型必需的描述
描述细绳是的批量操作的简短描述
顺序布尔值是否按顺序运行工具(默认值:false)
调用大批是的要执行的工具调用列表
调用[].工具细绳是的要调用的工具的名称
调用[].参数目的是的指定工具的参数

**返回:**所有工具调用的综合结果,按工具分组,并标明每个工具的成功/错误状态。结果按原始调用顺序呈现,并带有清晰的章节标题。

此工具可在单个请求中高效执行多个操作。当sequential为 false(默认值)时,工具将并行执行以获得更佳性能。当sequential为 true 时,工具将按顺序执行,如果任何工具失败,则执行停止。

重要提示:批处理中的所有工具均在同一工作目录上下文中执行。如果某个工具创建了一个目录,而后续工具需要在该目录内工作,则您必须执行以下操作之一:

  1. 使用相对于当前工作目录的路径(例如,“project/src”而不仅仅是“src”),或者
  2. 包含一个明确的工具调用来使用update_allowed_directory更改目录

示例用法:

# Setup a new project with multiple steps in sequential order (using proper paths) skydeckai-code-cli --tool batch_tools --args '{ "description": "Setup new project", "sequential": true, "invocations": [ {"tool": "create_directory", "arguments": {"path": "project"}}, {"tool": "create_directory", "arguments": {"path": "project/src"}}, {"tool": "write_file", "arguments": {"path": "project/README.md", "content": "# Project\n\nA new project."}} ] }' # Create nested structure using relative paths (without changing directory) skydeckai-code-cli --tool batch_tools --args '{ "description": "Create project structure", "sequential": true, "invocations": [ {"tool": "create_directory", "arguments": {"path": "project/src"}}, {"tool": "create_directory", "arguments": {"path": "project/docs"}}, {"tool": "write_file", "arguments": {"path": "project/README.md", "content": "# Project"}} ] }' # Gather system information and take a screenshot (tasks can run in parallel) skydeckai-code-cli --tool batch_tools --args '{ "description": "System diagnostics", "sequential": false, "invocations": [ {"tool": "get_system_info", "arguments": {}}, {"tool": "capture_screenshot", "arguments": { "output_path": "diagnostics/screen.png", "capture_mode": { "type": "full" } }} ] }'

思考

一种无需更改存储库即可进行复杂推理和头脑风暴的工具。

{ "thought": "Let me analyze the performance issue in the codebase:\n\n## Root Cause Analysis\n\n1. The database query is inefficient because:\n - It doesn't use proper indexing\n - It fetches more columns than needed\n - The JOIN operation is unnecessarily complex\n\n## Potential Solutions\n\n1. **Add database indexes**:\n - Create an index on the user_id column\n - Create a composite index on (created_at, status)\n\n2. **Optimize the query**:\n - Select only necessary columns\n - Rewrite the JOIN using a subquery\n - Add LIMIT clause for pagination\n\n3. **Add caching layer**:\n - Cache frequent queries using Redis\n - Implement cache invalidation strategy\n\nAfter weighing the options, solution #2 seems to be the simplest to implement with the highest impact." }

参数:

范围类型必需的描述
想法细绳是的您的详细想法、分析或推理过程

**返回:**您的想法被格式化为 markdown,并带有注释表明这是一次思考练习。

此工具可用于思考复杂问题、集思广益寻找解决方案或制定实施计划,而无需进行任何实际更改。它非常适合记录您的推理过程、评估不同的方法或在采取行动之前制定多步骤策略。

示例用法:

# Analyze a bug and plan a fix skydeckai-code-cli --tool think --args '{ "thought": "# Bug Analysis\n\n## Observed Behavior\nThe login endpoint returns a 500 error when email contains Unicode characters.\n\n## Root Cause\nThe database adapter is not properly encoding Unicode strings before constructing the SQL query.\n\n## Potential Fixes\n1. Update the database adapter to use parameterized queries\n2. Add input validation to reject Unicode in emails\n3. Encode email input manually before database operations\n\nFix #1 is the best approach as it solves the core issue and improves security." }' # Evaluate design alternatives skydeckai-code-cli --tool think --args '{ "thought": "# API Design Options\n\n## REST vs GraphQL\nFor this use case, GraphQL would provide more flexible data fetching but adds complexity. REST is simpler and sufficient for our current needs.\n\n## Authentication Methods\nJWT-based authentication offers stateless operation and better scalability compared to session-based auth.\n\nRecommendation: Use REST with JWT authentication for the initial implementation." }'

代码执行

执行代码

使用安全措施和限制执行各种编程语言的代码。

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

支持的语言:

  • Python(python3)
  • JavaScript(Node.js)
  • 红宝石
  • PHP

参数:

范围类型必需的描述
语言细绳是的要使用的编程语言
代码细绳是的要执行的代码
暂停整数最长执行时间(默认值:5秒)

示例用法:

# Python example skydeckai-code-cli --tool execute_code --args '{ "language": "python", "code": "print(sum(range(10)))" }' # JavaScript example skydeckai-code-cli --tool execute_code --args '{ "language": "javascript", "code": "console.log(Array.from({length: 5}, (_, i) => i*2))" }' # Ruby example skydeckai-code-cli --tool execute_code --args '{ "language": "ruby", "code": "puts (1..5).reduce(:+)" }' # Go example skydeckai-code-cli --tool execute_code --args '{ "language": "go", "code": "fmt.Println(\"Hello, Go!\")" }'

要求:

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

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

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

执行shell脚本

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

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

参数:

范围类型必需的描述
脚本细绳是的要执行的 Shell 脚本
暂停整数最长执行时间(默认值:300s,最大值:600s)

示例用法:

# List directory contents with details skydeckai-code-cli --tool execute_shell_script --args '{ "script": "ls -la" }' # Find all Python files recursively skydeckai-code-cli --tool execute_shell_script --args '{ "script": "find . -name \"*.py\" -type f" }' # Complex script with multiple commands skydeckai-code-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. 监视执行输出

配置

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

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

CLI 使用

基本命令结构:

skydeckai-code-cli --tool <tool_name> --args '<json_arguments>' # List available tools skydeckai-code-cli --list-tools # Enable debug output skydeckai-code-cli --debug --tool <tool_name> --args '<json_arguments>'

调试

使用 MCP Inspector 进行调试:

npx @modelcontextprotocol/inspector run

安全

  • 操作仅限于配置的允许目录
  • 路径遍历预防
  • 文件权限保存
  • 安全操作处理

即将推出的功能

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

开发现状

目前正在积极开发中。功能和 API 可能会发生变化。

执照

Apache 许可证 2.0 - 参见许可证

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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

  1. Formerly Known As MCP-Server-AIDD
    1. Installation
    2. Claude Desktop Setup
    3. SkyDeck AI Helper App
    4. Key Features
    5. Available Tools
    6. Configuration
    7. CLI Usage
    8. Debugging
    9. Security
    10. Upcoming Features
    11. Development Status
    12. License
ID: mpixtij6se