Semgrep MCP Server とは何ですか?
Semgrep MCP Server は、MCP 標準をサポートする LLM、エージェント、アプリケーションにアクセス可能な Semgrep の静的分析ツールを呼び出せるアクション(ツール)として公開する専用の MCP サーバーです。これにより、IDE(Cursor や VS Code)、チャットボット(ChatGPT)、エージェントフレームワークから直接、シームレスで自動化されたコードセキュリティスキャン、理解、ルール管理が可能になります。
Semgrep MCP Server の設定方法
- Python パッケージをインストールする:
pipx またはお好みの Python ツールを使用します:
pipx install semgrep-mcp
- サーバーを設定する:
CLI からuvx semgrep-mcp
を実行するか、Docker コンテナとして実行します:
docker run -i --rm ghcr.io/semgrep/mcp -t stdio
- 環境に統合する:
- Cursor や VS Code のような IDE の場合、MCP 設定ファイル(例:
.cursor/mcp.json
,.vscode/mcp.json
)を編集して、次を追加します:{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }
- ホスティングされている(クラウド)接続の場合、MCP サーバー URL を
https://mcp.semgrep.ai/mcp
に設定するか、互換性のためにhttps://mcp.semgrep.ai/sse
を使用します。 - AppSec プラットフォームとの統合:
Semgrep AppSec API トークンを生成し、環境変数として追加します:
export SEMGREP_APP_TOKEN=<token>
Docker の場合、-e SEMGREP_APP_TOKEN=<token>
を追加します。
- Cursor や VS Code のような IDE の場合、MCP 設定ファイル(例:
Semgrep MCP Server の使い方
- サーバーを起動します。使用するトランスポート(stdio、streamable-http、または SSE)を選択します。
- MCP をサポートする IDE または LLM フレームワークを通じて接続します。ローカルまたはリモートサーバーインスタンスに接続できるように設定されていることを確認します。
- ツールを呼び出します。コードスキャンや AST 生成などを接続されたインターフェースから直接実行します(例:LLM に「このコードを Semgrep を使ってセキュリティ脆弱性をスキャンして」と尋ねます)。
- 実行可能な結果を受け取ります。LLM、エージェント、ユーザーはコードの問題、発見やインサイトに関する詳細な出力を受け取り、シームレスに開発ワークフローに統合されます。
主な機能
- 即座にコードの脆弱性スキャンが可能。 LLMS またはツールから Semgrep を直接使用します。
- 複数のデプロイオプション: ローカル CLI、Docker、ホストされたクラウドエンドポイント。
- 広範な統合: IDE(Cursor、VS Code、Claude Desktop)、チャットボット(ChatGPT)、エージェント SDK への接続。
- ツール探索と実行: MCP エンドポイントを介して Semgrep ツールを動的にリストおよび呼び出すことができます。
- コードインサイトへのアクセス: 抽象構文木、サポートされている言語リスト、ルールスキーマを抽出します。
- カスタムルールの使用: 高度なユースケースのために、カスタマイズされた Semgrep ルールでコードを分析します。
- 安全な認証と AppSec プラットフォームの統合が可能。管理された企業環境向けです。
ユースケース
- 自動コードレビュー: プルリクエストレビュー、コード生成、IDE での提案に参加する AI エージェントにリアルタイムの Semgrep スキャンを組み込みます。
- セキュリティ監査の自動化: LLM/エージェントがプロジェクトファイルを自動またはオンデマンドでスキャンして脆弱性を検出するセキュリティワークフローを有効にします。
- LLM によるルール作成の補強: LLM を活用して、カスタム Semgrep ルールをコードベースにドラフト、検証、適用します。
- DevSecOps パイプラインの拡張: CI/CD または開発者環境に MCP パワーの Semgrep スキャンを追加し、即座に実行可能なフィードバックを提供します。
- インタラクティブな学習と説明: 抽象構文木とプロンプトツールを使用して、教育ツールやチャットボット内でコードの意味を教えたり説明したりします。
よくある質問
Q1: Semgrep MCP Server はどのプログラミング言語をサポートしていますか?
サーバーは、Python、JavaScript、Go、Java など、上流の Semgrep で利用可能なすべての言語をサポートしています。現在のサポート言語のリストを取得するには、supported_languages
ツールを使用してください。
Q2: クラウドアカウントやトークンなしで Semgrep MCP Server を使用できますか?
はい、コアのコードスキャンおよび理解のツールは、認証なしでローカルに機能します。Semgrep AppSec プラットフォームに関連付けられた高度な機能(クラウドの結果など)には、API トークンが必要です。
Q3: どの通信プロトコルがサポートされていますか?
Semgrep MCP Server は、stdio(CLI/ローカル用)、streamable HTTP(新しい統合向けに推奨)、およびサーバー送信イベント(レガシー互換性)をサポートしています。
Q4: Semgrep MCP Server を ChatGPT や VS Code に接続するにはどうすればよいですか?
コネクタまたはエディタの設定で、MCP サーバー URL を設定します(例:ChatGPT 用に https://mcp.semgrep.ai/sse
を、VS Code 用に .vscode/mcp.json
を更新します)。
Q5: LLM はカスタムの Semgrep ルールを自動的に作成し使用できますか?
はい、semgrep_scan_with_custom_rule
やプロンプトジェネレーターなどのツールを使用して、LLM/エージェントは動的に新しいルールを書き、適用できます。