mcpField
P
PHPocalypse-MCP

PHPocalypse-MCP

Local
github.com/plapinskiDeveloper Tools3Updated 84w ago

About PHPocalypse-MCP

PHPocalypse-MCP lets MCP clients run configured commands in a PHP project, aimed at developers who want to delegate tests and static analysis. Tools are defined by name and command in a YAML file; interactive CLI input is unsupported.

Key features

  1. 01Define tools as commands in YAML
  2. 02Run configured project commands
  3. 03Use for tests and static analysis
  4. 04Requires non-interactive commands

Use cases

  1. 01Run unit tests from an MCP client
  2. 02Invoke PHP-CS-Fixer on a project
  3. 03Run PHPStan analysis

MCP support

Exposes project-defined commands as tools to MCP clients such as Cursor. Commands and tool names are configured in a project YAML file.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"PHPocalypse-MCP": {
"command": "npx",
"args": [
"-y",
"tsx"
]
}
}
}
Run commandnpx -y tsx

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmtsx

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

PHPocalypse-MCP

MCP server for vibe developers that are too busy to run tests and static analysis.

Prerequisites

  • You need to have node, npx and tsx installed

How to

  • First, git clone this repo to chosen directory
  • Run npm install
  • Next, open your Cursor settings and add the following MCP config:
{
    "mcpServers": {
        "phpocalypse-mcp": {
            "command": "npx",
            "args": ["tsx", "/Absolute/Path/To/PHPocalypse-MCP/src/index.ts", "--config", "/Absolute/Path/To/Your/PHP/Based/Project/phpocalypse-mcp.yaml"]
        }
    }
}

Make sure the paths are correct!

  • In your PHP project, create phpocalypse-mcp.yaml file

phpocalypse-mcp.yaml config

The structure is straightforward. Define the tools by giving them a name and a command to run.

tools:
  - name: php-cs-fixer
    command: make php-cs

  - name: php-stan
    command: /vendor/bin/phpstan analyse -c phpstan.neon --memory-limit=-1

  - name: tests-unit
    command: docker compose run --rm php ./vendor/bin/phpunit --testsuite=Unit

  - name: tests-behat
    command: task behat -- --no-interaction

Caveats

  • This MCP is just a proof of concept and it may not work in every case. One thing that will not work for sure is any interactive CLI input. A good example is behat, that - if not run in non-inteartvice mode - will prompt user with a question of whether to generate missing snippets. Make sure that your commands just run and output something meaningful and leave the rest to your favourite LLM.
  • Some bigger outputs are not handler correctly yet. To fix that, try to either use claude-3.7-sonnet or craft your commands to return less.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.