mrt-fe-review-washer
A Korean-centric MCP server for storing code review results and managing tasks, integrating with LLMs like Claude for review generation.
README
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 수집용)
설치/빌드
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"
}
}
}
}
환경 변수
| 변수 | 설명 | 기본값 |
|---|---|---|
REPO_PATH |
리뷰 대상 프로젝트 경로 (Tool에서 repoPath로 오버라이드 가능) |
현재 작업 디렉토리 |
DATA_DIR |
리뷰/Task 데이터 저장 경로 | ${REPO_PATH}/.review-data |
REVIEW_RULES_PATH |
규칙 파일 경로 (커스텀) | templates/rules.ko.md (MCP 서버 내) |
💡
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.save
2️⃣ 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 | 설명 | 주요 파라미터 |
|---|---|---|
review.collect_diff |
git diff 수집 | repoPath?, base?, head? |
review.make_prompt |
리뷰 프롬프트 패키지 생성 (5가지 기준 포함) | repoPath?, base?, head?, maxDiffChars? |
review.save |
리뷰 저장 (criteria_feedback, test_scenarios 포함) | target, summary_ko, findings, ... |
review.list |
리뷰 목록 | limit? |
review.get |
리뷰 상세 조회 | id |
review.export_markdown |
마크다운 변환 | id |
review.debug.env |
환경 변수 확인 | - |
Task Tools
| Tool | 설명 | 주요 파라미터 |
|---|---|---|
task.from_review |
리뷰 findings → Task 변환 | review_id |
task.create |
Task 수동 생성 | title, description, ... |
task.list |
Task 목록 (상태별 필터) | status?, limit? |
task.get |
Task 상세 조회 | id |
task.execute |
Task 실행 시작 | id |
task.verify |
Task 검증 | id |
task.complete |
Task 완료 | id, verification_note? |
task.delete |
Task 삭제 | id |
task.update_status |
Task 상태 변경 | id, status |
task.stats |
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 | 설명 |
|---|---|
rules://active |
활성 규칙 파일 |
reviews://index |
리뷰 인덱스 |
reviews://latest |
최신 리뷰 |
tasks://index |
Task 인덱스 |
tasks://pending |
대기 중인 Task |
tasks://in_progress |
진행 중인 Task |
제공 Prompts
| Prompt | 설명 |
|---|---|
review |
코드 리뷰 템플릿 |
task-execute |
Task 실행 가이드 |
task-plan |
Task 계획 수립 |
저장 위치
${DATA_DIR}/
├── reviews/
│ └── rev_*.json # 리뷰 결과
└── tasks/
└── task_*.json # Task 데이터
기본: ${REPO_PATH}/.review-data/
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。