MCP.so
Sign In
Servers

PHPocalypse-MCP

@plapinski

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

Overview

What is PHPocalypse-MCP?

PHPocalypse-MCP is an MCP (Model Context Protocol) server that lets LLM-powered coding tools execute PHP development commands—such as static analysis, code style fixes, and test suites—by running user-defined commands from a YAML configuration file. It is aimed at developers who want to delegate running PHP tools to their AI assistant.

How to use PHPocalypse-MCP?

Clone the repository, run npm install, and add an MCP server entry in your Cursor settings (or other MCP-compatible editor). The entry points npx tsx at src/index.ts with a --config argument pointing to a phpocalypse-mcp.yaml file in your PHP project. Then create that YAML file and define the tools you want the LLM to invoke (e.g., php-cs-fixer, phpstan, tests-unit).

Key features of PHPocalypse-MCP

  • Define PHP tools by name and shell command in a YAML config.
  • Works with any PHP project structure.
  • Supports arbitrary commands (e.g., make, docker compose, vendor/bin/*).
  • Intended for non-interactive CLI output.
  • Proof-of-concept; interactive prompts are not supported.

Use cases of PHPocalypse-MCP

  • Run PHPStan static analysis from an AI chat without leaving the editor.
  • Execute PHP-CS-Fixer code style corrections on demand.
  • Run both unit and Behat test suites via a single LLM command.
  • Automate quality checks without manual terminal switching.

FAQ from PHPocalypse-MCP

What prerequisites are needed?

You need Node.js, npx, and tsx installed on your system.

How do I define tools in the YAML config?

Create a phpocalypse-mcp.yaml file with a tools array, each entry requiring a name and a command string. Example tools: php-cs-fixer, phpstan, tests-unit, tests-behat.

What will not work with this MCP server?

Any interactive CLI input will not work. For example, Behat prompts for snippet generation must be run in non-interactive mode (using --no-interaction or similar flags).

Are there known limitations?

Yes. Larger command outputs are not handled correctly yet. To work around this, try using claude-3.7-sonnet as the LLM or craft your commands to produce shorter, meaningful output.

Does the server support authentication or multiple transport types?

The README only describes a local stdio-based transport (via npx command). No authentication details are mentioned.

More from Other