AiDD MCP Server について
AiDD MCP Server(現名称は SkyDeckAI Code)は、AI 駆動のソフトウェア開発ワークフロー向けに MCP ツールを提供します。ファイル操作、コード分析・実行に加え、ウェブや画面のコンテキストも扱えます。
主な機能
- 01ファイルの読み取り、編集、管理
- 02tree-sitter による複数言語の分析
- 03コード内容の検索
- 04コードとシェルスクリプトの実行
- 05ウェブページ取得と Markdown 変換
- 06画面およびシステム情報の取得
活用シーン
- 01プロジェクトファイルの確認と変更
- 02コード構造の分析と該当箇所の検索
- 03コードやシェルスクリプトの実行
- 04取得したウェブ内容を開発資料として利用
MCP 対応
ファイル操作、コード分析・実行、ウェブ検索・取得、画面コンテキスト、システム情報のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
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 の世界では、言語的な直感のしやすさが重要です。
インストール
# 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」を検索してインストールできます。

主な機能
- ファイルシステム操作(読み取り、書き込み、編集、移動、コピー、削除)
- ディレクトリの管理と走査
- tree-sitter を使用した多言語コード解析
- 正規表現パターンマッチングによるコードコンテンツの検索
- 安全対策を備えた多言語コード実行
- HTML から Markdown への変換を伴う、API やウェブサイトからのウェブコンテンツの取得
- 信頼性の高いフォールバック機能を備えた、複数の検索エンジンによるウェブ検索
- ツールを並列および順次実行するバッチ操作
- 設定可能なワークスペース境界によるセキュリティ制御
- スクリーンショットと画面コンテキストのツール
- 画像処理ツール
利用可能なツール(29)
| カテゴリ | ツール名 | 説明 |
|---|---|---|
| ファイルシステム | get_allowed_directory | 現在の作業ディレクトリのパスを取得します |
update_allowed_directory | 作業ディレクトリを変更します | |
create_directory | 新しいディレクトリまたは入れ子のディレクトリを作成します | |
write_file | 新しい内容でファイルを作成または上書きします | |
edit_file | テキストファイルを行単位で編集します | |
read_file | 1 つ以上のファイルの内容を読み取ります | |
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_fetch | URL からコンテンツを取得します |
web_search | ウェブ検索を実行します | |
| 画面ツール | capture_screenshot | 画面またはウィンドウのスクリーンショットを撮影します |
get_active_apps | 実行中のアプリケーションを一覧表示します | |
get_available_windows | 開いているすべてのウィンドウを一覧表示します | |
| システム | get_system_info | システムの詳細情報を取得します |
| ユーティリティ | batch_tools | 複数のツール操作をまとめて実行します |
think | 変更を加えずに推論を記録します | |
| ToDo | todo_read | 現在のワークスペースの ToDo リストを読み取ります |
todo_write | 検証を行い、ToDo リスト全体を置き換えます | |
todo_update | ID を指定して特定の ToDo 項目を更新します |
ツールの詳細なドキュメント
基本的なファイル操作
| ツール | パラメーター | 戻り値 |
|---|---|---|
| read_file | files: [{path: string, offset?: integer, limit?: integer}] | ファイルの内容(単一または複数のファイル) |
| write_file | path: string, content: string | 成功確認 |
| move_file | source: string, destination: string | 成功確認 |
| copy_file | source: string, destination: string, recursive?: boolean | 成功確認 |
| delete_file | path: string | 成功確認 |
| get_file_info | path: 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_directory | directory: string (絶対パス) | 成功確認 |
| list_directory | path: string | ディレクトリの内容一覧 |
| create_directory | path: string | 成功確認 |
| search_files | pattern: 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
}
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | コンテンツを取得する URL(http/https のみ) |
| headers | object | いいえ | リクエストに含める任意の HTTP ヘッダー |
| timeout | integer | いいえ | 応答を待つ最大時間(デフォルト:10s) |
| save_to_file | string | いいえ | 応答コンテンツの保存先パス(許可されたディレクトリ内) |
| convert_html_to_markdown | boolean | いいえ | 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"
}
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 処理する検索クエリです。より良い結果を得るには、具体的に指定してください。 |
| num_results | integer | いいえ | 返す検索結果の最大数(デフォルト:10、最大:20) |
| convert_html_to_markdown | boolean | いいえ | true の場合、読みやすさを向上させるためコンテンツを HTML から markdown に変換します(デフォルト:true) |
| search_engine | string | いいえ | 使用する検索エンジンを指定します:"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"
}
}
]
}
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| description | string | はい | バッチ操作の簡潔な説明 |
| sequential | boolean | いいえ | ツールを順番に実行するかどうか(デフォルト:false) |
| invocations | array | はい | 実行するツール呼び出しのリスト |
| invocations[].tool | string | はい | 呼び出すツールの名前 |
| invocations[].arguments | object | はい | 指定したツールに渡す引数 |
戻り値: すべてのツール呼び出しの結果をまとめたもので、各ツールごとに成功/エラーのステータスを示します。結果は元の呼び出し順に、明確なセクション見出しを付けて表示されます。
このツールを使うと、複数の操作を 1 つのリクエストで効率よく実行できます。sequential が false(デフォルト)の場合、パフォーマンス向上のためツールは並列で実行されます。sequential が true の場合、ツールは順番に実行され、いずれかのツールが失敗すると実行を停止します。
IMPORTANT: バッチ内のすべてのツールは、同じ作業ディレクトリのコンテキストで実行されます。あるツールがディレクトリを作成し、後続のツールがそのディレクトリ内で作業する必要がある場合は、次のいずれかを行う必要があります。
- 現在の作業ディレクトリからの相対パスを使用する(例:"src" ではなく "project/src")、または
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."
}
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| thought | string | はい | 詳細な思考、分析、または推論プロセス |
戻り値: 思考をマークダウン形式で返します。思考演習であることを示す注記が含まれます。
このツールは、複雑な問題について考えたり、解決策をブレインストーミングしたり、実際に変更を加えずに実装計画を立てたりする場合に便利です。推論プロセスを記録したり、さまざまなアプローチを評価したり、行動を起こす前に複数段階の戦略を計画したりするのに最適です。
コード実行
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 | いいえ | 最大実行時間(デフォルト:5s) |
要件:
- 対応する言語のランタイムがインストールされていること
- コマンドがシステムの PATH で使用可能であること
- 一時ファイルを作成する適切な権限があること
⚠️ セキュリティ警告: このツールは、システム上で任意のコードを実行します。必ず次の点を守ってください。
- 実行前にコードを十分に確認する
- コードの目的と想定される結果を理解する
- 信頼できないコードは絶対に実行しない
- システムへの潜在的な影響に注意する
- 実行出力を監視する
execute_shell_script
安全対策と制限のもとで、シェルスクリプト(bash/sh)を実行します。
{
"script": "echo \"Current directory:\" && pwd",
"timeout": 300
}
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| script | string | はい | 実行するシェルスクリプト |
| timeout | integer | いいえ | 最大実行時間(デフォルト:300s、最大:600s) |
機能:
- システム間の互換性を最大限に高めるため、/bin/sh を使用します
- 許可されたディレクトリ内で実行します
- stdout と stderr を個別に出力します
- 適切なエラー処理とタイムアウト制御を行います
⚠️ セキュリティ警告: このツールは、システム上で任意のシェルコマンドを実行します。必ず次の点を守ってください。
- 実行前にスクリプトを十分に確認する
- スクリプトの目的と想定される結果を理解する
- 信頼できないスクリプトは絶対に実行しない
- システムへの潜在的な影響に注意する
- 実行出力を監視する
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 を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
