mrt-fe-review-washer
Provides tools for collecting git diffs, enabling code review based on git changes between branches or commits.
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., "@mrt-fe-review-washer show recent code reviews"
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.
mrt-fe-review-washer
코더래빗(CodeRabbit)처럼 "리뷰 결과를 저장/조회" 하고, Task 관리로 체계적인 수정까지 할 수 있는 한국어 중심 MCP 서버입니다.
🦐 mcp-shrimp-task-manager 스타일의 Task 관리 기능 내장!
핵심 철학: 이 서버가 LLM을 내장해서 리뷰를 '자동 생성'하기보다,
MCP 호스트(Claude Code/Cline/Claude Desktop 등)의 모델이 리뷰를 만들고,
서버는 diff/규칙 제공 + 결과 저장/조회 + Task 관리를 담당합니다.
요구사항
Node.js 18+
git (diff 수집용)
Related MCP server: mutual-review-mcp
설치/빌드
npm i
npm run build📋 규칙 파일 관리 (중앙 집중식)
FE 리드가 이 MCP 서버의 templates/rules.ko.md 파일을 직접 관리합니다.
mrt-fe-review-washer/
└── templates/
└── rules.ko.md ← FE 리드가 관리하는 "원본"모든 프로젝트가 이 하나의 규칙 파일을 공유
규칙 변경 시 MCP 서버만 업데이트하면 모든 프로젝트에 즉시 반영
프로젝트별 복사본 관리 불필요
.mcp.json 연결(예시)
프로젝트(또는 사용자 설정)에 아래 형태로 등록합니다.
⚠️ 많은 MCP 호스트가 절대경로를 요구합니다.
{
"mcpServers": {
"mrt-fe-review-washer": {
"command": "node",
"args": ["/ABS/PATH/TO/mrt-fe-review-washer/dist/index.js"],
"env": {
"REPO_PATH": "/ABS/PATH/TO/YOUR/REPO"
}
}
}
}환경 변수
변수 | 설명 | 기본값 |
| 리뷰 대상 프로젝트 경로 (Tool에서 | 현재 작업 디렉토리 |
| 리뷰/Task 데이터 저장 경로 |
|
| 규칙 파일 경로 (커스텀) |
|
💡
review.collect_diff와review.make_promptTool에서repoPath파라미터를 지정하면 환경변수REPO_PATH를 오버라이드할 수 있습니다.
코드 리뷰 기준 (5가지)
이 MCP 서버는 다음 5가지 기준에 따라 코드 리뷰를 수행합니다:
1. 가독성(Readability)
같이 실행되지 않는 코드가 하나의 함수/컴포넌트에 섞여 있지 않은가?
구현 상세가 적절히 추상화되어 있는가?
복잡한 조건에 의미 있는 이름이 붙어 있는가?
매직 넘버에 이름이 붙어 있는가?
삼항 연산자가 단순하게 사용되고 있는가?
2. 예측 가능성(Predictability)
같은 이름을 가진 함수/변수가 동일한 동작을 하는가?
같은 종류의 함수는 반환 타입이 통일되어 있는가?
숨겨진 로직 없이 동작이 명시적으로 드러나는가?
3. 응집도(Cohesion)
함께 수정되는 파일이 같은 디렉토리에 있는가?
도메인별로 코드가 적절히 분리되어 있는가?
매직 넘버가 상수로 정의되어 한 곳에서 관리되는가?
4. 결합도(Coupling)
하나의 함수/Hook이 하나의 책임만 가지고 있는가?
페이지 전체의 상태를 한 곳에서 관리하지 않는가?
Props Drilling이 발생하지 않는가?
5. 미시적 관점(Micro Perspective)
조건부 렌더링 패턴이 일관되게 사용되는가? (ts-pattern, Show, SwitchCase)
전역 상태 사용 기준이 적절한가?
TypeScript 타입 정의가 컨벤션에 맞는가?
암묵적 타입 변환 사용이 명확한가?
추천 워크플로우
1️⃣ 리뷰 생성
1) diff 수집 → review.collect_diff
2) 프롬프트 생성 → review.make_prompt
3) (LLM이 리뷰 JSON 생성)
4) 리뷰 저장 → review.save2️⃣ Task 관리 (리뷰 → 수정)
5) 리뷰를 Task로 변환 → task.from_review
6) Task 목록 확인 → task.list
7) Task 실행 시작 → task.execute
8) (코드 수정)
9) Task 검증 → task.verify
10) Task 완료 → task.complete자세한 흐름: docs/WORKFLOW_KO.md
제공 Tools
Review Tools
Tool | 설명 | 주요 파라미터 |
| git diff 수집 |
|
| 리뷰 프롬프트 패키지 생성 (5가지 기준 포함) |
|
| 리뷰 저장 (criteria_feedback, test_scenarios 포함) |
|
| 리뷰 목록 |
|
| 리뷰 상세 조회 |
|
| 마크다운 변환 |
|
| 환경 변수 확인 | - |
Task Tools
Tool | 설명 | 주요 파라미터 |
| 리뷰 findings → Task 변환 |
|
| Task 수동 생성 |
|
| Task 목록 (상태별 필터) |
|
| Task 상세 조회 |
|
| Task 실행 시작 |
|
| Task 검증 |
|
| Task 완료 |
|
| Task 삭제 |
|
| Task 상태 변경 |
|
| Task 통계 | - |
리뷰 데이터 스키마
review.save로 저장되는 리뷰 데이터 구조:
{
"target": {
"base": "main",
"head": "HEAD"
},
"summary_ko": "변경 사항에 대한 간략한 요약(한국어)",
"risk": "low | medium | high",
"criteria_feedback": {
"readability": {
"good": ["잘된 점 1", "잘된 점 2"],
"improve": ["개선 필요한 점 1"]
},
"predictability": { "good": [], "improve": [] },
"cohesion": { "good": [], "improve": [] },
"coupling": { "good": [], "improve": [] },
"micro_perspective": { "good": [], "improve": [] }
},
"findings": [
{
"severity": "low | medium | high",
"category": "readability | predictability | cohesion | coupling | micro_perspective",
"file": "파일 경로",
"startLine": 1,
"endLine": 10,
"title_ko": "짧은 제목",
"detail_ko": "설명 + 근거 + 왜 중요한지",
"suggestion_patch_diff": "diff 텍스트(선택)"
}
],
"test_scenarios": [
"권장 테스트 시나리오 1",
"권장 테스트 시나리오 2"
]
}제공 Resources
Resource | 설명 |
| 활성 규칙 파일 |
| 리뷰 인덱스 |
| 최신 리뷰 |
| Task 인덱스 |
| 대기 중인 Task |
| 진행 중인 Task |
제공 Prompts
Prompt | 설명 |
| 코드 리뷰 템플릿 |
| Task 실행 가이드 |
| Task 계획 수립 |
저장 위치
${DATA_DIR}/
├── reviews/
│ └── rev_*.json # 리뷰 결과
└── tasks/
└── task_*.json # Task 데이터기본: ${REPO_PATH}/.review-data/
Available Tools
17 toolsreview.collect_diffC
git diff(base...head)를 수집해서 반환합니다. base가 'main'이면 자동으로 'origin/main'으로 변환됩니다.
Inputs: base, head, repoPath, contextLines.
review.debug.envB
서버가 인식한 경로/env를 보여줍니다.
Inputs: no named parameters.
review.export_markdownB
특정 review_id를 마크다운으로 변환하고 파일로 저장합니다.
Inputs: id (required).
review.getA
특정 review_id의 상세 JSON을 조회합니다.
Inputs: id (required).
review.listC
저장된 리뷰 목록을 조회합니다.
Inputs: limit.
review.make_promptA
규칙 + diff를 합쳐, 모델에게 그대로 넘길 '리뷰 프롬프트 패키지(한국어)'를 만들어줍니다. base가 'main'이면 자동으로 'origin/main'으로 변환됩니다.
Inputs: base, head, repoPath, contextLines, +1 more.
review.saveC
리뷰 결과(JSON)를 저장하고 review_id를 반환합니다.
Inputs: target (required), summary_ko (required), risk, findings, +1 more.
task.completeC
Task를 완료 상태로 변경합니다.
Inputs: id (required), verification_note.
task.createB
새 Task를 수동으로 생성합니다.
Inputs: title (required), description (required), file, endLine, +4 more.
task.deleteC
Task를 삭제합니다.
Inputs: id (required).
task.executeA
Task 실행을 시작합니다. 상태를 in_progress로 변경하고 실행 가이드를 제공합니다.
Inputs: id (required).
task.from_reviewA
리뷰 결과의 findings를 Task로 자동 변환합니다.
Inputs: review_id (required).
task.getC
특정 Task의 상세 정보를 조회합니다.
Inputs: id (required).
task.listA
Task 목록을 조회합니다. 상태별 필터링 가능.
Inputs: limit, status.
task.statsB
Task 전체 통계를 조회합니다.
Inputs: no named parameters.
task.update_statusC
Task 상태를 변경합니다.
Inputs: id (required), status (required).
task.verifyC
Task 완료를 검증합니다. 변경사항을 확인할 수 있도록 정보를 제공합니다.
Inputs: id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Most tools have clear, distinct purposes (e.g., review.collect_diff vs review.make_prompt). However, task.complete, task.update_status, and task.execute all involve status changes, which could lead to confusion about which to use.
Names follow a consistent domain.action pattern with snake_case (e.g., review.collect_diff, task.update_status). Minor deviations like task.from_review and task.stats break the verb-first convention.
17 tools is slightly above the ideal 3-15 range, but the two clear domains (review and task) justify the count. It feels a bit heavy but manageable.
The review pipeline (collect, prompt, save, list, get, export) and task lifecycle (create, list, get, update, execute, verify, complete, delete, stats) are well covered. Minor gaps like review deletion or update are not critical for the workflow.
Maintenance
Related MCP Connectors
Team memory for AI coding agents and code reviews, reviewed by humans and served over MCP.
Hosted MySQL MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
A MCP server built for developers enabling Git based project management with project and personal…
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides agentic code review powered by OpenAI-compatible models, designed for use with Claude Code.1MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables code review by having two LLMs (Claude and GPT-4o) independently evaluate code and then synthesize their findings into a unified report.3MIT
- AlicenseAqualityBmaintenanceMCP server that enables AI coding tools to scan projects for security vulnerabilities, secret leaks, and compliance issues, generating Korean-language audit reports.1513PolyForm Noncommercial 1.0.0
- FlicenseBqualityDmaintenanceMCP server for team task tracking, code review, and activity monitoring via Claude Code. Assign tasks, track branch activity, review code, and get daily summaries through natural language.18-