Skip to main content
Glama

CodeAnalysis MCP Server

by 0xjcf

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를 설치하려면:

# Ubuntu/Debian sudo apt-get install redis-server # macOS brew install redis # Windows (using WSL is recommended) # For native Windows, download from https://redis.io/download

기본적으로 애플리케이션은 redis://localhost:6379 에서 Redis에 연결을 시도합니다. 환경 변수를 사용하여 Redis 연결을 구성할 수 있습니다.

# Set custom Redis URL export REDIS_URL=redis://custom-host:6379 # Force memory session store even if Redis is available export FORCE_MEMORY_SESSION=true

개발

# Run in development mode npm run dev # Run tests npm test # Run linting npm run lint

용법

# Start the MCP server npm start # Run CLI tool node ./tools/mcp-stdio-client.js --task "Analyze dependencies" --files "src/*.ts"

선적 서류 비치

특허

MIT

CodeAnalysis MCP 서버

확장 가능한 아키텍처를 통해 도구와 통찰력을 제공하는 고급 코드 분석을 위한 포괄적인 MCP(Model Context Protocol) 서버입니다.

🚀 특징

  • 기본 코드 분석 : 구문 및 구조 분석
  • 코드 메트릭 : 복잡성, 줄 수 및 코드 품질 메트릭
  • 종속성 분석 : 패키지 및 가져오기 관계 시각화
  • 지식 그래프 : 코드 관계 시각화 및 쿼리
  • 메모리 시스템 : 코드베이스에 대한 통찰력을 저장하고 검색합니다.
  • 시각화 : 다양한 형식(Mermaid, DOT, ASCII)으로 다이어그램 생성
  • 사회기술 분석 : 팀과 코드 관계 이해
  • 다중 저장소 분석 : 교차 저장소 관계 분석
  • 진화 계획 : 코드 개선 권장 사항
  • 실시간 감시 : 실시간으로 코드 변경 사항을 모니터링합니다.
  • IDE 통합 : 편집기 통합 도구
  • 개발자 도구 : 향상된 AI 지원 개발 워크플로 지원

📋 필수 조건

  • 노드.js 18+
  • npm 또는 yarn
  • Redis(개발에는 선택 사항이지만 프로덕션에는 권장됨)

🛠️ 설치

# Clone the repository git clone https://github.com/your-username/codeanalysis-mcp.git cd codeanalysis-mcp # Install dependencies pnpm install # Build the project pnpm build

🖥️ 사용법

CodeAnalysis MCP 서버는 두 가지 방법으로 사용할 수 있습니다.

1. MCP 서버로서

# Start the MCP server pnpm start

이렇게 하면 Claude Desktop, Cursor 또는 기타 MCP 클라이언트가 연결할 수 있는 MCP 서버가 시작됩니다.

2. CLI 사용

이 프로젝트에는 직접적인 상호작용을 위한 포괄적인 CLI가 포함되어 있습니다.

# Get help pnpm run cli --help # Analyze a repository or directory pnpm run cli analyze repo ./src # Check code quality pnpm run cli quality analyze ./src

3. AI 지원 개발을 위한 개발자 도구 사용

이 프로젝트에는 AI 지원 개발을 향상시키도록 설계된 특수 도구가 포함되어 있습니다.

# Generate code context for AI assistants node tools/ai-dev-helper.js --task="Implement new feature" --search="related functionality" # Run example client node examples/dev-tools-client.js

자세한 내용은 개발자 도구 가이드를 참조하세요.

📊 예제 명령

기본 분석

# Analyze a local directory pnpm run cli analyze repo ./src # Analyze a specific file pnpm run cli analyze file ./src/server.ts

코드 메트릭

# Get code metrics with function details pnpm run cli metrics analyze ./src --functions # Save metrics to a file pnpm run cli metrics analyze ./src -o metrics-report.json

종속성 분석

# Analyze dependencies in Mermaid format pnpm run cli dependencies analyze ./src -f mermaid -o deps.mmd # Visualize dependencies pnpm run cli visualize dependencies -p ./src --format mermaid

코드 품질

# Run quality analysis pnpm run cli quality analyze ./src # Generate HTML report pnpm run cli quality analyze ./src --html -o quality-report.html

