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

특징
아키텍처 다이어그램 : 전반적인 구조, 구성 요소 간의 관계, 데이터 흐름을 보여주는 ASCII 다이어그램을 생성합니다.
핵심 기능 분석 : 패턴 인식을 기반으로 코드의 주요 목적을 식별하고 설명합니다.
구성 요소 분석 : 모든 주요 클래스와 함수를 역할에 대한 간략한 설명과 함께 나열합니다.
다국어 지원 : JavaScript, TypeScript, Python, Java, C# 등 다양한 프로그래밍 언어로 코드를 분석합니다.
JSDoc/Docstring 인식 : 코드에서 기존 문서를 추출하여 활용합니다.
보안 API : 엔드포인트를 보호하기 위한 베어러 토큰 인증입니다.
Related MCP server: Remote MCP Server for Website Analysis
작동 원리
코드 설명자는 여러 가지 기술을 조합하여 소스 코드를 분석합니다.
패턴 인식 : 코드 구조와 공통 패턴을 식별합니다.
관계 분석 : 구성 요소 간 종속성을 매핑합니다.
문서 추출 : 기존 문서 주석의 우선순위를 지정합니다.
아키텍처 시각화 : 코드 구조의 ASCII 다이어그램을 생성합니다.
구성 요소 설명 : 함수 및 클래스에 대한 의미적 설명을 제공합니다.
모든 처리는 외부 종속성 없이 Cloudflare Worker 내에서 수행됩니다.
설치
필수 조건
설정
이 저장소를 복제하세요:
지엑스피1
종속성 설치:
비밀 키를 구성하세요:
Cloudflare Workers에 배포:
용법
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));
지역 개발
저장소를 복제하고 종속성을 설치합니다.
git clone https://github.com/BillDuke13/code-explainer-mcp.git
cd code-explainer-mcp
npm install
개발 서버를 실행합니다.
로컬에서 엔드포인트를 테스트합니다.
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 파일을 참조하세요.