cms-symfony-sulu

使用说明(以中文说明核心使用方式,便于快速上手)

  • 项目简介

    • 该仓库在 Symfony + Sulu CMS 框架下实现了一个 MCP 服务器端,旨在向大语言模型客户端提供上下文资源、可调用的工具以及可渲染的 Prompt 模板等功能,遵循 Model Context Protocol(MCP)的设计思想,采用 JSON-RPC 等协议进行通信。
    • 服务器基础依赖包括 KlpMcpServerBundle 等 MCP 服务组件,整合了 Sulu 的页面/内容模型、OAuth2 PKCE 授权等能力,以便 LLM 客户端在受控环境中访问、修改和渲染内容。
  • 主要功能点

    • MCP 服务器核心:提供标准化的资源读取、工具执行、以及 Prompt 渲染入口,支持多传输协议和会话管理。
    • Tools 与 Resources:SuluPagesTool、PageService、SnippetService 等用于对页面、区块、片段等内容的创建、更新、查询等操作。
    • Prompts 与模板:内建提示模板的管理与渲染,方便 LLM 客户端获取交互式对话所需的上下文。
    • 安全与扩展:自托管 OAuth 2.1(PKCE)等鉴权机制,针对远端调用场景提供令牌管理与安全控制;并通过 Bundle 方式实现 MCP 服务的扩展与部署。
  • 安装步骤(简要、可直接执行的要点)

    • 准备工作:确保系统环境中已安装 PHP 8.2+、Composer、NPM、以及 MySQL/数据库等依赖。
    • 安装与依赖:
      • 从仓库根目录执行常规的 Composer 安装,确保 vendor 目录完整。
      • 安装并配置数据库、Sulu CMS 运行所需的前置条件(如 PHPCR、Sulu Admin、Website 等组件)。
    • 启动 MCP 服务器:
      • 参考仓库的 MCP 服务器启动方式,通常使用 Symfony 控制台命令启动 MCP 服务器,例如:
        • php bin/console mcp:server
      • 如仓库 README 的示例,需要在容器/环境中把启动命令及参数作为 MCP 服务器配置的一部分。
    • MCP 客户端配置(JSON 配置,客户端不需要直接修改,以下信息为参考说明客户端连接所需信息)
      • server name: sulu-mcp-server
      • command: php
      • args: ["bin/console","mcp:server"]
      • 备注:上述信息用于 MCP 客户端建立与 MCP 服务器的连接;客户端会通过该信息来启动和连接服务器并进行 JSON-RPC 请求。
    • 验证与测试:
      • 运行仓库中的单元/集成测试以确认 MCP 服务端组件可工作(如 SuluPagesTool、PageService、BlockWriter 等相关单元测试)。
      • 使用 MCP 客户端发起简单请求(如 list/get 等)以验证资源/tool/prompt 的暴露与响应格式。
  • 服务器配置与对接要点

    • MCP 服务器配置(JSON 格式示例说明,非实际代码块) { "server_name": "sulu-mcp-server", "command": "php", "args": ["bin/console","mcp:server"], "description": "Sulu CMS 集成的 MCP 服务器,向 LLM 客户端提供资源、工具与提示模板的访问接口" }
    • 说明
      • 该配置仅用于 MCP 客户端在启动时了解服务器的启动命令与参数,实际连接还需根据客户端实现的 RPC 调用约定进行交互。
      • MCP 客户端不需要修改服务器端代码,只需在客户端配置中指向上述服务器启动信息即可建立连接。
    • 基本使用流程
      1. 启动 MCP 服务器(如上述启动命令)。
      2. MCP 客户端按配置连接并通过 JSON-RPC 发送请求(读取资源、注册/执行工具、获取 Prompt 等)。
      3. 服务器返回标准化的 JSON-RPC 响应,或通过通知/事件推进工作流。
      4. 客户端处理响应并执行后续对话/推理任务。
  • 基本使用方法总结

    • 本仓库提供了服务端实现、工具、以及针对页面/内容的操作示例,适合将 LLM 与 Sulu CMS 内容进行无缝对接,提升对话生成时的上下文可用性与交互能力。

服务器信息