Code Review Assistant
Allows using local LLM models via Ollama for code review capabilities, including syntax checking, code explanation, and improvement suggestions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Code Review AssistantPlease review my Python code for errors and suggest improvements"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Code Review Assistant
Project Description
The Code Review Assistant is a simple multi-agent system built using the Model Context Protocol (MCP) and LangChain. Its purpose is to provide automated, preliminary feedback on code snippets, including syntax checking, code explanation, and improvement suggestions. It can be integrated with MCP-compatible clients like Cursor IDE or Claude for Desktop.
Related MCP server: code-review-mcp-server
Features
Syntax Check: Identifies potential syntax errors and structural issues.
Code Explanation: Provides a high-level explanation of the code's functionality.
Suggestion Generation: Offers actionable suggestions for code improvement.
MCP Server: Exposes code review capabilities as a tool via the Model Context Protocol.
Flexible LLM Backend: Supports both local Ollama models and the Groq API.
File Structure
code_review_assistant/
├── .uv/ # uv virtual environment directory (may be .venv based on your setup)
├── .env # Environment variables (sensitive config, ignored by git)
├── .gitignore # Specifies intentionally untracked files (.env, __pycache__, etc.)
├── code_review_server.py # Main MCP server file (FastMCP instance, tool definitions)
├── agents/
│ ├── __init__.py # Initializes the agents module
│ ├── syntax_check_agent.py # Contains logic for SyntaxCheckAgent
│ ├── explanation_agent.py # Contains logic for CodeExplanationAgent
│ └── suggestion_agent.py # Contains logic for SuggestionAgent
├── prompts/
│ ├── syntax_check_prompt.py # Prompt template for syntax checking
│ ├── explanation_prompt.py # Prompt template for code explanation
│ └── suggestion_prompt.py # Prompt template for suggestions
├── config.py # Non-sensitive, application-wide configurations
└── requirements.txt # Project dependenciesSetup
Clone the repository (if applicable, or navigate to your project directory).
Install
uv: If you don't haveuvinstalled, follow the official installation guide.# Example: via pipx pipx install uvNavigate to the project directory:
cd your-project-directory # e.g., cd CRA-MCP/craSet up the virtual environment and install dependencies:
uv venv # Activate the virtual environment # On Windows: .venv\\Scripts\\activate # On macOS/Linux: source .venv/bin/activate # Install dependencies from requirements.txt uv syncConfigure Environment Variables: Create a file named
.envin the root of the project (same directory asrequirements.txt). Copy the contents from.sample.envand fill in your actual configuration.# Example .env content (copy from .sample.env) # ... your configuration here ...Important: Replace
<your_groq_api_key_here>with your actual Groq API key if you plan to use Groq.If using Ollama: Download and install Ollama from ollama.com. Pull the required model (e.g.,
qwen2.5-coder) by runningollama pull qwen2.5-coderin your terminal. Ensure the Ollama server is running before starting the Code Review Assistant server.
Running the Server
Activate the virtual environment (if not already active):
# On Windows: .venv\\Scripts\\activate # On macOS/Linux: source .venv/bin/activateRun the server using
uv:uv run code_review_server.pyThe server will start and listen for connections from MCP clients.
Using the Tool
Once the server is running, you can connect to it from an MCP-compatible client (like Cursor IDE chat or Claude for Desktop). The client should detect the available code_review_assistant server and expose the review_code tool.
Call the review_code tool with the code snippet you want to review:
review_code("""
# Paste your code snippet here
def example_function(x):
return x * 2
""")The server will process the request using the configured LLM and return a consolidated code review including syntax feedback, explanation, and suggestions.
Customization
Prompts: Modify the prompt templates in the
prompts/directory to adjust the behavior of each agent.Agents: Enhance the logic within the agent files (
agents/) to include more complex processing or integrate with other tools/APIs.Configuration: Update
config.pyfor application-wide settings or add new environment variables to.env.
Note: This is a starting point. Further development is needed to implement more sophisticated LLM interactions, error handling, and potentially integrate additional review aspects.
Available Tools
1 toolreview_codeB
Provides an automated code review including syntax check, explanation, and suggestions.
Args: code_snippet: The code snippet string to review.
| Name | Required | Description | Default |
|---|---|---|---|
| code_snippet | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden but only mentions generic capabilities ('syntax check, explanation, and suggestions') without detailing behavioral traits like response nature, safety, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two succinct sentences plus a single parameter line, containing no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details on return values or output format, which is critical for a code review tool, and does not cover edge cases or expected behavior beyond the basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning to the parameter 'code_snippet' by stating it is 'the code snippet string to review,' but with 0% schema description coverage, more detail on constraints or format would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides an automated code review including syntax check, explanation, and suggestions, which aligns with the tool name 'review_code' and distinguishes it from potential siblings as none exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool or alternatives; it simply describes what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Only one tool exists, so there is no ambiguity. The tool's purpose is clearly defined.
With a single tool, naming consistency is maintained by default. The name 'review_code' is straightforward.
The server has only one tool, which feels thin for a code review assistant. While it covers the main function, additional tools (e.g., for file review or settings) would be expected.
The single tool provides syntax check, explanation, and suggestions, but lacks other common code review features like file input or configurable review settings. The surface is minimal.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP Server for an Agent Task Marketplace
An MCP server that automatically collects feedback on your MCP server.
MCP server for static security analysis of Android source code
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that automates code reviews through linting, testing, and git diff analysis. It also generates conventional commit messages and detailed pull request descriptions based on file changes and code patterns.
- AlicenseNot gradedqualityFmaintenanceAn MCP server that provides senior-level code review, quality checks, security analysis, and refactoring suggestions directly in your editor.1MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides agentic code review powered by OpenAI-compatible models, designed for use with Claude Code.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that performs automated code reviews by analyzing git diffs against configurable review standards with custom reviewer personas.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dasunmihiranga/code-review-assistant-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server