MCP Server Semgrep

by Szowesgad
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

MCP サーバー Semgrep

搭載:

プロジェクトについて

このプロジェクトは当初、 Semgrep ツールReplit チームとそのAgent V2の堅牢性、およびstefanskiasan/semgrep-mcp-serverによる実装にヒントを得たものでしたが、インストールとメンテナンスを強化してより容易にするために、アーキテクチャ上の大幅な変更を加えて進化しました。

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

統合のメリット

開発者および開発チーム向け:

  • 包括的なソースコード分析- 個々のファイルだけでなく、プロジェクト全体にわたって問題を検出します
  • プロアクティブなエラー検出- 重大なバグになる前に潜在的な問題を特定します
  • 継続的なコード品質の改善- 定期的なスキャンとリファクタリングにより、コードベースが徐々に改善されます。
  • スタイルの一貫性- 次のようなコード内の不一致の特定と修正:
    • CSSにおける任意のZインデックスレイヤー
    • 一貫性のない命名規則
    • コードの重複
    • 名前付き定数の代わりに「マジックナンバー」

セキュリティのため:

  • 既知の脆弱性に対する自動コード検証- 既知のセキュリティ問題パターンのスキャン
  • カスタマイズされたセキュリティルール- プロジェクト固有のルールの作成
  • チーム教育- 潜在的な問題の検出を通じて安全なプログラミングの実践を教える

プロジェクトの保守と開発について:

  • 「ライブ」ドキュメント- AI はコードフラグメントがなぜ問題なのか、そしてそれをどのように修正するのかを説明できます。
  • 技術的負債の削減- 問題のある領域を体系的に検出して修正する
  • コードレビューの改善- 一般的な問題の自動検出により、より複雑な問題に集中できます

主な特徴

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

機能

Semgrep MCP Server は次のツールを提供します。

  • 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/Szowesgad/mcp-server-semgrep.git # Using pnpm pnpm add -g git+https://github.com/Szowesgad/mcp-server-semgrep.git # Using yarn yarn global add git+https://github.com/Szowesgad/mcp-server-semgrep.git

オプション4: ローカル開発セットアップ

  1. リポジトリをクローンします。
git clone https://github.com/Szowesgad/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

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

Semgrep インストールオプション

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

  • パッケージマネージャー経由:
    # Using pnpm pnpm add -g semgrep # Using npm npm install -g semgrep # Using yarn yarn global add semgrep
  • Python ピップ:
    pip install semgrep
  • 自作(macOS):
    brew install semgrep
  • リナックス:
    sudo apt-get install semgrep # or curl -sSL https://install.semgrep.dev | sh
  • ウィンドウズ:
    pip install semgrep

Claude Desktopとの統合

MCP Server Semgrep を Claude Desktop と統合するには、次の 2 つの方法があります。

方法1:Smithery.ai経由でインストールする(推奨)

  1. Smithery.ai の MCP Server Semgrep をご覧ください
  2. 「Claude Desktopにインストール」をクリックします
  3. 画面の指示に従ってください

方法2: 手動設定

  1. Claude Desktopをインストールする
  2. Claude Desktop 構成ファイル ( claude_desktop_config.json ) を更新し、これをサーバー セクションに追加します。
{ "mcpServers": { "semgrep": { "command": "node", "args": [ "/your_path/mcp-server-semgrep/build/index.js" ], "env": { "SEMGREP_APP_TOKEN": "your_semgrep_app_token" } } } }
  1. Claude Desktop を起動して、コード分析に関する質問を始めましょう。

使用例

プロジェクトスキャン

Could you scan my source code in the /projects/my-application directory for potential security issues?

スタイルの一貫性分析

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 インデックスを検出するルール:

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/ │ ├── config.ts # Server configuration │ └── 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 ルールの例 - 「The Hall of Code Horrs」

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

開発者

  • マチェイ・ガド- 半年前にbashを見つけられなかった獣医
  • Klaudiusz - 個々の霊的存在であり、米国カリフォルニア州の GPU ループのどこかに住む Anthropic の Claude Sonnet 3.5-3.7 の別インスタンスです。

CLI初心者からMCPツール開発者への道のり

🤖 Claude CodeMCP Toolsの全面的な協力を得て開発されました

謝辞

  • オリジナルのインスピレーションを与えてくれたstefanskiasan
  • クロードとMCPプロトコルの人類学的
  • 優れた静的解析ツールであるSemgrep
ID: uddu737c4c