PHP代码检查服务

一个基于MCP协议的PHP代码检查与自动修复服务,集成PHP_CodeSniffer工具,支持通过JSON-RPC 2.0协议与各类MCP兼容客户端交互。

  • by larspohlmann
  • PHP
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 larspohlmann/mcp-phpcs-server

使用说明

MCP PHPCS服务器

A. 模型上下文协议 服务器带来 PHP_CodeSniffer 直接从任何MCP客户端将PHP与您的编码标准进行对比,并自动修复违规行为。

实施于 纯PHP,无Composer依赖。将其放入任何项目中或独立运行——它通过stdio使用JSON-RPC 2.0,并与Claude Desktop、Claude Code、Cursor和任何其他MCP兼容客户端配合使用。

工具

工具 说明
phpcs_check 跑步 PHP_CodeSniffer 并返回可读的违规报告。
phpcbf_fix 运行PHP代码美化和修复程序(phpcbf)自动修复可修复的违规行为。

这两种工具都需要一个 path (绝对或项目相对文件/目录)。

需求

  • PHP 8.1+
  • phpcs 和 phpcbf 二进制文件可用(通过 PHP_CodeSniffer例如,一个项目的 vendor/bin 或全局安装)

快速启动

  1. 克隆存储库(或将其复制到您的项目中):

    git clone https://github.com/larspohlmann/mcp-phpcs-server.git
    
  2. 使入口点可执行:

    chmod +x mcp-phpcs-server/bin/mcp-phpcs
    
  3. 向您的MCP客户端注册(见下文)。

配置

通过环境变量进行配置 或 config/config.json。环境变量优先。

变量 config.json key 描述 默认值
MCP_PHPCS_PATH phpcsPath 通往 phpcs 二进制 phpcs 上 PATH
MCP_PHPCBF_PATH phpcbfPath 通往 phpcbf 二进制 phpcbf 上 PATH
MCP_PHPCS_RULESET rulesetPath 编码标准规则集的路径 自动发现

如果没有提供规则集,服务器将从当前工作目录向上搜索以下内容之一 phpcs.xml, phpcs.xml.dist,或 ruleset.xml.

客户端设置

克劳德桌面/克劳德代码

将服务器添加到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"
      }
    }
  }
}

然后问你的助理类似的问题 “在src/Service/UserService.php上运行phpcs,并尽可能修复。”

示例工具调用

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

建筑学

服务器遵循轻量级的域驱动设计布局:

  • src/Domain --工具契约与结果价值对象
  • src/Application --JSON-RPC MCP服务器和工具注册表
  • src/Infrastructure --流程运行器、配置、规则集发现、工具实现
  • bin/mcp-phpcs -stdio入口点

它实现了MCP方法 initialize, tools/list,以及 tools/call.

备注

  • STDOUT携带 仅 JSON-RPC消息;所有日志都转到STDERR。
  • 来自的非零退出代码 phpcs 意味着发现了违规行为——它被报告为发现,而不是被视为致命错误。

许可证

麻省理工学院