> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/penetorshontesuto/configure-a-pentest/testing-mcp-servers.md).

# MCPサーバーのテスト

Aikido Pentest は Model Context Protocol（MCP）サーバーをテストできます。評価対象を MCP エンドポイントに向け、Aikido に認証方法を伝えれば、あとはエージェントが処理します。

{% hint style="warning" %}
ステージング環境またはテスト環境で MCP サーバーのペンテストを実施します。エージェントはエンドポイントにリクエストを送り、そこを通じてデータを作成・変更・削除する場合があります。
{% endhint %}

## 何がテストされるか

Aikido はサーバーが公開するツール、リソース、プロンプトを調査します。主な注目領域は次のとおりです。

* **ツールの発見** – サーバーがどのツール、リソース、プロンプトを公開しているか、また到達できるべきでないものがないか
* **認可** – 認証されていない、または権限の低い呼び出し元が、呼び出してはいけないツールを実行したり、読めないはずのリソースを読めたりしないか
* **安全でないツール利用** – パラメータインジェクション、SSRF 風の挙動、コマンド実行、ツール呼び出しによるデータ流出
* **機密データの露出** – ツールやリソースによって返される秘密情報、トークン、またはテナント間データ
* **統合リスク** – MCP サーバーと、そのツールが到達する下流システムとの間の信頼境界が弱いこと

エージェントおよびツール固有のリスクの背景については、 [エージェント型アプリケーション向け OWASP Top 10](/docs/docs-ja/penetorshontesuto/coverage-and-findings/what-issues-can-aikido-pentest-find/owasp-top-10-for-agentic-applications.md).

## 必要なもの

* A **リモートエンドポイント** MCP サーバー用（例： `https://mcp.staging.example.com/mcp`).
* その **認証** サーバーが想定するもの。通常はヘッダーで送信するトークンまたは API キーです。
* ドメインの所有権。これにより [確認できます](/docs/docs-ja/penetorshontesuto/configure-a-pentest/domain-verification.md).
* Aikido の [ペンテスト用 IP アドレス](/docs/docs-ja/penetorshontesuto/prepare-a-pentest/ip-addresses-for-pentest.md) をファイアウォール、WAF、または API ゲートウェイの許可リストに追加し、エージェントがエンドポイントに到達できるようにします。

## ペンテストを設定する

{% stepper %}
{% step %}

### エンドポイントをスコープに追加

評価を作成し、 **範囲** のステップで MCP サーバーのエンドポイントをターゲットとして入力します。クライアントが接続する正確な URL とパスを使用してください。例： `https://mcp.staging.example.com/mcp`.

完了する [ドメインの確認](/docs/docs-ja/penetorshontesuto/configure-a-pentest/domain-verification.md) を、エンドポイントを提供するホストに対して行います。サーバーが内部ネットワークからしか到達できない場合は、 [Aikido Broker](/docs/docs-ja/miscellaneous-info/aikido-broker-for-internal-applications.md)：内部 MCP URL をブローカーリソースとして追加し、そのブローカー URL をスコープで選択します。
{% endstep %}

{% step %}

### 認証情報を提供する

のステップで **テストユーザー、** MCP への接続方法を記載します。主に次の 2 つの方法があります。

1. MCP サーバーへ直接認証する場合：
   1. **Bearer トークン（最も一般的）。** MCP の認可標準は OAuth 2.1 なので、ほとんどのサーバーはアクセストークンを想定しています。テスト用 ID のトークンを発行し、次のように追加します。 `Authorization: Bearer <token>`.
   2. **API キー。** サーバーによっては、代わりに次のようなキー用ヘッダーを使います。 `X-API-Key: <key>`.
   3. **マルチテナントルーティング。** サーバーが必要とするテナントまたはワークスペースのヘッダーを、トークンと併せて追加します。
2. 対話型のユーザーログインフローで認証する場合：ユーザーがブラウザーでログインし、セッショントークンにアクセスする方法を、手順を追って説明してください。
   {% endstep %}

{% step %}

### コンテキストを追加してから開始

最良の結果を得るには、 **MCP サーバーのコードリポジトリ** を **コードとドキュメント** のステップをリンクしてください。これにより実行はホワイトボックス・ペンテストになり、エージェントにより深いロジックフローの脆弱性を見つけるための最大限のコンテキストが与えられます。Aikido はソースを読み取り、ツール、その呼び出し元、そして到達先の下流システムを把握します。

リポジトリをリンクできない場合は、 **追加コンテキスト** を使って、サーバーが公開する動作、各動作に到達すべき呼び出し元やロール、そしてそれらが接続する下流システム（データベース、内部 API、ファイルストレージ）を説明します。

残りの **安全確認**, **料金**、そして **要約** ステップを完了し、その後実行を開始します。サーバーが大量リクエストに敏感な場合は、 **1 秒あたりの最大リクエスト数** の **安全確認** ステップで、負荷を軽減するために値を下げます。
{% endstep %}
{% endstepper %}

## ヒント

* **専用のテストインスタンスを使用する** 本番以外のデータを使い、可能な箇所では破壊的な操作をモック化または無効化します。
* **テストトークンを発行する** 検証したい権限を付与し、評価後にローテーションしてください。
* **本番環境に合わせる。** スコープに含めるエンドポイント、パス、認証は、実際のクライアントが使うものにしてください。

## サポートが必要ですか？

エージェントがエンドポイントに到達できない、または認証に失敗する場合は、 **Intercomチャット** 右下隅のものを開いてください。私たちのチームがお手伝いします！


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/docs/docs-ja/penetorshontesuto/configure-a-pentest/testing-mcp-servers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
