Skip to main content
Glama

Semgrep MCP Server

Official
by semgrep

Semgrep MCP サーバー

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

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

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

コンテンツ

はじめる

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チームが❤️を込めて作成しました

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Semgrep への包括的なインターフェースを提供する MCP サーバー。ユーザーは、コードのセキュリティ脆弱性をスキャンし、カスタム ルールを作成し、モデル コンテキスト プロトコルを通じてスキャン結果を分析できます。

  1. コンテンツ
    1. はじめる
      1. カーソル
      2. ホストサーバー
    2. デモ
      1. API
        1. ツール
        2. プロンプト
        3. リソース
      2. 使用法
        1. 標準入出力 (stdio)
        2. サーバー送信イベント(SSE)
      3. Semgrep AppSec プラットフォーム
        1. 統合
          1. カーソルIDE
          2. VSコード / コパイロット
          3. ウィンドサーフィン
          4. クロードデスクトップ
          5. オープンAI
          6. カスタムクライアント
        2. 貢献、コミュニティ、そしてソースからの実行
          1. 類似ツール 🔍
          2. コミュニティプロジェクト🌟
          3. MCP サーバーレジストリ

        Related MCP Servers

        • -
          security
          A
          license
          -
          quality
          MCP 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 -
          4
          3
          TypeScript
          MIT License
        • -
          security
          A
          license
          -
          quality
          Enables integration of Semgrep in development environments via the MCP protocol, supporting static code analysis, rule management, and scan result operations.
          Last updated -
          1
          JavaScript
          MIT License
        • A
          security
          A
          license
          A
          quality
          A 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 -
          6
          15
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A 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 -
          1
          Python
          GPL 3.0

        View all related MCP servers

        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