Code Explainer MCP

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides an example client implementation for making API requests to the code explainer from Node.js applications

  • Serves as the deployment platform for the code explainer MCP, enabling serverless execution of the code analysis functionality

  • Offers command-line example for testing the code explanation endpoint during local development

코드 설명 MCP

코드 설명을 위한 MCP(모델 컨텍스트 프로토콜) 서버 역할을 하는 Cloudflare Worker입니다. 구조와 기능을 포괄적으로 분석하여 코드를 분석하고 설명합니다.

특징

  • 아키텍처 다이어그램 : 전반적인 구조, 구성 요소 간의 관계, 데이터 흐름을 보여주는 ASCII 다이어그램을 생성합니다.
  • 핵심 기능 분석 : 패턴 인식을 기반으로 코드의 주요 목적을 식별하고 설명합니다.
  • 구성 요소 분석 : 모든 주요 클래스와 함수를 역할에 대한 간략한 설명과 함께 나열합니다.
  • 다국어 지원 : JavaScript, TypeScript, Python, Java, C# 등 다양한 프로그래밍 언어로 코드를 분석합니다.
  • JSDoc/Docstring 인식 : 코드에서 기존 문서를 추출하여 활용합니다.
  • 보안 API : 엔드포인트를 보호하기 위한 베어러 토큰 인증입니다.

작동 원리

코드 설명자는 여러 가지 기술을 조합하여 소스 코드를 분석합니다.

  1. 패턴 인식 : 코드 구조와 공통 패턴을 식별합니다.
  2. 관계 분석 : 구성 요소 간 종속성을 매핑합니다.
  3. 문서 추출 : 기존 문서 주석의 우선순위를 지정합니다.
  4. 아키텍처 시각화 : 코드 구조의 ASCII 다이어그램을 생성합니다.
  5. 구성 요소 설명 : 함수 및 클래스에 대한 의미적 설명을 제공합니다.

모든 처리는 외부 종속성 없이 Cloudflare Worker 내에서 수행됩니다.

설치

필수 조건

  • Node.js (버전 12 이상)
  • Wrangler (Cloudflare Workers CLI)
  • Cloudflare 계정

설정

  1. 이 저장소를 복제하세요:지엑스피1
  2. 종속성 설치:
    npm install
  3. 비밀 키를 구성하세요:
    • wrangler.jsonc 편집하고 YOUR_SECRET_KEY_HERE 선택한 비밀 키로 바꾸거나
    • Cloudflare 비밀을 사용하세요(프로덕션에 권장):
      wrangler secret put SHARED_SECRET
  4. Cloudflare Workers에 배포:
    npm run deploy

용법

API 엔드포인트

다음 JSON 본문을 사용하여 작업자 URL에 POST 요청을 보냅니다.

{ "method": "explainCode", "params": ["your code here", "programming language"] }

비밀 키와 함께 Authorization 헤더를 포함합니다.

Authorization: Bearer YOUR_SECRET_KEY_HERE

응답 형식

응답은 코드 분석을 포함하는 result 필드가 있는 JSON 객체가 됩니다.

{ "result": "# Code Analysis for JavaScript Code\n\n## Architecture Diagram\n...\n\n## Core Functionality\n..." }

사용 예

JavaScript(브라우저)

async function explainCode(code, language) { const response = await fetch('https://your-worker-url.workers.dev', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_SECRET_KEY_HERE', }, body: JSON.stringify({ method: "explainCode", params: [code, language] }), }); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); return data.result; } // Example usage const jsCode = `function add(a, b) { return a + b; }`; explainCode(jsCode, "javascript") .then(explanation => console.log(explanation)) .catch(error => console.error('Error:', error));

파이썬(요청)

import requests import json def explain_code(code, language, api_url, secret_key): headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {secret_key}' } payload = { 'method': 'explainCode', 'params': [code, language] } response = requests.post(api_url, headers=headers, json=payload) response.raise_for_status() return response.json()['result'] # Example usage code = "def hello(): print('Hello, world!')" explanation = explain_code(code, "python", "https://your-worker-url.workers.dev", "YOUR_SECRET_KEY_HERE") print(explanation)

Node.js(Axios)

const axios = require('axios'); async function explainCode(code, language) { try { const response = await axios.post('https://your-worker-url.workers.dev', { method: 'explainCode', params: [code, language] }, { headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_SECRET_KEY_HERE' } }); return response.data.result; } catch (error) { console.error('Error:', error.response ? error.response.data : error.message); throw error; } } // Example usage const codeToAnalyze = ` class Person { constructor(name) { this.name = name; } sayHello() { return \`Hello, my name is \${this.name}\`; } } `; explainCode(codeToAnalyze, 'javascript') .then(explanation => console.log(explanation)) .catch(err => console.error('Failed to explain code:', err));

지역 개발

  1. 저장소를 복제하고 종속성을 설치합니다.
    git clone https://github.com/BillDuke13/code-explainer-mcp.git cd code-explainer-mcp npm install
  2. 개발 서버를 실행합니다.
    wrangler dev
  3. 로컬에서 엔드포인트를 테스트합니다.
    curl -X POST http://localhost:8787 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_SECRET_KEY_HERE" \ -d '{"method":"explainCode","params":["function hello() { return \"Hello World\"; }","javascript"]}'

개발 지침

  • TypeScript 모범 사례를 따르세요
  • 복잡한 논리에 대한 주석을 추가합니다.
  • 공개 API 변경 사항에 대한 문서 업데이트
  • 새로운 기능에 대한 테스트 추가

보안

  • API는 Bearer 토큰 인증으로 보안됩니다.
  • 프로덕션에서 공유 비밀을 저장하려면 환경 비밀을 사용하세요.
  • 실제 비밀 키를 버전 제어에 커밋하지 마십시오.
  • 프로덕션 배포에는 속도 제한이 권장됩니다.

특허

이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여되었습니다. 자세한 내용은 LICENSE 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

여러 프로그래밍 언어에 걸친 아키텍처 다이어그램, 핵심 기능 분석, 구성 요소 분석을 포함한 포괄적인 설명을 제공하기 위해 소스 코드를 분석하는 Cloudflare Worker입니다.

  1. Features
    1. How It Works
      1. Installation
        1. Prerequisites
        2. Setup
      2. Usage
        1. API Endpoint
        2. Response Format
        3. Example Usage
      3. Local Development
        1. Development Guidelines
      4. Security
        1. License
          ID: n61qu4bdbv