mcpField
A
AiDD MCP Server

AiDD MCP Server

本地服务
github.com/skydeckai开发工具463 周前更新

关于 AiDD MCP Server

AiDD MCP Server(现名 SkyDeckAI Code)为 AI 驱动的开发工作流提供 MCP 工具,面向软件开发任务。它涵盖文件操作、多语言代码分析与执行,以及网页和屏幕上下文工具。

主要功能

  1. 01读写、编辑和管理文件
  2. 02使用 tree-sitter 分析多语言代码
  3. 03搜索代码内容
  4. 04执行多种语言代码与脚本
  5. 05抓取网页并转换为 Markdown
  6. 06提供屏幕与系统信息工具

适用场景

  1. 01检查并修改项目文件
  2. 02分析代码结构并查找匹配内容
  3. 03运行代码或 Shell 脚本
  4. 04获取网页内容作为开发参考

MCP 相关

该 MCP 服务向客户端暴露文件系统、代码分析与执行、网页搜索和抓取、屏幕及系统信息等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"aidd": {
"command": "uvx",
"args": [
"skydeckai-code"
]
}
}
}
启动命令uvx skydeckai-code

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiskydeckai-code

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

SkyDeckAI Code

一个 MCP 服务,为 AI 驱动的开发工作流提供一套全面的工具。功能包括文件系统操作、使用 tree-sitter 分析多种编程语言的代码、代码执行、获取网页内容并将 HTML 转换为 Markdown、多引擎网页搜索、代码内容搜索和系统信息检索。通过直接访问本地和远程资源,增强 AI 协助完成软件开发任务的能力。

前身为 MCP-Server-AIDD

此 MCP 服务的前身是 mcp-server-aidd。更名为 skydeckai-code,是为了感谢 SkyDeck.ai 团队与 East Agile 共同创建了此应用。但更重要的是,我们意识到 AI Driven Development(AIDD)这个术语并没有流行起来。人们无法一眼看出它的含义,大模型也一样。“Code” 直观得多。在 Agentic AI 的世界里,语言上的直观性很重要。

Verified on MseeP

安装

# Using uvx
uvx skydeckai-code

Claude Desktop 设置

添加到你的 claude_desktop_config.json:

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

SkyDeck AI Helper App

如果你正在使用 MseeP AI Helper app,可以搜索“SkyDeckAI Code”并安装。

MseeP AI Helper App

主要功能

  • 文件系统操作(读取、写入、编辑、移动、复制、删除)
  • 目录管理和遍历
  • 使用 tree-sitter 分析多种语言的代码
  • 使用正则表达式模式匹配搜索代码内容
  • 在安全措施的保护下执行多种语言的代码
  • 从 API 和网站获取网页内容,并将 HTML 转换为 Markdown
  • 多引擎网页搜索,并提供可靠的回退机制
  • 支持并行和串行执行工具的批量操作
  • 提供可配置工作区边界的安全控制
  • 截图和屏幕上下文工具
  • 图像处理工具

可用工具(29)

类别工具名称描述
文件系统get_allowed_directory获取当前工作目录路径
update_allowed_directory更改工作目录
create_directory创建新目录或嵌套目录
write_file创建或覆盖文件并写入新内容
edit_file按行编辑文本文件
read_file读取一个或多个文件的内容
list_directory获取文件和目录列表
move_file移动或重命名文件或目录
copy_file将文件或目录复制到新位置
search_files搜索与名称模式匹配的文件
delete_file删除文件或空目录
get_file_info获取详细的文件元数据
directory_tree获取目录的递归树形视图
read_image_file将图像文件读取为 base64 数据
代码工具codebase_mapper分析多个文件中的代码结构
search_code在代码文件中查找文本模式
execute_code运行多种语言的代码
execute_shell_script运行 shell/bash 脚本
网页工具web_fetch获取 URL 中的内容
web_search执行网页搜索
屏幕工具capture_screenshot截取屏幕或窗口的屏幕截图
get_active_apps列出正在运行的应用
get_available_windows列出所有打开的窗口
系统get_system_info获取详细的系统信息
实用工具batch_tools批量运行多个工具操作
think记录推理过程而不进行更改
待办事项todo_read读取当前工作区的待办事项列表
todo_write验证后替换整个待办事项列表
todo_update按 ID 更新特定待办事项

工具详细文档

