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 服务器启动方式,通常使用 Symfony 控制台命令启动 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 客户端不需要修改服务器端代码,只需在客户端配置中指向上述服务器启动信息即可建立连接。
- 基本使用流程
- 启动 MCP 服务器(如上述启动命令)。
- MCP 客户端按配置连接并通过 JSON-RPC 发送请求(读取资源、注册/执行工具、获取 Prompt 等)。
- 服务器返回标准化的 JSON-RPC 响应,或通过通知/事件推进工作流。
- 客户端处理响应并执行后续对话/推理任务。
-
基本使用方法总结
- 本仓库提供了服务端实现、工具、以及针对页面/内容的操作示例,适合将 LLM 与 Sulu CMS 内容进行无缝对接,提升对话生成时的上下文可用性与交互能力。