mcpField
M
MCP Server Semgrep

MCP Server Semgrep

ローカル
div0.space開発ツール2813 週間前に更新

MCP Server Semgrep について

MCP Server Semgrep は、静的解析ツール Semgrep を Anthropic Claude などの AI アシスタントに接続する MCP 準拠のサーバーです。会話の中でコードのセキュリティチェックや品質確認を行いたい開発者やチーム向けです。解析にはローカルにインストールされた semgrep CLI を使用します。

主な機能

  1. 01ディレクトリ内のセキュリティ問題とコード問題のスキャン
  2. 02利用可能なルールと対応言語の一覧表示
  3. 03スキャン結果の分析、フィルタリング、エクスポートと比較
  4. 04カスタム Semgrep ルールの作成
  5. 05許可されたワークスペースルート内へのファイルアクセス制限

活用シーン

  1. 01デプロイ前のコードセキュリティ分析
  2. 02修正前後のスキャン結果を比較して修正内容を検証
  3. 03チーム内での共通コーディング規約の適用

MCP 対応

MCP サーバーとして、scan_directory、list_rules、analyze_results、create_rule、filter_results、export_results、compare_results などのツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Server Semgrep

smithery badge mcp-server-semgrep MCP server

POWERED BY:

POWERED BY

プロジェクトについて

MCP Server Semgrep Logo このプロジェクトは、Semgrep ツールの堅牢性、The Replit TeamとそのAgent V2、そしてstefanskiasan/semgrep-mcp-serverによる実装に当初インスピレーションを受けましたが、インストールとメンテナンスを強化・簡素化するための大幅なアーキテクチャ変更を経て進化してきました。

MCP Server Semgrep は、強力な静的解析ツールである Semgrep を Anthropic Claude などの AI アシスタントと統合する、Model Context Protocol準拠のサーバーです。会話形式のインターフェースを通じて、高度なコード解析、セキュリティ脆弱性の検出、コード品質の改善を直接行うことができます。

統合のメリット

開発者と開発チームにとって:
  • 包括的なソースコード解析 - 個々のファイルだけでなく、プロジェクト全体にわたって問題を検出します
  • プロアクティブなエラー検出 - 潜在的な問題が重大なバグになる前に特定します
  • 継続的なコード品質の改善 - 定期的なスキャンとリファクタリングにより、コードベースが徐々に改善されます
  • スタイルの一貫性 - 以下のようなコードの不整合を特定して修正します:
    • CSS における任意の z-index レイヤー
    • 一貫性のない命名規則
    • コードの重複
    • 名前付き定数の代わりとなる「マジックナンバー」
セキュリティにとって:
  • 既知の脆弱性に対する自動コード検証 - 既知のセキュリティ問題パターンをスキャンします
  • カスタマイズされたセキュリティルール - プロジェクト固有のルールを作成します
  • チームの教育 - 潜在的な問題を検出することで、安全なプログラミング手法を教えます
プロジェクトのメンテナンスと開発にとって:
  • 「生きた」ドキュメント - AI がコード断片の問題点とその修正方法を説明できます
  • 技術的負債の削減 - 問題のある領域を体系的に検出して修正します
  • コードレビューの改善 - よくある問題を自動検出することで、より複雑な事項に集中できます

主な機能

  • 公式 MCP SDK との直接統合
  • ハンドラーを統合した簡素化されたアーキテクチャ
  • クリーンな ES Modules 実装
  • セキュリティのための効率的なエラー処理とパス検証
  • 英語とポーランド語の両方でのインターフェースとドキュメント
  • 包括的なユニットテスト
  • 充実したドキュメント
  • クロスプラットフォーム互換性 (Windows、macOS、Linux)
  • 柔軟な Semgrep インストールの検出と管理

機能

Semgrep MCP サーバーは以下のツールを提供します:

  • scan_directory: 潜在的な問題についてソースコードをスキャンします
  • list_rules: Semgrep がサポートする利用可能なルールと言語を表示します
  • analyze_results: スキャン結果の詳細な分析
  • create_rule: カスタム Semgrep ルールの作成
  • filter_results: さまざまな基準による結果のフィルタリング
  • export_results: さまざまな形式での結果のエクスポート
  • compare_results: 2 つの結果セットの比較 (例: 変更前と変更後)

