mrt-fe-review-washer

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.

Category
访问服务器

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_diffreview.make_prompt Tool에서 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选