Semgrep MCP サーバー
Semgrepを使ってコードのセキュリティ脆弱性をスキャンするためのモデルコンテキストプロトコル(MCP)サーバー。バイブコーディングを安全に!😅
モデルコンテキストプロトコル(MCP)は、LLM、エージェント、Cursor、VS Code、WindsurfなどのIDE、あるいはMCPをサポートするあらゆるツール向けの標準化されたAPIです。MCPを利用することで、専門的なヘルプ情報を取得したり、コンテキストを取得したり、ツールのパワーを活用したりできます。Semgrepは、多くの言語をセマンティックに理解し、 5,000以上のルールを備えた、高速で決定論的な静的解析ツールです。🛠️
このベータプロジェクトは現在開発中です。皆様からのフィードバック、バグレポート、機能リクエスト、そしてコードをお待ちしております。#mcpコミュニティのSlackチャンネルにぜひご参加ください。
コンテンツ
Related MCP server: Semgrep MCP Server
はじめる
uvを使用してPython パッケージをCLI コマンドとして実行します。
または、 Docker コンテナとして実行します。
カーソル
自動的に使用するには.cursor/rulesに指示を追加します。
ホストサーバー
[!警告] これは試験的なサーバーであり、動作が不安定になる可能性があります。MCP仕様が近い将来HTTPストリーミングとOAuthをサポートするようになれば、新しい機能が追加される予定です。🚀
mcp.json
デモ
API
ツール
LLM がアクションを実行し、決定論的な計算を行い、外部サービスと対話できるようにします。
スキャンコード
security_check: セキュリティ上の脆弱性がないかコードをスキャンするsemgrep_scan: 指定された設定文字列を使用して、コードファイルのセキュリティ脆弱性をスキャンします。semgrep_scan_with_custom_rule: カスタム Semgrep ルールを使用してコードファイルをスキャンします
コードを理解する
get_abstract_syntax_tree: コードの抽象構文木 (AST) を出力する
メタ
supported_languagesされている言語のリストを返すsemgrep_rule_schema: 最新の semgrep ルール JSON スキーマを取得します。
プロンプト
一般的な LLM インタラクションを標準化するための再利用可能なプロンプト。
write_custom_semgrep_rule: Semgrepルールの作成を支援するプロンプトを返す
リソース
LLMにデータとコンテンツを公開する
semgrep://rule/schema: JSONスキーマを使用したSemgrepルールYAML構文の仕様semgrep://rule/{rule_id}/yaml: Semgrep レジストリからの YAML 形式の完全な Semgrep ルール
使用法
この Python パッケージは、 PyPI にsemgrep-mcpとして公開されており、 pip 、 pipx 、 uv 、 poetry 、または任意の Python パッケージ マネージャーを使用してインストールおよび実行できます。
標準入出力 (stdio)
stdioトランスポートは、標準入出力ストリームを介した通信を可能にします。これは特にローカル統合やコマンドラインツールに便利です。詳細は仕様をご覧ください。
パイソン
デフォルトでは、Python パッケージはstdioモードで実行されます。標準入出力ストリームを使用しているため、ツールが出力されずにハングしているように見えますが、これは想定内の動作です。
ドッカー
このサーバーは Github のコンテナ レジストリ ( ghcr.io/semgrep/mcp ) に公開されています。
デフォルトでは、Docker コンテナはSSEモードになっているため、イメージ名の後に-t stdioを含め、 -iを付けて実行し、対話型モードで実行する必要があります。
サーバー送信イベント(SSE)
SSEトランスポートは、クライアントとサーバー間の通信において、HTTP POSTリクエストによるサーバーからクライアントへのストリーミングを可能にします。詳細は仕様書をご覧ください。
デフォルトでは、サーバーはクライアント接続を0.0.0.0:8000/sseでリッスンします。これを変更するには、 FASTMCP_*環境変数を設定してください。クライアントがサーバーに接続するには、サーバーが稼働している必要があります。
パイソン
デフォルトでは、Python パッケージはstdioモードで実行されるため、 -t sseを含める必要があります。
ドッカー
Semgrep AppSec プラットフォーム
オプションで、Semgrep AppSec Platform に接続するには:
ログインまたはサインアップ
設定からトークンを生成する
トークンを環境変数に追加します。
CLI (
export SEMGREP_APP_TOKEN=<token>)Docker (
docker run -e SEMGREP_APP_TOKEN=<token>)MCP 構成 JSON
必要に応じてsupport@semgrep.comまでお問い合わせください。☎️
統合
カーソルIDE
次の JSON ブロックを~/.cursor/mcp.jsonグローバルまたは.cursor/mcp.jsonプロジェクト固有の構成ファイルに追加します。

詳細については、カーソルのドキュメントを参照してください。
VSコード / コパイロット
最も速くインストールするには、この README の上部にあるインストール ボタンをクリックしてください。
手動設定
VS Codeのユーザー設定(JSON)ファイルに、以下のJSONブロックを追加します。Ctrl Ctrl + Shift + Pを押してPreferences: Open User Settings (JSON)と入力することで実行できます。
オプションとして、ワークスペース内の.vscode/mcp.jsonというファイルに追加することもできます。
Dockerの使用
詳細については、 VS Code のドキュメントを参照してください。
ウィンドサーフィン
次の JSON ブロックを~/.codeium/windsurf/mcp_config.jsonファイルに追加します。
詳細については、 Windsurf のドキュメントを参照してください。
クロードデスクトップ
Claude Desktop がこのサーバーを使用してカスタム ルールを記述する様子を示す短いビデオを以下に示します。
次の JSON ブロックをclaude_desktop_config.jsonファイルに追加します。
詳細については、 Anthropic のドキュメントを参照してください。
オープンAI
詳細については、 OpenAI Agents SDK のドキュメントを参照してください。
カスタムクライアント
Python SSEクライアントの例
完全な例はexamples/sse_client.pyをご覧ください。
一部のクライアントライブラリではURL : http://localhost:8000/sseが要求されますが、他のライブラリではHOST : localhost:8000のみが要求されます。WebブラウザでURLにアクセスし、サーバーが稼働していること、およびネットワークに問題がないことを確認してください。
詳細については、公式 SDK ドキュメントを参照してください。
貢献、コミュニティ、そしてソースからの実行
皆様からのフィードバック、バグレポート、機能リクエスト、そしてコードをお待ちしております。#mcpコミュニティのSlackチャンネルにぜひご参加ください。
ソース コードから MCP サーバーで実行する方法の詳細については、 CONTRIBUTING.md を参照してください。
類似ツール 🔍
semgrep-vscode - 公式VS Code拡張機能
semgrep-intellij - IntelliJ プラグイン
コミュニティプロジェクト🌟
semgrep-rules - Semgrepルールの公式コレクション
mcp-server-semgrep - Szowesgadとstefanskiasanによって書かれたオリジナルのインスピレーション
MCP サーバーレジストリ
Semgrepチームが❤️を込めて作成しました