Skip to main content
Glama
boranesn
by boranesn

devflow-mcp

AI 어시스턴트에게 PR 분석, 코드 리뷰, 변경 로그 생성, 의존성 감사, 커밋 요약 및 리팩토링 제안과 같은 심층적인 GitHub 개발자 도구를 제공하는 프로덕션급 Model Context Protocol 서버입니다.

기능

  • 전체 개발자 워크플로우를 다루는 6개의 MCP 도구

  • 휴리스틱 분석 — 외부 LLM 호출 없음, 빠르고 결정론적임

  • 실제 취약점 데이터(npm 및 PyPI)를 위한 OSV.dev 통합

  • GitHub API 호출을 최소화하기 위한 TTL이 포함된 LRU 캐시

  • GitHub 제한 내에서 유지하기 위한 토큰 버킷 속도 제한기

  • Zero any — 전체적으로 엄격한 TypeScript 적용

  • MSW로 모의 처리된 HTTP를 통한 ≥80% 테스트 커버리지

Related MCP server: GitHub MCP Agent Server

요구 사항

  • Node.js 18+

  • repo 범위가 포함된 GitHub 개인 액세스 토큰

설치

npm install -g devflow-mcp

또는 npx를 사용하여 직접 실행:

npx devflow-mcp

또는 복제 후 빌드:

git clone https://github.com/yourorg/devflow-mcp
cd devflow-mcp
npm install
npm run build

Claude Desktop 설정

claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "devflow": {
      "command": "npx",
      "args": ["devflow-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

설정 파일 위치:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

도구

analyze_pr

GitHub 풀 리퀘스트의 위험성, 보안 결과 및 병합 준비 상태를 분석합니다.

매개변수:

이름

유형

필수

설명

owner

string

예

저장소 소유자

repo

string

예

저장소 이름

pr_number

number

예

풀 리퀘스트 번호

focus

string[]

아니요

분석 제한: security, performance, logic, style

반환값: risk_score (0-100), risk_level, findings[], change_summary, merge_recommendation


review_code

코드 스니펫의 품질, 보안 문제 및 개선 기회를 검토합니다.

매개변수:

이름

유형

필수

설명

code

string

예

검토할 소스 코드

language

string

예

프로그래밍 언어

context

string

아니요

코드 기능에 대한 선택적 컨텍스트

반환값: overall_score (1-10), 심각도 + 수정 제안이 포함된 issues[], positive_observations[], refactor_priority


generate_changelog

커밋 기록에서 두 Git 참조 간의 변경 로그를 생성합니다.

매개변수:

이름

유형

필수

설명

owner

string

예

저장소 소유자

repo

string

예

저장소 이름

from_ref

string

예

기본 참조 (태그, SHA, 브랜치)

to_ref

string

예

대상 참조

format

string

아니요

markdown (기본값), json, plain

group_by

string

아니요

type (기본값), author, date

include_authors

boolean

아니요

작성자 이름 포함 (기본값: true)

반환값: changelog 문자열, commit_count, 카테고리별 stats, breaking_changes[]


audit_dependencies

OSV 취약점 데이터베이스를 기준으로 프로젝트 의존성을 감사합니다.

매개변수:

이름

유형

필수

설명

owner

string

예

저장소 소유자

repo

string

예

저장소 이름

ecosystem

string

예

npm, pypi 또는 auto

severity_threshold

string

아니요

보고할 최소 심각도: low (기본값), moderate, high, critical

반환값: CVE ID, 수정 버전 및 수정 명령이 포함된 vulnerabilities[]; audit_passed, 심각도 수준별 stats, osv_query_timestamp


summarize_commits

브랜치의 최근 커밋을 사람이 읽을 수 있는 요약본으로 정리합니다.

매개변수:

이름

유형

필수

설명

owner

string

예

저장소 소유자

repo

string

예

저장소 이름

branch

string

아니요

브랜치 이름 (기본값: 저장소 기본값)

since

string

아니요

ISO 날짜 또는 상대 시간 (7d, 24h, 2w, 1m)

limit

number

아니요

최대 커밋 수 (기본값: 50)

output_style

string

아니요

digest (기본값), standup, detailed

반환값: summary 문자열, categories (기능/수정/문서/리팩토링/기타), authors[], commit_count


suggest_refactor

영향 대비 노력 비율에 따라 순위가 매겨진 리팩토링 기회를 분석합니다.

매개변수:

이름

유형

필수

설명

code

string

예

분석할 소스 코드

language

string

예

프로그래밍 언어

goals

string[]

아니요

집중 영역: readability, performance, testability, maintainability

반환값: 근거 및 노력 추정치가 포함된 suggestions[], priority_order[], original_complexity_score

개발

# Install dependencies
npm install

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Type-check and build
npm run build

# Lint
npm run lint

# Format
npm run format

# Start the server (after build)
npm start

프로젝트 구조

src/
  index.ts              # Entry point
  server.ts             # MCP server registration
  tools/                # Tool handlers (one per tool)
  github/               # GitHub API clients
  lib/                  # Shared utilities
    cache.ts            # LRU cache with TTL
    rate-limiter.ts     # Token-bucket rate limiter
    commit-parser.ts    # Conventional commit parser
    diff-parser.ts      # Git diff parser
    risk-scorer.ts      # PR risk scoring heuristics
    errors.ts           # Typed MCP errors
  providers/
    osv.ts              # OSV.dev vulnerability API
tests/
  integration/          # Full MCP server tests via InMemoryTransport
  tools/                # Unit tests per tool handler
  lib/                  # Unit tests for utilities

테스트 전략

  • 단위 테스트: 각 도구 핸들러 및 라이브러리는 vi.mock으로 모의 처리

  • 통합 테스트: InMemoryTransport를 통한 전체 MCP 클라이언트↔서버 왕복, MSW로 HTTP 가로채기

  • HTTP 모의 처리: MSW v2 (msw/node) — 테스트 중 실제 네트워크 호출 없음

  • 커버리지: ≥80% 브랜치 필수 (npm run test:coverage)

기여

  1. 저장소 포크

  2. 기능 브랜치 생성

  3. 새로운 동작에 대한 테스트 추가

  4. npm run build && npm run test:coverage && npm run lint가 모두 통과하는지 확인

  5. 풀 리퀘스트 열기

라이선스

MIT

Related MCP Connectors

Related MCP Servers