Skip to main content
Glama
boranesn
by boranesn

devflow-mcp

Un servidor del Protocolo de Contexto de Modelo (MCP) listo para producción que proporciona a los asistentes de IA herramientas profundas para desarrolladores de GitHub: análisis de PR, revisión de código, generación de registros de cambios, auditoría de dependencias, resumen de commits y sugerencias de refactorización.

Características

  • 6 herramientas MCP que cubren el flujo de trabajo completo del desarrollador

  • Análisis heurístico: sin llamadas externas a LLM, rápido y determinista

  • Integración con OSV.dev para datos reales de vulnerabilidades (npm y PyPI)

  • Caché LRU con TTL para minimizar las llamadas a la API de GitHub

  • Limitador de tasa de cubo de tokens para mantenerse dentro de los límites de GitHub

  • Cero any: TypeScript estricto en todo el proyecto

  • ≥80% de cobertura de pruebas con HTTP simulado mediante MSW

Related MCP server: GitHub MCP Agent Server

Requisitos

  • Node.js 18+

  • Un token de acceso personal de GitHub con alcance repo

Instalación

npm install -g devflow-mcp

O ejecútalo directamente con npx:

npx devflow-mcp

O clona y compila:

git clone https://github.com/yourorg/devflow-mcp
cd devflow-mcp
npm install
npm run build

Configuración de Claude Desktop

Añádelo a tu claude_desktop_config.json:

{
  "mcpServers": {
    "devflow": {
      "command": "npx",
      "args": ["devflow-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Ubicaciones del archivo de configuración:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Herramientas

analyze_pr

Analiza una solicitud de extracción (pull request) de GitHub en busca de riesgos, hallazgos de seguridad y preparación para la fusión.

Parámetros:

Nombre

Tipo

Requerido

Descripción

owner

string

sí

Propietario del repositorio

repo

string

sí

Nombre del repositorio

pr_number

number

sí

Número de la solicitud de extracción

focus

string[]

no

Limitar análisis a: security, performance, logic, style

Retorna: risk_score (0-100), risk_level, findings[], change_summary, merge_recommendation


review_code

Revisa un fragmento de código en busca de calidad, problemas de seguridad y oportunidades de mejora.

Parámetros:

Nombre

Tipo

Requerido

Descripción

code

string

sí

Código fuente a revisar

language

string

sí

Lenguaje de programación

context

string

no

Contexto opcional sobre lo que hace el código

Retorna: overall_score (1-10), issues[] con severidad + sugerencias de corrección, positive_observations[], refactor_priority


generate_changelog

Genera un registro de cambios entre dos referencias de Git a partir del historial de commits.

Parámetros:

Nombre

Tipo

Requerido

Descripción

owner

string

sí

Propietario del repositorio

repo

string

sí

Nombre del repositorio

from_ref

string

sí

Referencia base (etiqueta, SHA, rama)

to_ref

string

sí

Referencia de destino

format

string

no

markdown (predeterminado), json, plain

group_by

string

no

type (predeterminado), author, date

include_authors

boolean

no

Incluir nombres de autores (predeterminado: true)

Retorna: changelog string, commit_count, stats por categoría, breaking_changes[]


audit_dependencies

Audita las dependencias del proyecto frente a la base de datos de vulnerabilidades OSV.

Parámetros:

Nombre

Tipo

Requerido

Descripción

owner

string

sí

Propietario del repositorio

repo

string

sí

Nombre del repositorio

ecosystem

string

sí

npm, pypi, o auto

severity_threshold

string

no

Severidad mínima a reportar: low (predeterminado), moderate, high, critical

Retorna: vulnerabilities[] con IDs de CVE, versiones de corrección y comandos de corrección; audit_passed, stats por nivel de severidad, osv_query_timestamp


summarize_commits

Resume los commits recientes en una rama en un resumen legible por humanos.

Parámetros:

Nombre

Tipo

Requerido

Descripción

owner

string

sí

Propietario del repositorio

repo

string

sí

Nombre del repositorio

branch

string

no

Nombre de la rama (predeterminado: rama principal del repo)

since

string

no

Fecha ISO o relativa (7d, 24h, 2w, 1m)

limit

number

no

Máximo de commits (predeterminado: 50)

output_style

string

no

digest (predeterminado), standup, detailed

Retorna: summary string, categories (features/fixes/docs/refactors/chores/other), authors[], commit_count


suggest_refactor

Analiza el código en busca de oportunidades de refactorización clasificadas por relación impacto-esfuerzo.

Parámetros:

Nombre

Tipo

Requerido

Descripción

code

string

sí

Código fuente a analizar

language

string

sí

Lenguaje de programación

goals

string[]

no

Áreas de enfoque: readability, performance, testability, maintainability

Retorna: suggestions[] con justificación y estimaciones de esfuerzo, priority_order[], original_complexity_score

Desarrollo

# Install dependencies
npm install

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Type-check and build
npm run build

# Lint
npm run lint

# Format
npm run format

# Start the server (after build)
npm start

Estructura del proyecto

src/
  index.ts              # Entry point
  server.ts             # MCP server registration
  tools/                # Tool handlers (one per tool)
  github/               # GitHub API clients
  lib/                  # Shared utilities
    cache.ts            # LRU cache with TTL
    rate-limiter.ts     # Token-bucket rate limiter
    commit-parser.ts    # Conventional commit parser
    diff-parser.ts      # Git diff parser
    risk-scorer.ts      # PR risk scoring heuristics
    errors.ts           # Typed MCP errors
  providers/
    osv.ts              # OSV.dev vulnerability API
tests/
  integration/          # Full MCP server tests via InMemoryTransport
  tools/                # Unit tests per tool handler
  lib/                  # Unit tests for utilities

Estrategia de pruebas

  • Pruebas unitarias: cada manejador de herramientas y biblioteca simulado con vi.mock

  • Pruebas de integración: viaje completo cliente↔servidor MCP a través de InMemoryTransport, HTTP interceptado con MSW

  • Simulación HTTP: MSW v2 (msw/node) — sin llamadas de red reales en las pruebas

  • Cobertura: ≥80% de ramas requeridas (npm run test:coverage)

Contribución

  1. Haz un fork del repositorio

  2. Crea una rama de características

  3. Añade pruebas para el nuevo comportamiento

  4. Asegúrate de que npm run build && npm run test:coverage && npm run lint pasen correctamente

  5. Abre una solicitud de extracción

Licencia

MIT

Related MCP Connectors

Related MCP Servers