一般的なユースケース

  • デプロイ前のコードセキュリティ解析
  • よくあるプログラミングエラーの検出
  • チーム内でのコーディング標準の徹底
  • 既存コードのリファクタリングと品質改善
  • スタイルとコード構造の不整合の特定 (例: CSS、コンポーネントの構成)
  • ベストプラクティスに関する開発者教育
  • 修正の正確性の検証 (スキャン前後の比較)

インストール

前提条件
  • Node.js v18 以上
  • TypeScript (開発用)
オプション 1: Smithery.ai からのインストール (推奨)

MCP Server Semgrep をインストールして使用する最も簡単な方法は、Smithery.ai を利用することです:

  1. Smithery.ai の MCP Server Semgrep にアクセスします
  2. インストール手順に従って、MCP 互換のクライアントに追加します
  3. Semgrep API トークンや許可するワークスペースルートなどのオプション設定を行います

これは Claude Desktop やその他の MCP クライアントで推奨される方法で、すべての依存関係と設定を自動的に処理します。

オプション 2: NPM レジストリからのインストール
# Using npm
npm install -g mcp-server-semgrep

# Using pnpm
pnpm add -g mcp-server-semgrep

# Using yarn
yarn global add mcp-server-semgrep

このパッケージは他のレジストリでも利用できます:

オプション 3: GitHub からのインストール
# Using npm
npm install -g git+https://github.com/vetcoders/mcp-server-semgrep.git

# Using pnpm
pnpm add -g git+https://github.com/vetcoders/mcp-server-semgrep.git

# Using yarn
yarn global add git+https://github.com/vetcoders/mcp-server-semgrep.git
オプション 4: ローカル開発環境のセットアップ
  1. リポジトリをクローンします:
git clone https://github.com/vetcoders/mcp-server-semgrep.git
cd mcp-server-semgrep
  1. 依存関係をインストールします (主要なパッケージマネージャーをすべてサポートしています):
# Using pnpm (recommended)
pnpm install

# Using npm
npm install

# Using yarn
yarn install
  1. プロジェクトをビルドします:
# Using pnpm
pnpm run build

# Using npm
npm run build

# Using yarn
yarn build

Note: インストールプロセスでは Semgrep が利用可能かどうかが自動的に確認されます。Semgrep が見つからない場合は、インストール方法の手順が表示されます。

ワークスペースルートの契約

このサーバーは、明示的に許可されたワークスペースルート内のファイルのみを読み書きします。

  • デフォルトでは、許可されるルートはプロセスの作業ディレクトリ (process.cwd()) です。
  • Claude Desktop、Smithery、またはプロジェクトルート内でサーバーを起動しないランチャーの場合は、MCP_SERVER_SEMGREP_ALLOWED_ROOTS に 1 つ以上の絶対ディレクトリを設定してください。
  • 複数のルートを指定する場合は、お使いのプラットフォームのパス区切り文字を使用してください: macOS/Linux では :、Windows では ; です。
認証モード

このサーバーは独自の Semgrep アカウント処理を実装していません。インストールされた semgrep CLI を呼び出し、Semgrep の通常の認証動作に依存します。

  • ローカルターミナルおよびローカル開発での実行では、現在の OS アカウントに既存の semgrep login セッションがあれば、それを利用できることがよくあります。
  • Claude Desktop、Smithery、コンテナ、CI などの管理された起動では、動作を確実にするために明示的な SEMGREP_APP_TOKEN を使用することを推奨します。
  • マシンやランナーをまたいでポータブルな設定が必要な場合も、SEMGREP_APP_TOKEN が依然として最も安全な選択肢です。
Semgrep のインストール方法