基本文件操作
工具参数返回值
read_filefiles: [{path: string, offset?: integer, limit?: integer}]文件内容(单个或多个文件)
write_filepath: string, content: string成功确认
move_filesource: string, destination: string成功确认
copy_filesource: string, destination: string, recursive?: boolean成功确认
delete_filepath: string成功确认
get_file_infopath: string文件元数据(大小、时间戳、权限)
复杂文件操作
edit_file

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

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

返回值:更改差异,或在试运行模式下返回预览。

目录操作
工具参数返回值
get_allowed_directorynone当前允许的目录路径
update_allowed_directorydirectory: string (absolute path)成功确认
list_directorypath: string目录内容列表
create_directorypath: string成功确认
search_filespattern: string, path?: string, include_hidden?: boolean匹配的文件列表

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

directory_tree

生成完整的目录结构:

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

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

代码分析
codebase_mapper

分析源代码结构:

{
    "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)
search_code

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

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

参数:

参数类型必填描述
patterns字符串数组是要在文件内容中搜索的正则表达式模式列表
include字符串否要包含的文件模式(glob 语法,默认值:"*")
exclude字符串否要排除的文件模式(glob 语法,默认值:"")
max_results整数否每种模式返回的最大结果数(默认值:100)
case_sensitive布尔值否搜索是否区分大小写(默认值:false)
path字符串否开始搜索的基础目录(默认值:".")

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

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

系统信息
工具参数返回内容
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_active_apps

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

{
    "with_details": true
}

参数:

参数类型必填描述
with_details布尔值否是否包含每个应用程序的其他详情(默认值: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字符串否截图的保存路径(默认值:自动生成的路径)
capture_mode对象否指定要截取的内容
capture_mode.type字符串否截图类型:'full'、'active_window' 或 'named_window'(默认值:'full')
capture_mode.window_name字符串否要截取的窗口名称(当 type 为 'named_window' 时必填)

返回:

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

此工具可截取屏幕截图,用于可视化、调试或提供上下文相关的帮助。

read_image_file

从文件系统读取图像文件,并以 base64 编码字符串的形式返回其内容。

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

参数:

参数类型必填描述
path字符串是要读取的图像文件路径
max_size整数否最大文件大小(字节,默认值: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
}

参数:

参数类型必填描述
urlstring是要从中获取内容的 URL(仅限 http/https)
headersobject否请求中包含的可选 HTTP 标头
timeoutinteger否等待响应的最长时间(默认:10s)
save_to_filestring否保存响应内容的路径(位于允许的目录内)
convert_html_to_markdownboolean否为 true 时,将 HTML 内容转换为 markdown,以便更易阅读(默认:true)

返回: 以文本形式返回响应内容,并附带 HTTP 状态码和大小信息。对于二进制内容,会返回元数据,并在提出请求时将其保存到文件。如果启用了 convert_html_to_markdown,HTML 内容会自动转换为 markdown 格式,以便更易阅读。

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

web_search

使用多个搜索引擎执行可靠的 Web 搜索,并返回简洁且相关的结果。

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

参数:

参数类型必填描述
querystring是要处理的搜索查询。描述越具体,结果越好。
num_resultsinteger否返回的搜索结果数量上限(默认:10,最大:20)
convert_html_to_markdownboolean否为 true 时,将内容从 HTML 转换为 markdown,以便更易阅读(默认:true)
search_enginestring否指定要使用的搜索引擎:"auto"(默认)、"bing" 或 "duckduckgo"

返回: 以 markdown 格式呈现的搜索结果列表,包括每条结果的标题、URL 和摘要。结果会去重并按层级整理,便于阅读。

此工具采用多引擎方案,尝试不同的搜索引擎和解析策略,以确保结果可靠。你可以指定首选引擎,但某些引擎可能会阻止自动访问;此时如果选择了 "auto",工具会切换到其他引擎。

实用工具
batch_tools

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

{
    "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": "execute_shell_script",
            "arguments": {
                "script": "git init"
            }
        }
    ]
}

参数:

参数类型必填描述
descriptionstring是批量操作的简短描述
sequentialboolean否是否按顺序运行工具(默认:false)
invocationsarray是要执行的工具调用列表
invocations[].toolstring是要调用的工具名称
invocations[].argumentsobject是指定工具的参数

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

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

