> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# モデルコンテキストプロトコル(MCP)

> モデルコンテキストプロトコルを使ってAIアシスタントをCorgeaに接続

Corgeaは[モデルコンテキストプロトコル（MCP）](https://modelcontextprotocol.io/)をサポートしています。ClaudeなどのAIアシスタントから、セキュリティスキャン、問題、ポリシーを直接操作できます。MCPを利用すると、AIモデルが組織のセキュリティコンテキストを理解し、より関連性の高い支援を提供できます。

## MCPとは

モデルコンテキストプロトコルは、AIモデルを外部のデータソースやツールに安全に接続するためのオープンスタンダードです。CorgeaのMCP連携により、AIアシスタントは次の操作を行えます。

* セキュリティスキャン結果の照会
* 脆弱性の詳細を取得する
* セキュリティの問題をリストおよびフィルタ
* コードの品質問題のリストおよびフィルター
* SCA、IaC、依存関係インベントリデータへのアクセス
* ブロッキングルールとポリシーのチェック

## はじめに

### 前提条件

* Corgea APIトークン(アカウント設定から取得)
* MCP互換クライアント(例:Claude Desktop、Continue、または任意のMCPクライアント)

### 接続詳細

**MCPサーバーURL:**

```
https://www.corgea.app/mcp
```

またはシングルテナントデプロイの場合:

```
https://<your-instance>.corgea.app/mcp
```

**認証:**
すべてのMCPリクエストは、 `CORGEA-TOKEN` ヘッダー内のCorgea APIトークンによる認証が必要です。

<Note>
  CorgeaはPOST上のJSONレスポンスによるステートレスMCPリクエストをサポートしています。スタンドアロンのサーバー送信イベント(SSE)ストリームはサポートされていません。
</Note>

## 利用可能なツール

CorgeaのMCPサーバーは、AIアシスタント向けの以下のツールを提供しています:

### get\_scan\_info

特定のSASTスキャンに関する詳細情報を取得します。

**パラメータ:**

* `scan_id` (文字列、必須):スキャンの一意識別子

**戻り値:**
詳細なスキャン情報(状況、検出結果数、スキャン日、リポジトリ情報など)。

**例:**

```json theme={null}
{
  "scan_id": "abc123",
  "status": "completed",
  "created_at": "2024-11-01T10:30:00Z",
  "findings_count": 15,
  "project": "my-project",
  "repository": "https://github.com/myorg/myrepo"
}
```

***

### get\_issue\_info

特定のセキュリティ問題に関する詳細情報を取得します。

**パラメータ:**

* `issue_id` (文字列、必須):問題の一意識別子
* `include_reachability` (ブール型、任意):問題のエンドポイント到達可能性の詳細を含める

**戻り値:**
脆弱性の種類、重大度、場所、修正推奨、修復状況、オプションのエンドポイント到達可能性の詳細を含む包括的な問題詳細。

**例:**

```json theme={null}
{
  "issue_id": "issue-456",
  "title": "SQL Injection",
  "severity": "high",
  "file": "src/database.py",
  "line": 42,
  "description": "User input not properly sanitized",
  "fix_available": true
}
```

***

### get\_sca\_issue\_info

特定のソフトウェア構成分析（SCA）問題に関する詳細情報を取得します。

**パラメータ:**

* `issue_id` (文字列、必須):SCA問題の一意識別子

**戻り値:**
SCAの問題の詳細には、パッケージ、重大度、CVE、修正バージョン、ファイル位置、依存関係の到達可能性分析が含まれます。

**例:**

```json theme={null}
{
  "status": "ok",
  "issue": {
    "id": "sca-789",
    "package": {
      "name": "lodash",
      "version": "4.17.15",
      "ecosystem": "npm",
      "fix_version": "4.17.21"
    },
    "cve": "CVE-2021-23337",
    "severity": "high",
    "reachability": {
      "status": "vulnerable_usage_reachable",
      "description": "Vulnerable function is reachable from application code",
      "usages": []
    }
  }
}
```

***

### list\_security\_issues

任意のフィルターを適用してセキュリティ問題を一覧表示します。

**パラメータ:**

* `scan_id` (文字列、任意):スキャンIDで問題を絞り込む
* `project` (文字列、任意):プロジェクト名で問題を絞り込む
* `repo` (文字列、任意):リポジトリURLで問題を絞り込む
* `include_reachability` (ブール型、任意):各問題のエンドポイント到達可能性の概要を含める

**戻り値:**
指定されたフィルターに適合するセキュリティ問題のリスト。

**例:**

```json theme={null}
{
  "status": "ok",
  "count": 25,
  "issues": [
    {
      "id": "issue-123",
      "title": "Cross-Site Scripting (XSS)",
      "severity": "medium",
      "status": "open"
    }
  ]
}
```

***

### list\_code\_quality\_issues

コード品質の検出結果をセキュリティ問題とは分けて、任意のフィルターを適用して一覧表示します。

**パラメータ:**

* `scan_id` (文字列、任意):スキャンIDで問題を絞り込む
* `project` (文字列、任意):プロジェクト名で問題を絞り込む
* `repo` (文字列、任意):リポジトリURLで問題を絞り込む
* `filters`(オブジェクト、任意):`urgency`、`status`、`confidence`、`language`、`file_path`、`classification`、`sla_status`、`branch`、`show_false_positives`、または`sort_by`でフィルタリング
* `page` (整数、任意):ページ番号
* `page_size` (整数、任意):ページあたりの結果数、最大50

`classification`フィールドには、`Maintainability`のようなコード品質ラベルが含まれ、CWEではありません。誤検知はデフォルトで除外されます。

**戻り値:**
指定されたスコープとフィルターに合致するコード品質の問題のみです。

***

### list\_sca\_security\_issues

任意のフィルターを適用して、ソフトウェア構成分析（SCA）のセキュリティ問題を一覧表示します。

**パラメータ:**

* `scan_id` (文字列、任意):スキャンIDで問題を絞り込む
* `project` (文字列、任意):プロジェクト名で問題を絞り込む
* `repo` (文字列、任意):リポジトリURLで問題を絞り込む
* `filters`(オブジェクト、任意):`severity`、`package`、`ecosystem`、`cve`、`path`、`has_fix`、`branch`、`reachability`、`sort_by`などのフィールドでフィルタリングします。
* `include_reachability` (ブール値、任意):各SCA問題の依存関係の到達可能性の状態と説明を含める

サポートされる `reachability` フィルター値は `not_direct_dependency`、 `pending`、 `vulnerable_usage_reachable`、 `vulnerable_usage_unreachable`、 `dead_dependency`です。

**戻り値:**
SCA問題の一覧(脆弱性依存関係、CVE、バージョン情報を含む)。

**例:**

```json theme={null}
{
  "status": "ok",
  "count": 12,
  "sca_issues": [
    {
      "id": "sca-789",
      "package": "lodash",
      "current_version": "4.17.15",
      "fixed_version": "4.17.21",
      "cve": "CVE-2021-23337",
      "severity": "high"
    }
  ]
}
```

***

### list\_iac\_security\_issues

オプションフィルタリング付きのインフラストラクチャ・アズ・コード(IaC)セキュリティ問題をリストアップします。

**パラメータ:**

* `scan_id` (文字列、任意):スキャンIDによるフィルターの問題
* `project` (文字列、任意):プロジェクト名で問題を絞り込む
* `repo` (文字列、任意):リポジトリURLによる問題のフィルタリング
* `filters`(オブジェクト、任意):`severity`、`provider`、`service`、`iac_type`、`rule_id`、`avd_id`、`path`、`search`、`sort_by`、または`branch`でフィルタリング
* `page` (整数、任意):ページ番号
* `page_size` (整数、任意):ページあたりの結果数、最大50

**戻り値:**
IaCの問題一覧(重大度、影響を受けるサービス、ルール識別子、ファイルの位置、スキャンコンテキスト)。

**例:**

```json theme={null}
{
  "status": "ok",
  "page": 1,
  "total_pages": 1,
  "total_issues": 1,
  "issues": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "title": "Public S3 bucket",
      "severity": "HIGH",
      "provider": "aws",
      "service": "s3",
      "iac_type": "terraform",
      "location": {
        "path": "infra/main.tf",
        "start_line": 10
      }
    }
  ]
}
```

***

### list\_dependencies

スキャン中に検出されたソフトウェア依存関係をオプションのフィルタリングでリストアップします。

**パラメータ:**

* `scan_id` (文字列、任意):スキャンIDによる依存関係のフィルター
* `project` (文字列、任意):プロジェクト名による依存関係のフィルター
* `repo` (文字列、任意):リポジトリURLによる依存関係のフィルタリング
* `filters`(オブジェクト、任意):`name`、`version`、`type`、`path`、`purl`、`license`、`dep_type`、`search`、`sort_by`、または`branch`でフィルタリング
* `page` (整数、任意):ページ番号
* `page_size` (整数、任意):ページあたりの結果数、最大50

**戻り値:**
パッケージ名、バージョン、パッケージURL、ライセンスデータ、依存関係、スキャンコンテキストなどの依存関係のリスト。

**例:**

```json theme={null}
{
  "status": "ok",
  "page": 1,
  "total_pages": 1,
  "total_dependencies": 1,
  "dependencies": [
    {
      "id": "22222222-2222-2222-2222-222222222222",
      "name": "django",
      "version": "4.2.0",
      "type": "pypi",
      "purl": "pkg:pypi/django@4.2.0",
      "path": "requirements.txt",
      "licenses": ["BSD-3-Clause"],
      "is_direct": true
    }
  ]
}
```

***

### list\_scans

任意のフィルタリング付きすべてのSASTスキャンをリストアップします。

**パラメータ:**

* `project` (文字列、任意):プロジェクト名によるフィルタースキャン
* `repo` (文字列、任意):リポジトリのURLサブ文字列によるスキャンのフィルター
* `branch` (文字列、任意):正確なブランチ名によるフィルタースキャン
* `pull_request_id` (文字列、任意):正確なプルリクエストまたはマージリクエスト識別子でスキャンをフィルタリング

**戻り値:**
スキャンID、日付、状態、検出結果などの基本情報を含むスキャンのリストはカウントされます。

**例:**

```json theme={null}
{
  "status": "ok",
  "count": 50,
  "scans": [
    {
      "id": "scan-001",
      "project": "web-app",
      "created_at": "2024-11-01T09:00:00Z",
      "status": "completed",
      "findings": 8
    }
  ]
}
```

***

### get\_blocking\_rules

組織に設定されたすべてのブロッキングルールを一覧表示します。

**パラメータ:**
全くありません

**戻り値:**
セキュリティポリシーに基づくデプロイメントを防ぐブロッキングルールの一覧。

**例:**

```json theme={null}
{
  "status": "ok",
  "rules": [
    {
      "id": "rule-1",
      "name": "Block Critical Vulnerabilities",
      "condition": "severity >= critical",
      "action": "block",
      "enabled": true
    }
  ]
}
```

## MCPクライアントの設定

### Claude Desktop

CorgeaをClaudeデスクトップの設定に追加:

1. Claudeデスクトップ設定を開く
2. 「開発者」セクションへ移動します
3. MCPの設定ファイルを編集する
4. Corgea MCPサーバーを追加:

```json theme={null}
{
  "mcpServers": {
    "corgea": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.corgea.app/mcp",
        "--header",
        "CORGEA-TOKEN: ${CORGEA_TOKEN}"
      ],
      "env": {
        "CORGEA_TOKEN": "your_api_token_here"
      }
    }
  }
}
```

5. 変更を有効にするためにClaude Desktopを再起動してください

### Cursor IDE

CursorMCP設定にCorgeaを追加:

1. Cursor設定を開く(Cmd/Ctrl + Shift + J)

2. 「Cursor設定」→「モデル」→「MCP」へ移動します。

3. または、以下で直接MCP設定ファイルを編集してください:
   * **macOS/Linux**: `~/.cursor/mcp.json`
   * **Windows**: `%APPDATA%\Cursor\User\mcp.json`

4. Corgea MCPサーバーを追加:

```json theme={null}
{
  "mcpServers": {
    "corgea": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.corgea.app/mcp",
        "--header",
        "CORGEA-TOKEN: ${CORGEA_TOKEN}"
      ],
      "env": {
        "CORGEA_TOKEN": "your_api_token_here"
      }
    }
  }
}
```

**代替構成(ダイレクトHTTP):**

直接HTTP接続をサポートするカスタムMCPクライアントを使っている場合:

```json theme={null}
{
  "mcpServers": {
    "corgea": {
      "url": "https://www.corgea.app/mcp",
      "headers": {
        "CORGEA-TOKEN": "your_api_token_here"
      }
    }
  }
}
```

### IDE拡張を続ける

コンティニュー設定にCorgeaを追加:

```json theme={null}
{
  "contextProviders": [
    {
      "name": "corgea",
      "params": {
        "serverUrl": "https://www.corgea.app/mcp",
        "headers": {
          "CORGEA-TOKEN": "your_api_token_here"
        }
      }
    }
  ]
}
```

## ユースケース

### セキュリティ認識コードレビュー

AIアシスタントをCorgeaに接続し、次のような質問をしてください:

* 「前回のスキャンで重要なセキュリティ問題は何だ?」
* 「認証モジュール内のすべてのSQLインジェクション脆弱性を表示してください」
* 「私の依存関係に重大度の高いSCA問題はありますか?」

### 脆弱性分析

AIに脆弱性の理解と優先順位付けを依頼できます:

* 「セキュリティ問題456について説明し、修正方法を提案してください」
* 「どの脆弱性を、重大度や悪用可能性に基づいて最初に修正すべきか?」
* 「このデプロイを防ぐブロッキングルールは何ですか?」

### 自動修復計画

AIを活用してセキュリティ修正を計画する:

* 「scan-123におけるすべての高重大度問題に対する修復計画を作成する」
* 「SCAの問題を修正するために更新が必要な依存関係は?」
* 「ファイルごとにグループ化されたすべてのオープンセキュリティ問題のレポートを生成する」

## ベストプラクティス

<AccordionGroup>
  <Accordion title="APIトークンを安全に管理する">
    * APIトークンをバージョン管理にコミットしない
    * トークンを定期的に回転させる
    * 環境変数の使用またはシークレット管理の安全化
    * 侵害された場合、トークンを即時取り消す
  </Accordion>

  <Accordion title="効果的にフィルターを使います">
    * プロジェクト、リポジトリ、ブランチ、プルリクエストのフィルターを使って結果を絞り込む
    * デバッグ時に特定のスキャンから始めます
    * 作業の優先順位を決める際の重大度によるフィルタリング
  </Accordion>

  <Accordion title="パフォーマンスの最適化">
    * 必要なデータのみを要求する
    * 可能な限り特定の問題/スキャンIDを使用する
    * 適切な時のキャッシュ結果
    * レート制限の遵守
  </Accordion>
</AccordionGroup>

## 認証

すべてのMCPツール呼び出しには、 `CORGEA-TOKEN` ヘッダーに有効なCorgea APIトークンが渡されます。

**トークンの入手方法:**

1. Corgeaのアカウントにログインする
2. APIキー→設定へ移動する
3. 新しいAPIトークンの生成
4. トークンをコピーしてMCPクライアント設定に追加します

<Warning>
  APIトークンは安全に保管してください。トークンにアクセスできるユーザーは、MCPインターフェースを通じてセキュリティデータを照会できます。
</Warning>

## レスポンス形式

すべてのMCPツールのレスポンスは、標準的なCorgea APIレスポンス形式に従っています。

**成功レスポンス:**

```json theme={null}
{
  "status": "ok",
  "data": { }
}
```

**エラーレスポンス:**

```json theme={null}
{
  "status": "error",
  "message": "Description of the error",
  "error": "Detailed error information"
}
```

## レートリミット

MCPリクエストは標準APIリクエストと同じレート制限の対象となります:

* トークンあたり1分間に100件のリクエスト
* トークンあたり1時間あたり1000件のリクエスト

料金制限を超えると、 `429 Too Many Requests`レスポンスが返ってきます。

## トラブルシューティング

### 接続の問題

**問題:** MCPサーバーに接続できません

**解決方法:**

* `/verify` エンドポイントを使ってAPIトークンの有効性を確認する
* `CORGEA-TOKEN` ヘッダーが正しく設定されているか確認
* ネットワークがHTTPS接続を許可していることを確認する corgea.app

### 認証エラー

**問題:** 401 Unauthorizedレスポンスを受け取っています

**解決方法:**

* APIトークンが期限切れしていないことを確認する
* トークンが `CORGEA-TOKEN` ヘッダー(認可ではなく)で渡されているか確認
* トークンに必要な権限を確保

### 結果は空

**問題:** クエリがデータを返しません

**解決方法:**

* Corgeaアカウントにデータが存在することを確認する
* フィルターパラメータ(scan\_id、プロジェクト、リポジトリ、ブランチ、pull\_request\_id)が正しいか確認
* 正しい環境(マルチテナントか単一テナントか)を問い合わせているか確認する

## サポート

<CardGroup cols={2}>
  <Card title="API ドキュメント" icon="book" href="/ja/api-reference/introduction">
    Corgea APIについて詳しくはこちら
  </Card>

  <Card title="コミュニティに参加" icon="slack" href="https://corgea-community.slack.com/join/shared_invite/zt-2cjmxat2f-Znvd06nP2gn9RYOSWrZI2A#">
    Corgeaのコミュニティから支援を受けられます
  </Card>

  <Card title="認証ガイド" icon="key" href="/ja/api-reference/authentication">
    API認証について学ぶ
  </Card>

  <Card title="MCP 仕様" icon="link" href="https://modelcontextprotocol.io/">
    公式MCPのドキュメントを読んでください
  </Card>
</CardGroup>

## 次のステップ

1. **Corgeaアカウントの設定からAPIトークン** を取得します
2. **MCPクライアント** をCorgeaサーバーのURLとトークンで設定する
3. **AIアシスタントにスキャンについて尋ねて接続** をテストする
4. **セキュリティ分析や脆弱性修復** ユースケースを探る

Corgeaのセキュリティインテリジェンスを、AI搭載の開発ワークフローに組み込めます。
