
# Aikido MCP の使用

MCP サーバーをインストールすると、これらのツールを自分で呼び出す必要はありません。自然な言葉で依頼すれば、エージェントが適切なツールを選択します。

## 利用可能なツール

### aikido\_scan\_paths

ディスクに保存されたファイルを、脆弱性（SAST）、ハードコードされたシークレット、IaC の設定ミスについてスキャンします。これが推奨されるスキャンツールです。

* スキャンするファイルを `paths` に、絶対パスまたは `root` からの相対パスで指定します。ディレクトリは拒否されるため、各ファイルを列挙してください
* 検出結果がワークスペースまたはリポジトリのルートからの相対パスで報告されるよう、`root` にそのルートを設定します。存在しないパスや `root` の外にあるパスはスキップされ、`skipped_paths` に列挙されます
* ファイルがリポジトリに由来する場合は、必要に応じて `repository_name` を渡すと、Aikido でそのリポジトリに紐付けられます

### aikido\_full\_scan

ファイルの内容として渡されたコードをスキャンします。生成されたが未保存のコード、貼り付けられたスニペット、提案された変更など、コードがまだディスク上にない場合に使用します。ファイルがディスク上に存在する場合は、常に `aikido_scan_paths` を使用してください。

* `files_to_scan` に各ファイルを `relativeFilePath` とその `content` として指定します

### aikido\_oss\_dependency\_scan

ディスクに保存された依存関係マニフェストとロックファイルを、脆弱なパッケージ、古いパッケージ、悪意のあるパッケージについてスキャンします。

* スキャンするマニフェストとロックファイルを `paths` に指定します。例: `package.json` と `package-lock.json`、`requirements.txt`、`go.mod` と `go.sum`、または `pom.xml`。ディレクトリは拒否されます
* 検出結果がワークスペースまたはリポジトリのルートからの相対パスで報告されるよう、`root` にそのルートを設定します
* ファイルがリポジトリに由来する場合は、必要に応じて `repository_name` を渡します

### aikido\_issues\_list

Aikido フィードからセキュリティ課題を取得します。

* スコープでフィルタリング: `repo_name`、`cloud_name`、`vm_name`、`domain_name`、`container_name`、`workspace_name` または `team_name`
* 必要に応じて、`repo_branch_name` でリポジトリのスコープを単一のブランチに絞り込みます
* 1 つ以上の課題タイプを選択: `sast`、`leaked_secret`、`iac`、`open_source`、`cloud`、`cloud_instance`、`docker_container`、`malware`、`eol`、`mobile`、`surface_monitoring`、`scm_security`、`license`、`ai_pentest`、`ai_code_analysis`
* `labels` でフィルタリングすると、指定したラベルのいずれかを持つリポジトリまたはコンテナイメージ上の課題のみを返します
* `severity` でフィルタリングすると、特定の重大度、または指定したしきい値以上の課題のみを返します
* `page`（0 始まり）で結果をページ送りします
* `out_of_sla` または `sla_due_soon` のフィルターを選択して SLA でフィルタリングします
* 各課題をタイトル、タイプ、重大度、修正手順とともに返します

#### 単一の課題の参照

`issue_id` を渡すと、1 つの課題の詳細を取得できます。一覧表示よりも多くの情報が返されます。

* `score_reasons`: 課題がその重大度になったすべての理由。それぞれに読みやすい説明と、スコアをどれだけ変動させたかが含まれます（例: 実際に悪用が確認されている既知のエクスプロイト）
* `pentest`: AI ペンテストの検出結果の場合、概要、リスク、再現手順、根本原因、修正方法を含む攻撃分析
* `licenses`: ライセンス課題の場合、検出されたライセンスとその法的リスク、およびその理由

### aikido\_workspaces\_list

アクセス権のある Aikido ワークスペースを一覧表示します。エージェントは、`workspace_name` で課題をフィルタリングする前に、正確なワークスペース名を調べるためにこれを使用します。

### aikido\_ignore\_issue

フィード内のセキュリティ課題を無視します。`issue_id` と `reason` が必要です。

### aikido\_unignore\_issue

以前に無視した課題の無視を解除します。`issue_id` と `reason` が必要です。

### aikido\_snooze\_issue

フィード内のセキュリティ課題を一時的に非表示にします。`issue_id`、`reason`、および `duration`（`1_day`、`1_week`、`1_month`、`3_months`、`6_months` または `1_year`）が必要です。

### aikido\_unsnooze\_issue

以前にスヌーズした課題のスヌーズを解除します。`issue_id` が必要です。

### aikido\_adjust\_issue\_severity

