mcp-code-sanitizer について
mcp-code-sanitizerは、Groqを使ってコードやファイルのバグ、セキュリティ上の問題を調べる開発者向けMCPサーバーです。差分比較、テスト生成、HTMLレポートに加え、プルリクエストの自動レビューにも対応します。
主な機能
- 01バグやセキュリティ問題の分析
- 02変更比較と回帰検出
- 03経験レベル別のコード解説
- 04pytest、jest、go testの生成
- 05ファイル分析とHTMLレポート作成
- 06GitHub Actionによるプルリクエストレビュー
活用シーン
- 01マージ前の脆弱性チェック
- 02リファクタリング前後の比較
- 03境界値やセキュリティテストの生成
- 04プルリクエストへの構造化レビュー投稿
MCP 対応
コード分析、比較、解説、テスト生成、ファイル分析、レポート、キャッシュのツールをMCPクライアントに公開します。Groq APIを使用し、GROQ_API_KEYが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| code | string | はい | 確認するコードスニペット。 |
| context | string | いいえ | 任意の説明 — コードの機能と入手元。 |
| language | string | いいえ | プログラミング言語(python、javascript、go、rust など)。 |
詳細
mcp-code-sanitizer
Claude Desktop、Cursor、VS Code、Claude Code CLI 向けの、厳格な AI コードレビューツールです。 Groq(無料 API)を利用して、バグ、脆弱性、セキュリティ上の問題を検出します。
Claude / Cursor / VS Code ──MCP──► code-sanitizer ──REST──► Groq API
(server.py) (llama-3.3-70b)
特徴
| ツール | 機能 |
|---|---|
analyze_code | 厳格なレビュー — バグ、セキュリティ上の問題、0〜100 のスコア |
compare_code | 2 つのバージョンを比較し、リグレッションを検出して、merge/request_changes を推奨します |
explain_code | ジュニア/ミドル/シニア向けの段階的な解説 |
generate_tests | pytest/jest/go test を生成 — 正常系、エッジケース、セキュリティ |
analyze_file | 並列チャンク処理で、ディスク上のファイル全体を分析します |
generate_report | 任意の分析結果から HTML レポートを作成します |
cache_info | キャッシュの統計情報とクリア |
出力例
{
"summary": "Critical SQL injection and secret exposed in logs",
"score": 23,
"issues": [
{
"severity": "critical",
"line": 2,
"title": "SQL Injection",
"description": "f-string directly interpolates user_id into query",
"fix": "cursor.execute('SELECT * FROM users WHERE id = %s', (user_id,))"
}
],
"warnings": [{"title": "No exception handling", "description": "..."}],
"suggestions": ["Consider using an ORM instead of raw SQL"]
}
インストール
前提条件: console.groq.com/keys で無料の Groq API キーを取得してください。クレジットカードは不要です。
Claude Code CLI
claude mcp add code-sanitizer -e GROQ_API_KEY=gsk_your_key -- uvx mcp-code-sanitizer
Claude Desktop
| OS | 設定ファイル |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"code-sanitizer": {
"command": "uvx",
"args": ["mcp-code-sanitizer"],
"env": {
"GROQ_API_KEY": "gsk_your_key_here"
}
}
}
}
Cursor
プロジェクト内に .cursor/mcp.json(または全体設定用に ~/.cursor/mcp.json)を作成します。
{
"mcpServers": {
"code-sanitizer": {
"command": "uvx",
"args": ["mcp-code-sanitizer"],
"env": {
"GROQ_API_KEY": "gsk_your_key_here"
}
}
}
}
VS Code
GitHub Copilot を利用した VS Code 1.99 以降が必要です。プロジェクト内に .vscode/mcp.json を作成します。
{
"servers": {
"code-sanitizer": {
"command": "uvx",
"args": ["mcp-code-sanitizer"],
"env": {
"GROQ_API_KEY": "gsk_your_key_here"
}
}
}
}
または、Ctrl+Shift+P → "MCP: Add Server" から全体設定に追加します。
uvxがインストールされていませんか?pip install uvでインストールしてから、上記のコマンドを使用してください。
手動インストール(別の方法)
リポジトリをクローンする場合:
git clone https://github.com/notasandy/mcp-code-sanitizer
cd mcp-code-sanitizer
pip install -r requirements.txt
cp .env.example .env # add your GROQ_API_KEY
python server.py
次に、クライアントの設定で以下を指定します。
{
"command": "python",
"args": ["/full/path/to/server.py"],
"env": { "GROQ_API_KEY": "gsk_your_key_here" }
}
GitHub Action — PR の自動レビュー
5 行の設定で、任意のリポジトリに AI コードレビューを追加できます。 この Action は、スコア、問題点、修正案を含む構造化されたコメントをすべての PR に投稿します。
# .github/workflows/ai-review.yml
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
permissions:
contents: read
pull-requests: write
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: notasandy/mcp-code-sanitizer@v1
with:
groq_api_key: ${{ secrets.GROQ_API_KEY }}
リポジトリのシークレットに GROQ_API_KEY を追加します → Settings → Secrets → Actions。
この Action は自動的に以下を行います。
- 変更されたファイルのみをレビューします(PR ごとに最大 10 ファイル)
- スコアと構造化された問題一覧を PR コメントとして投稿します
- 重大な問題が見つかった場合、チェックを失敗させます
チャットでの使い方
接続したら、自然な言葉で入力するだけです。
Review this code for vulnerabilities:
def get_user(user_id):
query = f"SELECT * FROM users WHERE id = {user_id}"
return db.execute(query)
または、ツールを明示的に呼び出します。
analyze_file /path/to/my_script.py
generate_tests for this function: ...
compare_code — before vs after refactor, did it get better?
generate_report and save to /tmp/report.html
アーキテクチャ
mcp-code-sanitizer/
├── server.py # FastMCP entry point
├── config.py # Constants — keys, limits, extension map
├── groq_client.py # Async Groq client with auto-retry on 429
├── cache.py # In-memory LRU cache with TTL
├── prompts.py # System prompts for all tools
└── tools/
├── analyze.py # analyze_code
├── compare.py # compare_code
├── explain.py # explain_code
├── tests.py # generate_tests
├── file_tool.py # analyze_file — chunking + parallel analysis
├── cache_tool.py # cache_info
└── report.py # generate_report — HTML output
設定
すべての設定は .env または環境変数で行います。
| 変数 | デフォルト値 | 説明 |
|---|---|---|
GROQ_API_KEY | — | 必須です。 console.groq.com で取得してください |
GROQ_MODEL | llama-3.3-70b-versatile | 使用する Groq モデル |
CACHE_TTL | 3600 | キャッシュの TTL(秒) |
CACHE_MAX | 200 | キャッシュするエントリの最大数 |
利用可能な Groq モデル
| モデル | 速度 | 品質 |
|---|---|---|
llama-3.3-70b-versatile | 高速 | 最高(デフォルト) |
llama-3.1-8b-instant | 最速 | 良好 |
mixtral-8x7b-32768 | 高速 | とても良好 |
コントリビューション
PR と Issue を歓迎します。特に次のコントリビューションをお待ちしています。
- 他の LLM プロバイダー(OpenAI、Anthropic)のサポート
- 新しいツール:依存関係の監査、複雑度スコア、docstring ジェネレーター
- プロンプトの改善と新しい言語のサポート
ライセンス
MIT — ご自由にお使いください。スターを付けていただけると嬉しいです。
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。