Skip to main content

Smart MCP server for code review, test generation, and code execution

Project description

๐Ÿง  NeuroDev MCP Server

Intelligent Code Analysis, Test Generation & Execution

Python 3.8+ MCP License: MIT Tests

A powerful Model Context Protocol (MCP) server that supercharges your Python development workflow with AI-powered code review, intelligent test generation, and comprehensive test execution.

Features โ€ข Installation โ€ข Quick Start โ€ข Tools โ€ข Examples


โœจ Features

๐Ÿ” Code Review

  • 6 Powerful Analyzers
    • pylint - Code quality & PEP8
    • flake8 - Style enforcement
    • mypy - Type checking
    • bandit - Security scanning
    • radon - Complexity metrics
    • AST - Custom inspections
  • Real-time issue detection
  • Security vulnerability scanning
  • Complexity & maintainability scores

๐Ÿงช Test Generation

  • Intelligent AST Analysis
    • Auto-generate pytest tests
    • Happy path coverage
    • Edge case handling
    • Exception testing
    • Type validation tests
  • Supports functions & classes
  • Type-hint aware

โ–ถ๏ธ Test Execution

  • Comprehensive Testing
    • Isolated environment
    • Coverage reporting
    • Line-by-line analysis
    • Timeout protection
  • Detailed pass/fail results
  • Performance metrics

๐ŸŽจ Code Formatting

  • Auto-formatting
    • black - Opinionated style
    • autopep8 - PEP8 compliance
  • Configurable line length
  • Consistent code style
  • One-command formatting

๐Ÿ“ฆ Installation

Quick Install

