mcp-server-analyzer について
mcp-server-analyzerは、Python、JavaScript、TypeScriptのコード品質分析ツールをMCPクライアントに提供します。Lint、フォーマット、型チェック、デッドコード検出、総合評価に対応し、解析コードは呼び出し間で保持されません。
主な機能
- 01RuffによるPythonのLintとフォーマット
- 02tyによる型チェックと診断
- 03Vultureによる未使用コードの検出
- 04BiomeによるJS/TSのLintとフォーマット
- 05総合分析と品質スコア
- 06一時的なインメモリコード解析
活用シーン
- 01Pythonのスタイル問題と型エラーの確認
- 02未使用のインポートや関数の検出
- 03JavaScriptやTypeScriptのLintとフォーマット
- 04コード品質の総合レビュー
MCP 対応
MCPサーバーは、ruff-check、ty-check、vulture-scan、biome-check、analyze-codeなどの個別および統合分析ツールを、接続されたMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Server Analyzer for Python 🐍🔍
Ruffによるリンティング、tyによる型チェック、Vultureによるデッドコード検出を用いて、包括的な Python コード分析を提供する強力なModel Context Protocol(MCP)サーバーです。AI アシスタント、IDE、自動コードレビューワークフローに最適です。
🚀 クイックスタート
VS Code との連携(ワンクリックインストール)
手早くインストールするには、以下のワンクリックインストールボタンのいずれかを使用してください……
手動でインストールするには、以下の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加してください。Ctrl + Shift + Pを押してPreferences: Open User Settings (JSON)と入力すると開けます。
任意で、ワークスペース内の.vscode/mcp.jsonというファイルに追加することもできます。これにより、設定を他のユーザーと共有できます。
mcp.jsonファイルを使用する場合は、mcpキーが必要です。
uvx を使用する場合(推奨):
{
"mcp": {
"servers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
}
}
Docker を使用する場合:
{
"mcp": {
"servers": {
"analyzer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/anselmoo/mcp-server-analyzer"]
}
}
}
}
ユニバーサルインストール
# Install with uvx (recommended)
uvx install mcp-server-analyzer
# Install with pip
pip install mcp-server-analyzer
# Run with Docker
docker run ghcr.io/anselmoo/mcp-server-analyzer:latest
# Install from source
git clone https://github.com/anselmoo/mcp-server-analyzer.git
cd mcp-server-analyzer
uv sync --dev
uv run mcp-server-analyzer
📋 機能
- 🔍 RUFF による分析:自動修正機能を備えた包括的な Python リント
- 🧠 ty による型チェック:ルールベースの診断機能を備えた高速な Python 型分析
- 🧹 デッドコード検出:VULTURE で未使用のインポート、関数、変数を検出
- ⚡ Biome による JS/TS 分析:JavaScript と TypeScript の高速なリントとフォーマット
- 📊 品質スコアリング:品質指標を用いた統合分析
- 🚀 FastMCP フレームワーク:高性能な MCP サーバー実装
- 🐳 Docker 対応:セキュリティ署名に対応したマルチアーキテクチャコンテナ
- 🔒 セキュア:サプライチェーンセキュリティのため、すべてのリリースに Sigstore で署名
📈 分析例
RUFF のリントプレビュー
包括的なリント分析の例をご覧ください:📋 RUFF 分析プレビュー
VULTURE によるデッドコード検出プレビュー
デッドコード検出機能をご覧ください:🧹 VULTURE 分析プレビュー
🛠️ 利用可能なツール
| ツール | 説明 | 使用例 |
|---|---|---|
ruff-check | RUFF で Python コードをリント | スタイル違反、潜在的なエラー |
ruff-format | RUFF で Python コードをフォーマット | コードのフォーマットと一貫性 |
ruff-check-ci | CI/CD に最適化された RUFF 出力 | GitHub Actions、GitLab CI |
ty-check | ty で Python コードの型をチェック | 型安全性、不適切な戻り値 |
vulture-scan | デッドコード検出 | 未使用のインポート、関数、変数 |
biome-check | Biome で JS/TS コードをリント | スタイル違反、潜在的なエラー |
biome-format | Biome で JS/TS コードをフォーマット | コードのフォーマットと一貫性 |
analyze-code | Ruff + ty + Vulture による統合分析 | コード品質の包括的な評価 |
🔧 設定
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
}
Zed
Zed の settings.json に追加します:
"context_servers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
Claude Code(プロジェクトレベル)
プロジェクトのルートに .mcp.json を配置します:
{
"mcpServers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
}
🧪 開発
前提条件
セットアップ
# Clone repository
git clone https://github.com/anselmoo/mcp-server-analyzer.git
cd mcp-server-analyzer
# Install Python dependencies
uv sync --dev
# Install Biome (JS/TS analyzer)
npm ci
# Run tests
uv run pytest
# Run type checks
uv run ty check src tests
# Run pre-commit hooks
uv tool run pre-commit run --all-files
# Build Docker image
docker build -t mcp-server-analyzer .
テスト
# Run all tests
uv run pytest tests/ -v
# Run with coverage
uv run pytest --cov=src/mcp_server_analyzer --cov-report=html
# Test specific functionality
uv run pytest tests/test_server.py::TestAnalyzers::test_ruff_with_sample_code
📊 品質指標
サーバーは次の項目に基づいて品質スコアを算出します:
- Ruff の問題:スタイル違反、潜在的なバグ、複雑度の指標
- ty の診断:静的型チェックのエラーと警告
- デッドコード検出:未使用のインポート、関数、変数
- 統合スコア:重み付けされた品質評価(0~100)
🔒 セキュリティ
- 署名付きリリース:Sigstore ですべてのリリースに署名
- コンテナ署名:Cosign で Docker イメージに署名
- 信頼された公開:PyPI へのリリースでは GitHub OIDC の信頼された公開を使用
- 脆弱性スキャン:CI/CD でセキュリティスキャンを自動実行
- サプライチェーンセキュリティ:SLSA Build Level 3 に準拠
- セキュリティポリシー:脆弱性の報告については SECURITY.md をご覧ください
🔍 データの取り扱いと透明性
- メモリ内のみ:ツールに渡されたコードは一時ファイルに書き込まれて分析され、ファイルは直ちに削除されます。呼び出し間でデータが保持されることはありません。
- ネットワーク通信なし:分析中、サーバーは外部へのネットワーク接続を行いません。
- テレメトリなし:使用状況データ、分析データ、クラッシュレポートは収集されません。
- サブプロセスの分離:ruff、ty、vulture は固定の引数リストで実行されます。シェル展開や任意のコマンド実行は行われません。
📚 ドキュメント
- ドキュメント全文 - GitHub Pages のドキュメント
- ツールリファレンス - ツールのパラメーターと戻り値の型の詳細
- MCP 仕様 - Model Context Protocol について学べます
- FastMCP フレームワーク - 高性能な MCP 実装
- Ruff ドキュメント - Python リンターおよびフォーマッター
- ty ドキュメント - Python 型チェッカーおよび言語サーバー
- Vulture ドキュメント - デッドコード検出ツール
🤝 貢献
貢献を歓迎します!詳細については、CONTRIBUTING.md をご覧ください。
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - Conventional Commits を使用して変更をコミットします
- ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📝 ライセンス
このプロジェクトは MIT ライセンスのもとで公開されています。詳細については、LICENSE ファイルをご覧ください。
🙏 謝辞
- RUFF と uv を提供する Astral
- VULTURE を提供する Jendrik Seipp
- Model Context Protocol チーム
- FastMCP フレームワーク
より良い Python コード品質のために ❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。