Experts
A Python-based code review system using the Model Context Protocol (MCP). It provides code review capabilities through simulated expert personas like Martin Fowler and Robert C. Martin (Uncle Bob).
Features
- Code review based on Martin Fowler's refactoring principles
- Code review based on Robert C. Martin's Clean Code principles
- Knowledge graph storage of code, reviews, and relationships
- Integration with Ollama for AI-powered reviews
- Server-side Event (SSE) support for web integration
Prerequisites
Python 3.10+
This project requires Python 3.10 or higher.
Ollama
Ollama is required for AI-powered code reviews.
-
Install Ollama for your platform:
- macOS: Download from ollama.com
- Linux:
curl -fsSL https://ollama.com/install.sh | sh - Windows: Windows WSL2 support via Linux instructions
-
Pull a recommended model:
ollama pull llama3:8b -
Start the Ollama server:
ollama serve
Installation
Run the setup script to install dependencies and create the virtual environment:
chmod +x setup.sh
./setup.sh
Configuration
Edit the .env file to configure (create from .env.example if needed):
# Knowledge Graph Settings
KNOWLEDGE_GRAPH_PATH=data/knowledge_graph.json
# Ollama Configuration (local AI models)
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=llama3:8b
Usage
Running the Server
Standard Mode (for Cursor Integration)
source .venv/bin/activate
python server.py
HTTP/SSE Mode (for Web Integration)
source .venv/bin/activate
python server.py --transport sse
This will start the server at http://localhost:8000/sse for SSE transport.
For custom port:
python server.py --transport sse --port 9000
Installing in Cursor
To install in Cursor IDE:
source .venv/bin/activate
mcp install server.py --name "Code Expert System"
Available Tools
The server exposes these tools:
ask_martin: Ask Martin Fowler to review code and suggest refactoringsask_bob: Ask Robert C. Martin (Uncle Bob) to review code based on Clean Code principlesread_graph: Read the entire knowledge graphsearch_nodes: Search for nodes in the knowledge graphopen_nodes: Open specific nodes by their names
Example Usage
To review a code snippet with Martin Fowler:
{
"code": "function calculateTotal(items) {\n var total = 0;\n for (var i = 0; i < items.length; i++) {\n total += items[i].price;\n }\n return total;\n}",
"language": "javascript",
"description": "Calculate the total price of items"
}
Project Structure
server.py: Main server implementation with MCP integrationexperts/: Expert modules implementing the code review capabilities__init__.py: Shared models and interfacesmartin_fowler/: Martin Fowler expert implementationrobert_c_martin/: Robert C. Martin expert implementation
knowledge_graph.py: Knowledge graph for storing code and reviewsollama_service.py: Integration with Ollama for AI-powered reviewsexamples/: Example code for review in different languagesrequirements.txt: Python dependenciessetup.sh: Setup script
Architecture
The system follows a modular architecture:
- Server Layer: Handles MCP protocol communication and routes requests
- Expert Layer: Encapsulates code review logic for each expert
- Service Layer: Provides AI integration and knowledge graph functionality
Each expert implements a standard interface allowing for consistent handling and easy addition of new experts.
License
MIT