使用说明
MCP PHPStan 服务器
A. 模型上下文协议 服务器带来 PHPStan的 对AI编码工作流程进行静态分析——直接从任何MCP客户端分析PHP的错误和类型错误。
实施于 纯PHP,无Composer依赖。将其放入任何项目中或独立运行——它通过stdio使用JSON-RPC 2.0,并与Claude Desktop、Claude Code、Cursor和任何其他MCP兼容客户端配合使用。
工具
| 工具 | 说明 |
|---|---|
phpstan_analyze |
跑步 PHPStan的 并返回可读的错误报告。 |
phpstan_pro |
使用JSON输出运行PHPTan,以实现更丰富、结构化的诊断(与 PHPStan 专业 如果可用)。 |
这两种工具都接受:
paths(必需的)--要分析的绝对或项目相对路径数组level(可选)--覆盖配置的规则级别(例如。"max"或8)
需求
- PHP 8.1+
- A.
phpstan二进制可用(项目vendor/bin/phpstan或全局安装)
快速启动
-
克隆存储库(或将其复制到您的项目中):
git clone https://github.com/larspohlmann/mcp-phpstan-server.git -
使入口点可执行:
chmod +x mcp-phpstan-server/bin/mcp-phpstan -
向您的MCP客户端注册(见下文)。
配置
通过环境变量进行配置 或 config/config.json。环境变量优先。
| 变量 | config.json key |
描述 | 默认值 |
|---|---|---|---|
MCP_PHPSTAN_PATH |
phpstanPath |
通往 phpstan 二进制 |
vendor/bin/phpstan那么 phpstan 上 PATH |
MCP_PHPSTAN_CONFIG |
phpstanConfig |
通往a的道路 phpstan.neon / phpstan.neon.dist |
自动发现 |
MCP_PHPSTAN_LEVEL |
phpstanLevel |
要分析的规则级别(例如。 max 或 8) |
max |
MCP_PHPSTAN_MEMORY_LIMIT |
phpstanMemoryLimit |
PHPTan的价值 --memory-limit (例如。 1G) |
1G |
如果没有提供配置路径,服务器将从当前工作目录向上搜索 phpstan.neon 或 phpstan.neon.dist.
客户端设置
克劳德桌面/克劳德代码
将服务器添加到MCP配置中:
{
"mcpServers": {
"phpstan": {
"command": "/absolute/path/to/mcp-phpstan-server/bin/mcp-phpstan",
"env": {
"MCP_PHPSTAN_PATH": "/usr/local/bin/phpstan",
"MCP_PHPSTAN_CONFIG": "/path/to/your/phpstan.neon",
"MCP_PHPSTAN_LEVEL": "max",
"MCP_PHPSTAN_MEMORY_LIMIT": "1G"
}
}
}
}
然后问你的助理类似的问题 “在src目录上运行PHPTan并解释错误。”
示例工具调用
{
"name": "phpstan_analyze",
"arguments": {
"paths": ["src", "tests"],
"level": "max"
}
}
建筑学
服务器遵循轻量级的域驱动设计布局:
src/Domain--工具契约与结果价值对象src/Application--JSON-RPC MCP服务器和工具注册表src/Infrastructure--进程运行器、配置、工具实现bin/mcp-phpstan-stdio入口点
它实现了MCP方法 initialize, tools/list,以及 tools/call.
备注
- STDOUT携带 仅 JSON-RPC消息;所有日志都转到STDERR。
- 来自的非零退出代码
phpstan可能意味着发现和失败——服务器解析输出以确定错误状态。