```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

๐Ÿš€ Quick Start

Step 1: Configure Your MCP Client

๐Ÿ–ฅ๏ธ Claude Desktop

Edit ~/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"]
    }
  }
}

๐Ÿ’ก Tip: Replace /absolute/path/to/neurodev-mcp with your actual path

๐Ÿ”ง Cline (VSCode)

Add to your MCP settings:

{
  "neurodev-mcp": {
    "command": "python",
    "args": ["-m", "neurodev_mcp.server"]
  }
}
๐Ÿ Standalone Usage

Run the server directly:

# Using the module
python -m neurodev_mcp.server

# Or as a command (if installed)
neurodev-mcp

Step 2: Restart Your Client

Restart Claude Desktop or reload VSCode to load the server.

Step 3: Start Using! ๐ŸŽ‰

Try these commands with your AI assistant:

  • "Review this Python code for issues"
  • "Generate unit tests for this function"
  • "Run these tests with coverage"
  • "Format this code to PEP8 standards"

๐Ÿ› ๏ธ Available Tools

1. code_review

๐Ÿ” Comprehensive code analysis with multiple static analysis tools

Input:

{
  "code": "def calculate(x):\n    return x * 2",
  "analyzers": ["pylint", "flake8", "mypy", "bandit", "radon", "ast"]
}

Output:

  • Detailed issue reports from each analyzer
  • Security vulnerabilities
  • Complexity metrics
  • Code quality scores
  • Line-by-line suggestions

2. generate_tests

๐Ÿงช Intelligent pytest test generation using AST analysis

Input:

{
  "code": "def add(a: int, b: int) -> int:\n    return a + b",
  "module_name": "calculator",
  "save": false
}

Output:

  • Complete pytest test suite
  • Multiple test cases (happy path, edge cases, exceptions)
  • Type validation tests
  • Ready-to-run test code

3. run_tests

โ–ถ๏ธ Execute pytest tests with coverage reporting

Input:

{
  "test_code": "def test_add():\n    assert add(1, 2) == 3",
  "source_code": "def add(a, b):\n    return a + b",
  "timeout": 30
}

Output:

  • Pass/fail status
  • Coverage percentage
  • Line coverage details
  • Execution time
  • Detailed stdout/stderr

4. format_code

๐ŸŽจ Auto-format Python code to PEP8 standards

Input:

{
  "code": "def   messy(  x,y  ):\n        return x+y",
  "line_length": 88
}

Output:

  • Beautifully formatted code
  • PEP8 compliant
  • Consistent style
  • Change detection

๐Ÿ’ก Usage Examples

Example 1: Complete Code Review Workflow

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]

Example 2: Test Generation & Execution

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

Example 3: Code Formatting

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

๐Ÿ“‹ Requirements

Package Version Purpose
mcp โ‰ฅ0.9.0 Model Context Protocol SDK
pylint โ‰ฅ3.0.0 Code quality analysis
flake8 โ‰ฅ7.0.0 Style checking
mypy โ‰ฅ1.7.0 Static type checking
bandit โ‰ฅ1.7.5 Security scanning
radon โ‰ฅ6.0.1 Complexity metrics
black โ‰ฅ23.12.0 Code formatting
autopep8 โ‰ฅ2.0.4 PEP8 formatting
pytest โ‰ฅ7.4.3 Testing framework
pytest-cov โ‰ฅ4.1.0 Coverage reporting
pytest-timeout โ‰ฅ2.2.0 Test timeouts

Python: 3.8 or higher


๐Ÿงช Development

Running Tests

# Run installation tests
python test_installation.py

# Run examples
python examples.py

# Run pytest (if you add tests)
pytest

Using as a Library

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)

โ“ Troubleshooting

Server not appearing in MCP client?
  • โœ… Check that the path in config is absolute
  • โœ… Ensure the Python executable path is correct
  • โœ… Restart Claude Desktop or VSCode completely
  • โœ… Check server logs for errors
Import or module errors?
# Reinstall the package
pip install -e .

# Verify installation
python -c "from neurodev_mcp import CodeAnalyzer; print('โœ“ OK')"

# Run installation tests
python test_installation.py
Tests failing?
  • โœ… Ensure Python 3.8+ is installed
  • โœ… Activate virtual environment: source .venv/bin/activate
  • โœ… Reinstall dependencies: pip install -e .
  • โœ… Run: python test_installation.py to diagnose
Performance issues?
  • Some analyzers (pylint, mypy) can be slow on large files
  • Use specific analyzers: "analyzers": ["flake8", "ast"]
  • Increase timeout for large test suites
  • Consider caching results (future feature)

๐Ÿค Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: python test_installation.py
  5. Commit: git commit -m 'Add amazing feature'
  6. Push: git push origin feature/amazing-feature
  7. Open a Pull Request

Future Enhancements

  • Additional analyzers (pydocstyle, vulture)
  • Result caching for performance
  • Configuration file support
  • Web dashboard
  • Multi-language support
  • CI/CD pipeline

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments


๐Ÿ“ž Support


Ready to supercharge your Python development! ๐Ÿš€

Made with โค๏ธ by the NeuroDev Team

โญ Star on GitHub โ€ข ๐Ÿ› Report Bug โ€ข โœจ Request Feature

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neurodev_mcp-0.1.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neurodev_mcp-0.1.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file neurodev_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: neurodev_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for neurodev_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4ffc69cdbd1c809cefafe66f71cafc1d33712f5ea27b481225fae2c94a875718
MD5 68952aa344b5f82ae73b36ef52692107
BLAKE2b-256 2c6bd3036a8c86b76195dc876d22409ab0ca78607505dbd91218f70b77562dac

See more details on using hashes here.

Provenance

The following attestation bundles were made for neurodev_mcp-0.1.0.tar.gz:

Publisher: python-publish.yml on ravikant1918/neurodev-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neurodev_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: neurodev_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for neurodev_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80d96275de2e7889b2599140efd5019e2218a929b6e510b934ba79d76719131d
MD5 bae27d575f76d40b6a4b37687e718960
BLAKE2b-256 37e6c8061c19dc5d07ce5dfdb2c02a2e1083efa78b0a9fac938900ed2ed807e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for neurodev_mcp-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on ravikant1918/neurodev-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page