mcpField
C
Cycode

Cycode

ローカル
github.com/cycodehq開発ツール1002 週間前に更新

Cycode について

Cycode CLIは、シークレット、IaCの設定ミス、ソフトウェア構成上の脆弱性、静的解析の問題をリポジトリから検出します。ローカルスキャンや、Gitのコミット・プッシュに連動する検査を利用したい開発チーム向けです。

主な機能

  1. 01シークレット、IaC、SCA、SASTのスキャン
  2. 02リポジトリ、パス、履歴のスキャン
  3. 03コミット前・プッシュ前フック
  4. 04SBOMレポートの生成
  5. 05AI連携用MCPサーバー

活用シーン

  1. 01リリース前のリポジトリスキャン
  2. 02コミット前のステージ済み変更の確認
  3. 03プッシュ前のコミットスキャン
  4. 04SBOMレポートの生成

MCP 対応

CLIはCycodeのスキャン機能をAI連携に利用するMCPサーバーを起動できます。READMEには個別のツールの詳細は記載されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cycode-cli": {
"command": "uvx",
"args": [
"cycode"
],
"env": {
"CYCODE_CLIENT_ID": "<CYCODE_CLIENT_ID>",
"CYCODE_CLIENT_SECRET": "<CYCODE_CLIENT_SECRET>",
"CYCODE_API_URL": "<CYCODE_API_URL>",
"CYCODE_APP_URL": "<CYCODE_APP_URL>"
}
}
}
}
起動コマンドuvx cycode
設定が必要な環境変数
CYCODE_CLIENT_ID
CYCODE_CLIENT_SECRETシークレット
CYCODE_API_URL
CYCODE_APP_URL

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicycode

ツール

5

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Cycode CLI ユーザーガイド

MCP トップリスト

Cycode コマンドラインインターフェース(CLI)は、ローカルにインストールして、リポジトリ内のシークレット、Infrastructure as Code の設定ミス、ソフトウェアコンポジション解析の脆弱性、静的アプリケーションセキュリティテストの問題をスキャンできるアプリケーションです。

このガイドでは、インストールと使用方法の両方を説明します。

目次

  1. 前提条件
  2. インストール
    1. Cycode CLI のインストール
      1. Auth コマンドの使用
      2. Configure コマンドの使用
      3. 環境変数への追加
        1. Unix/Linux の場合
        2. Windows の場合
    2. Pre-Commit フックのインストール
  3. Cycode CLI コマンド
  4. 証明書とプロキシ
  5. MCP コマンド
    1. MCP サーバーの起動
    2. 利用可能なオプション
    3. MCP ツール
    4. 使用例
    5. 高度な設定
  6. Platform コマンド
    1. コマンドの確認
    2. 例
    3. 注意事項と制限
  7. AI ガードレール
    1. AI ガードレールによって収集されるデータ
  8. Scan コマンド
    1. スキャンの実行
      1. オプション
        1. 重大度のしきい値
        2. モニター
        3. Cycode レポート
        4. パッケージの脆弱性
        5. ライセンスコンプライアンス
        6. ロックの復元
        7. エラー時に停止
      2. リポジトリのスキャン
        1. Branch オプション
      3. パスのスキャン
        1. Terraform Plan のスキャン
      4. コミット履歴のスキャン
        1. コミット範囲オプション(差分スキャン)
      5. Pre-Commit スキャン
        1. ローカル差分スキャン(IDE 統合)
      6. Pre-Push スキャン
    2. スキャン結果
      1. シークレットの表示/非表示
      2. ソフトフェイル
      3. スキャン結果の例
        1. シークレットの結果の例
        2. IaC の結果の例
        3. SCA の結果の例
        4. SAST の結果の例
      4. 会社独自の修正ガイドライン
    3. スキャン結果の無視
      1. シークレット値の無視
      2. シークレットの SHA 値の無視
      3. パスの無視
      4. シークレット、IaC、SCA、または SAST ルールの無視
      5. パッケージの無視
      6. 設定ファイルによる無視
  9. Report コマンド
    1. SBOM レポートの生成
  10. Import コマンド
  11. スキャンログ
  12. 構文ヘルプ

前提条件

  • Cycode CLI アプリケーションには、Python バージョン 3.10 以降が必要です。
  • CLI で Cycode に認証するには、cycode auth コマンドを使用します。

インストール

以下のインストール手順は、Windows と UNIX / Linux の両方のオペレーティングシステムで使用できます。

メモ

以下の手順では、Python 関連のコマンドに python3 と pip3 を使用することを想定しています。ただし、Python 環境の設定によっては、一部のシステムで python コマンドと pip コマンドを使用する場合があります。

Cycode CLI をインストールする

ローカルマシンに Cycode CLI アプリケーションをインストールするには、以下の手順を実行します。

  1. コマンドラインまたはターミナルアプリケーションを開きます。

  2. 次のいずれかのコマンドを実行します。

    • PyPI からインストールするには:

      pip3 install cycode
      
    • Homebrew からインストールするには:

      brew install cycode
      
    • GitHub Releases からインストールするには、移動して、お使いのオペレーティングシステムとアーキテクチャに対応する実行ファイルをダウンロードし、次のコマンドを実行します。

    cd /path/to/downloaded/cycode-cli
    chmod +x cycode
    ./cycode
    
  3. 最後に、CLI を認証します。Cycode のクライアント ID と認証情報(クライアントシークレットまたは OIDC ID トークン)を設定する方法は3つあります。

Auth コマンドを使用する

メモ

これは、ローカルマシンを設定して Cycode CLI で認証するための推奨方法です。

  1. ターミナルまたはコマンドラインのウィンドウに次のコマンドを入力します。

    cycode auth

  2. ブラウザーウィンドウが表示され、Cycode へのログインを求められます(以下を参照)。

    Cycode のログイン
  3. このページでログイン認証情報を入力してログインします。

  4. 最終的に以下のページが表示され、Cycode の認証に使用するビジネスグループを選択するよう求められます(該当する場合)。

    CLI の認証

    メモ

    Cycode CLI での認証には、これがデフォルトの方法として使用されます。

  5. Allow ボタンをクリックして、選択したビジネスグループで Cycode CLI を認証します。

    CLI の認証を許可
  6. 選択が正常に完了すると、次の画面が表示されます。

    認証成功
  7. ブラウザーウィンドウを閉じると、ターミナルまたはコマンドラインの画面に次のように表示されます。

    Successfully logged into cycode

Configure コマンドを使用する

メモ

