Skip to main content
Glama
by BillDuke13

코드 설명 MCP

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

특허

특징

  • 아키텍처 다이어그램 : 전반적인 구조, 구성 요소 간의 관계, 데이터 흐름을 보여주는 ASCII 다이어그램을 생성합니다.

  • 핵심 기능 분석 : 패턴 인식을 기반으로 코드의 주요 목적을 식별하고 설명합니다.

  • 구성 요소 분석 : 모든 주요 클래스와 함수를 역할에 대한 간략한 설명과 함께 나열합니다.

  • 다국어 지원 : JavaScript, TypeScript, Python, Java, C# 등 다양한 프로그래밍 언어로 코드를 분석합니다.

  • JSDoc/Docstring 인식 : 코드에서 기존 문서를 추출하여 활용합니다.

  • 보안 API : 엔드포인트를 보호하기 위한 베어러 토큰 인증입니다.

Related MCP server: Remote MCP Server for Website Analysis

작동 원리

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

  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

Latest Blog Posts

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/BillDuke13/code-explainer-mcp'

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