Co-dev review MCP
Allows reviewing GitHub pull requests: fetches PR details, diffs, and full file context, validates inline comment anchors against the PR head commit, and publishes approved comments as individual review comments (no formal APPROVE/REQUEST_CHANGES verdict).
Allows reviewing colleagues' GitLab merge requests: reads MR metadata, patches, full file context, and existing discussions, validates inline comment anchors against added/deleted lines (preserving both paths on renames), and posts comments as individual discussions once a draft is approved.
Reads SonarCloud analysis results for a configured project key and token, feeding static-analysis findings into the review workflow via the review_sonar tool. Read-only: no Sonar issue-status mutation is exposed.
Reads SonarQube (or SonarCloud) analysis results for a configured project key and token, feeding static-analysis findings into the review workflow via the review_sonar tool. Read-only: no Sonar issue-status mutation is exposed.
Click on "Deploy 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., "@Co-dev review MCP review MR !42 against ticket PROJ-123 and draft inline comments"
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.
co-dev-review
A senior code reviewer for your AI assistant. co-dev-review is an MCP server that lets Claude Code, Codex, GitHub Copilot, Cursor, Antigravity or any other MCP client review merge requests the way an experienced colleague would. It runs your compiler and linters, checks the callers outside the diff, traces edge cases and algorithmic cost, and posts only the comments you approve.
It also turns Azure DevOps, Jira or GitHub tickets into estimated tasks and helps triage SonarQube results.
You: Review MR 306 against ticket 54639, comments in French.
Assistant: checks out MR 306 in a separate worktree · runs tsc + eslint · lists 14 callers outside the diff
· reviews 31 hunks with the correctness, complexity, design, test and React rubrics
→ 2 blockers (confirmed), 3 majors, 1 question
[approval form: tick what to post] → 5 comments posted on GitLabWhy it is different
It checks the evidence, not only the diff. Each MR/PR is checked out in its own git worktree, without touching your branch. The repository's own TypeScript compiler, ESLint and
dotnet buildrun there, the unit tests related to the change run too, and every call site of a changed symbol outside the diff is listed.It's light on context. Responses are compact and shaped for review, without the providers' raw payloads. Mechanical steps can run on a cheaper subagent, so the reviewer's context is kept for the code.
It reviews like a senior. Rubrics for correctness (edge cases traced through each function, guarantees lost in removed lines), complexity (realistic n, derived Big O), design (duplicated helpers, smells that cause bugs) and tests are applied to every change. React/TypeScript, .NET, security and build rubrics add the specifics.
It can't skip work silently. Every changed hunk needs a verdict. The compiler and call-site passes must have run on the exact commit under review, or the draft must say why they were skipped. A blocker must be
confirmed.Nothing is posted without you. You approve each draft in the chat (
approve all except R2), or, if you prefer, in a form, a local browser page or the terminal. Your words are recorded with the approval.It works with any LLM. The server has no model dependency, and every MCP client works.
Related MCP server: MCP Code Review Server
Quick start
Requirements: Node.js 20.20.2 or later, and git.
git clone https://github.com/MohamedAmineBoufares/co-dev-review.git
cd co-dev-review
npm ci
npm run setupnpm run setup asks for your tokens, checks them, registers the server in every assistant it finds on your machine, and links the review skills. Restart your assistant, then ask:
List the tools from co-dev-review.
You should see review_work, plan_ticket_tasks and review_sonar. Details: Configuration.
What you need to configure
Fill in only what you use:
To… | Configure |
Review GitLab merge requests |
|
Review GitHub pull requests |
|
Run the compiler, linters and call-site search |
|
Read tickets and create tasks in Azure DevOps |
|
… in Jira |
|
… in GitHub Issues |
|
Read Sonar results |
|
Use it
Talk to your assistant normally:
Review MR 123 against ticket 456. Comments in French; let me skip non-blockers.
Review my local branch against origin/develop before I push. Don't post anything.
Split ticket 456 into implementation and test tasks with hour estimates.
List my open Azure tickets in the current iteration.
Check Sonar for MR 123 and fix the issues in my checkout.
In assistants that load skills (Claude Code, Codex, Copilot), the review-mr skill runs the complete sequence: just ask for a review, or invoke it directly (/review-mr 123 fr; /co-dev-review:review-mr 123 fr when loaded as a Claude Code plugin).
Starting a session from a template
Each task has a ready-made opening message: who the assistant is, its rules, the steps and the expected answer. Use them as slash commands (/mcp__co-dev-review__review-mr 306 fr in Claude Code), or print one to paste anywhere:
co-dev-review template explain-ticket ticket=PROJ-123The templates: review-mr, address-threads, review-local, plan-ticket, explain-ticket, qa-ticket, fix-sonar, fix-pipeline and work-ticket. You can override them or add your own: see Templates.
Approving what gets posted
When the comments or tasks are ready, the assistant shows them right in the chat. Each one shows its severity, file:line, the code it lands on and the text. You reply:
approve all except R2
Only what you named is posted. You can also say approve R1 R3, add later to approve without posting, or ask to reword an item first. If you'd rather approve outside the chat (a form, a local browser page or the terminal), set REVIEW_APPROVAL. See Approval and safety.
Before a review, the assistant also asks how deep to go: diff only (fast, cheap) or a local worktree with the compiler, linters and tests. For a worktree, it asks which package manager to use; when the MR doesn't touch dependencies, your own node_modules are linked in seconds.
Supported assistants
npm run setup registers the server automatically in:
Assistant | Skills linked |
Claude Code (CLI and IDE extensions) | yes |
Claude Desktop | no (rubrics are served over MCP) |
Codex (CLI, app, IDE extension) | yes |
VS Code with GitHub Copilot | yes |
GitHub Copilot CLI | yes |
Cursor | no (rubrics are served over MCP) |
Windsurf | no (rubrics are served over MCP) |
Google Antigravity | no (rubrics are served over MCP) |
Gemini CLI | no (rubrics are served over MCP) |
Any other MCP client works with a manual entry from examples/.
Commands
Command | What it does |
| Configure, check, register in assistants, link skills |
| Check credentials and connectivity (read-only) |
| Approve a draft in the terminal |
| List drafts and their state |
| List or safely remove review worktrees |
| Print a conversation template, filled in |
| Show what the last reviews actually did |
| Remove the registrations and skill links |
| All commands and options |
co-dev-review becomes available in any terminal once installed globally; setup offers to do it. In this folder, npm run doctor and npm run approve work too.
Documentation
How a review works: rubrics, worktree, compiler pass, blast radius, coverage ledger, evidence rules, trace
Configuration: every setting, where state lives, assistant registration, corporate proxies
Approval and safety: approval modes, what the model can and cannot do, failure recovery
Templates: conversation starters per task, and how to write your own
Tool reference: the MCP tools and their steps, for client implementers
Project layout
src/ MCP server, CLI and providers (GitLab, GitHub, Azure DevOps, Sonar)
skills/ review rubrics as SKILL.md files (review-mr is the entry point)
templates/ conversation starters per task, served as MCP prompts
docs/ documentation
examples/ manual MCP client configuration
test/ node:test suite; never calls real servicesDevelopment
npm run verify # static checks, then the test suite
npm run tools # start a temporary server and list its tools and steps
npm run schema # also report the JSON Schema constructs each tool usesTests cover MCP stdio discovery and validation, provider request contracts against mock HTTP, approval selection, expiry and tampering, the in-chat and browser approval paths, stale heads, uncertain writes, locks, diff anchors, the hunk ledger, coverage gaps, deterministic evidence and rubric routing.
License
Available Tools
3 toolsplan_ticket_tasksADestructive
request.step is one of: search, read, prepare, request_approval, approve, revise, view_draft, publish. Works with Azure DevOps, Jira and GitHub Issues. Turn a ticket into clear implementation and testing tasks with estimated hours, created under it after approval (Azure child Tasks, Jira sub-tasks, GitHub sub-issues). Use step=search to find tickets: WIQL or a saved query id for Azure, JQL or a filter id for Jira, a search query for GitHub. step=read returns the ticket, its children and discussion. step=prepare saves the plan for approval.
Inputs: request (required).
review_sonarARead-onlyIdempotent
Inspect a PR/MR and its Sonar quality gate, coverage, duplication, issues and hotspots together. The assistant explains failures and, when asked, fixes code using its local editing/testing tools. Supply ruleKey for remediation details or filePath (and lines) for source context. Use review_work read for the diff. This tool reads evidence; a new Sonar analysis is needed to confirm a fix.
Inputs: target (required), full, page, lines, +3 more.
review_workADestructive
request.step is one of: read, read_file, rubric, pipeline, checkout, checks, blast_radius, tests, prepare_comments, request_approval, approve, revise, view_draft, publish. Review local changes before pushing or a GitLab MR/GitHub PR. Start with step=read; it returns the diff, a per-hunk ledger and the domain rubrics to load. step=rubric returns the full text of a rubric for clients that cannot load skill files. step=pipeline reports the failing CI stages of a remote MR/PR with their cause and file:line. step=checkout puts a remote MR/PR head in a dedicated worktree. step=checks runs the repository's own compiler and linters over the change; step=blast_radius lists call sites outside the diff; step=tests runs the unit tests related to the change. Each returns a runId; prepare_comments requires the first two. The assistant examines code, explains blockers and suggestions, and can prepare French/English comments. Publishing requires the user approval of the saved draft: by default you show its preview and relay their reply with step=approve. These steps support one review; they are not separate tools.
Inputs: request (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
The three tools target mostly distinct domains: review_work handles general code review workflow, plan_ticket_tasks handles ticket decomposition, and review_sonar handles Sonar evidence. However, review_work and review_sonar both operate on PR/MR quality assessment, so an agent may be unsure which to call first without reading the descriptions carefully.
All names use snake_case, but the verb+object pattern is inconsistent: review_work and review_sonar share a 'review_' prefix, while plan_ticket_tasks uses 'plan_' with a three-word noun phrase. 'work' is also a vague noun compared to 'sonar', making the naming less predictable.
Three tools roughly map to the server's three apparent domains, which is reasonable. However, review_work alone packs thirteen distinct step operations into one tool, suggesting the surface is slightly under-factored and could benefit from narrower tools.
review_work provides an end-to-end lifecycle from diff reading to publishing comments, plan_ticket_tasks covers ticket search through approval and creation, and review_sonar covers Sonar evidence. Minor gaps exist, such as no explicit tool for updating existing tickets or merging MRs, but agents can work around them within the stated review scope.
Maintenance
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
AI code review for GitHub PRs with an MCP autofix loop for Claude Code and Cursor
GitHub Copilot MCP: code, repo, PR, workflow tools for AI assistants.
Team memory for AI coding agents and code reviews, reviewed by humans and served over MCP.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables code review operations on GitHub and GitLab, including fetching pull/merge requests, viewing diffs, adding comments, analyzing code quality, and creating merge requests directly from your MCP client.1521 npm4MIT
- FlicenseNot gradedqualityDmaintenanceEnables automated AI-powered code review for pull requests across GitHub, GitLab, Bitbucket, and Azure DevOps via webhooks, and manual code review through MCP tools using Groq, Claude, or GPT-4.1-
- FlicenseNot gradedqualityBmaintenanceEnables manual review of GitLab Merge Requests and GitHub Pull Requests, loading context, generating comment previews, and preparing commit-based fixes for unresolved threads. Every write — comments, replies, and commits — requires explicit user confirmation and an approved preview before it is published.-
- AlicenseNot gradedqualityCmaintenanceEnables pull request review, risk rating, and improvement suggestions directly inside MCP clients by pasting a GitLab/GitHub URL; it can post review comments back to the PR/MR.1MIT