Deprecating My Symfony Profiler MCP Bundle: Right About the Problem, Half-Wrong About the Solution A developer deprecated their mcp-profiler-bundle, a Symfony bundle that exposed the Symfony Profiler to AI coding agents via the Model Context Protocol, after Symfony shipped its own official solution, Symfony AI Mate. The bundle, which reached roughly 5,900 Packagist installs, was superseded by Mate, which later removed its MCP server in version 0.13 in favor of plain CLI commands paired with Agent Skills; contributor Johannes Wachter measured that the bare CLI was invoked in 0 of 20 agent runs, versus 5 of 20 with MCP and 10 of 10 on one task with Skills and project instructions. In March 2025 I built mcp-profiler-bundle https://github.com/killerwolf/mcp-profiler-bundle , a Symfony bundle that let AI coding agents read the Symfony Profiler: the requests your app just served, the queries they ran, the exceptions they threw. The bet was simple. An agent that can see what the app actually did should debug it better than one that can only read the source. This week I deprecated it. Symfony now ships the official version of that idea, and rereading my code for the deprecation notice left me with an uncomfortable verdict: I was right about the problem, and half-wrong about the solution. MCP, the Model Context Protocol, is a JSON-RPC protocol that lets a client like Claude Desktop, Cursor or Cline call tools on a local server. My bundle added a bin/console mcp:server:run command that spoke it over stdio and exposed four tools: profiler:list , profiler:get by token , profiler:get collectors and profiler:get collector . There was no official PHP SDK back then. My first commit leaned on a community library, james2037/mcp-php-server , which only existed as dev-master . By the 0.1.0 tag on 31 March 2025 it was gone, and the whole protocol fit in one match : php // Command/RunMCPServerCommand.php $payload = json decode $line, true, JSON THROW ON ERROR ; $method = $payload 'method' ?? null; $response = match $method { 'initialize' = $this- sendInitialize , 'tools/list' = $this- sendToolsList , 'tools/call' = $this- callTool $payload 'params' ?? , 'notifications/initialized' = null, default = $this- sendProtocolError \sprintf 'Method "%s" not found', $method , }; Hold on to that first line. It comes back later. It found some users: 11 stars, 2 forks and roughly 5,900 Packagist installs. Version 0.2.0 added multi-kernel APP ID support a week after launch, and in February 2026 an outside contributor, Rhodri Pugh, sent a PHP 8.4 fix. The idea is official now. In September 2025, Symfony announced the official PHP MCP SDK, built with The PHP Foundation and Anthropic's MCP team. On 23 December 2025, Symfony AI Mate https://symfony.com/doc/current/ai/components/mate.html shipped its first release, about nine months after my 0.1.0: an MCP dev server giving coding agents access to a Symfony app's internals. The container came first, profiler access landed in 0.3 in January 2026, and it handles multi-kernel apps too. Symfony's spotlight on Mate https://symfony.com/blog/symfony-ai-spotlight-mate-an-agent-s-way-into-your-runtime opens on the same premise: an agent can read all your code and still not know what happened on the last request. Mate is past 100,000 installs a month. In August 2026, Mate 0.13 deleted its MCP server PR 2380 https://github.com/symfony/ai/pull/2380 . It no longer depends on mcp/sdk , and the agent runs plain commands instead, like these from Mate's docs and its profiler skill: vendor/bin/mate tools:list vendor/bin/mate tools:call symfony-profiler-list --statusCode=500 --limit=5 vendor/bin/mate resources:read symfony-profiler://profile/