Skip to main content
Glama
semgrep

Semgrep MCP Server

Official
by semgrep

Semgrep MCP サーバー

VS Code UVにインストール VS Code Dockerにインストール VS Code semgrep.ai にインストールする パイパイ ドッカー VS Code Insiders にインストール VS Code Insiders にインストール

Semgrepを使ってコードのセキュリティ脆弱性をスキャンするためのモデルコンテキストプロトコル(MCP)サーバー。バイブコーディングを安全に!😅

モデルコンテキストプロトコル(MCP)は、LLM、エージェント、Cursor、VS Code、WindsurfなどのIDE、あるいはMCPをサポートするあらゆるツール向けの標準化されたAPIです。MCPを利用することで、専門的なヘルプ情報を取得したり、コンテキストを取得したり、ツールのパワーを活用したりできます。Semgrepは、多くの言語をセマンティックに理解し、 5,000以上のルールを備えた、高速で決定論的な静的解析ツールです。🛠️

NOTE

このベータプロジェクトは現在開発中です。皆様からのフィードバック、バグレポート、機能リクエスト、そしてコードをお待ちしております。#mcpコミュニティのSlackチャンネルにぜひご参加ください。

コンテンツ

Related MCP server: Semgrep MCP Server

はじめる

uvを使用してPython パッケージをCLI コマンドとして実行します。

uvx semgrep-mcp # see --help for more options

または、 Docker コンテナとして実行します。

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

カーソル

mcp.json

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"], "env": { "SEMGREP_APP_TOKEN": "<token>" } } } }

自動的に使用するには.cursor/rulesに指示を追加します。

Always scan code generated using Semgrep for security vulnerabilities

ホストサーバー

[!警告] これは試験的なサーバーであり、動作が不安定になる可能性があります。MCP仕様が近い将来HTTPストリーミングとOAuthをサポートするようになれば、新しい機能が追加される予定です。🚀

mcp.json

{ "mcpServers": { "semgrep": { "url": "https://mcp.semgrep.ai/sse" } } }

デモ

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として公開されており、 pippipxuvpoetry 、または任意の Python パッケージ マネージャーを使用してインストールおよび実行できます。

$ pipx install semgrep-mcp $ semgrep-mcp --help Usage: semgrep-mcp [OPTIONS] Entry point for the MCP server Supports both stdio and sse transports. For stdio, it will read from stdin and write to stdout. For sse, it will start an HTTP server on port 8000. Options: -v, --version Show version and exit. -t, --transport [stdio|sse] Transport protocol to use (stdio or sse) -h, --help Show this message and exit.

標準入出力 (stdio)

stdioトランスポートは、標準入出力ストリームを介した通信を可能にします。これは特にローカル統合やコマンドラインツールに便利です。詳細は仕様をご覧ください。

パイソン

semgrep-mcp

デフォルトでは、Python パッケージはstdioモードで実行されます。標準入出力ストリームを使用しているため、ツールが出力されずにハングしているように見えますが、これは想定内の動作です。

ドッカー

このサーバーは Github のコンテナ レジストリ ( ghcr.io/semgrep/mcp ) に公開されています。

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

デフォルトでは、Docker コンテナはSSEモードになっているため、イメージ名の後に-t stdioを含め、 -iを付けて実行し、対話型モードで実行する必要があります。

サーバー送信イベント(SSE)

SSEトランスポートは、クライアントとサーバー間の通信において、HTTP POSTリクエストによるサーバーからクライアントへのストリーミングを可能にします。詳細は仕様書をご覧ください。

デフォルトでは、サーバーはクライアント接続を0.0.0.0:8000/sseでリッスンします。これを変更するには、 FASTMCP_*環境変数を設定してください。クライアントがサーバーに接続するには、サーバーが稼働している必要があります。

パイソン

semgrep-mcp -t sse

デフォルトでは、Python パッケージはstdioモードで実行されるため、 -t sseを含める必要があります。

ドッカー

docker run -p 8000:0000 ghcr.io/semgrep/mcp

Semgrep AppSec プラットフォーム

オプションで、Semgrep AppSec Platform に接続するには:

  1. ログインまたはサインアップ

  2. 設定からトークンを生成する

  3. トークンを環境変数に追加します。

    • CLI ( export SEMGREP_APP_TOKEN=<token> )

    • Docker ( docker run -e SEMGREP_APP_TOKEN=<token> )

    • MCP 構成 JSON

"env": { "SEMGREP_APP_TOKEN": "<token>" }
TIP

必要に応じてsupport@semgrep.comまでお問い合わせください。☎️

統合

カーソルIDE

次の JSON ブロックを~/.cursor/mcp.jsonグローバルまたは.cursor/mcp.jsonプロジェクト固有の構成ファイルに追加します。

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

カーソルMCP設定

詳細については、カーソルのドキュメントを参照してください。

VSコード / コパイロット

最も速くインストールするには、この README の上部にあるインストール ボタンをクリックしてください。

手動設定

VS Codeのユーザー設定(JSON)ファイルに、以下のJSONブロックを追加します。Ctrl Ctrl + Shift + Pを押してPreferences: Open User Settings (JSON)と入力することで実行できます。

{ "mcp": { "servers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } } }

オプションとして、ワークスペース内の.vscode/mcp.jsonというファイルに追加することもできます。

{ "servers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

Dockerの使用

{ "mcp": { "servers": { "semgrep": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/semgrep/mcp", "-t", "stdio" ] } } } }

詳細については、 VS Code のドキュメントを参照してください。

ウィンドサーフィン

次の JSON ブロックを~/.codeium/windsurf/mcp_config.jsonファイルに追加します。

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

詳細については、 Windsurf のドキュメントを参照してください。

クロードデスクトップ

Claude Desktop がこのサーバーを使用してカスタム ルールを記述する様子を示す短いビデオを以下に示します。

次の JSON ブロックをclaude_desktop_config.jsonファイルに追加します。

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

詳細については、 Anthropic のドキュメントを参照してください。

オープンAI

async with MCPServerStdio( params={ "command": "uvx", "args": ["semgrep-mcp"], } ) as server: tools = await server.list_tools()

詳細については、 OpenAI Agents SDK のドキュメントを参照してください。

カスタムクライアント

Python SSEクライアントの例

完全な例はexamples/sse_client.pyをご覧ください。

from mcp.client.session import ClientSession from mcp.client.sse import sse_client async def main(): async with sse_client("http://localhost:8000/sse") as (read_stream, write_stream): async with ClientSession(read_stream, write_stream) as session: await session.initialize() results = await session.call_tool( "semgrep_scan", { "code_files": [ { "filename": "hello_world.py", "content": "def hello(): print('Hello, World!')", } ] }, ) print(results)
TIP

一部のクライアントライブラリではURL : http://localhost:8000/sseが要求されますが、他のライブラリではHOST : localhost:8000のみが要求されます。WebブラウザでURLにアクセスし、サーバーが稼働していること、およびネットワークに問題がないことを確認してください。

詳細については、公式 SDK ドキュメントを参照してください。

貢献、コミュニティ、そしてソースからの実行

NOTE

皆様からのフィードバック、バグレポート、機能リクエスト、そしてコードをお待ちしております。#mcpコミュニティのSlackチャンネルにぜひご参加ください。

ソース コードから MCP サーバーで実行する方法の詳細については、 CONTRIBUTING.md を参照してください。

類似ツール 🔍

コミュニティプロジェクト🌟

MCP サーバーレジストリ


Semgrepチームが❤️を込めて作成しました

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/semgrep/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server