Neurodev Mcp について
Neurodev Mcp は Python 開発者向けの MCP サーバーで、コードレビュー、pytest テストの生成・実行、フォーマットを提供します。静的解析ツールと AST 解析を組み合わせ、STDIO と SSE に対応しています。
主な機能
- 01複数ツールによる静的コードレビュー
- 02AST に基づく pytest 生成
- 03テスト実行とカバレッジレポート
- 04Black と autopep8 によるフォーマット
- 05STDIO と SSE に対応
活用シーン
- 01Python コードの品質とセキュリティ問題を確認
- 02関数やクラスの境界値テストを生成
- 03テストを実行してカバレッジを確認
- 04コードを PEP 8 スタイルに整形
MCP 対応
コードレビュー、テスト生成・実行、フォーマットのツールを MCP クライアントに公開します。ローカルクライアントとは STDIO で接続し、SSE による Web 連携にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🧠 NeuroDev MCP Server
インテリジェントなコード解析、テスト生成、実行
AI を活用したコードレビュー、インテリジェントなテスト生成、包括的なテスト実行により、Python 開発のワークフローを強化する強力な Model Context Protocol(MCP)サーバーです。
✨ 機能
🔍 コードレビュー
|
🧪 テスト生成
|
▶️ テスト実行
|
🎨 コードのフォーマット
|
📦 インストール
クイックインストール
```bash
# Clone the repository
git clone https://github.com/ravikant1918/neurodev-mcp.git
cd neurodev-mcp
# Create virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\\Scripts\\activate
# Install the package
pip install -e .
\`\`\`
### **Verify Installation**
\`\`\`bash
# Run tests (should show 15/15 passing)
python test_installation.py
# Test the server
python -m neurodev_mcp.server
\`\`\`
<details>
<summary><b>📁 Project Structure</b> (click to expand)</summary>
\`\`\`
neurodev-mcp/
├─ neurodev_mcp/ # 📦 Main package
│ ├─ __init__.py # Package exports
│ ├─ server.py # MCP server entry point
│ ├─ analyzers/ # 🔍 Code analysis
│ │ ├─ __init__.py
│ │ └─ code_analyzer.py # Multi-tool static analysis
│ ├─ generators/ # 🧪 Test generation
│ │ ├─ __init__.py
│ │ └─ test_generator.py # AST-based test creation
│ └─ executors/ # ▶️ Test execution
│ ├─ __init__.py
│ └─ test_executor.py # Test running & formatting
├─ pyproject.toml # Project configuration
├─ README.md # This file
├─ test_installation.py # Installation validator
├─ examples.py # Usage examples
└─ requirements.txt # Dependencies
🚀 クイックスタート
ステップ 1:MCP クライアントを設定
🖥️ Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"neurodev-mcp": {
"command": "/absolute/path/to/neurodev-mcp/.venv/bin/python",
"args": ["-m", "neurodev_mcp.server"]
}
}
}
💡 ヒント:
/absolute/path/to/neurodev-mcpを実際のパスに置き換えてください
🔧 Cline (VSCode)
MCP 設定に追加します。
{
"neurodev-mcp": {
"command": "python",
"args": ["-m", "neurodev_mcp.server"]
}
}
🐍 単独で使用
サーバーを直接実行します。
# Using the module
python -m neurodev_mcp.server
# Or as a command (if installed)
neurodev-mcp
ステップ 2:クライアントを再起動
サーバーを読み込むには、Claude Desktop を再起動するか、VSCode を再読み込みします。
ステップ 3:使用開始!🎉
AI アシスタントに次のコマンドを試してみてください。
- 「この Python コードの問題をレビューして」
- 「この関数の単体テストを生成して」
- 「カバレッジを測定して、これらのテストを実行して」
- 「このコードを PEP8 標準に合わせてフォーマットして」
🌐 トランスポートの選択肢
NeuroDev MCP は、用途に応じて複数のトランスポートプロトコルに対応しています。
STDIO(デフォルト)- ローカル CLI
Claude Desktop や Cline などの MCP クライアントを使ったローカル開発に最適です。
# Default STDIO transport
neurodev-mcp
# Or explicitly specify STDIO
neurodev-mcp --transport stdio
設定(Claude Desktop):
{
"mcpServers": {
"neurodev-mcp": {
"command": "neurodev-mcp",
"args": ["--transport", "stdio"]
}
}
}
SSE(Server-Sent Events)- Web 連携
Web ベースの連携や HTTP ストリーミングに使用します。
# Run with SSE on default port (8000)
neurodev-mcp --transport sse
# Custom host and port
neurodev-mcp --transport sse --host 0.0.0.0 --port 3000
エンドポイント:
- SSE ストリーム:
http://localhost:8000/sse - メッセージ:
http://localhost:8000/messages(POST)
Web クライアントの例:
const sse = new EventSource('http://localhost:8000/sse');
sse.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('Received:', data);
};
// Send message
fetch('http://localhost:8000/messages', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
method: 'tools/call',
params: {
name: 'code_review',
arguments: { code: 'def test(): pass', analyzers: ['pylint'] }
}
})
});
トランスポートの比較
| トランスポート | 用途 | 最適な用途 |
|---|---|---|
| STDIO | ローカル CLI クライアント | Claude Desktop、Cline、ローカル開発 |
| SSE | Web 連携 | ブラウザーアプリ、Webhook、リモートクライアント |
🛠️ 利用可能なツール
1. code_review
🔍 複数の静的解析ツールを使った包括的なコード解析
入力:
{
"code": "def calculate(x):\n return x * 2",
"analyzers": ["pylint", "flake8", "mypy", "bandit", "radon", "ast"]
}
出力:
- 各アナライザーからの詳細な問題レポート
- セキュリティの脆弱性
- 複雑度メトリクス
- コード品質スコア
- 行ごとの提案
2. generate_tests
🧪 AST 解析を使ったインテリジェントな pytest テスト生成
入力:
{
"code": "def add(a: int, b: int) -> int:\n return a + b",
"module_name": "calculator",
"save": false
}
出力:
- 完全な pytest テストスイート
- 複数のテストケース(正常系、エッジケース、例外)
- 型検証テスト
- すぐに実行できるテストコード
3. run_tests
▶️ カバレッジレポート付きで pytest テストを実行
入力:
{
"test_code": "def test_add():\n assert add(1, 2) == 3",
"source_code": "def add(a, b):\n return a + b",
"timeout": 30
}
出力:
- 合格/不合格のステータス
- カバレッジ率
- 行カバレッジの詳細
- 実行時間
- 詳細な stdout/stderr
4. format_code
🎨 Python コードを PEP8 標準に合わせて自動フォーマット
入力:
{
"code": "def messy( x,y ):\n return x+y",
"line_length": 88
}
出力:
- 美しくフォーマットされたコード
- PEP8 に準拠
- 一貫したスタイル
- 変更の検出
💡 使用例
例 1:コードレビューの完全なワークフロー
You: "Review this code for issues and security problems"
[paste code]
AI: [Uses code_review tool]
→ Finds 3 style issues
→ Detects 1 security vulnerability
→ Suggests complexity improvements
You: "Fix those issues and show me the updated code"
AI: [Provides fixed code with explanations]
例 2:テストの生成と実行
You: "Generate tests for this function and run them"
def divide(a: float, b: float) -> float:
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
AI: [Uses generate_tests tool]
→ Creates 5 test cases
→ Includes edge cases (zero, negative numbers)
→ Tests exception handling
[Uses run_tests tool]
→ 5/5 tests passing ✓
→ 100% code coverage
→ All edge cases handled
例 3:コードのフォーマット
You: "Format this messy code"
def calculate( x,y,z ):
result=x+y+z
if result>10:
return True
return False
AI: [Uses format_code tool]
→ Applies black formatting
→ Returns clean, PEP8-compliant code
def calculate(x, y, z):
result = x + y + z
if result > 10:
return True
return False
📋 要件
| パッケージ | バージョン | 用途 |
|---|---|---|
mcp | ≥0.9.0 | Model Context Protocol SDK |
pylint | ≥3.0.0 | コード品質の解析 |
flake8 | ≥7.0.0 | スタイルのチェック |
mypy | ≥1.7.0 | 静的型チェック |
bandit | ≥1.7.5 | セキュリティスキャン |
radon | ≥6.0.1 | 複雑度メトリクス |
black | ≥23.12.0 | コードのフォーマット |
autopep8 | ≥2.0.4 | PEP8 フォーマット |
pytest | ≥7.4.3 | テストフレームワーク |
pytest-cov | ≥4.1.0 | カバレッジレポート |
pytest-timeout | ≥2.2.0 | テストのタイムアウト |
Python: 3.8 以降
🧪 開発
テストの実行
# Run installation tests
python test_installation.py
# Run examples
python examples.py
# Run pytest (if you add tests)
pytest
ライブラリとしての使用
from neurodev_mcp import CodeAnalyzer, TestGenerator, TestExecutor
import asyncio
# Analyze code
code = "def hello(): print('world')"
result = asyncio.run(CodeAnalyzer.analyze_ast(code))
# Generate tests
tests = TestGenerator.generate_tests(code, "mymodule")
# Run tests
output = TestExecutor.run_tests(test_code, source_code)
❓ トラブルシューティング
MCP クライアントにサーバーが表示されませんか?
- ✅ 設定内のパスが絶対パスであることを確認してください
- ✅ Python 実行ファイルのパスが正しいことを確認してください
- ✅ Claude Desktop または VSCode を完全に再起動してください
- ✅ サーバーログにエラーがないか確認してください
インポートまたはモジュールのエラーですか?
# Reinstall the package
pip install -e .
# Verify installation
python -c "from neurodev_mcp import CodeAnalyzer; print('✓ OK')"
# Run installation tests
python test_installation.py
テストが失敗しますか?
- ✅ Python 3.8 以降がインストールされていることを確認してください
- ✅ 仮想環境を有効化してください:
source .venv/bin/activate - ✅ 依存関係を再インストールしてください:
pip install -e . - ✅ 診断のため、次を実行してください:
python test_installation.py
パフォーマンスに問題がありますか?
- 一部のアナライザー(pylint、mypy)は、大きなファイルでは処理が遅くなる場合があります
- 特定のアナライザーを使用してください:
"analyzers": ["flake8", "ast"] - 大規模なテストスイートではタイムアウトを延長してください
- 結果のキャッシュを検討してください(今後の機能)
🤝 コントリビューション
コントリビューションを歓迎します!手順は次のとおりです。
- リポジトリをフォークします
- 機能ブランチを作成します:
git checkout -b feature/amazing-feature - 変更を加えます
- テストを実行します:
python test_installation.py - コミットします:
git commit -m 'Add amazing feature' - プッシュします:
git push origin feature/amazing-feature - プルリクエストを作成します
今後の機能強化
- 追加のアナライザー(pydocstyle、vulture)
- パフォーマンス向上のための結果キャッシュ
- 設定ファイルのサポート
- Web ダッシュボード
- 多言語サポート
- CI/CD パイプライン
📄 ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
🙏 謝辞
📞 サポート
- 📖 ドキュメント:今お読みのページです!
- 🐛 問題:GitHub Issues
- 💬 ディスカッション:GitHub Discussions
- 📧 メール:[email protected]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。