项目简介

Symfony MCP Profiler Bundle 是一个 Symfony 框架的扩展包,它实现了 MCP (Model Context Protocol) 服务器,旨在将 Symfony Web Profiler 的数据桥接到支持 MCP 协议的 IDE (如 Cursor, Claude Code, Cline 等)。通过该 Bundle,开发者可以在 IDE 中直接访问和分析 Symfony 应用的性能数据,提升开发效率。

主要功能点

  • MCP 服务器实现: 实现了 MCP 协议,可以作为 MCP 服务器与客户端 (如 IDE) 通信。
  • Profiler 数据暴露: 将 Symfony Web Profiler 收集的数据通过 MCP 协议以 “工具 (Tools)” 的形式暴露出来。
  • 内置工具: 提供了一系列预定义的工具,用于查询和检索 Symfony Profiler 数据,例如:
    • 'profiler:list': 列出最近的 Profiler 条目。
    • 'profiler:get_by_token': 根据 Token 获取特定的 Profiler 条目。
    • 'profiler:get_collectors': 获取特定 Profiler 条目的所有收集器数据。
    • 'profiler:get_collector': 获取特定 Profiler 条目的指定收集器数据。
  • 支持 Stdio 传输协议: 通过标准输入/输出 (STDIO) 与 MCP 客户端进行通信。
  • 会话管理与能力声明: 支持 MCP 协议的初始化和能力声明,告知客户端服务器所提供的功能。

安装步骤

  1. 通过 Composer 安装 Bundle:

    在 Symfony 项目的根目录下运行 Composer 命令:

    composer require killerwolf/mcp-profiler-bundle:^0.1
  2. 启用 Bundle:

    在 'config/bundles.php' 文件中启用 MCPProfilerBundle:

    return [
        // ...
        Killerwolf\MCPProfilerBundle\MCPProfilerBundle::class => ['dev' => true], // 建议仅在 dev 环境启用
    ];

服务器配置

为了让 MCP 客户端 (如 IDE) 连接到 Symfony MCP Profiler 服务器,需要在客户端中配置服务器信息。以下是配置示例 (JSON 格式),以 Cursor IDE 为例:

{
  "mcpServers": {
    "symfony-mcp": {
      "command": "/path/to/your/symfony/project/bin/console",
      "args": [
        "mcp:server:run"
      ],
      "serverReadyOutput": "工具列表已发送"  // (可选) 用于检测服务器是否启动成功的输出,本例中实际启动成功时没有特定输出,可以省略此项
    }
  }
}

配置参数说明:

  • '"symfony-mcp"': 服务器名称,可以自定义,在 IDE 中用于标识该服务器连接。
  • '"command"': Symfony 项目 'bin/console' 文件的绝对路径。请根据你的项目实际路径进行修改。
  • '"args"': 启动 MCP 服务器的命令参数,固定为 '["mcp:server:run"]'。
  • '"serverReadyOutput"': (可选) MCP 客户端用于判断服务器是否启动成功的输出字符串。本 Bundle 的 MCP 服务器启动后没有特定的就绪输出,可以省略此配置。

注意: 请将 '/path/to/your/symfony/project/bin/console' 替换为你 Symfony 项目 'bin/console' 文件的实际路径。

基本使用方法

  1. 启动 MCP 服务器:

    在 IDE 中配置好 MCP 服务器后,启动该服务器连接。这将会在后台运行 'bin/console mcp:server:run' 命令,启动 MCP 服务器。

  2. 在 IDE 中使用 MCP Inspector 或集成功能:

    • MCP Inspector: 可以使用 MCP Inspector 工具 (通过 'npx --registry https://registry.npmjs.org @modelcontextprotocol/inspector' 命令安装) 与 MCP 服务器进行交互,测试工具和资源。
    • IDE 集成: 如果 IDE (如 Cursor, Claude Code, Cline) 集成了 MCP 客户端,可以直接在 IDE 中使用 MCP 功能,例如:
      • 在 IDE 的 AI 助手或相关面板中,可能会出现与 Symfony Profiler 相关的操作入口。
      • 通过 IDE 的命令或快捷键,可以调用 MCP 服务器提供的工具,查询 Profiler 数据,并在 IDE 中展示结果。
      • 具体操作方式请参考你所使用的 IDE 的 MCP 功能文档。
  3. 通过工具访问 Profiler 数据:

    MCP 服务器提供了一系列工具,可以通过 MCP 客户端调用这些工具来获取 Symfony Profiler 的数据。例如,在 IDE 中,你可能可以使用类似以下的命令或操作来调用工具:

    • 列出最近的 Profiler 条目: 调用 'profiler:list' 工具。
    • 获取特定 Token 的 Profiler 数据: 调用 'profiler:get_by_token' 工具,并提供 Token 参数。
    • 获取指定收集器的数据: 调用 'profiler:get_collector' 工具,并提供 Token 和收集器名称参数。

    工具的具体调用方式和参数,以及结果的展示形式,取决于你所使用的 MCP 客户端的功能和界面。

信息

分类

开发者工具