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. 02tree-sitter による複数言語の分析
  3. 03コード内容の検索
  4. 04コードとシェルスクリプトの実行
  5. 05ウェブページ取得と Markdown 変換
  6. 06画面およびシステム情報の取得

活用シーン

  1. 01プロジェクトファイルの確認と変更
  2. 02コード構造の分析と該当箇所の検索
  3. 03コードやシェルスクリプトの実行
  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

AI 主導の開発ワークフロー向けに、包括的なツールセットを提供する MCP サーバーです。ファイルシステム操作、複数のプログラミング言語に対応した tree-sitter によるコード解析、コード実行、HTML から Markdown への変換を伴うウェブコンテンツの取得、複数の検索エンジンを使ったウェブ検索、コードコンテンツの検索、システム情報の取得などの機能を備えています。ローカルとリモートの両方のリソースに直接アクセスできるようにすることで、ソフトウェア開発タスクを支援する AI の能力を高めます。

以前は MCP-Server-AIDD と呼ばれていました

この MCP サーバーは、以前は mcp-server-aidd と呼ばれていました。このアプリケーションを SkyDeck.ai のチームが East Agile とともに作成したことを称えるため、skydeckai-code に名称を変更しました。さらに重要なこととして、AI Driven Development(AIDD)という言葉があまり浸透していないことに気付きました。何についてのものなのか、ひと目で理解できない人がいました。LLM にも理解されませんでした。「Code」のほうがはるかに直感的です。エージェント型 AI の世界では、言語的な直感のしやすさが重要です。

MseeP で認証済み

インストール

# Using uvx
uvx skydeckai-code

Claude Desktop のセットアップ

claude_desktop_config.json に追加します。

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

SkyDeck AI Helper アプリ

MseeP AI Helper アプリをお使いの場合は、「SkyDeckAI Code」を検索してインストールできます。

MseeP AI Helper アプリ

主な機能

  • ファイルシステム操作(読み取り、書き込み、編集、移動、コピー、削除)
  • ディレクトリの管理と走査
  • tree-sitter を使用した多言語コード解析
  • 正規表現パターンマッチングによるコードコンテンツの検索
  • 安全対策を備えた多言語コード実行
  • HTML から Markdown への変換を伴う、API やウェブサイトからのウェブコンテンツの取得
  • 信頼性の高いフォールバック機能を備えた、複数の検索エンジンによるウェブ検索
  • ツールを並列および順次実行するバッチ操作
  • 設定可能なワークスペース境界によるセキュリティ制御
  • スクリーンショットと画面コンテキストのツール
  • 画像処理ツール

利用可能なツール(29)

カテゴリツール名説明
ファイルシステムget_allowed_directory現在の作業ディレクトリのパスを取得します
update_allowed_directory作業ディレクトリを変更します
create_directory新しいディレクトリまたは入れ子のディレクトリを作成します
write_file新しい内容でファイルを作成または上書きします
edit_fileテキストファイルを行単位で編集します
read_file1 つ以上のファイルの内容を読み取ります
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シェル/bash スクリプトを実行します
ウェブツールweb_fetchURL からコンテンツを取得します
web_searchウェブ検索を実行します
画面ツールcapture_screenshot画面またはウィンドウのスクリーンショットを撮影します
get_active_apps実行中のアプリケーションを一覧表示します
get_available_windows開いているすべてのウィンドウを一覧表示します
システムget_system_infoシステムの詳細情報を取得します
ユーティリティbatch_tools複数のツール操作をまとめて実行します
think変更を加えずに推論を記録します
ToDotodo_read現在のワークスペースの ToDo リストを読み取ります
todo_write検証を行い、ToDo リスト全体を置き換えます
todo_updateID を指定して特定の ToDo 項目を更新します

ツールの詳細なドキュメント

基本的なファイル操作
ツールパラメーター戻り値
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_directoryなし現在の許可されたディレクトリパス
update_allowed_directorydirectory: string (絶対パス)成功確認
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 形式に変換されます。

このツールは、サイズ制限(最大 10MB)とセキュリティ上の制約を守りながら、Web API へのアクセス、ドキュメントの取得、Web からのコンテンツのダウンロードに使用できます。

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"

戻り値: 各検索結果のタイトル、URL、スニペットを含む、markdown 形式の検索結果リストです。結果は重複が除外され、読みやすいように階層的に整理されます。

このツールは、さまざまな解析方法で複数の検索エンジンを試すアプローチを採用し、信頼性の高い結果を得られるようにしています。優先するエンジンを指定できますが、自動アクセスをブロックするエンジンもあります。その場合、"auto" が選択されていれば、ツールは代替エンジンに切り替えます。

