Semgrep MCP サーバー
Semgrepを使ってコードのセキュリティ脆弱性をスキャンするためのモデルコンテキストプロトコル(MCP)サーバー。バイブコーディングを安全に!😅
モデルコンテキストプロトコル(MCP)は、LLM、エージェント、Cursor、VS Code、WindsurfなどのIDE、あるいはMCPをサポートするあらゆるツール向けの標準化されたAPIです。MCPを利用することで、専門的なヘルプ情報を取得したり、コンテキストを取得したり、ツールのパワーを活用したりできます。Semgrepは、多くの言語をセマンティックに理解し、 5,000以上のルールを備えた、高速で決定論的な静的解析ツールです。🛠️
[!NOTE] このベータプロジェクトは現在開発中です。皆様からのフィードバック、バグレポート、機能リクエスト、そしてコードをお待ちしております。
#mcp
コミュニティのSlackチャンネルにぜひご参加ください。
コンテンツ
はじめる
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
- CLI (
[!TIP] 必要に応じて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をご覧ください。
[!TIP] 一部のクライアントライブラリでは
URL
: http://localhost:8000/sseが要求されますが、他のライブラリではHOST
:localhost:8000
のみが要求されます。WebブラウザでURL
にアクセスし、サーバーが稼働していること、およびネットワークに問題がないことを確認してください。
詳細については、公式 SDK ドキュメントを参照してください。
貢献、コミュニティ、そしてソースからの実行
[!NOTE] 皆様からのフィードバック、バグレポート、機能リクエスト、そしてコードをお待ちしております。
#mcp
コミュニティのSlackチャンネルにぜひご参加ください。
ソース コードから MCP サーバーで実行する方法の詳細については、 CONTRIBUTING.md を参照してください。
類似ツール 🔍
- semgrep-vscode - 公式VS Code拡張機能
- semgrep-intellij - IntelliJ プラグイン
コミュニティプロジェクト🌟
- semgrep-rules - Semgrepルールの公式コレクション
- mcp-server-semgrep - Szowesgadとstefanskiasanによって書かれたオリジナルのインスピレーション
MCP サーバーレジストリ
Semgrepチームが❤️を込めて作成しました
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Semgrep への包括的なインターフェースを提供する MCP サーバー。ユーザーは、コードのセキュリティ脆弱性をスキャンし、カスタム ルールを作成し、モデル コンテキスト プロトコルを通じてスキャン結果を分析できます。
Related Resources
Related MCP Servers
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityEnables integration of Semgrep in development environments via the MCP protocol, supporting static code analysis, rule management, and scan result operations.Last updated -1JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server for querying the CVE-Search API. This server provides comprehensive access to CVE-Search, browse vendor and product、get CVE per CVE-ID、get the last updated CVEs.Last updated -615PythonMIT License
- -securityAlicense-qualityA server implementation that exposes grep functionality through the Model Context Protocol, allowing MCP-compatible clients to search for patterns in files using regular expressions.Last updated -1PythonGPL 3.0