Semgrep はいくつかの方法でインストールできます:

  • パッケージマネージャー経由:

    # Using pnpm
    pnpm add -g semgrep
    
    # Using npm
    npm install -g semgrep
    
    # Using yarn
    yarn global add semgrep
    
  • Python pip:

    pip install semgrep
    
  • Homebrew (macOS):

    brew install semgrep
    
  • Linux:

    sudo apt-get install semgrep
    # or
    curl -sSL https://install.semgrep.dev | sh
    
  • Windows:

    pip install semgrep
    

Claude Desktop との統合

MCP Server Semgrep を Claude Desktop に統合する方法は 2 つあります:

方法 1: Smithery.ai 経由でのインストール (推奨)
  1. Smithery.ai の MCP Server Semgrep にアクセスします
  2. 「Install in Claude Desktop」をクリックします
  3. 画面の指示に従います
方法 2: 手動設定
  1. Claude Desktop をインストールします
  2. Claude Desktop の設定ファイル (claude_desktop_config.json) を更新し、servers セクションに以下を追加します。

すでに semgrep login で認証済みのユーザーアカウントで起動されるローカル起動の場合、Semgrep CLI はそのログインを再利用できる可能性があります。デスクトップ管理環境や共有環境では、引き続き SEMGREP_APP_TOKEN を明示的に設定することを推奨します:

{
  "mcpServers": {
    "semgrep": {
      "command": "node",
      "args": [
        "/your_path/mcp-server-semgrep/build/index.js"
      ],
      "env": {
        "SEMGREP_APP_TOKEN": "your_semgrep_app_token",
        "MCP_SERVER_SEMGREP_ALLOWED_ROOTS": "/Users/you/projects"
      }
    }
  }
}
  1. Claude Desktop を起動し、コード解析に関する質問を始めます。

複数のワークスペースをスキャンしたい場合は、MCP_SERVER_SEMGREP_ALLOWED_ROOTS にプラットフォームの区切り文字で区切った絶対パスのリストを設定してください。

使用例

プロジェクトのスキャン
Could you scan my source code in the /projects/my-application directory for potential security issues? That directory is already included in MCP_SERVER_SEMGREP_ALLOWED_ROOTS.
スタイルの一貫性分析
Analyze the z-index values in the project's CSS files and identify inconsistencies and potential layer conflicts.
カスタムルールの作成
Create a Semgrep rule that detects improper use of input sanitization functions.
結果のフィルタリング
Show me only scan results related to SQL injection vulnerabilities.
問題のあるパターンの特定
Find all "magic numbers" in the code and suggest replacing them with named constants.

カスタムルールの作成

プロジェクト固有のニーズに合わせてカスタムルールを作成できます。作成できるルールの例を以下に示します:

一貫性のない z-index を検出するルール:
rules:
  - id: inconsistent-z-index
    pattern: z-index: $Z
    message: "Z-index $Z may not comply with the project's layering system"
    languages: [css, scss]
    severity: WARNING
非推奨のインポートを検出するルール:
rules:
  - id: deprecated-import
    pattern: import $X from 'old-library'
    message: "You're using a deprecated library. Consider using 'new-library'"
    languages: [javascript, typescript]
    severity: WARNING

開発

テスト
pnpm test
プロジェクト構成
├── src/
│   └── index.ts          # Main entry point and all handler implementations
├── scripts/
│   └── check-semgrep.js  # Semgrep detection and installation helper
├── build/                # Compiled JavaScript (after build)
└── tests/                # Unit tests

詳細ドキュメント

ツールの使用方法の詳細については、以下をご覧ください:

  • USAGE.md - 詳細な使用手順
  • README_PL.md - ポーランド語でのドキュメント
  • examples/ - 楽しく実用的な Semgrep ルールの例 - 「コード恐怖の殿堂」

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細については LICENSE ファイルをご覧ください。

開発元

vetcoders

🤖 Claude Code と MCP Tools の支援を受けて開発されました

謝辞

  • stefanskiasan - 当初のインスピレーションに対して
  • Anthropic - Claude と MCP プロトコルに対して
  • Semgrep - 優れた静的解析ツールに対して

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。