SkyDeckAIコード
AI駆動型開発ワークフローのための包括的なツールセットを提供するMCPサーバー。ファイルシステム操作、複数のプログラミング言語に対応したtree-sitterを用いたコード分析、Git操作、コード実行、HTMLからMarkdownへの変換によるWebコンテンツの取得、マルチエンジンWeb検索、コードコンテンツ検索、Lint検出、システム情報取得などの機能を備えています。ローカルリソースとリモートリソースの両方に直接アクセスできるようにすることで、AIによるソフトウェア開発タスクの支援能力を強化するように設計されています。
以前は MCP-Server-AIDD として知られていました
このMCPサーバーは以前はmcp-server-aidd
という名前でした。SkyDeck.aiのチームがEast Agileと共にこのアプリケーションを開発したことを記念して、 skydeckai-code
に改名されました。しかし、より重要なのは、AI駆動開発(AIDD)という用語がまだ普及していないことに気づいたことです。人々は一目見ただけでは、それが何を意味するのか理解できませんでした。法学修士(LLM)も同様です。「コード」の方がはるかに直感的でした。そして、言語的に直感的であることは、エージェントAIの世界では重要です。
インストール
# Using pip
pip install skydeckai-code
クロードデスクトップセットアップ
claude_desktop_config.json
に追加します:
{
"mcpServers": {
"skydeckai-code": {
"command": "uvx",
"args": ["skydeckai-code"]
}
}
}
SkyDeck AIヘルパーアプリ
SkyDeck AI Helper アプリをご利用の場合は、「SkyDeckAI Code」を検索してインストールできます。
主な特徴
- ファイルシステム操作(読み取り、書き込み、編集、移動、コピー、削除)
- ディレクトリ管理とトラバーサル
- tree-sitterを使った多言語コード解析
- Python および JavaScript/TypeScript のコード リンティングと問題検出
- 正規表現パターンマッチングによるコードコンテンツの検索
- 安全対策を備えた多言語コード実行
- Git 操作 (ステータス、差分、コミット、ブランチ管理、クローン)
- HTML から Markdown への変換による API および Web サイトからの Web コンテンツの取得
- 信頼性の高いフォールバックメカニズムを備えたマルチエンジンウェブ検索
- 並列およびシリアルツール実行のためのバッチ操作
- 設定可能なワークスペース境界によるセキュリティ制御
- スクリーンショットと画面コンテキストツール
- 画像処理ツール
利用可能なツール
基本的なファイル操作
道具 | パラメータ | 返品 |
---|
読み取りファイル | パス: 文字列、オフセット?: 整数、制限?: 整数 | ファイルの内容(全体または一部) |
複数のファイルを読み取る | パス: 文字列[] | ヘッダー付きの複数のファイルコンテンツ |
書き込みファイル | パス: 文字列、コンテンツ: 文字列 | 成功確認 |
ファイルの移行 | ソース: 文字列、宛先: 文字列 | 成功確認 |
コピーファイル | ソース: 文字列、宛先: 文字列、再帰?: ブール値 | 成功確認 |
ファイルを削除 | パス: 文字列 | 成功確認 |
ファイル情報を取得する | パス: 文字列 | ファイルのメタデータ(サイズ、タイムスタンプ、権限) |
一般的な使用法:
# 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_ステータス | repo_path: 文字列 | 作業ディレクトリのステータス |
git_add | repo_path: 文字列、ファイル: 文字列[] | ステージングの確認 |
git_reset | repo_path: 文字列 | ステージング解除の確認 |
git_checkout | repo_path: 文字列、branch_name: 文字列 | ブランチスイッチの確認 |
git_create_branch | repo_path: 文字列、branch_name: 文字列 | ブランチ作成の確認 |
git_clone | url: 文字列、target_path: 文字列、branch?: 文字列 | クローンの確認 |
git_diff_unstaged | repo_path: 文字列 | ステージングされていない変更の差分 |
git_diff_staged | repo_path: 文字列 | ステージングされた変更の差分 |
git_show | repo_path: 文字列、commit_hash: 文字列 | 特定のコミットの詳細 |
複雑なGit操作
git_commit
{
"repo_path": ".",
"message": "feat: add new feature"
}
戻り値: コミット ハッシュと確認。
git_diff
{
"repo_path": ".",
"target": "main"
}
戻り値: 現在のブランチと指定されたターゲット ブランチまたはコミット間のすべての変更を表示する詳細な diff 出力。
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"}'
コード分析
コードベースマッパー
ソースコード構造を分析します:
戻り値:
- クラスとそのメソッド
- 関数とパラメータ
- モジュール構造
- コード構成統計
- 相続関係
サポートされている言語:
- 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)
チェックリント
ネイティブ リンティング ツールを使用して、コードベース内のリンティングの問題を確認します。
{
"path": "src",
"languages": ["python", "javascript"],
"linters": {
"pylint": "--disable=C0111",
"flake8": true,
"eslint": "--fix"
},
"max_issues": 100
}
パラメータ:
パラメータ | タイプ | 必須 | 説明 |
---|
パス | 弦 | いいえ | リンティングするディレクトリまたはファイル (デフォルト: ".") |
言語 | 配列 | いいえ | リンティングする言語のリスト(空の場合は自動検出) |
リンター | 物体 | いいえ | 特定のリンターの設定 - ブール値または CLI 引数を使用できます |
最大発行数 | 整数 | いいえ | 返される問題の最大数(デフォルト: 100、無制限の場合は 0) |
**戻り値:**コードベースで見つかったリンティングの問題に関する詳細なレポート(ファイルパス、行番号、問題の説明、重大度レベルを含む)が返されます。問題はファイルごとにグループ化され、重大度順に並べられます。
サポートされている言語とリンター:
- 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
画面コンテキストと画像ツール
アクティブアプリを取得する
ユーザーのシステム上で現在アクティブなアプリケーションのリストを返します。
パラメータ:
パラメータ | タイプ | 必須 | 説明 |
---|
詳細付き | ブール値 | いいえ | 各アプリケーションに関する追加の詳細を含めるかどうか(デフォルト: 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 などの一般的な画像形式をサポートし、最適な表示のために画像のサイズを自動的に変更します。
ウェブツール
ウェブフェッチ
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 | 弦 | はい | コンテンツを取得する URL (http/https のみ) |
ヘッダー | 物体 | いいえ | リクエストに含めるオプションのHTTPヘッダー |
タイムアウト | 整数 | いいえ | 応答を待つ最大時間(デフォルト: 10秒) |
ファイルに保存 | 弦 | いいえ | 応答コンテンツを保存するパス(許可されたディレクトリ内) |
HTMLからマークダウンへの変換 | ブール値 | いいえ | true の場合、読みやすさを向上させるために HTML コンテンツをマークダウンに変換します (デフォルト: true) |
戻り値: HTTPステータスコードとサイズ情報を含むテキスト形式のレスポンスコンテンツ。バイナリコンテンツの場合はメタデータを返し、要求に応じてファイルに保存します。convert_html_to_markdown が有効な場合、HTMLコンテンツは読みやすさを向上させるために自動的にマークダウン形式に変換されます。
このツールを使用すると、サイズ制限 (最大 10 MB) とセキュリティ制約を遵守しながら、Web API にアクセスしたり、ドキュメントを取得したり、Web からコンテンツをダウンロードしたりできます。
使用例:
# 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
}'
ウェブ検索
複数の検索エンジンを使用して強力な Web 検索を実行し、簡潔で関連性の高い結果を返します。
{
"query": "latest python release features",
"num_results": 8,
"convert_html_to_markdown": true,
"search_engine": "bing"
}
パラメータ:
パラメータ | タイプ | 必須 | 説明 |
---|
クエリ | 弦 | はい | 処理する検索クエリ。より良い結果を得るには、具体的に入力してください。 |
結果数 | 整数 | いいえ | 返される検索結果の最大数(デフォルト: 10、最大: 20) |
HTMLからマークダウンへの変換 | ブール値 | いいえ | true の場合、コンテンツは読みやすさを向上させるために HTML からマークダウンに変換されます (デフォルト: 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 がsequential
(デフォルト)の場合、ツールは並列実行され、パフォーマンスが向上します。sequential がsequential
の場合、ツールは順番に実行され、いずれかのツールが失敗した場合は実行が停止されます。
重要:バッチ内のすべてのツールは同じ作業ディレクトリコンテキストで実行されます。あるツールがディレクトリを作成し、後続のツールがそのディレクトリ内で動作する必要がある場合は、次のいずれかを実行する必要があります。
- 現在の作業ディレクトリからの相対パスを使用する(例:単に「src」ではなく「project/src」)か、
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."
}
パラメータ:
パラメータ | タイプ | 必須 | 説明 |
---|
考え | 弦 | はい | あなたの詳細な思考、分析、推論のプロセス |
**戻り値:**あなたの考えはマークダウン形式で、これが思考練習であったことを示すメモとともに返されます。
このツールは、複雑な問題をじっくり考えたり、解決策をブレインストーミングしたり、実際に変更を加えることなく実装計画を立てたりするのに役立ちます。推論プロセスを文書化したり、複数のアプローチを評価したり、行動を起こす前に段階的な戦略を計画したりするのに最適な方法です。
使用例:
# 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で利用可能である必要があります
- 一時ファイル作成のための適切な権限
⚠️**セキュリティ警告:**このツールはシステム上で任意のコードを実行します。常に以下の点に注意してください。
- 実行前にコードを徹底的にレビューする
- コードの目的と期待される結果を理解する
- 信頼できないコードを実行しない
- 潜在的なシステムへの影響に注意する
- 実行出力を監視する
シェルスクリプトの実行
安全対策と制限を伴ってシェル スクリプト (bash/sh) を実行します。
{
"script": "echo \"Current directory:\" && pwd",
"timeout": 300
}
パラメータ:
パラメータ | タイプ | 必須 | 説明 |
---|
スクリプト | 弦 | はい | 実行するシェルスクリプト |
タイムアウト | 整数 | いいえ | 最大実行時間(デフォルト: 300秒、最大: 600秒) |
使用例:
# 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出力を分離する
- 適切なエラー処理とタイムアウト制御
⚠️**セキュリティ警告:**このツールはシステム上で任意のシェルコマンドを実行します。常に以下の点に注意してください。
- 実行前にスクリプトを徹底的に確認する
- スクリプトの目的と期待される結果を理解する
- 信頼できないスクリプトを実行しない
- 潜在的なシステムへの影響に注意する
- 実行出力を監視する
構成
設定ファイル: ~/.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 License 2.0 -ライセンスを参照