MCP Security Analyst について
MCP Security Analystは、開発者やAIアシスタント向けにコードと依存関係を検査します。OSV.devによる脆弱性照会、Go AST解析、パターン検出、Gitleaksによるシークレット検出を組み合わせます。
主な機能
- 01OSV.devでパッケージの脆弱性を確認
- 02ASTでGoコードを解析
- 03Gitleaksでシークレットを検出
- 04脆弱性パターンを識別
- 05出力内のシークレットを一部マスキング
活用シーン
- 01go.modの依存関係に既知の問題がないか確認
- 02リポジトリ内の露出した認証情報を検出
- 03コードのインジェクションやデシリアライズのリスクを確認
- 04コード、シークレット、依存関係をまとめて検査
MCP 対応
脆弱性とコードのセキュリティ分析に使うcheck_vulnerabilities、analyze_security、scan_secretsツールを提供するMCPサーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Security Analyst
OSV.dev の脆弱性データベースとの連携、および Go ベースのネイティブなコード解析とシークレット検出エンジンを通じて、包括的なセキュリティ分析機能を提供する Model Context Protocol(MCP)サーバーです。
機能
- サプライチェーンの脆弱性分析:OSV.dev API と連携し、依存関係の脆弱性を評価します
- シークレット検出:Gitleaks v8 と連携し、認証情報や API キーを検出する 100 以上の組み込みルールを利用します
- 静的コード解析:AST ベースで Go コードのセキュリティ上のアンチパターンを解析します
- パターンマッチング:正規表現ベースで一般的なセキュリティ脆弱性を検出します
- MCP プロトコルのサポート:AI アシスタントと連携するための標準プロトコルを実装しています
- コミュニティ検証済みルール:セキュリティコミュニティが管理する Gitleaks のパターンを使用します
要件
コア要件
make deps
make install
ビルド依存関係
- Go 1.25.4 以降
- github.com/mark3labs/mcp-go
- github.com/zricethezav/gitleaks/v8
インストール
make deps # Install Go module dependencies
make build # Compile binary
make install # Install to /usr/local/bin
make run # Build and execute server
make clean # Remove build artifacts
mcp-osv バイナリは、MCP プロトコルを使用して stdin/stdout 経由で通信します。
IDE の設定
Cursor IDE
Configuration > MCP に移動して、次を追加します。
{
"mcpServers": {
"security_analyst": {
"name": "Security Analyst",
"type": "stdio",
"command": "/usr/local/bin/mcp-osv"
}
}
}
Claude Desktop
Settings > Developer にある MCP 設定ファイルを編集します。
{
"mcpServers": {
"mcp_osv": {
"command": "/usr/local/bin/mcp-osv",
"args": []
}
}
}
利用可能なツール
このサーバーは、セキュリティ分析用に 3 つの MCP ツールを公開します。
check_vulnerabilities
OSV.dev データベースを照会し、特定のパッケージバージョンにおける既知の脆弱性を確認します。
パラメーター:
package_name(string、必須):パッケージ識別子version(string、必須):バージョン文字列
機能:
- API リクエストを 1 秒あたり 1 件に制限します
- HTTP タイムアウト保護(10 秒)
- JSON レスポンスの解析
- 脆弱性の詳細情報の抽出
analyze_security
複数の検出エンジンを組み合わせた包括的なセキュリティ分析を行います。
パラメーター:
file_path(string、必須):対象のファイルまたはディレクトリのパス
分析コンポーネント:
- Go AST ベースのネイティブなコード解析
- 100 以上のルールによる Gitleaks v8 のシークレット検出
- 依存関係に対する OSV.dev の脆弱性チェック(go.mod ファイル)
- パターンベースの脆弱性検出
検出される問題:
- コマンドインジェクションの攻撃経路
- デシリアライゼーションの脆弱性
- SQL インジェクションのパターン
- ハードコードされた認証情報
- API キーとトークン
- 秘密鍵と証明書
- データベース接続文字列
scan_secrets
コミュニティが管理する 100 以上の検出ルールを備えた Gitleaks v8 を使用して、シークレットを検出します。
パラメーター:
path(string、必須):対象のファイル、ディレクトリ、またはリポジトリのパスscan_git_history(boolean、任意):git 履歴のスキャンを有効にします(デフォルト:false)
検出機能(100 以上のパターン):
- AWS アクセスキー、シークレットキー、セッショントークン
- GitHub Personal Access Token、OAuth トークン
- Google Cloud Platform API キー
- Azure の認証情報と接続文字列
- Slack トークンと Webhook
- Stripe API キー
- SSH/PGP/RSA 秘密鍵
- JWT トークン
- データベース接続文字列(PostgreSQL、MySQL、MongoDB)
- エントロピー分析を使用した汎用 API キー
- セキュリティコミュニティが管理するその他 90 以上のパターン
**出力:**安全に表示できるよう、シークレットの一部をマスキングします(先頭 4 文字と末尾 4 文字を表示)。
連携パターン
この MCP サーバーを使うと、AI アシスタントは自然言語のリクエストを通じてセキュリティ分析を実行できます。
依存関係の脆弱性スキャン:
Request: "Check dependencies in go.mod for vulnerabilities"
Tool Execution: analyze_security -> OSV.dev API queries
Response: Vulnerability report with CVE details
シークレット検出:
Request: "Scan repository for exposed credentials"
Tool Execution: scan_secrets -> Pattern matching + entropy analysis
Response: Detected secrets with file locations and types
包括的な監査:
Request: "Perform full security analysis"
Tool Execution: analyze_security -> All detection engines
Response: Combined report (code issues + secrets + vulnerabilities)
セキュリティ実装の詳細
レート制限
サービスのスロットリングを防ぐため、golang.org/x/time/rate リミッターを使用し、OSV.dev API リクエストを 1 秒あたり 1 件に制限します。
入力の検証
すべてのファイルパスは、ディレクトリトラバーサル攻撃を防ぐためにサニタイズされます。
- filepath.Clean() によるパスのクリーニング
- ディレクトリトラバーサルパターンの検出
- 存在確認
シークレットのマスキング
検出されたシークレットは、表示前に一部がマスキングされます。
- 8 文字以下のシークレット:すべてマスキング
- 8 文字を超えるシークレット:先頭 4 文字 + "***" + 末尾 4 文字
Gitleaks の統合
シークレット検出には Gitleaks v8 を使用しています。
- コミュニティによって保守されている 100 件以上の検出ルール
- ランダム性の高い文字列に対するエントロピー分析
- パフォーマンス向上のためのキーワードベースの事前フィルタリング
- 新しい種類のシークレットに対応する定期的な更新
セキュリティルールの追加
検出機能を拡張するには、次の手順に従ってください。
- シークレットと認証情報の検出:Gitleaks のルールは、上流の gitleaks/gitleaks で管理されています
- コード分析:
runGoCodeAnalysis()の AST 検査を拡張します - パターンマッチング:正規表現パターンは
analyzeFile()の checks マップに追加できます。マージされるよう、ブランチを作成し、追加する理由を説明した PR を提出してください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。