코드 요약기
Gemini Flash 2.0을 사용하여 주어진 디렉터리의 코드 파일을 요약하는 명령줄 도구입니다. 이제 LLM 도구와의 통합을 위해 MCP 서버 지원이 추가되었습니다!
특징
- 디렉토리의 코드 파일을 재귀적으로 처리합니다.
.gitignore
규칙을 존중합니다.node_modules
,dist
등과 같은 관련 없는 디렉토리를 건너뜁니다.- Gemini Flash 2.0을 사용하여 코드 파일을 요약합니다.
- 텍스트 파일에 요약을 출력합니다.
- 구성 가능한 세부 수준 및 요약 길이
- Claude Desktop 및 기타 LLM 도구와 통합하기 위한 MCP 서버
- 다른 애플리케이션에 쉽게 통합할 수 있는 모듈식 디자인
- 안전한 API 키 관리
- MCP 서버 엔드포인트에 대한 인증
- LLM 호출에 대한 지수 백오프를 사용한 재시도 메커니즘
- 남용을 방지하기 위한 속도 제한
요구 사항
- 노드.js 18+
설치
- 저장소를 복제합니다지엑스피1
- 종속성 설치:
- Google API 키로
.env
파일을 만듭니다. - 프로젝트를 빌드하세요:
MCP 서버 설정 및 통합
코드 요약기에는 Claude Desktop, Cursor AI, Cline과 같은 LLM 도구가 코드 요약 및 파일 콘텐츠에 액세스할 수 있도록 하는 MCP(Model Context Protocol) 서버가 포함되어 있습니다.
MCP 서버 시작
기본적으로 서버는 포트 24312에서 실행됩니다. 구성에서 이를 변경할 수 있습니다.
Claude Desktop과 연결
- 코드 요약기 MCP 서버 시작
- Claude Desktop을 열고 Claude 메뉴를 클릭한 다음 "설정..."을 클릭하세요.
- "개발자" 섹션으로 이동하세요
- 다음 내용이 포함된
~/.claude/claude_desktop_config.json
(macOS/Linux) 또는%USERPROFILE%\.claude\claude_desktop_config.json
(Windows)에 파일을 만듭니다.
- Claude Desktop을 다시 시작하세요
- 다시 시작한 후 Claude에게 코드베이스에 액세스하도록 요청할 수 있습니다(예: "내 프로젝트의 파일 요약").
Claude Desktop에 대한 프롬프트 예시:
- "제 프로젝트의 모든 JavaScript 파일을 요약해 주실 수 있나요?"
- "제 코드베이스에 대한 간략한 개요를 알려주세요."
- 'src/config/config.ts' 파일이 무엇을 하는지 설명하세요.
- "내 코드에서 인증과 관련된 모든 기능을 찾으세요."
커서 AI와 연결하기
- 코드 요약기 MCP 서버 시작
- 프로젝트 디렉토리에
.cursor/mcp.json
파일을 만듭니다.
- 커서를 다시 시작하거나 프로젝트를 다시 로드하세요.
- Cursor에게 코드에 대해 물어보세요. 예를 들어, "제 코드베이스를 요약해 주실 수 있나요?"
커서에 대한 프롬프트 예:
- "이 코드베이스의 구조를 요약해 주세요."
- "이 프로젝트의 핵심 구성 요소는 무엇입니까?"
- "MCP 서버 구현에 대한 자세한 설명을 해주세요."
- "재시도 메커니즘이 어떻게 작동하는지 알려주세요."
클라인과 연결
- 코드 요약기 MCP 서버 시작
- Cline에서는 다음 명령을 사용하여 MCP 서버를 추가할 수 있습니다.
- 그런 다음 API 키로 인증하세요.
- 그런 다음 Cline에게 코드 요약기를 사용하도록 요청할 수 있습니다. 예: "내 코드 파일을 요약해 주세요"
Cline에 대한 예시 프롬프트:
- "프로젝트의 각 파일은 무슨 역할을 하나요?"
- "모든 TypeScript 파일의 요약을 만듭니다."
- "이 코드베이스의 인증 흐름을 설명하세요."
- 'summarizer' 디렉토리의 주요 기능은 무엇인가요?
MCP 통합으로 할 수 있는 일
MCP 통합을 사용하면 다음을 수행할 수 있습니다.
- 파일 요약 받기 : 특정 파일의 기능에 대한 간략한 설명을 요청합니다.
- 디렉토리 탐색 : 코드베이스 구조를 탐색합니다.
- 일괄 처리 : 여러 파일을 한 번에 요약
- 타겟 쿼리 : 코드에서 특정 패턴이나 기능 찾기
- 요약 사용자 정의 : 세부 수준 및 요약 길이 제어
- 설정 업데이트 : MCP 인터페이스를 통해 구성 옵션 변경
MCP 서버는 코드베이스를 체계적인 방식으로 LLM 도구에 노출하여 코드 조각을 수동으로 붙여넣지 않고도 코드를 읽고, 탐색하고, 요약할 수 있도록 합니다.
MCP 서버 통합 세부 정보
MCP 리소스
code://file/*
- 개별 코드 파일에 액세스code://directory/*
- 디렉토리에 있는 코드 파일 나열summary://file/*
- 특정 파일에 대한 요약을 가져옵니다.summary://batch/*
- 여러 파일에 대한 요약을 가져옵니다.
MCP 도구
summarize_file
- 옵션을 사용하여 단일 파일을 요약합니다.summarize_directory
- 옵션을 사용하여 디렉토리 요약set_config
- 구성 옵션 업데이트
MCP 프롬프트
code_summary
- 코드 요약을 위한 프롬프트 템플릿directory_summary
- 전체 디렉토리를 요약하기 위한 프롬프트 템플릿
문제 해결
일반적인 MCP 연결 문제
- 연결 거부됨
- MCP 서버가 실행 중인지 확인하세요(
npm start -- server
) - 구성에서 포트가 올바른지 확인하세요
- 연결을 차단하는 방화벽 문제가 있는지 확인하세요
- MCP 서버가 실행 중인지 확인하세요(
- 인증 오류
- 헤더에 올바른 API 키(
x-api-key
)를 추가했는지 확인하세요. - API 키가 유효하고 올바른 형식인지 확인하세요.
- 환경 변수가 올바르게 설정되었는지 확인하세요
- 헤더에 올바른 API 키(
- 전송 오류
- 올바른 전송 유형이 지정되었는지 확인하세요(SSE)
- URL에 올바른 엔드포인트(
/sse
)가 포함되어 있는지 확인하세요. - 클라이언트와 서버 간의 네트워크 연결을 확인하세요
- 권한 문제
- MCP 서버에 코드베이스에 대한 읽기 액세스 권한이 있는지 확인하세요.
- 특정 파일에 대한 요약이 실패하면 파일 권한을 확인하세요.
- Claude Desktop에서 MCP 서버를 찾을 수 없음
claude_desktop_config.json
의 경로가 올바른지 확인하세요.- 명령과 인수가 올바른 위치를 가리키는지 확인하세요.
- Claude Desktop 로그에서 구성 오류가 있는지 확인하세요.
- 속도 제한
- "요청이 너무 많습니다" 오류가 표시되면 잠시 기다렸다가 나중에 다시 시도하세요.
- 서버 코드에서 속도 제한 설정을 조정하는 것을 고려하세요.
다른 문제에 대해서는 서버 로그를 확인하거나 GitHub 저장소에서 문제를 열어보세요.
용법
명령줄 인터페이스
구성 관리
API 인증
MCP 서버에 연결할 때 요청 헤더에 API 키를 포함해야 합니다.
모든 엔드포인트( /health
제외)에는 인증이 필요합니다.
옵션
--detail
,-d
: 요약의 세부 정보 수준을 설정합니다. 옵션은 '낮음', '보통', '높음'입니다. 기본값은 '보통'입니다.--max-length
,-l
: 각 요약의 최대 길이(문자 수). 기본값은 500입니다.
보안 기능
API 키 관리
- API 키는 안전하게 저장되며 구성 파일보다 환경 변수가 우선합니다.
- 키는 사용 전에 적절한 형식인지 검증됩니다.
- API 키는 로그나 오류 메시지에 노출되지 않습니다.
- 환경 변수를 통해 제공되는 경우 구성 파일은 API 키를 저장하지 않습니다.
입증
- 모든 MCP 서버 엔드포인트(상태 확인 제외)에는 API 키를 통한 인증이 필요합니다.
- 인증은 보안 전송을 위해
x-api-key
헤더를 사용합니다. - 실패한 인증 시도는 보안 모니터링을 위해 기록됩니다.
속도 제한
- 내장된 속도 제한 기능으로 서비스 남용을 방지합니다.
- 기본값: IP 주소당 분당 60개 요청
- 서버 설정을 통해 구성 가능
오류 처리
- 분류를 통한 구조화된 오류 시스템
- 민감한 정보는 오류 메시지에 노출되지 않습니다.
- 다양한 실패 시나리오에 대해 적절한 오류 코드가 반환됩니다.
LLM 통화 회복력
- 일시적인 실패에 대한 지수적 백오프를 통한 자동 재시도
- 최대 재시도 횟수, 지연 횟수, 백오프 계수를 포함한 구성 가능한 재시도 설정
- 무리의 급격한 문제를 방지하기 위해 재시도 타이밍에 지터가 추가되었습니다.
- 시스템 전반의 문제 추적을 위한 ID 추적 요청
지원되는 파일 유형
- 타입스크립트(.ts, .tsx)
- 자바스크립트(.js, .jsx)
- 파이썬(.py)
- 자바(.java)
- C++(.cpp)
- 씨(.씨)
- 고(.go)
- 루비(.rb)
- PHP(.php)
- C#(.cs)
- 스위프트(.swift)
- 녹(.rs)
- 코틀린(.kt)
- 스칼라(.scala)
- 뷰(.vue)
- HTML(.html)
- CSS(.css, .scss, .less)
작동 원리
- 이 도구는
.gitignore
규칙을 준수하여 지정된 디렉토리를 재귀적으로 스캔합니다. - 지원되는 확장자를 기준으로 파일을 필터링합니다.
- 지원되는 각 파일에 대해 콘텐츠를 읽고 프로그래밍 언어를 결정합니다.
- 이 명령은 세부 수준 및 길이 제한을 포함하여 요약하라는 메시지와 함께 코드를 Gemini Flash 2.0으로 전송합니다.
- 요약은 수집되어 지정된 출력 파일에 기록됩니다.
출력 형식
출력 파일의 형식은 다음과 같습니다.
프로젝트 구조
index.ts
: 주요 CLI 구현src/
: 소스 코드 디렉토리summarizer/
: 핵심 요약 기능mcp/
: MCP 서버 구현config/
: 구성 관리
bin/
: CLI 진입점config.json
: 기본 설정 파일tsconfig.json
: TypeScript 구성package.json
: 프로젝트 종속성 및 스크립트.env.example
: 환경 변수 설정을 위한 템플릿.gitignore
: Git에서 무시할 파일 및 디렉토리__tests__
: 단위 및 통합 테스트__mocks__/mock-codebase
: 테스트를 위한 모의 코드베이스
환경 변수
다음 환경 변수를 사용하여 애플리케이션을 구성할 수 있습니다.
변하기 쉬운 | 설명 | 기본 |
---|---|---|
GOOGLE_API_KEY | Google Gemini API 키 | 없음(필수) |
PORT | MCP 서버용 포트 | 24312 |
ALLOWED_ORIGINS | 허용된 CORS 출처의 쉼표로 구분된 목록 | http://localhost:3000 |
LOG_LEVEL | 로깅 수준(오류, 경고, 정보, 디버그) | 정보 |
템플릿은 .env.example
참조하세요.
개발
테스트 실행
향후 개선 사항
- 더 많은 파일 유형 지원
- 대체 LLM 제공자 지원
- GUI 인터페이스를 위한 Electron 앱과의 통합
- 향상된 MCP 서버 기능
- 고급 토큰 사용 추적
- OpenTelemetry 기반 관찰성
- 향상된 감사 로깅 기능
- 비밀 스캐닝 통합
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Claude Desktop 및 Cursor AI와 같은 LLM 도구가 Model Context Protocol 서버를 통해 코드 파일에 액세스하고 요약할 수 있도록 하여 수동으로 복사하지 않고도 코드베이스 콘텐츠에 대한 체계적인 액세스를 제공합니다.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to read, search, and analyze code files with advanced caching and real-time file watching capabilities.Last updated -61623JavaScriptMIT License
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -22PythonApache 2.0
- -securityAlicense-qualityA custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.Last updated -24PythonApache 2.0
- AsecurityFlicenseAqualityA Model Context Protocol server that connects LLMs to the Compiler Explorer API, enabling them to compile code, explore compiler features, and analyze optimizations across different compilers and languages.Last updated -513Python
Appeared in Searches
- Using separate agents for schema validation, code standards, and directory structure enforcement in development workflows
- A tool for reading PDF files
- Finding the Top 10 Most Frequently Pulled Packages from Nexus Repository
- Best practices for organizing and structuring a codebase
- Information about cursors