MCP PHPCS Server

Un servidor MCP que ejecuta PHP_CodeSniffer (phpcs) y PHP Code Beautifier and Fixer (phpcbf) — verifica código PHP contra un estándar de codificación y corrige automáticamente las infracciones directamente desde tu cliente MCP.

Documentación

MCP PHPCS Server

Un servidor de Model Context Protocol que integra PHP_CodeSniffer en tu flujo de trabajo de IA — analiza PHP según tu estándar de codificación y corrige automáticamente las violaciones, directamente desde cualquier cliente MCP.

PHP Dependencies License

Implementado en PHP puro sin dependencias de Composer. Colócalo en cualquier proyecto o ejecútalo de forma independiente — habla JSON-RPC 2.0 sobre stdio y funciona con Claude Desktop, Claude Code, Cursor y cualquier otro cliente compatible con MCP.

Herramientas

HerramientaDescripción
phpcs_checkEjecuta PHP_CodeSniffer sobre un archivo o directorio y devuelve un informe legible de las violaciones.
phpcbf_fixEjecuta PHP Code Beautifier and Fixer (phpcbf) para corregir automáticamente las violaciones corregibles.

Ambas herramientas requieren un único path (archivo/directorio absoluto o relativo al proyecto).

Requisitos

  • PHP 8.1+
  • Binarios phpcs y phpcbf disponibles (a través de PHP_CodeSniffer, por ejemplo, el vendor/bin de un proyecto o una instalación global)

Inicio rápido

  1. Clona el repositorio (o cópialo en tu proyecto):

    git clone https://github.com/larspohlmann/mcp-phpcs-server.git
    
  2. Haz ejecutable el punto de entrada:

    chmod +x mcp-phpcs-server/bin/mcp-phpcs
    
  3. Regístralo en tu cliente MCP (ver más abajo).

Configuración

Configura mediante variables de entorno o config/config.json. Las variables de entorno tienen prioridad.

VariableClave config.jsonDescripciónPredeterminado
MCP_PHPCS_PATHphpcsPathRuta al binario phpcsphpcs en PATH
MCP_PHPCBF_PATHphpcbfPathRuta al binario phpcbfphpcbf en PATH
MCP_PHPCS_RULESETrulesetPathRuta a un conjunto de reglas de estándar de codificaciónauto-descubierto

Si no se proporciona un conjunto de reglas, el servidor busca hacia arriba desde el directorio de trabajo actual uno de phpcs.xml, phpcs.xml.dist o ruleset.xml.

Configuración del cliente

Claude Desktop / Claude Code

Añade el servidor a tu configuración de MCP:

{
  "mcpServers": {
    "phpcs": {
      "command": "/absolute/path/to/mcp-phpcs-server/bin/mcp-phpcs",
      "env": {
        "MCP_PHPCS_PATH": "/usr/local/bin/phpcs",
        "MCP_PHPCBF_PATH": "/usr/local/bin/phpcbf",
        "MCP_PHPCS_RULESET": "/path/to/your/phpcs.xml"
      }
    }
  }
}

Luego pide a tu asistente algo como "Ejecuta phpcs en src/Service/UserService.php y corrige lo que puedas."

Ejemplo de llamada a herramienta

{
  "name": "phpcs_check",
  "arguments": { "path": "src/Service/UserService.php" }
}

Arquitectura

El servidor sigue un diseño ligero de Domain-Driven Design:

  • src/Domain — contratos de herramientas y objetos de valor de resultados
  • src/Application — servidor MCP JSON-RPC y registro de herramientas
  • src/Infrastructure — ejecutor de procesos, configuración, descubrimiento de reglas, implementaciones de herramientas
  • bin/mcp-phpcs — punto de entrada stdio

Implementa los métodos MCP initialize, tools/list y tools/call.

Notas

  • STDOUT transporta solo mensajes JSON-RPC; todos los registros van a STDERR.
  • Un código de salida distinto de cero de phpcs significa que se encontraron violaciones — se informa como hallazgos, no se trata como un error fatal.

Licencia

MIT