ユーティリティツール
batch_tools

複数のツール呼び出しを 1 つのリクエストで実行します。可能な場合は並列実行します。

{
    "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はい指定したツールに渡す引数

戻り値: すべてのツール呼び出しの結果をまとめたもので、各ツールごとに成功/エラーのステータスを示します。結果は元の呼び出し順に、明確なセクション見出しを付けて表示されます。

このツールを使うと、複数の操作を 1 つのリクエストで効率よく実行できます。sequential が false(デフォルト)の場合、パフォーマンス向上のためツールは並列で実行されます。sequential が true の場合、ツールは順番に実行され、いずれかのツールが失敗すると実行を停止します。

IMPORTANT: バッチ内のすべてのツールは、同じ作業ディレクトリのコンテキストで実行されます。あるツールがディレクトリを作成し、後続のツールがそのディレクトリ内で作業する必要がある場合は、次のいずれかを行う必要があります。

  1. 現在の作業ディレクトリからの相対パスを使用する(例:"src" ではなく "project/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はい詳細な思考、分析、または推論プロセス

戻り値: 思考をマークダウン形式で返します。思考演習であることを示す注記が含まれます。

このツールは、複雑な問題について考えたり、解決策をブレインストーミングしたり、実際に変更を加えずに実装計画を立てたりする場合に便利です。推論プロセスを記録したり、さまざまなアプローチを評価したり、行動を起こす前に複数段階の戦略を計画したりするのに最適です。

コード実行
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

安全対策と制限のもとで、シェルスクリプト(bash/sh)を実行します。

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

パラメーター:

パラメーター型必須説明
scriptstringはい実行するシェルスクリプト
timeoutintegerいいえ最大実行時間(デフォルト:300s、最大:600s)

機能:

  • システム間の互換性を最大限に高めるため、/bin/sh を使用します
  • 許可されたディレクトリ内で実行します
  • stdout と stderr を個別に出力します
  • 適切なエラー処理とタイムアウト制御を行います

⚠️ セキュリティ警告: このツールは、システム上で任意のシェルコマンドを実行します。必ず次の点を守ってください。

  1. 実行前にスクリプトを十分に確認する
  2. スクリプトの目的と想定される結果を理解する
  3. 信頼できないスクリプトは絶対に実行しない
  4. システムへの潜在的な影響に注意する
  5. 実行出力を監視する
Todo ツール

todo ツールは、ワークスペースを優先する開発ワークフロー向けに、タスクを順次管理する機能を提供します。優先順位付けの仕組みはなく、タスクを順番に実行することで、開発フェーズを体系的に進められます。

todo_read

ワークスペースの現在の todo リストを読み込みます。

{}

戻り値:

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

順次実行ワークフロー用に todo リスト全体を置き換えます。タスクは配列の順序に従って実行され、前の作業を踏まえて進められます。

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

順次ワークフローのルール:

  • 各 todo には一意の ID が必要です
  • 同時に "in_progress" にできるタスクは 1 つだけです(順次実行)
  • タスクは配列の順序に従って実行されます(優先順位付けの仕組みはありません)
  • 必須フィールド:id、content、status
  • ステータス値:"pending"、"in_progress"、"completed"
  • ワークスペース優先:すべてのワークスペース操作で todo の管理が必須です
todo_update

順次ワークフローを進めるため、ID を指定して特定の todo 項目を更新します。

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

todo システムは、ワークスペースごとに個別の順次タスクリストを管理し、すべてのワークスペース操作での使用を必須としています。タスクは順番に実行され、優先順位に基づくスケジューリングを行わずに、前の作業を踏まえて進められます。

設定

設定ファイル:~/.skydeckai_code/config.json

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

デバッグ

デバッグには MCP Inspector を使用します。

npx @modelcontextprotocol/inspector run

セキュリティ

  • 設定された許可ディレクトリ内に操作を制限
  • パストラバーサルの防止
  • ファイル権限の保持
  • 安全な操作の処理

今後の機能

  • GitHub ツール:
    • PR 説明ジェネレーター
    • コードレビュー
    • Actions マネージャー
  • Pivotal Tracker ツール:
    • ストーリージェネレーター
    • ストーリーマネージャー

開発状況

現在、積極的に開発中です。機能や API は変更される可能性があります。

ライセンス

Apache License 2.0 — LICENSE を参照してください。

スター履歴グラフ

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。