セキュリティ課題の重大度を引き上げまたは引き下げます。`issue_id`、新しい `adjusted_severity`（`critical`、`high`、`medium` または `low`）、および `reason` が必要です。

### aikido\_login

Aikido のサインインフローを開始します。サインイン URL を返すか、すでにサインイン済みであることを確認します。

* サインインすると、アカウントのリージョンに自動的にリダイレクトされます。誤ったリージョンに到達した場合にのみ `region`（`eu`、`us`、`me`、`au`）を設定してください
* アカウントを切り替える場合や再度サインインする場合は `force_reauth` を使用します

{% hint style="info" %}
すべての MCP ツールがデフォルトで有効になっているわけではありません。管理者は[権限ページ](https://app.aikido.dev/settings/integrations/ide/mcp/permissions)で全員に対して有効にできます
{% endhint %}

## プロンプト例

### コードのスキャン

* 「Aikido を使ってこのファイルのセキュリティ課題をスキャンして」
* 「コミットする前に、ステージした変更に Aikido スキャンを実行してシークレットをチェックして」
* 「今編集したファイルを Aikido でスキャンして、`payments-api` リポジトリに紐付けて」

### リポジトリ別の課題の確認

* 「`payments-api` のすべての重大（critical）な Aikido 課題を表示して」
* 「Aikido から `frontend-web` の漏洩したシークレットを一覧表示して」
* 「Aikido は `api-gateway` でどのようなオープンソースの脆弱性を検出している？」
* 「Aikido から `infra-core` の SAST と IaC の課題を表示して」

### クラウド、VM、コンテナ別の課題の確認

* 「`prod-aws` のすべての Aikido クラウド課題を一覧表示して」
* 「Aikido から `web-server-01` のマルウェアの検出結果を表示して」
* 「Aikido によると、`nginx-proxy` コンテナではどのようなサポート終了ソフトウェアが動いている？」
* 「Aikido で `example.com` のサーフェスモニタリング課題を表示して」

### 1 つの課題の深掘り

* 「Aikido 課題 `12345` の詳細をすべて教えて」
* 「Aikido 課題 `12345` が critical と評価されているのはなぜ？既知のエクスプロイトはある？」
* 「Aikido のペンテスト検出結果 `12345` の再現手順を順を追って説明して」

### 課題の管理

* 「Aikido 課題 `12345` を 1 か月スヌーズして。次のリリースで修正する予定です」
* 「Aikido 課題 `12345` の重大度を low に下げて。そのエンドポイントは内部専用です」
* 「Aikido 課題 `12345` の無視を解除して。緩和策が削除されました」
* 「どの Aikido ワークスペースにアクセスできる？」

### 組み合わせたワークフロー

* 「Aikido を使って現在の変更をスキャンし、同じリポジトリの既存の critical な課題を表示して」
* 「この PR を Aikido でチェックして、リポジトリ内の未解決の SAST 課題と比較して」

## スキャンを実行するタイミングの制御

スキャンするタイミングを決めるのは Aikido ではなく、エージェントです。スキャンは、エージェントが `aikido_scan_paths` を呼び出したときに実行されます。

そのため、スキャンについてエージェントに伝えた内容は、すぐにセッションの残りの間有効になります。

### スキャンの一時停止

* 「私が依頼するまで Aikido スキャンを実行しないで。」
* 「これを繰り返し調整している間は Aikido スキャンを一時停止して。」
* 「今は Aikido スキャンをスキップして。コミット前に依頼します。」

### 編集ごとではなく最後に 1 回スキャンする

* 「編集のたびにスキャンしないで。タスク全体が完了したら Aikido スキャンを 1 回実行して。」
* 「ステージした変更への Aikido スキャンは、コミットの直前に実行して。それより前には実行しないで。」

### スキャンを小さく保つ

スキャン時間は投入するコード量に比例するため、スキャンを無効にするよりも範囲を絞り込むほうが通常は高速です。

* 「ディレクトリ全体ではなく、変更したファイルだけをスキャンして。」
* 「`src/payments/` だけをスキャンして。」
* `aikido_full_scan` よりも `aikido_scan_paths` を優先してください。ファイルの内容を会話経由で渡すのではなく、ディスクからファイルを読み取ります。

### デフォルトにする

プロンプトでの指示は 1 セッションの間だけ有効です。すべてのセッションのデフォルトを変更するには、同じ指示をエージェントのルールファイル（`CLAUDE.md`、`.cursor/rules`、`AGENTS.md` など）に記述します。

```
Run an Aikido scan only when I explicitly ask for one, or before a commit.
```