重要:批次中的所有工具都在同一工作目录上下文中执行。如果某个工具创建了目录,而后续工具需要在该目录中操作,则必须:

  1. 使用相对于当前工作目录的路径(例如,使用 "project/src" 而不是仅使用 "src"),或
  2. 添加一个明确的工具调用,通过 update_allowed_directory 更改目录
think

一个用于复杂推理和头脑风暴的工具,不会对仓库进行任何更改。

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

参数:

参数类型必填描述
thoughtstring是你的详细想法、分析或推理过程

返回: 以 Markdown 格式呈现你的想法,并附注说明这是一次思考练习。

此工具适用于深入思考复杂问题、集思广益寻找解决方案,或规划实施方案,而不会实际进行任何更改。你可以使用它记录推理过程、评估不同方法,或在采取行动前规划多步骤策略。

代码执行
execute_code

在采取安全措施和限制的情况下,执行多种编程语言的代码。

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

支持的语言:

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

参数:

参数类型必填描述
languagestring是要使用的编程语言
codestring是要执行的代码
timeoutinteger否最长执行时间(默认:5s)

要求:

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

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

  1. 在执行前仔细检查代码
  2. 了解代码的用途和预期结果
  3. 切勿执行不受信任的代码
  4. 注意可能对系统造成的影响
  5. 监控执行输出
execute_shell_script

在采取安全措施和限制的情况下,执行 shell 脚本(bash/sh)。

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

参数:

参数类型必填描述
scriptstring是要执行的 shell 脚本
timeoutinteger否最长执行时间(默认:300s,最大:600s)

功能:

  • 使用 /bin/sh,以最大限度地兼容不同系统
  • 在允许的目录中执行
  • 分别输出 stdout 和 stderr
  • 提供适当的错误处理和超时控制

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

  1. 在执行前仔细检查脚本
  2. 了解脚本的用途和预期结果
  3. 切勿执行不受信任的脚本
  4. 注意可能对系统造成的影响
  5. 监控执行输出
待办工具

待办工具为以工作区为先的开发工作流提供顺序任务管理功能。任务按顺序执行,不设优先级系统,确保开发阶段有序推进。

todo_read

读取工作区当前的待办列表。

{}

返回:

{
  "todos": [
    {
      "id": "abc123",
      "content": "Implement user authentication",
      "status": "in_progress",
      "metadata": {
        "custom_key": "custom_value"
      },
      "created_at": "2023-10-01T10:00:00Z",
      "updated_at": "2023-10-01T11:30:00Z"
    }
  ],
  "count": 1,
  "workspace": "/path/to/workspace"
}
todo_write

替换整个待办列表,以用于顺序执行工作流。任务按数组顺序执行,并在之前工作的基础上推进。

{
  "todos": [
    {
      "id": "task1",
      "content": "Set up database schema",
      "status": "pending"
    },
    {
      "id": "task2", 
      "content": "Create API endpoints",
      "status": "pending",
      "metadata": {
        "custom_key": "custom_value"
      }
    }
  ]
}

顺序工作流规则:

  • 每个待办事项都必须有唯一 ID
  • 同一时间只能有一个任务处于 "in_progress" 状态(顺序执行)
  • 任务按数组顺序执行,不设优先级系统
  • 必填字段:id、content、status
  • 状态值:"pending"、"in_progress"、"completed"
  • 以工作区为先:所有工作区操作都必须进行待办管理
todo_update

按 ID 更新指定待办事项,以推进顺序工作流。

{
  "todo_id": "task1",
  "updates": {
    "status": "in_progress",
    "metadata": {
        "new_key": "new_value"
    }
  }
}

返回:

{
  "success": true,
  "updated_todo": {
    "id": "task1",
    "content": "Set up database schema",
    "status": "in_progress",
    "updated_at": "2023-10-01T12:00:00Z",
    "metadata": {
        "new_key": "new_value"
    }
  },
  "counts": {
    "pending": 1,
    "in_progress": 1,
    "completed": 0,
    "total": 2
  },
  "workspace": "/path/to/workspace"
}

待办系统会为每个工作区维护独立的顺序任务列表,并强制要求所有工作区操作都必须使用该系统。任务按顺序执行,并在之前工作的基础上推进,不采用基于优先级的调度。

配置

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

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

调试

使用 MCP Inspector 进行调试:

npx @modelcontextprotocol/inspector run

安全性

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

即将推出的功能

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

开发状态

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

许可证

Apache License 2.0 - 详见 LICENSE

Star History Chart

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。