Linux または Windows の環境変数を通じて Cycode Client ID と Client Secret をすでに設定している場合は、これらの認証情報がこの方法より優先されます。

  1. ターミナル/コマンドラインウィンドウに次のコマンドを入力します。

    cycode configure
    
  2. Cycode API URL の値を入力します(デフォルト値を使用する場合は空欄のままにできます)。

    Cycode API URL [https://api.cycode.com]: https://api.onpremise.com

  3. Cycode APP URL の値を入力します(デフォルト値を使用する場合は空欄のままにできます)。

    Cycode APP URL [https://app.cycode.com]: https://app.onpremise.com

  4. Cycode Client ID の値を入力します。

    Cycode Client ID []: 7fe5346b-xxxx-xxxx-xxxx-55157625c72d

  5. Cycode Client Secret の値を入力します(OIDC ID トークンを使用する場合は省略します)。

    Cycode Client Secret []: c1e24929-xxxx-xxxx-xxxx-8b08c1839a2e

  6. Cycode OIDC ID Token の値を入力します(任意)。

    Cycode ID Token []: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

  7. 値が正常に入力されると、次のメッセージが表示されます。

    Successfully configured CLI credentials!

    または

    Successfully configured Cycode URLs!

ユーザーフォルダー内の .cycode フォルダーを開くと、認証情報が作成され、そのフォルダー内の credentials.yaml ファイルに保存されています。 URL はそのフォルダー内の config.yaml ファイルに保存されています。

環境変数に追加する
Unix/Linux の場合:
export CYCODE_CLIENT_ID={your Cycode ID}

および

export CYCODE_CLIENT_SECRET={your Cycode Secret Key}

組織で OIDC 認証を使用している場合は、代わりに(または追加で)ID トークンを指定できます。

export CYCODE_ID_TOKEN={your Cycode OIDC ID token}
Windows の場合
  1. コントロールパネルから、システムメニューに移動します。

    システムメニュー
  2. 次に、「システムの詳細設定」をクリックします。

    システムの詳細設定
  3. 開いた「システムのプロパティ」ウィンドウで、「環境変数」ボタンをクリックします。

    環境変数ボタン
  4. CYCODE_CLIENT_ID と CYCODE_CLIENT_SECRET の変数を作成し、それぞれ ID と Secret Key に対応する値を設定します。OIDC で認証する場合は、OIDC ID トークンの値を指定した CYCODE_ID_TOKEN も追加します。

    環境変数ウィンドウ
  5. インストールを完了するには、cycode.exe をパスに追加します。

Pre-Commit フックをインストールする

Cycode の pre-commit フックと pre-push フックは、ローカルリポジトリ内で設定できます。これにより、Cycode CLI アプリケーションが、コードをコードベースにコミットまたはプッシュする前に問題を自動的に検出します。

メモ

pre-commit フックと pre-push フックは、IaC スキャンでは利用できません。

pre-commit フックをインストールするには、次の手順を実行します。

Pre-Commit フックのインストール
  1. pre-commit フレームワークをインストールします(Python 3.10 以降がインストールされている必要があります)。

    pip3 install pre-commit
    
  2. 設定するローカル Git リポジトリのトップディレクトリに移動します。

  3. リポジトリのトップディレクトリに、次の内容を含む .pre-commit-config.yaml という名前の新しい YAML ファイルを作成します(先頭の . も含めます)。

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.25.0
        hooks:
          - id: cycode
            stages: [pre-commit]
    
  4. 作成したファイルをニーズに合わせて変更します。Secrets のスキャンを有効にするには、フック ID cycode を使用します。SCA スキャンを有効にするには、フック ID cycode-sca を使用します。SAST スキャンを有効にするには、フック ID cycode-sast を使用します。すべてのスキャンタイプを有効にする場合は、次の設定を使用します。

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.25.0
        hooks:
          - id: cycode
            stages: [pre-commit]
          - id: cycode-sca
            stages: [pre-commit]
          - id: cycode-sast
            stages: [pre-commit]
    
  5. Cycode のフックをインストールします。

    pre-commit install
    

    フックが正常にインストールされると、メッセージ Pre-commit installed at .git/hooks/pre-commit が表示されます。

  6. pre-commit フックを最新の状態に保ちます。

    pre-commit autoupdate
    

    .pre-commit-config.yaml の rev が、Cycode CLI の最新の利用可能なバージョンに自動的に更新されます。

メモ

git commit コマンドの実行時にトリガーされます。 コミット対象としてステージングされたファイルのみがフックの対象になります。

Pre-Push フックのインストール

pre-commit フックに加えて、またはその代わりに pre-push フックをインストールするには、次の手順に従います。

  1. .pre-commit-config.yaml ファイルに pre-push フックを追加します。

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.25.0
        hooks:
          - id: cycode-pre-push
            stages: [pre-push]
    
  2. pre-push フックをインストールします。

    pre-commit install --hook-type pre-push
    
  3. pre-commit フックと pre-push フックの両方を使用するには、次のコマンドを実行します。

    pre-commit install
    pre-commit install --hook-type pre-push
    

メモ

pre-push フックは git push コマンドの実行時にトリガーされ、プッシュ予定のコミットのみをスキャンします。

Cycode CLI コマンド

Cycode CLI アプリケーションで使用できるオプションとコマンドは次のとおりです。

オプション説明
-v, --verbose詳細なログを表示します。
--no-progress-meter進行状況メーターを表示しません。
--no-update-notifierCLI の更新を確認しません。
-o, --output [rich|text|json|table]出力形式を指定します。デフォルトは rich です。
--client-id TEXTこのスキャン実行に使用する Cycode クライアント ID を指定します。
--client-secret TEXTこのスキャン実行に使用する Cycode クライアントシークレットを指定します。
--id-token TEXTこのスキャン実行に使用する Cycode OIDC ID トークンを指定します。
--install-completion現在のシェルの補完機能をインストールします。
--show-completion [bash|zsh|fish|powershell|pwsh]指定したシェルの補完機能を表示します。コピーまたはインストールをカスタマイズできます。
-h, --help指定したコマンドのオプションを表示します。
コマンド説明
authCLI を Cycode アカウントに関連付けるため、このマシンを認証します。
configureCLI クライアントの認証を設定するための初期コマンドです。
ignore特定の値、パス、またはルール ID を無視します。
mcpCycode のスキャン機能との AI 統合を有効にするため、Model Context Protocol(MCP)サーバーを起動します。
scanコンテンツをスキャンし、Secrets/IaC/SCA/SAST の違反を検出します。実行するスキャンの種類(commit-history/path/repository など)を指定する必要があります。
reportレポートを生成します。SBOM など、実行するレポートの種類を指定する必要があります。
statusCLI のステータスを表示して終了します。

証明書とプロキシ

デフォルトでは、Cycode CLI は CLI に同梱されている CA バンドルを使用して HTTPS 接続を検証します。

組織で HTTPS トラフィックを検査するプロキシを使用している場合、または独自の CA を使用するオンプレミス環境の場合、次の 2 つの方法があります。

方法 1 — マシンにすでにインストールされている証明書を使用する。 CA がマシンの証明書ストアに登録されている場合(管理対象デバイスでは通常そうなっています)、次の設定を有効にします。

export CYCODE_CLI_ENABLE_TRUSTSTORE=1

CLI はその後、Windows の証明書ストア、macOS のキーチェーン、または Linux のシステム CA ディレクトリを使用して検証します。証明書のパスを設定する必要はありません。

重要

この設定は意図的にオプトイン方式になっています。マシンのストアを信頼することは、管理者や悪意のあるソフトウェアがインストールした証明書を含め、そのマシンに存在するすべてのルート証明書を信頼することを意味します。マシンの証明書ストアが信頼できると確認できている場合に有効にしてください。

方法 2 — CLI に CA バンドルファイルを指定する。 オプトインせずに使用できます。

環境変数説明
REQUESTS_CA_BUNDLE信頼する CA バンドルファイル(.pem または .crt)のパスです。
CURL_CA_BUNDLEREQUESTS_CA_BUNDLE の別名です。前者が設定されていない場合に使用されます。

2 つの方法は併用できます。CYCODE_CLI_ENABLE_TRUSTSTORE=1 を設定すると、REQUESTS_CA_BUNDLE の証明書はマシンのストアの代わりではなく、マシンのストアに加えて信頼されます。

ヒント

-v を指定して任意のコマンドを実行すると、どの信頼ソースが使用されているか確認できます。例:cycode -v status

注意事項:

  • Windows では、REQUESTS_CA_BUNDLE も CURL_CA_BUNDLE も設定されていない場合、CLI は従来からシステムの証明書ストアにフォールバックします。この動作に変更はありません。
  • プロキシ自体は、標準の HTTP_PROXY、HTTPS_PROXY、NO_PROXY 環境変数で設定します。

MCP コマンド [EXPERIMENT]

Model Context Protocol(MCP)コマンドを使用すると、Cycode のスキャン機能を AI システムやアプリケーションに公開する MCP サーバーを起動できます。これにより、AI モデルは標準化されたプロトコルを介して Cycode CLI ツールを利用できます。

ヒント

最適な使い心地を得るには、pip install cycode または brew install cycode を使用して Cycode CLI をシステムにグローバルインストールし、cycode auth で一度認証してください。グローバルインストールと認証が完了すれば、MCP 設定ファイルで CYCODE_CLIENT_ID と CYCODE_CLIENT_SECRET 環境変数を設定する必要はありません。

UV を使用して Cursor に MCP サーバーを追加

MCP サーバーの起動

MCP サーバーを起動するには、次のコマンドを使用します。

cycode mcp

デフォルトでは、サーバーは stdio トランスポートを使用して起動します。これは、サブプロセスを起動できるローカル連携や AI アプリケーションに適しています。

使用可能なオプション
オプション説明
-t, --transportMCP サーバーのトランスポートタイプ:stdio、sse、または streamable-http(デフォルト:stdio)
-H, --hostサーバーをバインドするホストアドレス(stdio 以外のトランスポートでのみ使用)(デフォルト:127.0.0.1)
-p, --portサーバーをバインドするポート番号(stdio 以外のトランスポートでのみ使用)(デフォルト:8000)
--helpヘルプメッセージと使用可能なオプションを表示します
MCP ツール

MCP サーバーは、AI システムが使用できる以下のツールを提供します。

ツール名説明
cycode_secret_scanハードコードされたシークレットをスキャンします
cycode_sca_scanソフトウェアコンポジション分析(SCA)を実行し、脆弱性とライセンスの問題をスキャンします
cycode_iac_scanInfrastructure as Code(IaC)の設定ミスをスキャンします
cycode_sast_scan静的アプリケーションセキュリティテスト(SAST)を実行し、コード品質とセキュリティ上の欠陥をスキャンします
cycode_statusCycode CLI のバージョン、認証ステータス、設定情報を取得します

各スキャンツールでは、相互に排他的な次の 2 つの入力モードを使用できます。

  • paths (推奨)— ディスク上に存在する 1 つ以上のファイルまたはディレクトリのパスを指定します。ディレクトリは再帰的にスキャンされます。Cycode エンジンがファイルの検出とフィルタリングを処理します。これは、コマンドラインから cycode scan -t <type> path ./src を実行する場合と同様です。
  • files (フォールバック)— ファイルパスをキー、ファイルの内容全体を文字列として値にする辞書を指定します。ファイルがディスク上にない場合(たとえば、まだ保存されていないメモリ上の編集内容)にのみ使用してください。

ヒント

可能な限り paths を使用してください。大きなファイル(package-lock.json など)をインラインコンテンツとして渡すと、トークン制限を超えたり、AI クライアントの処理が遅くなったりすることがあります。paths を使用すると、Cycode エンジンがファイルをディスクから直接読み込みます。

すべてのスキャンツールは、完全な "detections" 配列に加えて、人が読みやすい違反件数(例:"Cycode found 3 violations: 1 CRITICAL, 2 HIGH.")を含む "summary" フィールドを持つ JSON オブジェクトを返します。

使用例
基本的なコマンド例

デフォルト設定(stdio トランスポート)で MCP サーバーを起動します:

cycode mcp

stdio トランスポートを明示して MCP サーバーを起動します:

cycode mcp -t stdio

Server-Sent Events(SSE)トランスポートで MCP サーバーを起動します:

cycode mcp -t sse -p 8080

カスタムのホストとポートで、ストリーム可能な HTTP トランスポートを使用して MCP サーバーを起動します:

cycode mcp -t streamable-http -H 0.0.0.0 -p 9000

MCP トランスポートの種類について詳しくは、MCP Protocol Specification – Transportsをご覧ください。

設定例
Cursor/VS Code/Claude Desktop などで MCP を使用する(mcp.json)

メモ

Cycode の EU 環境では、環境変数に適切な CYCODE_API_URL と CYCODE_APP_URL の値(例:https://api.eu.cycode.com と https://app.eu.cycode.com)が設定されていることを確認してください。

このガイドに従って、VS Code/GitHub Copilot で MCP サーバーを設定してください。settings.json には単独の mcpServers オブジェクトではなく、servers サブオブジェクトを含む mcp オブジェクトがあることに注意してください。

stdio トランスポート(直接実行)の場合:

{
  "mcpServers": {
    "cycode": {
      "command": "cycode",
      "args": ["mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

pipx でインストールした場合のstdio トランスポート:

{
  "mcpServers": {
    "cycode": {
      "command": "pipx",
      "args": ["run", "cycode", "mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

uvx でインストールした場合のstdio トランスポート:

{
  "mcpServers": {
    "cycode": {
      "command": "uvx",
      "args": ["cycode", "mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

SSE トランスポート(Server-Sent Events)の場合:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

カスタムポートを使用する場合のSSE トランスポート:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8080/sse"
    }
  }
}

ストリーム可能な HTTP トランスポートの場合:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}
MCP サーバーをバックグラウンドで実行する

SSE トランスポートの場合(先にサーバーを起動し、その後クライアントを設定します):

# Start the MCP server in the background
cycode mcp -t sse -p 8000 &

# Configure in mcp.json
{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

ストリーム可能な HTTP トランスポートの場合:

# Start the MCP server in the background
cycode mcp -t streamable-http -H 127.0.0.2 -p 9000 &

# Configure in mcp.json
{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.2:9000/mcp"
    }
  }
}
高度な設定
タイムアウトとカスタム証明書(プロキシ環境)

MCP クライアントによって時間のかかるスキャンが途中で終了される場合は、ツール呼び出しのタイムアウトを延長してください。

環境変数説明
MCP_TOOL_TIMEOUTClaude や GitHub Copilot などの MCP クライアントが、ツール呼び出しの完了を待つ時間(秒)です。時間のかかるスキャンが完了前に打ち切られる場合は、この値を増やしてください。

企業プロキシの背後で使用する場合は、MCP サーバーの env ブロックに証明書変数を設定してください。設定方法については 証明書とプロキシを参照してください。マシンにすでにある証明書を使用するには CYCODE_CLI_ENABLE_TRUSTSTORE=1 を設定するか、CA バンドルファイルを指すように REQUESTS_CA_BUNDLE を設定します。

カスタム CA バンドルと長めのタイムアウトを設定した mcp.json の例:

{
  "mcpServers": {
    "cycode": {
      "command": "cycode",
      "args": ["mcp"],
      "env": {
        "REQUESTS_CA_BUNDLE": "/path/to/your/corporate-ca-bundle.pem",
        "MCP_TOOL_TIMEOUT": "1800"
      }
    }
  }
}

メモ

MCP サーバーを動作させるには、適切な Cycode CLI 認証が必要です。MCP サーバーの起動前に cycode auth で認証するか、認証情報を設定してください。

サブエージェント用ツールの事前承認(Claude Code)

Claude Code がバックグラウンドのサブエージェントに作業を委任するとき(たとえばスキャンを並行して実行する場合)、サブエージェントには対話型の権限確認プロンプトを表示できません。Cycode ツールが事前承認されていない場合、サブエージェントのコンテキストではスキャンがエラーなく失敗します。

サブエージェントを含むすべてのコンテキストで Cycode MCP ツールを使えるようにするには、Claude Code の設定(~/.claude/settings.json)にある allowedTools リストに追加します。

{
  "allowedTools": [
    "mcp__cycode__cycode_secret_scan",
    "mcp__cycode__cycode_sca_scan",
    "mcp__cycode__cycode_iac_scan",
    "mcp__cycode__cycode_sast_scan",
    "mcp__cycode__cycode_status"
  ]
}

追加すると、これらのツールの呼び出し時に Claude Code が承認を求めなくなり、サブエージェント内でも正常に動作します。

MCP のトラブルシューティング

MCP サーバーで問題が発生した場合は、デバッグログを有効にして、状況に関する詳細情報を取得できます。デバッグログを有効にする方法は 2 つあります。

  1. -v または --verbose フラグを使用する:
cycode -v mcp
  1. CYCODE_CLI_VERBOSE 環境変数を使用する:
CYCODE_CLI_VERBOSE=1 cycode mcp

デバッグログには、次の詳細情報が表示されます。

  • サーバーの起動と設定
  • 接続の試行と状態
  • ツールの実行と結果
  • 発生したエラーや警告

この情報は、次のような場合に役立ちます。

  • 接続の問題を診断する
  • 特定のツールが動作しない理由を把握する
  • 認証の問題を特定する
  • トランスポート固有の問題をデバッグする
MCP の設定

Platform コマンド [BETA]

警告

platform コマンドはベータ版です。コマンド、引数、出力形式は Cycode API の仕様から動的に生成されるため、予告なくリリース間で変更される場合があります。現時点では、本番環境の自動化でこれらに依存しないでください。

cycode platform コマンドは、Cycode プラットフォームの読み取り API を CLI コマンドとして公開します。エンドポイントをリソース(例:projects、violations、workflows)ごとにグループ化し、各エンドポイントのパラメーターを型付き CLI 引数と --option フラグに変換します。

cycode platform projects list --page-size 50
cycode platform violations count
cycode platform workflows view <workflow-id>

OpenAPI 仕様は初回使用時に Cycode API から取得され、~/.cycode/openapi-spec.json に 24 時間キャッシュされます。無関係なコマンド(cycode scan、cycode status など)では取得は行われません。

メモ

cycode platform でコマンドを検出して実行するには、認証(cycode auth または CYCODE_CLIENT_ID / CYCODE_CLIENT_SECRET 環境変数)が必要です。それ以外の Cycode CLI コマンドは、認証なしで動作します。

コマンドの確認

コマンドは仕様から生成されるため、利用可能な機能を確認するには --help を参照してください。

cycode platform --help                  # list all resource groups
cycode platform projects --help         # list actions on a resource
cycode platform projects list --help    # list options/arguments for an action

Platform の使用例

# List projects with pagination
cycode platform projects list --page-size 25

# View a single project by ID
cycode platform projects view <project-id>

# Count violations across the tenant
cycode platform violations count

# Filter using query parameters (see `--help` for what each endpoint supports)
cycode platform violations list --severity CRITICAL

すべての出力はデフォルトで JSON です。必要に応じて jq に渡し、フィルタリングできます。

cycode platform projects list --page-size 100 | jq '.items[].name'

プラットフォームに関する注意事項と制限

  • 現在は読み取り専用です。 このベータ版では GET エンドポイントのみが公開されています。
  • 仕様駆動です。 API に新しいエンドポイントを追加すると、次回キャッシュが更新されたときに自動的に反映されます。
  • 仕様は同梱されていません。 インストール後(または24時間のキャッシュ期限が切れた後)に初めて cycode platform を実行すると、ネットワーク経由でデータを取得します。接続が遅い場合、初回の呼び出しには数秒かかることがあります。それ以降は、キャッシュの期限が切れるまでほぼ瞬時に実行されます。
  • CYCODE_SPEC_CACHE_TTL=<seconds> でキャッシュの有効期間を上書きできます。

AI Guardrails [BETA]

AI Guardrails は、対応する AI コーディングエージェント(Claude Code、Cursor、Copilot、Codex)にフックをインストールし、 プロンプト、エージェントが読み取るファイル、MCP ツールの引数に含まれるシークレットを、モデルに渡される前にスキャンします。

AI Guardrails が収集するデータ

スキャンはサーバー側で行われるため、スキャン対象のコンテンツはマシンの外部に送信されます。プロンプトのテキスト、 エージェントが読み取るファイルの内容、MCP ツールの引数は、シークレットのチェックのために Cycode テナントに送信されます。

各イベントは、開発者とマシンに関するコンテキスト情報とともに報告されるため、検出結果を発生元のデバイスとユーザーに 紐付けられます。この情報には個人データが含まれる場合があります。

  • デバイス識別子 — マシンのホスト名とハードウェアのシリアル番号。
  • ユーザー識別子 — AI コーディングエージェントにサインインしているユーザーのメールアドレスと、ローカルの オペレーティングシステムのユーザー名。
  • 環境の詳細 — オペレーティングシステムとバージョン、AI エージェント、そのバージョンと使用中のモデル、 エージェントの MCP 設定ファイルの内容、および有効になっているプラグイン。

ハードウェアのシリアル番号は、コマンドを実行したユーザーのみが読み取り可能なローカルの一時ファイルにキャッシュされるため、 フックを実行するたびにハードウェア情報を再取得することはありません。

このデータの収集が環境で許容されない場合は、ガードレールのフックをインストールしないでください (cycode ai-guardrails uninstall で、すでにインストールされているフックを削除できます)。

スキャンコマンド

スキャンの実行

Cycode CLI アプリケーションには複数の種類のスキャンが用意されているため、用途に最適なオプションを選択できます。現在利用できるオプションとコマンドは以下のとおりです。

オプション説明
-t, --scan-type [secret|iac|sca|sast]実行するスキャン(secret/iac/sca/sast)を指定します。デフォルトは secret です。
--show-secret BOOLEANシークレットをプレーンテキストで表示します。詳細については、シークレットの表示/非表示のセクションをご覧ください。
--soft-fail BOOLEAN失敗として扱わずにスキャンを実行し、常にエラー以外のステータスコードを返します。詳細については、ソフトフェイルのセクションをご覧ください。
--severity-threshold [INFO|LOW|MEDIUM|HIGH|CRITICAL]指定したレベル以上の違反のみを表示します。
--sca-scan実行する SCA スキャン(package-vulnerabilities/license-compliance/unmaintained-packages)を指定します。デフォルトではすべて実行します。
--monitor指定すると、スキャン結果が Cycode に記録されます。
--cycode-reportCycode プラットフォーム上のスキャンレポートへのリンクを、コンソール出力に表示します。
--no-restore指定すると、Cycode は restore コマンドを実行しません。直接の依存関係のみをスキャンします!
--stop-on-errorファイルの収集または依存関係の復元に失敗した場合、失敗したファイルをスキップして続行するのではなく、スキャンを中止します。
--gradle-all-sub-projectsすべてのサブプロジェクトを対象に gradle restore コマンドを実行します。これは次の場所から実行してください。
--maven-settings-fileMaven 専用です。依存関係のスキャン時に、カスタムの settings.xml ファイルを使用できます。
--help指定したコマンドのオプションを表示します。
コマンド説明
commit-historyコミット履歴をスキャンするか、特定のコミット間の差分スキャンを実行します
pathコマンドで指定したパス内のファイルをスキャンします
pre-commitまだコミットされていないコンテンツをスキャンします。フラグを使ったローカル差分スキャンにも対応しています(IDE 向け)
repositoryGit リポジトリとその履歴をスキャンします
オプション
深刻度オプション

スキャン結果を特定の深刻度以上に絞り込むには、スキャンコマンドに引数 --severity-threshold を追加します。

たとえば、次のコマンドでは、深刻度が Medium 以上のポリシー違反をリポジトリでスキャンします。

cycode scan --severity-threshold MEDIUM repository ~/home/git/codebase

モニターオプション

メモ

このオプションは SCA スキャンでのみ使用できます。

SCA タイプのスキャンで見つかった SCA ポリシーに関連付けられたスキャン結果を Cycode に送信するには、スキャンコマンドに引数 --monitor を追加します。

たとえば、次のコマンドでは、SCA ポリシー違反をリポジトリでスキャンし、その結果を Cycode プラットフォームに送信します。

cycode scan -t sca --monitor repository ~/home/git/codebase

Cycode レポートオプション

Cycode CLI を使用して実行するすべてのスキャンでは、レポートが自動的に生成され、その結果が Cycode に送信されます。これらの結果は、Cycode プラットフォーム内の該当するポリシー(リポジトリのスキャンの場合は SCA ポリシーなど)に関連付けられます。

スキャン完了後に、Cycode レポートの直接 URL を CLI の出力に表示するには、スキャンコマンドに引数 --cycode-report を追加します。

cycode scan --cycode-report repository ~/home/git/codebase

CLI のすべてのスキャン結果は、Cycode の CLI ログセクションに表示されます。コマンドに --cycode-report フラグを含めると、スキャン結果に続いて、該当するレポートへの直接リンクがターミナルに表示されます。

警告

このページを表示するには、Cycode で owner または admin のロールが必要です。

cli-report

レポートページは次のような画面です。

README の画像

パッケージの脆弱性オプション

メモ

このオプションは SCA スキャンでのみ使用できます。

ローカルリポジトリ内の特定のパッケージの脆弱性をスキャンするには、-t sca または --scan-type sca オプションの後に引数 --sca-scan package-vulnerabilities を追加します。

前の例で、パッケージの脆弱性のみを SCA スキャンする場合は、次のコマンドを実行します。

cycode scan -t sca --sca-scan package-vulnerabilities repository ~/home/git/codebase

ライセンスコンプライアンスオプション

メモ

このオプションは SCA スキャンでのみ使用できます。

ローカルリポジトリの特定のブランチをスキャンするには、引数 --sca-scan license-compliance の後に、スキャンするブランチ名を指定します。

前の例で、dev という名前のブランチのみをスキャンする場合は、次のコマンドを実行します。

cycode scan -t sca --sca-scan license-compliance repository ~/home/git/codebase -b dev

メンテナンスされていないパッケージのオプション

メモ

このオプションは SCA スキャンでのみ使用できます。

メンテナンスされていないパッケージ(OpenSSF Scorecard の Maintained チェックのスコアが低く、最近のコミットやイシューのアクティビティがほとんど、またはまったくないパッケージ)のみをスキャンするには、-t sca または --scan-type sca オプションの後に引数 --sca-scan unmaintained-packages を追加します。

メモ

メンテナンスされていないパッケージをレポートするかどうかは、組織のポリシーによって制御されます。このオプションはスキャンでレポートする対象を絞り込むものであり、テナントで無効になっているポリシーを有効にすることはできません。

前の例で、メンテナンスされていないパッケージのみを SCA スキャンする場合は、次のコマンドを実行します。

cycode scan -t sca --sca-scan unmaintained-packages repository ~/home/git/codebase

ロックファイル復元オプション

メモ

このオプションは SCA スキャンでのみ使用できます。

SCA スキャンを実行すると、Cycode CLI は、検出した各対応マニフェストファイルの依存関係ロックファイルを自動的に復元(生成)しようとします。これにより、マニフェストに直接記載された依存関係だけでなく、推移的依存関係もスキャンできます。この手順を省略して直接依存関係のみをスキャンするには、--no-restore フラグを使用します。

次のエコシステムでは、ロックファイルの自動復元に対応しています。

エコシステムマニフェストファイル生成されるロックファイル実行されるツール(ロックファイルがない場合)
npmpackage.jsonpackage-lock.jsonnpm install --package-lock-only --ignore-scripts --no-audit
Yarnpackage.jsonyarn.lockyarn install --ignore-scripts
pnpmpackage.jsonpnpm-lock.yamlpnpm install --ignore-scripts
Denodeno.json / deno.jsoncdeno.lock(既存のロックファイルのみ読み込み)
Gogo.modgo.mod.graphgo list -m -json all + go mod graph
Mavenpom.xmlbcde.mvndepsmvn dependency:tree
Gradlebuild.gradle / build.gradle.ktsgradle-dependencies-generated.txtgradle dependencies -q --console plain
SBTbuild.sbtbuild.sbt.locksbt dependencyLockWrite
NuGet*.csprojpackages.lock.jsondotnet restore --use-lock-file
RubyGemfileGemfile.lockbundle --quiet
Poetrypyproject.tomlpoetry.lockpoetry lock
pippyproject.toml / requirements.txtpylock.tomlpip lock . / pip lock -r requirements.txt -o pylock.toml
PipenvPipfilePipfile.lockpipenv lock
PHP Composercomposer.jsoncomposer.lockcomposer update --no-cache --no-install --no-scripts --ignore-platform-reqs

マニフェストと同じ場所にロックファイルがすでにある場合、Cycode はインストールコマンドを実行せず、そのファイルを直接読み込みます。

SBT の前提条件: sbt-dependency-lock プラグインをインストールする必要があります。project/plugins.sbt に次の行を追加してください。

addSbtPlugin("software.purpledragon" % "sbt-dependency-lock" % "1.5.1")
エラー時に停止するオプション

デフォルトでは、ファイルを読み込めない場合(権限エラーなど)や、SCA スキャン中に依存関係ロックファイルを生成できない場合でも、Cycode はスキャンを続行します。失敗した項目は警告とともにスキップされ、残りのファイルのスキャンが続行されます。

この動作を変更するには、--stop-on-error を使用します。最初のエラーが発生した時点でスキャンは直ちに中止され、エラーが報告されます。

cycode scan -t sca --stop-on-error path ~/home/git/codebase

これは、エラーが表面化せず、不完全なスキャン結果が出力される可能性がある CI パイプラインで役立ちます。--stop-on-error が発動した場合は、根本的な問題を修正するか、SCA の復元エラーであれば --no-restore を追加してロックファイルの生成を省略し、直接依存関係のみをスキャンできます。

--stop-on-error を使用すると、CLI は終了コードによってスキャンエラーとポリシー違反を区別します。

終了コード意味
0違反なしでスキャンが完了しました
1スキャンが完了し、違反が見つかりました
2エラーによりスキャンが中止されました(--stop-on-error が設定されている場合のみ)
リポジトリのスキャン

リポジトリのスキャンでは、ローカルリポジトリ全体を調べ、公開されているシークレットや安全でない設定を検出します。この包括的なスキャンでは、リポジトリの現在の状態とコミット履歴のすべてを調査します。リポジトリ内で現在公開されているシークレットだけでなく、以前に削除されたシークレットも検出します。

リポジトリ全体をスキャンするには、次のコマンドを実行します。

cycode scan repository {{path}}

たとえば、~/home/git/codebase に保存されているリポジトリをスキャンする場合は、次のコマンドを実行します。

cycode scan repository ~/home/git/codebase

このコマンドでは、次のオプションを使用できます。

オプション説明
-b, --branch TEXTスキャンするブランチ。指定しない場合はデフォルトブランチをスキャンします
ブランチオプション

ローカルリポジトリの特定のブランチをスキャンするには、引数 -b(または --branch)の後に、スキャンするブランチ名を指定します。

先ほどの例で、dev という名前のブランチだけをスキャンする場合は、次のコマンドを実行します。

cycode scan repository ~/home/git/codebase -b dev

パスのスキャン

パスのスキャンでは、GIT リポジトリだけに限定せず、特定のローカルディレクトリとその中のすべての内容を調べます。

ディレクトリをスキャンするには、次のコマンドを実行します。

cycode scan path {{path}}

たとえば、~/home/git/codebase にあるディレクトリをスキャンする場合は、次のコマンドを実行します。

cycode scan path ~/home/git/codebase

Terraform プランのスキャン

Cycode CLI は Terraform プランのスキャンに対応しています(Terraform 0.12 以降に対応)。

Terraform プランファイルは JSON 形式(拡張子が .json)である必要があります。

設定ファイルしかない場合は、次の手順でプランを生成できます。

  1. Terraform の設定ファイルを含む作業ディレクトリを初期化します。

    terraform init

  2. Terraform の実行プランを作成し、バイナリ出力を保存します。

    terraform plan -out={tfplan_output}

  3. バイナリ出力ファイルを、読み取り可能な JSON に変換します。

    terraform show -json {tfplan_output} > {tfplan}.json

  4. Cycode CLI で {tfplan}.json をスキャンします。

    cycode scan -t iac path ~/PATH/TO/YOUR/{tfplan}.json

コミット履歴のスキャン

メモ

コミット履歴のスキャンは IaC スキャンでは使用できません。

コミット履歴のスキャンコマンドには、次の 2 つの主な機能があります。

  1. 全履歴のスキャン:リポジトリの履歴にあるすべてのコミットを分析します
  2. 差分のスキャン:特定のコミット間の変更のみをスキャンします

シークレットのスキャンでは、リポジトリの履歴にあるすべてのコミットを分析できます。シークレットは、導入された後に削除されていても、漏洩または公開されている可能性があるためです。SCA および SAST のスキャンでは、コミット履歴コマンドはコミット間の差分や変更のスキャンに重点を置いています。そのため、プルリクエストのレビューや段階的なスキャンに最適です。

コミット履歴のスキャンでは、Git リポジトリのコミット履歴を調べます。包括的な履歴分析にも、特定の変更を対象とした差分スキャンにも使用できます。

コミット履歴をスキャンするには、次のコマンドを実行します。

cycode scan commit-history {{path}}

たとえば、~/home/git/codebase に保存されているリポジトリのコミット履歴をスキャンする場合は、次のコマンドを実行します。

cycode scan commit-history ~/home/git/codebase

このコマンドでは、次のオプションを使用できます。

オプション説明
-r, --commit-range TEXTこの git リポジトリのコミット範囲をスキャンします。デフォルトでは、cycode はすべてのコミット履歴をスキャンします(例:HEAD~1)
コミット範囲オプション(差分スキャン)

コミット範囲オプションを使うと、差分スキャンを実行できます。リポジトリの履歴全体ではなく、特定のコミット間の変更のみをスキャンします。 特に、次の用途に便利です。

  • プルリクエストの検証:PR で追加された変更のみをスキャンします
  • インクリメンタルな CI/CD スキャン:コードベース全体ではなく、最近の変更に絞ってスキャンします
  • フィーチャーブランチのレビュー:変更を main/master ブランチと比較します
  • パフォーマンスの最適化:対象を関連する変更に限定することで、スキャンを高速化します
コミット範囲の構文

--commit-range(-r)オプションでは、標準的な Git のリビジョン構文を使用できます。

構文説明例
commit1..commit2commit1 から commit2 までの変更abc123..def456
commit1...commit2commit1 にはなく、commit2 にある変更main...feature-branch
commitcommit から HEAD までの変更HEAD~1
branch1..branch2branch1 から branch2 までの変更main..feature-branch
差分スキャンの例

直近のコミットの変更をスキャンします:

cycode scan commit-history -r HEAD~1 ~/home/git/codebase

特定の 2 つのコミット間の変更をスキャンします:

cycode scan commit-history -r abc123..def456 ~/home/git/codebase

main と比較して、フィーチャーブランチの変更をスキャンします:

cycode scan commit-history -r main..HEAD ~/home/git/codebase

main とフィーチャーブランチ間の変更をスキャンします:

cycode scan commit-history -r main..feature-branch ~/home/git/codebase

直近 3 件のコミットのすべての変更をスキャンします:

cycode scan commit-history -r HEAD~3..HEAD ~/home/git/codebase

ヒント

CI/CD パイプラインでは、${{ github.event.pull_request.base.sha }}..${{ github.sha }}(GitHub Actions)や $CI_MERGE_REQUEST_TARGET_BRANCH_SHA..$CI_COMMIT_SHA(GitLab CI)などの環境変数を使用して、PR/MR の変更のみをスキャンできます。

コミット前スキャン

コミット前スキャンは、リポジトリに変更をコミットする前に問題を自動で検出します。このスキャンを手動で実行する必要はありません。このガイドの「インストール」セクションの手順に従って、コミット前フックを設定してください。

コミット前フックをインストールした後、特定のコミットでスキャンをスキップしたい場合があります。その場合は、次のように git コマンドに追加すると、1 回のコミットでスキャンをスキップできます。

SKIP=cycode git commit -m <your commit message>`

このコマンドでは、次のオプションを使用できます。

オプション説明
-b, --base-ref TEXT差分比較の対象とする Git ref(コミット、ブランチ、またはタグ)。デフォルトは HEAD で、コミット前フックの動作と一致します
--include-unstagedステージング済みの変更だけでなく、追跡対象ファイルの未ステージ変更もスキャンします。デフォルトでは無効です
--path PATH差分スキャンの対象を絞り込む任意のパス。複数指定できます。デフォルトでは作業ディレクトリ全体が対象です
ローカル差分スキャン(IDE 連携)

--base-ref と --include-unstaged を使うと、pre-commit を汎用的なローカル差分スキャンとして利用できます。任意のコミット(デフォルトは HEAD)と現在の作業ディレクトリを比較し、まだステージングされていない編集内容も含めてスキャンします。これは、Git フックのフローではなく、作業中に継続的かつリアルタイムにフィードバックを得る必要がある IDE プラグインやその他のツールを対象としています。--include-unstaged と組み合わせると、--path を使って IDE のスキャン対象を、エディターで現在開いているファイルだけに絞り込めます。

メモ

ローカル差分スキャン(これらのフラグを使用する場合)は、IaC スキャンでは利用できません。

直近のコミットと比較して、現在変更されているすべての内容(ステージング済み+未ステージ)をスキャンします:

cycode scan pre-commit --include-unstaged

特定のコミットまたはブランチと比較して変更をスキャンします:

cycode scan pre-commit --include-unstaged --base-ref main

特定のファイルのみをスキャンします(例:IDE で現在開いているファイル):

cycode scan pre-commit --include-unstaged --path src/app.py
プッシュ前スキャン

プッシュ前スキャンは、変更をリモートリポジトリにプッシュする前に問題を自動で特定します。このフックはクライアント側で実行され、プッシュしようとしているコミットのみをスキャンするため、問題がリモートリポジトリに到達する前に効率よく検出できます。

メモ

IaC スキャンではプッシュ前フックを利用できません。

プッシュ前フックは pre-commit フレームワークと連携し、git push 操作の前に実行されるよう設定できます。

プッシュ前フックのインストール

pre-commit フレームワークを使用してプッシュ前フックを設定するには、次の手順に従います。

  1. pre-commit フレームワークをインストールします(まだインストールされていない場合)。

    pip3 install pre-commit
    
  2. .pre-commit-config.yaml ファイルを作成または更新し、プッシュ前フックを追加します。

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.25.0
        hooks:
          - id: cycode-pre-push
            stages: [pre-push]
    
  3. 複数のスキャンタイプを使用する場合は、次の設定を使用します。

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.25.0
        hooks:
          - id: cycode-pre-push          # Secrets scan
            stages: [pre-push]
          - id: cycode-sca-pre-push      # SCA scan
            stages: [pre-push]
          - id: cycode-sast-pre-push     # SAST scan
            stages: [pre-push]
    
  4. プッシュ前フックをインストールします。

    pre-commit install --hook-type pre-push
    

    インストールに成功すると、Pre-push installed at .git/hooks/pre-push というメッセージが表示されます。

  5. プッシュ前フックを最新の状態に保ちます。

    pre-commit autoupdate
    
プッシュ前スキャンの仕組み

フックはプッシュ対象の各コミットを一度に 1 つずつスキャンするため、あるコミットで追加され、後続のコミットで削除されたシークレットも検出されます。pre-commit フレームワーク経由でインストールした場合、プッシュ対象の範囲はフレームワークから取得されます。既存のブランチではリモートブランチ以降の新しいコミット、新しいブランチではまだリモートにないコミット(空のリモートへのプッシュではすべてのコミット)が対象です。手書きの .git/hooks/pre-push から実行する場合は、範囲を git のフック入力から読み取り、新しいブランチはデフォルトブランチとのマージベースからスキャンします(以下を参照)。

タグ、ブランチの削除、すでに最新の状態のプッシュなど、スキャン対象がないプッシュはスキャンせずに通過します。プッシュ対象を特定できない場合は、何もせずに通過するのではなく、失敗してプッシュをブロックします。

Cycode のプッシュ前フックでは、always_run: true と pass_filenames: false が設定されています。スキャン対象はファイルの一覧ではなく、プッシュされるコミットだからです。always_run がないと、プッシュ対象のコミットに変更されたファイルがない場合、pre-commit フレームワークはフックをスキップします。たとえば、あるコミットで追加され、次のコミットで削除されたシークレットがこれに該当します。pass_filenames: false がないと、フレームワークはスキャンで使用されない変更ファイル名を渡します。また、大量のファイルを含むプッシュでは、それらを複数のバッチに分割し、バッチごとにフルスキャンを実行します。フックを自分で定義する場合(たとえば repo: local フックとして定義する場合)は、両方のオプションを設定してください。

デフォルトブランチの自動検出

手書きのフックから実行する場合、プッシュ前スキャンは次の優先順位でマージベースの計算に使用するデフォルトブランチを検出します。

  1. 環境変数:CYCODE_DEFAULT_BRANCH — 手動で上書きできます。
  2. Git のリモート HEAD:git symbolic-ref refs/remotes/origin/HEAD を使用して、実際のリモートのデフォルトブランチを検出します。
  3. Git のリモート情報:symbolic-ref が失敗した場合は、git remote show origin にフォールバックします。
  4. 固定のフォールバック値:一般的なデフォルトブランチ名(origin/main、origin/master、main、master)を使用します。

カスタムのデフォルトブランチを設定する:

export CYCODE_DEFAULT_BRANCH=origin/develop

この自動検出により、リポジトリが main、master、develop、その他のどのデフォルトブランチ名を使用していても、プッシュ前フックが正しく動作します。

プッシュ前スキャンをスキップする

特定のプッシュ操作でプッシュ前スキャンをスキップするには、次を使用します。

SKIP=cycode-pre-push git push

または、すべてのプッシュ前フックをスキップするには、次を使用します。

git push --no-verify

ヒント

プッシュ前フックは git push コマンドで実行され、プッシュしようとしているコミットのみをスキャンするため、リポジトリ全体をスキャンするより効率的です。

スキャン対象からパスを除外する

.cycodeignore ファイルを使用して、Cycode CLI でスキャン対象から除外するファイルやディレクトリを指定できます。 .gitignore ファイルと同じように機能します。これにより、関連するコードにスキャン対象を絞り、特定のパスがローカルで違反として検出されるのを防げます。

仕組み
  1. 作業フォルダーに .cycodeignore という名前のファイルを作成します。
  2. .gitignore と同じパターンを使用して、除外するファイルとディレクトリを一覧にします。
  3. cycode scan コマンドを実行するディレクトリに、このファイルを配置します。

警告

  • 無効なファイル:.cycodeignore ファイルに構文エラーがある場合、CLI スキャンは失敗し、エラーが返されます。
  • パスの無視と違反の無視:このファイルはパスを除外するためのものです。特定の違反を無視する CLI の機能(たとえば、--ignore-violation フラグを使用する方法)とは異なります。
対応スキャナー
  • SAST
  • IaC(近日公開)
  • SCA(近日公開)

スキャン結果

各スキャンが完了すると、問題が見つかったかどうかを示すメッセージが表示されます。

問題が見つからなかった場合、スキャンは次の成功メッセージで終了します。

Good job! No issues were found!!! 👏👏👏

問題が見つかった場合は、代わりに完了時に違反カードが表示されます。この場合は、結果メッセージで強調表示された特定の行について、該当するファイルを確認してください。問題を解決するために必要な変更を加え、スキャンを再度実行します。

シークレットの表示/非表示

以下の例では、cli サブフォルダーにある secret_test ファイルでシークレットが見つかりました。メッセージの後半にはシークレットが記載されている特定の行が表示されます。この例では、googleApiKey に割り当てられた値が該当します。

例では、シークレットの大部分をアスタリスクに置き換えて、実際の値を隠していることに注目してください。スキャンではデフォルトでシークレットが隠されますが、必要に応じてこの機能を無効にし、シークレット全体を表示できます(スキャン結果を表示するマシンが、覗き見から十分に保護されていることを前提とします)。

シークレットのマスキングを無効にするには、すべての種類のスキャンで --show-secret 引数を追加します。

次の例では、シークレットが見つかった場合に全体を表示するオプションを有効にして、cli サブディレクトリに対してパススキャンを実行します。

cycode scan --show-secret path ./cli

この場合、結果はマスキングされずに表示されます。

ソフトフェイル

通常、CLI はスキャン結果に問題が見つかった場合に終了コード 1 を返します。CI/CD の設定によっては、全体的な失敗につながることが一般的です。これを避けたい場合は、ソフトフェイル機能を使用できます。

すべての種類のスキャンで --soft-fail オプションを追加すると、結果が見つかったかどうかにかかわらず、終了コードは強制的に 0 になります。

スキャン結果の例
シークレットの結果例
╭─────────────────────────────────────────────────────────────── Hardcoded generic-password is used ───────────────────────────────────────────────────────────────╮
│                                                                                                                                               Violation 12 of 12 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity    🟠 MEDIUM                             │ │   34 };                                                                                               │ │
│ │  In file     /Users/cycodemacuser/NodeGoat/test/s  │ │   35                                                                                                  │ │
│ │              ecurity/profile-test.js               │ │   36 var sutUserName = "user1";                                                                       │ │
│ │  Secret SHA  b4ea3116d868b7c982ee6812cce61727856b  │ │ ❱ 37 var sutUserPassword = "Us*****23";                                                               │ │
│ │              802b3063cd5aebe7d796988552e0          │ │   38                                                                                                  │ │
│ │  Rule ID     68b6a876-4890-4e62-9531-0e687223579f  │ │   39 chrome.setDefaultService(service);                                                               │ │
│ ╰────────────────────────────────────────────────────╯ │   40                                                                                                  │ │
│                                                        ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ A generic secret or password is an authentication token used to access a computer or application and is assigned to a password variable.                     │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
IaC の結果例
╭──────────── Enable Content Encoding through the attribute 'MinimumCompressionSize'. This value should be greater than -1 and smaller than 10485760. ─────────────╮
│                                                                                                                                              Violation 45 of 110 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity      🟠 MEDIUM                           │ │   20 BinaryMediaTypes:                                                                                │ │
│ │  In file       ...ads-copy/iac/cft/api-gateway/ap  │ │   21   - !Ref binaryMediaType1                                                                        │ │
│ │                i-gateway-rest-api/deploy.yml       │ │   22   - !Ref binaryMediaType2                                                                        │ │
│ │  IaC Provider  CloudFormation                      │ │ ❱ 23 MinimumCompressionSize: -1                                                                       │ │
│ │  Rule ID       33c4b90c-3270-4337-a075-d3109c141b  │ │   24 EndpointConfiguration:                                                                           │ │
│ │                53                                  │ │   25   Types:                                                                                         │ │
│ ╰────────────────────────────────────────────────────╯ │   26     - EDGE                                                                                       │ │
│                                                        ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ This policy validates the proper configuration of content encoding in AWS API Gateway. Specifically, the policy checks for the attribute                     │ │
│ │ 'minimum_compression_size' in API Gateway REST APIs. Correct configuration of this attribute is important for enabling content encoding of API responses for │ │
│ │ improved API performance and reduced payload sizes.                                                                                                          │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
SCA の結果例
╭─────────────────────────────────────────────────────── [CVE-2019-10795] Prototype Pollution in undefsafe ────────────────────────────────────────────────────────╮
│                                                                                                                                             Violation 172 of 195 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity               🟠 MEDIUM                  │ │   26758   "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",                                           │ │
│ │  In file                /Users/cycodemacuser/Node  │ │   26759   "dev": true                                                                                 │ │
│ │                         Goat/package-lock.json     │ │   26760 },                                                                                            │ │
│ │  CVEs                   CVE-2019-10795             │ │ ❱ 26761 "undefsafe": {                                                                                │ │
│ │  Package                undefsafe                  │ │   26762   "version": "2.0.2",                                                                         │ │
│ │  Version                2.0.2                      │ │   26763   "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz",                   │ │
│ │  First patched version  Not fixed                  │ │   26764   "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=",                                           │ │
│ │  Dependency path        nodemon 1.19.1 ->          │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │                         undefsafe 2.0.2            │                                                                                                           │
│ │  Rule ID                9c6a8911-e071-4616-86db-4  │                                                                                                           │
│ │                         943f2e1df81                │                                                                                                           │
│ ╰────────────────────────────────────────────────────╯                                                                                                           │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ undefsafe before 2.0.3 is vulnerable to Prototype Pollution. The 'a' function could be tricked into adding or modifying properties of Object.prototype using │ │
│ │ a __proto__ payload.                                                                                                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
SAST の結果例
╭───────────────────────────────────────────── [CWE-208: Observable Timing Discrepancy] Observable Timing Discrepancy ─────────────────────────────────────────────╮
│                                                                                                                                               Violation 24 of 49 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity       🟠 MEDIUM                          │ │   173         " including numbers, lowercase and uppercase letters.";                                 │ │
│ │  In file        /Users/cycodemacuser/NodeGoat/app  │ │   174     return false;                                                                               │ │
│ │                 /routes/session.js                 │ │   175 }                                                                                               │ │
│ │  CWE            CWE-208                            │ │ ❱ 176 if (password !== verify) {                                                                      │ │
│ │  Subcategory    Security                           │ │   177     errors.verifyError = "Password must match";                                                 │ │
│ │  Language       js                                 │ │   178     return false;                                                                               │ │
│ │  Security Tool  Bearer (Powered by Cycode)         │ │   179 }                                                                                               │ │
│ │  Rule ID        19fbca07-a8e7-4fa6-92ac-a36d15509  │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │                 fa9                                │                                                                                                           │
│ ╰────────────────────────────────────────────────────╯                                                                                                           │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Observable Timing Discrepancy occurs when the time it takes for certain operations to complete can be measured and observed by attackers. This vulnerability │ │
│ │ is particularly concerning when operations involve sensitive information, such as password checks or secret comparisons. If attackers can analyze how long   │ │
│ │ these operations take, they might be able to deduce confidential details, putting your data at risk.                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
会社独自の修正ガイドライン

会社が Cycode ポータルの該当ポリシーで独自の修正ガイドラインを設定している場合、追加した修正ガイドラインが記載された「会社のガイドライン」フィールドが表示されます。会社のガイドラインを追加していない場合、このフィールドは CLI ツールに表示されません。

スキャン結果の無視

特定のシークレット値、特定の SHA512 値、特定のパス、特定の Cycode シークレットルール ID および IaC ルール ID を無視するルールを追加できます。これにより、これらの値についてスキャンでアラートが発生しなくなります。無視ルールはローカルの ./.cycode/config.yaml ファイルに記述され、保存されます。

警告

無視する値、パス、ポリシーを追加する際は、スキャンで真陽性を検出できるよう、慎重に検討してください。

cycode ignore コマンドで使用できるオプションは次のとおりです。

オプション説明
--by-value TEXTシークレットのスキャン時に特定の値を無視します。詳しくは、シークレット値を無視するをご覧ください。
--by-sha TEXTシークレットのスキャン時に、文字列の特定の SHA512 表現を無視します。詳しくは、シークレット SHA 値を無視するをご覧ください。
--by-path TEXT特定のパスをスキャン対象から除外します。スキャンタイプを指定する必要があります。詳しくは、パスを無視するをご覧ください。
--by-rule TEXT特定のシークレットルール ID/IaC ルール ID/SCA ルール ID のスキャンを無視します。詳しくは、シークレットまたは IaC ルールを無視するをご覧ください。
--by-package TEXTSCA スキャンの実行時に、特定のパッケージバージョンのスキャンを無視します。想定される形式は name@version です。詳しくは、パッケージを無視するをご覧ください。
--by-cve TEXTSCA スキャンの実行時に、特定の CVE のスキャンを無視します。想定される形式は CVE-YYYY-NNN です。
-t, --scan-type [secret|iac|sca|sast]実行するスキャン(secret/iac/sca/sast)を指定します。デフォルト値は secret です。
-g, --global無視ルールを追加し、グローバルの .cycode 設定ファイルを更新します。
シークレット値を無視する

特定のシークレット値を無視するには、--by-value フラグを使用します。これにより、指定したシークレット値は今後のすべてのスキャンで無視されます。シークレット値を無視対象に追加するには、次のコマンドを使用します。

cycode ignore --by-value {{secret-value}}

このセクションの冒頭の例で、特定のシークレット値を無視するコマンドは次のとおりです。

cycode ignore --by-value h3110w0r1d!@#$350

上記の例では、h3110w0r1d!@#$350 の値を、マスクされていないシークレット値に置き換えてください。スキャン結果でシークレット値を確認する方法については、Cycode のスキャンオプションをご覧ください。

シークレット SHA 値を無視する

特定のシークレット SHA 値を無視するには、--by-sha フラグを使用します。これにより、指定したシークレット SHA 値は今後のすべてのスキャンで無視されます。シークレット SHA 値を無視対象に追加するには、次のコマンドを使用します。

cycode ignore --by-sha {{secret-sha-value}}

このセクションの冒頭の例で、特定のシークレット SHA 値を無視するコマンドは次のとおりです。

cycode ignore --by-sha a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0

上記の例では、a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0 の値を、ご自身のシークレット SHA 値に置き換えてください。

パスを無視する

シークレット、IaC、または SCA スキャンで特定のパスを無視するには、--by-path フラグを -t, --scan-type フラグと組み合わせて使用します(スキャンタイプを指定する必要があります)。指定したパスは、今後のすべての該当スキャンで無視されます。次のコマンドを使用して、無視するパスを追加します。

cycode ignore -t {{scan-type}} --by-path {{path}}

このセクションの冒頭の例で、シークレットの特定のパスを無視するコマンドは次のとおりです。

cycode ignore -t secret --by-path ~/home/my-repo/config

上記の例の ~/home/my-repo/config の値を、ご自身のパスの値に置き換えてください。

このセクションの冒頭の例で、IaC スキャンから特定のパスを無視するコマンドは次のとおりです。

cycode ignore -t iac --by-path ~/home/my-repo/config

上記の例の ~/home/my-repo/config の値を、ご自身のパスの値に置き換えてください。

このセクションの冒頭の例で、SCA スキャンから特定のパスを無視するコマンドは次のとおりです。

cycode ignore -t sca --by-path ~/home/my-repo/config

上記の例の ~/home/my-repo/config の値を、ご自身のパスの値に置き換えてください。

シークレット、IaC、SCA、または SAST のルールを無視する

特定のシークレット、IaC、SCA、または SAST のルールを無視するには、--by-rule フラグを -t, --scan-type フラグと組み合わせて使用します(スキャンタイプを指定する必要があります)。指定したルール ID の値は、今後のすべてのスキャンで無視されます。次のコマンドを使用して、無視するルール ID の値を追加します。

cycode ignore -t {{scan-type}} --by-rule {{rule-ID}}

このセクションの冒頭の例で、特定のシークレットルール ID を無視するコマンドは次のとおりです。

cycode ignore -t secret --by-rule ce3a4de0-9dfc-448b-a004-c538cf8b4710

上記の例の ce3a4de0-9dfc-448b-a004-c538cf8b4710 の値を、無視するルール ID に置き換えてください。

このセクションの冒頭の例で、特定の IaC ルール ID を無視するコマンドは次のとおりです。

cycode ignore -t iac --by-rule bdaa88e2-5e7c-46ff-ac2a-29721418c59c

上記の例の bdaa88e2-5e7c-46ff-ac2a-29721418c59c の値を、無視するルール ID に置き換えてください。

このセクションの冒頭の例で、特定の SCA ルール ID を無視するコマンドは次のとおりです。

cycode ignore -t sca --by-rule dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b

上記の例の dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b の値を、無視するルール ID に置き換えてください。

パッケージを無視する

メモ

このオプションは SCA スキャンでのみ使用できます。

SCA スキャンで特定のパッケージを無視するには、--by-package フラグを -t, --scan-type フラグと組み合わせて使用します(スキャンタイプは sca を指定する必要があります)。{{package_name}}@{{package_version}} の形式で指定したパッケージは、今後のすべてのスキャンで無視されます。次のコマンドを使用して、無視するパッケージとバージョンを追加します。

cycode ignore --scan-type sca --by-package {{package_name}}@{{package_version}}

または

cycode ignore -t sca --by-package {{package_name}}@{{package_version}}

以下の例で、特定の SCA パッケージを無視するコマンドは次のとおりです。

cycode ignore --scan-type sca --by-package [email protected]

上記の例の pyyaml をパッケージ名に、5.3.1 を無視するパッケージのバージョンに置き換えてください。

設定ファイルで無視する

適用された無視ルールは、config.yaml という設定ファイルに保存されます。 このファイルは、開発者間で簡単に共有したり、リモート Git にコミットしたりできます。 これらのファイルは常に .cycode フォルダー内にあります。 このフォルダー名はドット(.)で始まるため、表示するには隠しファイルを表示する設定を有効にしてください。

設定ファイルのパス

デフォルトでは、すべての cycode ignore コマンドは、CLI を実行した現在のディレクトリに無視ルールを保存します。

例:/Users/name/projects/backend から無視 CLI コマンドを実行すると、/Users/name/projects/backend/.cycode に config.yaml が作成されます。

➜  backend  pwd
/Users/name/projects/backend
➜  backend  cycode ignore --by-value test-value
➜  backend  tree -a
.
└── .cycode
    └── config.yaml

2 directories, 1 file

2 つ目の方法は、無視ルールをグローバル設定ファイルに保存することです。 グローバル設定ファイルのパスは ~/.cycode/config.yaml です。 ここで ~ はユーザーのホームディレクトリを意味し、たとえば macOS では /Users/name です。

グローバル領域への保存は、cycode ignore コマンドの -g フラグを使って実行できます。 例:cycode ignore -g --by-value test-value。

適切な作業ディレクトリ

.cycode フォルダーを配置する場所と CLI を実行する場所を一致させることが非常に重要です。 CI/CD(GitHub Actions、Jenkins など)のような異なる環境で作業するときは、必ず再確認してください。

.cycode フォルダーをリポジトリのルートにコミットできます。この場合、CLI スキャンはリポジトリのルートから実行する必要があります。要件に合わない場合は、.cycode フォルダーを一時的に任意の場所へコピーし、そのフォルダーから CLI スキャンを実行できます。

設定内の無視ルールの構造

設定ファイルを読み取ったり、CLI を使わずに変更したりできるように、CLI が無視ルールをどのように保存するかを理解しておくことが重要です。

YAML の基本構造:

exclusions:
  {scanTypeName}:
    {ignoringType}:
    - someIgnoringValue1
    - someIgnoringValue2

scanTypeName に指定できる値:iac、sca、sast、secret。

ignoringType に指定できる値:paths、values、rules、packages、shas、cves。

警告

「値による無視」の値はプレーンテキストでは保存されません! CLI は値の sha256 ハッシュを保存します。 設定ファイルを手動で変更する場合は、文字列のハッシュを指定してください。

実際の config.yaml の例:

exclusions:
  iac:
    rules:
    - bdaa88e2-5e7c-46ff-ac2a-29721418c59c
  sca:
    packages:
    - [email protected]
  secret:
    paths:
    - /Users/name/projects/build
    rules:
    - ce3a4de0-9dfc-448b-a004-c538cf8b4710
    shas:
    - a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0
    values:
    - a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
    - 60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752

レポートコマンド

SBOM レポートの生成

ソフトウェア部品表(SBOM)は、アプリケーションの開発と提供に関わるすべての構成コンポーネントとソフトウェア依存関係の一覧です。 このコマンドを使用すると、ローカルプロジェクトまたはリポジトリ URI の SBOM レポートを作成できます。

このコマンドでは、次のオプションを使用できます。

オプション説明必須デフォルト
-f, --format [spdx-2.2|spdx-2.3|cyclonedx-1.4]SBOM 形式はい
-o, --output-format [JSON]出力ファイル形式を指定しますいいえjson
--output-file PATH出力ファイルいいえ現在のディレクトリに保存される自動生成ファイル名
--include-vulnerabilities脆弱性を含めますいいえFalse
--include-dev-dependencies開発用依存関係を含めますいいえFalse

このコマンドでは、次のコマンドを使用できます。

コマンド説明
pathコマンドで指定したパスの SBOM レポートを生成します
repository-urlコマンドで指定したリポジトリ URI の SBOM レポートを生成します
リポジトリ

リポジトリ URI の SBOM レポートを作成するには、次を実行します:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> repository_url <repository url>

例:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies repository_url https://github.com/cycodehq/cycode-cli.git

ローカルプロジェクト

パスの SBOM レポートを作成するには、次を実行します:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> path </path/to/project>

例:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies path /path/to/local/project

path サブコマンドでは、次の追加オプションを使用できます:

オプション説明
--no-restoreロックファイルの復元をスキップし、直接依存関係のみをスキャンします。詳細については、ロック復元オプションを参照してください。
--gradle-all-sub-projectsすべてのサブプロジェクトに対して Gradle の復元コマンドを実行します(複数プロジェクトの Gradle ビルドのルートから使用してください)。
--maven-settings-fileMaven のみ。依存関係ツリーの構築時に、カスタムの settings.xml ファイルを使用できます。

インポートコマンド

SBOM のインポート

ソフトウェア部品表(SBOM)は、アプリケーションの開発と提供に関わるすべての構成要素とソフトウェア依存関係の一覧です。 このコマンドを使用すると、ファイルシステムから Cycode に SBOM ファイルをインポートできます。

このコマンドでは、次のオプションを使用できます:

オプション説明必須デフォルト
-n, --name TEXTSBOM の表示名はい
-v, --vendor TEXTSBOM を提供した組織の名前はい
-l, --label TEXTSBOM にラベルを付けますいいえ
-o, --owner TEXTこの SBOM の連絡窓口となる Cycode ユーザーのメールアドレスいいえ
-b, --business-impact [High | Medium | Low]ビジネスへの影響いいえMedium

例:
cycode import sbom --name example-sbom --vendor cycode -label tag1 -label tag2 --owner [email protected] /path/to/local/project

スキャンログ

すべての CLI スキャンは Cycode に記録されます。ログは Settings > CLI Logs で確認できます。

構文ヘルプ

任意のコマンドにいつでも --help 引数を追加すると、利用可能なオプションとその構文を表示するヘルプメッセージを確認できます。

一般的なヘルプを表示するには、次のコマンドを入力します。

cycode --help

スキャンのオプションを表示するには、次のコマンドを入力します。

cycode scan --help

特定の種類のスキャンで利用可能なオプションを表示するには、次のコマンドを入力します。

cycode scan {{option}} --help

たとえば、パススキャンで利用可能なオプションを表示するには、次のコマンドを入力します。

cycode scan path --help

ignore スキャン機能で利用可能なオプションを表示するには、次のコマンドを使用します。

cycode ignore --help

レポートで利用可能なオプションを表示するには、次のコマンドを使用します。

cycode report --help

特定の種類のレポートで利用可能なオプションを表示するには、次のコマンドを入力します。

cycode scan {{option}} --help

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。