Skip to main content
Glama
mkearl

DependencyMCP Server

by mkearl

Servidor DependencyMCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que analiza bases de código para generar gráficos de dependencias e información arquitectónica. Este servidor ayuda a comprender la estructura del código, las dependencias y los patrones arquitectónicos en múltiples lenguajes de programación.

Características

  • Compatibilidad con varios idiomas : analiza dependencias en TypeScript, JavaScript, C#, Python y más

  • Generación de gráficos de dependencia : crea gráficos de dependencia detallados en formato JSON o DOT

  • Análisis arquitectónico : infiere capas arquitectónicas y las valida según las reglas

  • Metadatos de archivo : extrae importaciones, exportaciones y otros metadatos de los archivos de origen

  • Sistema de puntuación : evalúa el código base en función de las reglas y patrones arquitectónicos

Related MCP server: Code Explainer MCP

Instalación

  1. Clonar el repositorio

  2. Instalar dependencias:

npm install
  1. Construir el proyecto:

npm run build

Configuración

Agregue a su archivo de configuración de MCP (generalmente ubicado en ~/.config/cline/mcp_settings.json o equivalente):

json { mcpServers: { \DependencyMCP: { \command: \node, \args: [\path/to/dependency-mcp/dist/index.js], \env: { \MAX_LINES_TO_READ: \1000, \CACHE_DIR: \path/to/dependency-mcp/.dependency-cache, \CACHE_TTL: \3600000 } } }

Variables de entorno:

  • MAX_LINES_TO_READ: Número máximo de líneas a leer de cada archivo (predeterminado: 1000)

  • CACHE_DIR: Directorio para almacenar archivos de caché de dependencia (predeterminado: .dependency-cache)

  • CACHE_TTL: Tiempo de vida de la caché en milisegundos (valor predeterminado: 1 hora = 3600000)

Herramientas disponibles

analizar_dependencias

Analiza las dependencias en una base de código y genera un gráfico de dependencia.

const result = await client.callTool("DependencyMCP", "analyze_dependencies", { path: "/path/to/project", excludePatterns: ["node_modules", "dist"], // optional maxDepth: 10, // optional fileTypes: [".ts", ".js", ".cs"] // optional });

obtener_gráfico_de_dependencias

Obtiene el gráfico de dependencia para una base de código en formato JSON o DOT.

const result = await client.callTool("DependencyMCP", "get_dependency_graph", { path: "/path/to/project", format: "dot" // or "json" (default) });

obtener metadatos del archivo

Obtiene metadatos detallados sobre un archivo específico.

const result = await client.callTool("DependencyMCP", "get_file_metadata", { path: "/path/to/file.ts" });

obtener_puntuación_arquitectónica

Califica el código base según reglas y patrones arquitectónicos.

const result = await client.callTool("DependencyMCP", "get_architectural_score", { path: "/path/to/project", rules: [ { pattern: "src/domain/**/*", allowed: ["src/domain/**/*"], forbidden: ["src/infrastructure/**/*"] } ] });

Ejemplo de salida

Gráfico de dependencia (JSON)

{ "src/index.ts": { "path": "src/index.ts", "imports": ["./utils", "./services/parser"], "exports": ["analyze", "generateGraph"], "namespaces": [], "architecturalLayer": "Infrastructure", "dependencies": ["src/utils.ts", "src/services/parser.ts"], "dependents": [] } }

Puntuación arquitectónica

{ "score": 85, "violations": [ "src/domain/user.ts -> src/infrastructure/database.ts violates architectural rules" ], "details": "Score starts at 100 and deducts 5 points per violation" }

Desarrollo

El servidor está construido con TypeScript y utiliza:

  • Zod para la validación de esquemas

  • diff para comparación de archivos

  • minimatch para coincidencia de patrones globulares

Estructura del proyecto

dependency-mcp/ ├── src/ │ └── index.mts # Main server implementation ├── package.json ├── tsconfig.json └── README.md

Añadiendo compatibilidad con nuevos idiomas

Para agregar soporte para un nuevo lenguaje de programación:

  1. Agregar extensiones de archivo a la matriz fileTypes predeterminada

  2. Implementar patrones de expresiones regulares específicos del lenguaje en parseFileImports y parseFileExports

  3. Agregue cualquier patrón arquitectónico específico del idioma a inferArchitecturalLayer

Licencia

Instituto Tecnológico de Massachusetts (MIT)

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/mkearl/dependency-mcp'

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