Code Audit (Ollama)
FreeNot checkedProvides local code auditing using Ollama models to analyze security vulnerabilities, performance bottlenecks, quality issues, architectural problems, testing g
About
Provides local code auditing using Ollama models to analyze security vulnerabilities, performance bottlenecks, quality issues, architectural problems, testing gaps, and documentation deficiencies across multiple programming languages with configurable analysis depth and severity classification.
README
AI-powered code auditing using local Ollama models with Model Context Protocol (MCP) integration
A comprehensive TypeScript MCP server that performs intelligent code audits for security, completeness, performance, quality, architecture, testing, and documentation using local AI models via Ollama.
🚀 Features
Multi-Dimensional Code Analysis
- Security: OWASP Top 10 vulnerabilities, authentication flaws, injection attacks
- Completeness: TODOs, empty functions, missing error handling, unfinished implementations
- Performance: Algorithmic complexity, memory leaks, optimization opportunities
- Quality: Code smells, SOLID principles, maintainability issues
- Architecture: Design patterns, separation of concerns, dependency management
- Testing: Testability issues, missing coverage, race conditions
- Documentation: API docs, code comments, compliance standards
Intelligent Model Selection
- Multi-model support: CodeLlama, DeepSeek-Coder, StarCoder2, Granite-Code, Qwen2.5-Coder
- Specialization-based routing: Different models for different audit types
- Fallback strategies: Automatic model fallback on failures
- Performance optimization: Fast vs. thorough modes
Advanced Features
- Context-aware analysis: Framework-specific checks (React, Express, Django, etc.)
- Priority-based auditing: Fast mode (security + completeness) for rapid feedback
- Language support: 10+ programming languages with language-specific rules
- Configurable severity: Customizable issue severity thresholds
- Auto-fix suggestions: Confidence-scored fix recommendations
- Complexity analysis: Cyclomatic, cognitive, and maintainability metrics
📋 Requirements
- Node.js: 18.0.0 or higher
- Ollama: Latest version (Download)
- RAM: 8GB+ recommended (for larger models)
- Storage: 10GB+ for essential models, 50GB+ for comprehensive setup
🛠️ Installation
Global Installation (Recommended)
# Install globally from npm
npm install -g @moikas/code-audit-mcp
# Run interactive setup (includes MCP configuration)
code-audit setup
# Or setup with automatic MCP configuration
code-audit setup --auto
# Start the MCP server
code-audit start
Development Installation
# Clone the repository
git clone <repository-url>
cd code-audit-mcp
# Install dependencies
npm install
# Build the package
npm run build
# Test locally
npm run test-local
🚀 Development Setup
Prerequisites
- Node.js: v18.0.0 or higher
- npm: v8.0.0 or higher
- Git: For version control and pre-commit hooks
- VS Code: Recommended IDE (see
.vscode/extensions.jsonfor extensions)
Initial Setup
# Clone and enter directory
git clone https://github.com/warrengates/code-audit-mcp.git
cd code-audit-mcp
# Install dependencies (includes husky setup)
npm install
# Build the project
npm run build
# Run quality checks
npm run quality-check
# Test the setup
npm run test-local
Pre-commit Hooks
This project uses Husky and lint-staged for automatic code quality checks:
- ESLint: Checks code for errors and style issues
- Prettier: Formats code consistently
- TypeScript: Type checks all TypeScript files
Pre-commit hooks run automatically on git commit. To manually run quality checks:
# Run all quality checks
npm run quality-check
# Fix auto-fixable issues
npm run quality-fix
# Individual checks
npm run lint # ESLint check
npm run format:check # Prettier check
npm run type-check # TypeScript check
The setup script will:
- ✅ Check prerequisites (Node.js, npm, tsx)
- 🩺 Verify Ollama installation and health
- 📦 Install recommended AI models
- 🧪 Test MCP server functionality
- 📝 Generate example configuration
Manual Setup
If you prefer manual installation:
# Install dependencies
npm install
# Install essential models
ollama pull codellama:7b
ollama pull granite-code:8b
# Build the project
npm run build
# Test the server
npm run dev
🎯 Usage
CLI Commands
# Interactive setup wizard
code-audit setup
# Start MCP server (foreground)
code-audit start
# Start as background daemon
code-audit start --daemon
# Stop running server
code-audit stop
# Check system health
code-audit health
# Manage AI models
code-audit models --list
code-audit models --pull codellama:7b
# Configuration management
code-audit config --show
code-audit config --set ollama.host=http://remote:11434
# MCP server management
code-audit mcp status
code-audit mcp configure
code-audit mcp remove
# Check for updates
code-audit update
Development Mode
# Development mode with hot reload
npm run dev
# Build TypeScript
npm run build
# Test package locally
npm run test-local
MCP Integration
Automatic Configuration (Recommended)
The setup wizard now automatically configures code-audit as an MCP server:
# Configure during setup
code-audit setup
# Or configure after installation
code-audit mcp configure
This will automatically add code-audit to:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Code (Global):
~/.config/claude/mcp-settings.json - Claude Code (Project):
.claude/mcp-settings.json
Manual Configuration
If you prefer manual configuration, add to your MCP configuration:
{
"mcpServers": {
"code-audit": {
"command": "code-audit",
"args": ["start", "--stdio"],
"env": {}
}
}
}
For more details, see:
Available Tools
audit_code - Main audit tool
{
"name": "audit_code",
"arguments": {
"code": "function processPayment(amount) {\n const query = `SELECT * FROM users WHERE id = ${userId}`;\n // TODO: implement payment logic\n}",
"language": "javascript",
"auditType": "all",
"priority": "thorough",
"context": {
"framework": "express",
"environment": "production",
"performanceCritical": true,
"projectType": "api"
}
}
}
Parameters:
code(required): Code to auditlanguage(required): Programming languageauditType:security|completeness|performance|quality|architecture|testing|documentation|allpriority:fast(security + completeness only) |thorough(all audit types)context: Additional context for framework-specific analysismaxIssues: Limit number of issues returned (default: 50)
health_check - Server health status
{
"name": "health_check",
"arguments": {}
}
list_models - Available AI models
{
"name": "list_models",
"arguments": {}
}
🔧 Configuration
Server Configuration
Create a configuration file or use environment variables:
const config = {
name: 'code-audit-mcp',
version: '1.0.0',
ollama: {
host: 'http://localhost:11434',
timeout: 30000,
retryAttempts: 3,
retryDelay: 1000,
},
auditors: {
security: {
enabled: true,
severity: ['critical', 'high', 'medium'],
rules: {
sql_injection: true,
xss_vulnerability: true,
hardcoded_secret: true,
},
},
performance: {
enabled: true,
severity: ['high', 'medium', 'low'],
thresholds: {
cyclomaticComplexity: 10,
nestingDepth: 4,
},
},
},
logging: {
level: 'info',
enableMetrics: true,
enableTracing: false,
},
};
Auditor Configuration
Each auditor can be individually configured:
{
enabled: boolean; // Enable/disable auditor
severity: Severity[]; // Severity levels to include
rules: Record<string, boolean>; // Specific rules to enable/disable
thresholds: Record<string, number>; // Numeric thresholds
}
Model Selection
Configure model preferences for different scenarios:
// Performance-critical code
const performanceConfig = {
strategy: 'PerformanceModelSelectionStrategy', // Always prefer fast models
fallbackModels: ['codellama:7b', 'granite-code:8b'],
};
// Quality-focused analysis
const qualityConfig = {
strategy: 'QualityModelSelectionStrategy', // Always prefer accurate models
fallbackModels: ['deepseek-coder:33b', 'codellama:13b'],
};
🤖 Supported Models
Essential Models (Recommended)
- CodeLlama 7B: Fast, general-purpose code analysis
- Granite Code 8B: Excellent for security analysis
Comprehensive Setup
- CodeLlama 13B: Better accuracy for complex analysis
- DeepSeek-Coder 6.7B: Superior performance analysis
- StarCoder2 7B: Specialized for testing analysis
- Qwen2.5-Coder 7B: Good for documentation analysis
Full Setup (Advanced)
- DeepSeek-Coder 33B: Highest accuracy (requires 16GB+ RAM)
- StarCoder2 15B: Advanced testing and architecture analysis
- Llama 3.1 8B: Excellent for documentation
Model Installation
# Essential models (~7GB)
ollama pull codellama:7b
ollama pull granite-code:8b
# Comprehensive setup (~30GB)
ollama pull codellama:13b
ollama pull deepseek-coder:6.7b
ollama pull starcoder2:7b
ollama pull qwen2.5-coder:7b
# Full setup (~80GB)
ollama pull deepseek-coder:33b
ollama pull starcoder2:15b
ollama pull llama3.1:8b
🌐 Language Support
Fully Supported
- JavaScript/TypeScript: React, Node.js, Express-specific checks
- Python: Django, Flask, FastAPI-specific analysis
- Java: Spring Boot, security-focused analysis
- Go: Goroutine safety, performance patterns
- Rust: Memory safety, performance optimization
Well Supported
- C#: .NET patterns, security analysis
- PHP: Laravel, WordPress security checks
- Ruby: Rails-specific patterns
- Swift: iOS-specific patterns
- Kotlin: Android-specific analysis
Basic Support
- C/C++: Memory safety, performance
- SQL: Injection detection, query optimization
- HTML/CSS: XSS prevention, performance
- Docker: Security configuration
- YAML/JSON: Configuration validation
📊 Example Output
{
"requestId": "audit_12345",
"issues": [
{
"id": "sql_injection_2",
"location": { "line": 2, "column": 15 },
"severity": "critical",
"type": "sql_injection",
"category": "security",
"title": "SQL injection vulnerability in query construction",
"description": "Direct string interpolation in SQL query allows SQL injection attacks",
"suggestion": "Use parameterized queries or prepared statements",
"confidence": 0.95,
"fixable": true,
"ruleId": "SEC001",
"documentation": "OWASP Top 10: A03:2021 – Injection"
},
{
"id": "todo_3",
"location": { "line": 3 },
"severity": "medium",
"type": "todo_comment",
"category": "completeness",
"title": "TODO comment indicates incomplete implementation",
"description": "Found TODO comment: // TODO: implement payment logic",
"suggestion": "Implement the missing functionality or remove the TODO comment",
"confidence": 1.0,
"fixable": false,
"ruleId": "COMP001"
}
],
"summary": {
"total": 2,
"critical": 1,
"high": 0,
"medium": 1,
"low": 0,
"info": 0,
"byCategory": {
"security": 1,
"completeness": 1
}
},
"suggestions": {
"autoFixable": [
/* fixable issues */
],
"priorityFixes": [
/* critical/high severity */
],
"quickWins": [
/* low effort, high impact */
],
"technicalDebt": [
/* long-term improvements */
]
},
"metrics": {
"duration": 1250,
"modelResponseTime": 800,
"coverage": {
"linesAnalyzed": 15,
"functionsAnalyzed": 1,
"complexity": 3
}
}
}
⚡ Performance Optimization
Fast Mode for Rapid Development
{
"auditType": "all",
"priority": "fast" // Only security + completeness
}
Context-Aware Analysis
{
"context": {
"framework": "react",
"environment": "production",
"performanceCritical": true,
"projectType": "web"
}
}
Caching Configuration
{
performance: {
maxConcurrentAudits: 3,
cacheEnabled: true,
cacheTtl: 300 // 5 minutes
}
}
🔍 Audit Types Deep Dive
Security Audit
- OWASP Top 10 Coverage: SQL injection, XSS, authentication flaws
- Language-specific: Prototype pollution (JS), pickle usage (Python)
- Framework-specific: CSRF protection (Express), SQL injection (Django)
Performance Audit
- Algorithmic Analysis: O(n²) detection, nested loop optimization
- Memory Management: Leak detection, object pooling opportunities
- Database Optimization: N+1 queries, missing indexes
- Async Patterns: Blocking operations, Promise handling
Quality Audit
- Code Smells: Long methods, large classes, duplicate code
- SOLID Principles: SRP, OCP, LSP, ISP, DIP violations
- Maintainability: Cyclomatic complexity, cognitive load
- Naming Conventions: Consistency, clarity, domain alignment
🛠️ Development
VS Code Setup
This project includes comprehensive VS Code configuration for optimal development experience:
Recommended Extensions
Install recommended extensions for the best experience:
# Install all recommended extensions
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
code --install-extension ms-vscode.vscode-typescript-next
code --install-extension usernamehw.errorlens
code --install-extension yoavbls.pretty-ts-errors
Or open VS Code and accept the workspace recommendations popup.
Workspace Settings
The .vscode/settings.json includes:
- Auto-formatting: Format on save with Prettier
- Linting: Real-time ESLint feedback
- TypeScript: Enhanced IntelliSense and error checking
- Import management: Auto-import and path intellisense
- Git integration: Pre-configured for the workflow
Debugging
Use the included debug configurations:
- Debug Server: Launch and debug the MCP server
- Debug CLI: Debug CLI commands
- Debug Tests: Step through test execution
Press F5 or use the Debug panel to start debugging.
Project Structure
code-audit-mcp/
├── src/
│ ├── server.ts # Main MCP server
│ ├── types.ts # TypeScript interfaces
│ ├── auditors/ # Audit implementations
│ │ ├── base.ts # Base auditor class
│ │ ├── security.ts # Security auditor
│ │ ├── completeness.ts # Completeness auditor
│ │ ├── performance.ts # Performance auditor
│ │ └── ...
│ ├── ollama/ # Ollama integration
│ │ ├── client.ts # HTTP client wrapper
│ │ ├── models.ts # Model configuration
│ │ └── prompts.ts # Audit prompts
│ └── utils/ # Utilities
│ ├── codeParser.ts # Code parsing
│ ├── complexity.ts # Complexity analysis
│ └── logger.ts # Logging utilities
├── cli/
│ └── setup.ts # Setup script
├── .vscode/ # VS Code configuration
│ ├── settings.json # Workspace settings
│ ├── extensions.json # Recommended extensions
│ └── launch.json # Debug configurations
├── .husky/ # Git hooks
│ └── pre-commit # Pre-commit checks
└── tests/ # Test suites
Building and Testing
# Development
npm run dev # Start with hot reload
npm run build # Compile TypeScript
npm run lint # Run ESLint
npm run format # Format with Prettier
# Testing
npm test # Run test suite
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
# Production
npm run start # Start production server
Adding Custom Auditors
- Create a new auditor class extending
BaseAuditor:
import { BaseAuditor } from './base.js';
export class CustomAuditor extends BaseAuditor {
constructor(config, ollamaClient, modelManager) {
super('custom', config, ollamaClient, modelManager);
}
// Override methods for custom logic
protected async postProcessIssues(rawIssues, request, language) {
// Custom post-processing
return super.postProcessIssues(rawIssues, request, language);
}
}
- Register in
auditors/index.ts:
import { CustomAuditor } from './custom.js';
export const auditorClasses = {
// ... existing auditors
custom: CustomAuditor,
};
- Add configuration:
const config = {
auditors: {
custom: {
enabled: true,
severity: ['high', 'medium'],
rules: {},
},
},
};
🐛 Troubleshooting
Common Issues
Ollama Connection Failed
# Check if Ollama is running
ollama list
# Start Ollama service
ollama serve
# Check port availability
curl http://localhost:11434/api/tags
Model Not Found
# List installed models
ollama list
# Install missing model
ollama pull codellama:7b
# Check model availability in server
curl -X POST http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{"model": "codellama:7b", "prompt": "test"}'
TypeScript Compilation Errors
# Clear build cache
rm -rf dist/
rm -rf node_modules/
npm install
# Check TypeScript configuration
npx tsc --noEmit
# Update dependencies
npm update
Memory Issues
# Check available memory
free -h
# Use smaller models
ollama pull codellama:7b # Instead of codellama:34b
# Reduce concurrent audits
{
"performance": {
"maxConcurrentAudits": 1
}
}
Performance Tuning
Model Selection Optimization
// For CI/CD environments - prioritize speed
const ciConfig = {
strategy: 'PerformanceModelSelectionStrategy',
priority: 'fast',
};
// For code review - prioritize accuracy
const reviewConfig = {
strategy: 'QualityModelSelectionStrategy',
priority: 'thorough',
};
Resource Management
{
ollama: {
timeout: 60000, // Increase for large files
retryAttempts: 5, // More retries for reliability
healthCheckInterval: 30000 // More frequent health checks
},
performance: {
maxConcurrentAudits: 2, // Reduce for limited RAM
cacheEnabled: true, // Enable for repeated analysis
cacheTtl: 600 // 10-minute cache
}
}
📚 API Reference
Tool Schemas
audit_code
interface AuditRequest {
code: string; // Required: Code to audit
language: string; // Required: Programming language
auditType: AuditType; // Optional: Default 'all'
file?: string; // Optional: File path for context
context?: AuditContext; // Optional: Additional context
priority?: 'fast' | 'thorough'; // Optional: Default 'thorough'
maxIssues?: number; // Optional: Default 50
includeFixSuggestions?: boolean; // Optional: Default true
}
Response Format
interface AuditResult {
requestId: string;
issues: AuditIssue[];
summary: AuditSummary;
coverage: AuditCoverage;
suggestions: AuditSuggestions;
metrics: AuditMetrics;
model: string;
timestamp: string;
version: string;
}
Error Codes
| Code | Description | Resolution |
|---|---|---|
INVALID_REQUEST |
Malformed request | Check required parameters |
CODE_TOO_LARGE |
Code exceeds size limit | Split into smaller chunks |
LANGUAGE_NOT_SUPPORTED |
Unsupported language | Use supported language |
NO_AVAILABLE_MODEL |
No suitable model found | Install required models |
OLLAMA_UNAVAILABLE |
Ollama service down | Start Ollama service |
MODEL_NOT_FOUND |
Requested model missing | Pull model with ollama pull |
GENERATION_FAILED |
AI generation failed | Check model health, retry |
AUDIT_FAILED |
General audit failure | Check logs, verify configuration |
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
# Fork and clone the repository
git clone https://github.com/your-username/code-audit-mcp.git
cd code-audit-mcp
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run tests
npm test
# Submit a pull request
Code Standards
- TypeScript: Strict mode enabled
- ESLint: Airbnb configuration
- Prettier: Automated formatting
- Testing: Jest with >80% coverage
- Documentation: JSDoc for all public APIs
📚 Development Documentation
- Contributing Guidelines: How to contribute to the project
- VS Code Setup: Optimal IDE configuration
- Pre-commit Hooks: Automated quality checks
- Troubleshooting: Solutions to common issues
📄 License
MIT License - see LICENSE for details.
🙏 Acknowledgments
- Anthropic for the Model Context Protocol specification
- Ollama for local AI model serving
- Meta for CodeLlama models
- DeepSeek for specialized coding models
- BigCode for StarCoder models
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
Built with ❤️ for better code quality through AI-powered analysis
Install Code Audit (Ollama) in Claude Desktop, Claude Code & Cursor
unyly install code-audit-ollamaInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add code-audit-ollama -- npx -y @moikas/code-audit-mcpStep-by-step: how to install Code Audit (Ollama)
FAQ
Is Code Audit (Ollama) MCP free?
Yes, Code Audit (Ollama) MCP is free — one-click install via Unyly at no cost.
Does Code Audit (Ollama) need an API key?
No, Code Audit (Ollama) runs without API keys or environment variables.
Is Code Audit (Ollama) hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Code Audit (Ollama) in Claude Desktop, Claude Code or Cursor?
Open Code Audit (Ollama) on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Code Audit (Ollama) with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
