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

Explicador de código MCP

Un Worker de Cloudflare que funciona como servidor MCP (Protocolo de Contexto de Modelo) para la explicación de código. Analiza y explica el código con un desglose completo de su estructura y funcionalidad.

Características

  • Diagrama de arquitectura : genera un diagrama ASCII que muestra la estructura general, las relaciones entre los componentes y el flujo de datos.
  • Análisis de funcionalidad central : identifica y explica el propósito principal del código basándose en el reconocimiento de patrones.
  • Desglose de componentes : enumera todas las clases y funciones principales con breves descripciones de sus roles.
  • Compatibilidad con varios idiomas : analiza el código en varios lenguajes de programación, incluidos JavaScript, TypeScript, Python, Java, C# y más.
  • Reconocimiento de JSDoc/Docstring : extrae y utiliza la documentación existente en el código.
  • API segura : autenticación de token de portador para proteger sus puntos finales.

Cómo funciona

Code Explainer analiza el código fuente utilizando una combinación de técnicas:

  1. Reconocimiento de patrones : identifica estructuras de código y patrones comunes
  2. Análisis de relaciones : mapea dependencias entre componentes
  3. Extracción de documentación : prioriza los comentarios de la documentación existente
  4. Visualización de la arquitectura : crea diagramas ASCII de la estructura del código
  5. Descripción del componente : proporciona descripciones semánticas de funciones y clases.

Todo el procesamiento ocurre dentro de Cloudflare Worker sin dependencias externas.

Instalación

Prerrequisitos

  • Node.js (versión 12 o superior)
  • Wrangler (CLI de trabajadores de Cloudflare)
  • Una cuenta de Cloudflare

Configuración

  1. Clonar este repositorio:
    git clone https://github.com/BillDuke13/code-explainer-mcp.git cd code-explainer-mcp
  2. Instalar dependencias:
    npm install
  3. Configura tu clave secreta:
    • Edite wrangler.jsonc y reemplace YOUR_SECRET_KEY_HERE con la clave secreta elegida, o
    • Utilice los secretos de Cloudflare (recomendado para producción):
      wrangler secret put SHARED_SECRET
  4. Implementar en Cloudflare Workers:
    npm run deploy

Uso

Punto final de API

Envíe una solicitud POST a la URL de su trabajador con el siguiente cuerpo JSON:

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

Incluya el encabezado de autorización con su clave secreta:

Authorization: Bearer YOUR_SECRET_KEY_HERE

Formato de respuesta

La respuesta será un objeto JSON con un campo result que contiene el análisis del código:

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

Ejemplo de uso

JavaScript (navegador)

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));

Python (Solicitudes)

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));

Desarrollo local

  1. Clonar el repositorio e instalar las dependencias:
    git clone https://github.com/BillDuke13/code-explainer-mcp.git cd code-explainer-mcp npm install
  2. Ejecute el servidor de desarrollo:
    wrangler dev
  3. Pruebe el punto final localmente:
    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"]}'

Directrices de desarrollo

  • Siga las mejores prácticas de TypeScript
  • Añadir comentarios para lógica compleja
  • Actualizar la documentación para los cambios de la API pública
  • Agregar pruebas para nuevas funciones

Seguridad

  • La API está protegida con autenticación de token de portador
  • Utilice secretos de entorno para almacenar el secreto compartido en producción
  • No envíe su clave secreta real al control de versiones
  • Se recomienda limitar la velocidad para las implementaciones de producción.

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0: consulte el archivo de LICENCIA para obtener más detalles.

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

Un trabajador de Cloudflare que analiza el código fuente para proporcionar explicaciones completas que incluyen diagramas de arquitectura, análisis de funcionalidades principales y desgloses de componentes en múltiples lenguajes de programación.

  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