지식 그래프

# Build knowledge graph pnpm run cli knowledge build ./src # Query the knowledge graph pnpm run cli knowledge query ./src "type:function AND complexity>5" # Export as diagram pnpm run cli knowledge export ./src -f mermaid

통찰력과 기억

# Store an insight pnpm run cli insights store -r ./src -t code-pattern -c "Refactoring opportunity" # Retrieve insights pnpm run cli insights retrieve -r ./src

개발자 도구

# Prepare context for AI interactions node tools/ai-dev-helper.js --task="Fix authentication bug" --files="src/auth/*.ts" --search="login" # Use with AI prompts # Copy content from the generated ai-context.json file into your AI assistant prompt # or use the template in templates/ai-prompt-template.md

🏗️ 건축

이 프로젝트는 다음 구성 요소를 갖춘 MCP 아키텍처를 따릅니다.

  1. MCP 서버 : MCP 프로토콜을 사용한 핵심 서버 구현
  2. 분석 기능 : 모듈식 코드 분석 기능
  3. CLI : 직접 상호 작용을 위한 명령줄 인터페이스
  4. 전송 계층 : 통신 메커니즘(기본적으로 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에 대한 상태 저장 도구를 구현하여 호출 간에 컨텍스트를 유지하는 도구를 구축하기 위한 프레임워크를 제공합니다.

아키텍처 개요

상태 관리 아키텍처는 여러 모듈식 구성 요소로 구성됩니다.

src/state/ ├── helpers/ │ └── statefulTool.ts # Main entry point for stateful tool creation ├── machines/ │ └── toolMachine.ts # XState machine for tool execution flow ├── services/ │ ├── toolService.ts # Core execution service for tools │ ├── redisToolExecutionService.ts # Distributed execution service │ ├── redisSessionStore.ts # Redis-based session persistence │ └── types.ts # Shared type definitions

핵심 구성 요소

상태 저장 도구 도우미( statefulTool.ts )

MCP SDK와의 중앙 통합 지점으로 다음을 제공합니다.

  • 세션 관리를 통한 도구 등록
  • MCP 호환 응답 형식
  • 메모리 내 세션 관리
  • 세션 접근 및 조작을 위한 도우미 기능
// Creating a stateful tool with state persistence createStatefulTool(server, "my-tool", schema, handler); // With description createStatefulTool(server, "my-tool", "My stateful tool", schema, handler);

도구 기계( toolMachine.ts )

도구의 실행 흐름을 정의하는 XState 기반 상태 머신:

  • 상태 전환(유휴, 도구 선택, 매개변수 설정, 실행 중 등)
  • 매개변수, 결과 및 기록에 대한 컨텍스트 관리
  • 오류 처리 및 복구 경로

이 구성 요소는 세션 관리를 statefulTool 구현에 위임합니다.

도구 서비스( toolService.ts )

도구 상태 전환을 조정하는 핵심 실행 서비스:

  • 도구 선택, 매개변수 검증 및 실행을 관리합니다.
  • 실행 내역 추적
  • 실행 결과 및 오류를 처리합니다.

유형( types.ts )

상태 관리 시스템 전반에서 일관성을 보장하는 공유 유형 정의:

  • SessionData: 도구 상태를 저장하기 위한 구조
  • SessionStore: 세션 저장 구현을 위한 인터페이스
  • ExecutionResult: 도구에 대한 표준 응답 형식

MCP SDK와의 통합

이 아키텍처는 다음을 통해 MCP SDK와 통합됩니다.

  1. 상태 관리를 통한 도구 등록 패턴 확장
  2. MCP 응답 형식과의 호환성 유지
  3. 상태 저장 작업에 대한 세션 및 컨텍스트 추적 제공

사용 예

import { createServer } from "@modelcontextprotocol/sdk"; import { createStatefulTool } from "./state/helpers/statefulTool"; import { z } from "zod"; const server = createServer(); // Register a stateful tool createStatefulTool( server, "counter", "A tool that maintains a count between invocations", { action: z.enum(["increment", "decrement", "reset"]), }, async (params) => { // Get session ID from params (or a new one will be created) const sessionId = params.sessionId; // Process the action let count = 0; // Tool logic with state manipulation... return { count }; } ); server.listen(3000);

분산 상태 관리

분산 환경의 경우 Redis 기반 구현은 다음을 제공합니다.

  • 서버 재시작 시 세션 지속성
  • 동시 액세스를 위한 분산 잠금
  • TTL 기반 세션 정리
  • 네트워크/연결 문제에 대한 오류 처리

테스트

구성 요소에는 다음을 검증하기 위한 포괄적인 테스트 모음이 포함되어 있습니다.

  • 도구 상태 전환
  • 세션 관리
  • 오류 처리 및 복구
  • 응답 형식
  • 분산 작업(Redis 사용)

AI 개발 도구

CodeAnalysis MCP 서버는 AI 지원 개발을 위한 전문 도구를 제공합니다. 이러한 도구는 코드 컨텍스트를 수집하여 AI 시스템에 제공하여 더욱 효과적인 지원을 제공할 수 있도록 지원합니다.

클라이언트 스크립트

저장소에는 tools/ 디렉토리에 여러 클라이언트 스크립트가 포함되어 있습니다.

  • HTTP 클라이언트 ( tools/http-client.js ): HTTP 전송을 통해 MCP 서버에 연결합니다(기본값).
    node tools/http-client.js --task "Your task description" --files "src/features/*.ts" --search "session"
  • Raw Client ( tools/mcp-raw-client.js ): 서버 정보만 캡처하는 더 간단한 클라이언트입니다.
    node tools/mcp-raw-client.js --task "Your task description"
  • Simple Client ( tools/simple-client.js ): stdio를 통해 서버와 통신합니다.
    node tools/simple-client.js --task "Your task description" --files "src/features/*.ts"

모든 클라이언트 스크립트는 프로젝트 루트에 ai-context.json 파일을 생성합니다. 이 파일에는 코드베이스에 대한 귀중한 컨텍스트가 포함되어 있으며, 이를 AI 어시스턴트와 공유하여 더욱 정확한 응답을 제공할 수 있습니다.

프롬프트 템플릿

AI 어시스턴트용 프롬프트 템플릿은 templates/ai-prompt-template.md 에서 제공됩니다. 이 템플릿은 MCP 도구의 적절한 맥락을 활용하여 AI 어시스턴트에 대한 요청을 구성하는 데 도움이 됩니다.

서버 전송 모드

MCP 서버는 두 가지 전송 모드를 지원합니다.

  1. HTTP 전송 (기본값): 기본적으로 3000번 포트에서 실행됩니다. 클라이언트-서버 아키텍처에 가장 적합합니다.
  2. Stdio Transport : 프로세스 직접 통신을 위한 기능입니다. STDIO_TRANSPORT=true 환경 변수를 활성화하세요.

세션 스토리지 아키텍처

MCP 코드 분석은 이제 자동 백엔드 감지 기능을 갖춘 모듈식 세션 저장소 아키텍처를 제공합니다.

  • 유연한 스토리지 : Redis와 인메모리 스토리지 간 자동 전환
  • 개발 친화적 : 개발 중 Redis 없이 실행
  • 프로덕션 준비 완료 : 프로덕션 환경에서 지속성을 위해 Redis를 사용하세요
  • 자동 폴백 : Redis를 사용할 수 없을 때 메모리 저장소로 우아하게 폴백합니다.

자세한 내용은 세션 저장소 아키텍처 문서를 참조하세요.

요구 사항

  • 노드.js 18+
  • npm 또는 yarn
  • Redis(개발에는 선택 사항이지만 프로덕션에는 권장됨)

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.
    Last updated -
    12
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables AI agents to retrieve and understand entire codebases at once, providing tools to analyze local workspaces or remote GitHub repositories.
    Last updated -
    9
    TypeScript
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A server component of the Model Context Protocol that provides intelligent analysis of codebases using vector search and machine learning to understand code patterns, architectural decisions, and documentation.
    Last updated -
    4
    Python
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that helps large language models process code repositories by providing file tree generation, code merging, and code analysis capabilities.
    Last updated -
    3
    14
    JavaScript
    MIT License

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xjcf/MCP_CodeAnalysis'

If you have feedback or need assistance with the MCP directory API, please join our Discord server