MCP 코드 분석
AI 지원 코드 이해 및 변환을 위해 모델 컨텍스트 프로토콜(MCP)을 활용하는 강력한 코드베이스 분석 툴킷입니다.
특징
- 코드 분석 : 추상 구문 트리를 사용하여 코드베이스를 구문 분석하고 분석합니다.
- 컨텍스트 생성 : AI 모델을 위한 풍부한 컨텍스트 정보 생성
- 도구 통합 : 원활한 AI 도구 통합을 위한 MCP SDK 기반
- 확장 가능한 아키텍처 : 사용자 정의 분석기를 위한 플러그인 기반 시스템
요구 사항
- 노드.js 18+
- NPM 9+
- Redis(선택 사항, 프로덕션 환경에만 필요)
설치
지엑스피1
Redis 구성(선택 사항)
Redis는 운영 환경에서 세션 저장소로 사용됩니다. 개발 및 테스트 환경에서 Redis를 사용할 수 없는 경우 시스템은 자동으로 메모리 내 세션 저장소로 폴백합니다.
참고 : Redis 연결에는 Redis가 실행 중일 때에도 작업이 실패할 수 있는 알려진 문제가 있습니다. 자세한 내용은
plan.md
의 "기술 부채" 섹션을 참조하세요. 현재로서는./use-memory-session.sh
스크립트를 사용하여 메모리 세션 저장소를 사용하여 서버를 실행할 수 있습니다. 자세한 내용은 Redis 문제 해결 가이드를 참조하세요.
Redis를 설치하려면:
기본적으로 애플리케이션은 redis://localhost:6379
에서 Redis에 연결을 시도합니다. 환경 변수를 사용하여 Redis 연결을 구성할 수 있습니다.
개발
용법
선적 서류 비치
특허
MIT
CodeAnalysis MCP 서버
확장 가능한 아키텍처를 통해 도구와 통찰력을 제공하는 고급 코드 분석을 위한 포괄적인 MCP(Model Context Protocol) 서버입니다.
🚀 특징
- 기본 코드 분석 : 구문 및 구조 분석
- 코드 메트릭 : 복잡성, 줄 수 및 코드 품질 메트릭
- 종속성 분석 : 패키지 및 가져오기 관계 시각화
- 지식 그래프 : 코드 관계 시각화 및 쿼리
- 메모리 시스템 : 코드베이스에 대한 통찰력을 저장하고 검색합니다.
- 시각화 : 다양한 형식(Mermaid, DOT, ASCII)으로 다이어그램 생성
- 사회기술 분석 : 팀과 코드 관계 이해
- 다중 저장소 분석 : 교차 저장소 관계 분석
- 진화 계획 : 코드 개선 권장 사항
- 실시간 감시 : 실시간으로 코드 변경 사항을 모니터링합니다.
- IDE 통합 : 편집기 통합 도구
- 개발자 도구 : 향상된 AI 지원 개발 워크플로 지원
📋 필수 조건
- 노드.js 18+
- npm 또는 yarn
- Redis(개발에는 선택 사항이지만 프로덕션에는 권장됨)
🛠️ 설치
🖥️ 사용법
CodeAnalysis MCP 서버는 두 가지 방법으로 사용할 수 있습니다.
1. MCP 서버로서
이렇게 하면 Claude Desktop, Cursor 또는 기타 MCP 클라이언트가 연결할 수 있는 MCP 서버가 시작됩니다.
2. CLI 사용
이 프로젝트에는 직접적인 상호작용을 위한 포괄적인 CLI가 포함되어 있습니다.
3. AI 지원 개발을 위한 개발자 도구 사용
이 프로젝트에는 AI 지원 개발을 향상시키도록 설계된 특수 도구가 포함되어 있습니다.
자세한 내용은 개발자 도구 가이드를 참조하세요.
📊 예제 명령
기본 분석
코드 메트릭
종속성 분석
코드 품질
지식 그래프
통찰력과 기억
개발자 도구
🏗️ 건축
이 프로젝트는 다음 구성 요소를 갖춘 MCP 아키텍처를 따릅니다.
- MCP 서버 : MCP 프로토콜을 사용한 핵심 서버 구현
- 분석 기능 : 모듈식 코드 분석 기능
- CLI : 직접 상호 작용을 위한 명령줄 인터페이스
- 전송 계층 : 통신 메커니즘(기본적으로 stdio)
🔌 MCP 클라이언트와의 통합
이 서버는 다음을 포함한 모든 MCP 호환 클라이언트와 호환됩니다.
- 클로드 데스크톱 앱
- 커서 편집기
- 계속하다
- 기타 MCP 호환 도구
📝 경로 지정
명령은 다양한 형식의 경로를 허용합니다.
- 로컬 디렉토리:
./src
또는/absolute/path/to/dir
- 로컬 파일:
./src/file.ts
또는/path/to/file.ts
- 저장소 URL:
https://github.com/username/repo
🤝 기여하기
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
📄 라이센스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
MCP SDK 상태 관리 아키텍처
이 프로젝트는 MCP(Model Context Protocol) SDK에 대한 상태 저장 도구를 구현하여 호출 간에 컨텍스트를 유지하는 도구를 구축하기 위한 프레임워크를 제공합니다.
아키텍처 개요
상태 관리 아키텍처는 여러 모듈식 구성 요소로 구성됩니다.
핵심 구성 요소
상태 저장 도구 도우미( statefulTool.ts
)
MCP SDK와의 중앙 통합 지점으로 다음을 제공합니다.
- 세션 관리를 통한 도구 등록
- MCP 호환 응답 형식
- 메모리 내 세션 관리
- 세션 접근 및 조작을 위한 도우미 기능
도구 기계( toolMachine.ts
)
도구의 실행 흐름을 정의하는 XState 기반 상태 머신:
- 상태 전환(유휴, 도구 선택, 매개변수 설정, 실행 중 등)
- 매개변수, 결과 및 기록에 대한 컨텍스트 관리
- 오류 처리 및 복구 경로
이 구성 요소는 세션 관리를 statefulTool 구현에 위임합니다.
도구 서비스( toolService.ts
)
도구 상태 전환을 조정하는 핵심 실행 서비스:
- 도구 선택, 매개변수 검증 및 실행을 관리합니다.
- 실행 내역 추적
- 실행 결과 및 오류를 처리합니다.
유형( types.ts
)
상태 관리 시스템 전반에서 일관성을 보장하는 공유 유형 정의:
- SessionData: 도구 상태를 저장하기 위한 구조
- SessionStore: 세션 저장 구현을 위한 인터페이스
- ExecutionResult: 도구에 대한 표준 응답 형식
MCP SDK와의 통합
이 아키텍처는 다음을 통해 MCP SDK와 통합됩니다.
- 상태 관리를 통한 도구 등록 패턴 확장
- MCP 응답 형식과의 호환성 유지
- 상태 저장 작업에 대한 세션 및 컨텍스트 추적 제공
사용 예
분산 상태 관리
분산 환경의 경우 Redis 기반 구현은 다음을 제공합니다.
- 서버 재시작 시 세션 지속성
- 동시 액세스를 위한 분산 잠금
- TTL 기반 세션 정리
- 네트워크/연결 문제에 대한 오류 처리
테스트
구성 요소에는 다음을 검증하기 위한 포괄적인 테스트 모음이 포함되어 있습니다.
- 도구 상태 전환
- 세션 관리
- 오류 처리 및 복구
- 응답 형식
- 분산 작업(Redis 사용)
AI 개발 도구
CodeAnalysis MCP 서버는 AI 지원 개발을 위한 전문 도구를 제공합니다. 이러한 도구는 코드 컨텍스트를 수집하여 AI 시스템에 제공하여 더욱 효과적인 지원을 제공할 수 있도록 지원합니다.
클라이언트 스크립트
저장소에는 tools/
디렉토리에 여러 클라이언트 스크립트가 포함되어 있습니다.
- HTTP 클라이언트 (
tools/http-client.js
): HTTP 전송을 통해 MCP 서버에 연결합니다(기본값).Copy - Raw Client (
tools/mcp-raw-client.js
): 서버 정보만 캡처하는 더 간단한 클라이언트입니다.Copy - Simple Client (
tools/simple-client.js
): stdio를 통해 서버와 통신합니다.Copy
모든 클라이언트 스크립트는 프로젝트 루트에 ai-context.json
파일을 생성합니다. 이 파일에는 코드베이스에 대한 귀중한 컨텍스트가 포함되어 있으며, 이를 AI 어시스턴트와 공유하여 더욱 정확한 응답을 제공할 수 있습니다.
프롬프트 템플릿
AI 어시스턴트용 프롬프트 템플릿은 templates/ai-prompt-template.md
에서 제공됩니다. 이 템플릿은 MCP 도구의 적절한 맥락을 활용하여 AI 어시스턴트에 대한 요청을 구성하는 데 도움이 됩니다.
서버 전송 모드
MCP 서버는 두 가지 전송 모드를 지원합니다.
- HTTP 전송 (기본값): 기본적으로 3000번 포트에서 실행됩니다. 클라이언트-서버 아키텍처에 가장 적합합니다.
- Stdio Transport : 프로세스 직접 통신을 위한 기능입니다.
STDIO_TRANSPORT=true
환경 변수를 활성화하세요.
세션 스토리지 아키텍처
MCP 코드 분석은 이제 자동 백엔드 감지 기능을 갖춘 모듈식 세션 저장소 아키텍처를 제공합니다.
- 유연한 스토리지 : Redis와 인메모리 스토리지 간 자동 전환
- 개발 친화적 : 개발 중 Redis 없이 실행
- 프로덕션 준비 완료 : 프로덕션 환경에서 지속성을 위해 Redis를 사용하세요
- 자동 폴백 : Redis를 사용할 수 없을 때 메모리 저장소로 우아하게 폴백합니다.
자세한 내용은 세션 저장소 아키텍처 문서를 참조하세요.
요구 사항
- 노드.js 18+
- npm 또는 yarn
- Redis(개발에는 선택 사항이지만 프로덕션에는 권장됨)
This server cannot be installed
구문 분석, 종속성 시각화, AI 지원 개발 워크플로 지원을 위한 도구를 제공하는 고급 코드 분석을 위한 포괄적인 모델 컨텍스트 프로토콜 서버입니다.