Skip to content

Conversation

@camilleislasse
Copy link
Contributor

@camilleislasse camilleislasse commented Nov 13, 2025

Q A
Bug fix? no
New feature? yes
Docs? no
Issues Fix #529
License MIT

Description

This PR adds a Web Profiler integration for the MCP Bundle that displays MCP server capabilities (tools, prompts, resources, resource templates) in the Symfony debug toolbar and profiler panel.

Features

  • ProfilingLoader to capture Registry reference during server build
  • DataCollector to collect and display MCP capabilities

Note: This implementation depends on the loader pattern. If MCP SDK PR #146 (direct Registry injection via DI) is merged, this approach may need adjustment.

Capture d’écran 2025-11-13 à 20 10 00

This adds a Web Profiler integration for the MCP Bundle that displays
MCP server capabilities (tools, prompts, resources, resource templates)
in the Symfony debug toolbar and profiler panel.

Features:
- ProfilingLoader to capture Registry reference during server build
- DataCollector to collect and display MCP capabilities
- Split templates for each capability type (tools, prompts, resources, resource templates)
- Copy Schema button for tool input schemas
- Nested tabs structure following Symfony profiler conventions

Note: This implementation depends on the loader pattern. If MCP SDK PR symfony#146
(direct Registry injection via DI) is merged, this approach may need adjustment.
@carsonbot carsonbot added Feature New feature MCP Bundle Issues & PRs about the MCP SDK integration bundle Status: Needs Review labels Nov 13, 2025
Copy link
Member

@chr-hertel chr-hertel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this looks great already, but let's please switch to a TraceableRegistry once modelcontextprotocol/php-sdk#150 gets merged - makes sense?

@OskarStark
Copy link
Contributor

Would love to see some infos around the MCP Profiler and the screenshot in the documentation

Copy link
Member

@chr-hertel chr-hertel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be able to use/decorate the Registry directly now and skip the ProfilingLoader, right?

Now that modelcontextprotocol/php-sdk#150 is merged, the Registry can be
injected directly into the Builder. This allows replacing the ProfilingLoader
with a cleaner TraceableRegistry decorator pattern.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature New feature MCP Bundle Issues & PRs about the MCP SDK integration bundle Status: Needs Review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[MCP Bundle] Implement Profiler Panel & Toolbar

4 participants