项目简介
Symfony MCP Server Bundle 是一个用于构建 Model Context Protocol (MCP) 服务器的 Symfony 框架扩展。它旨在简化在 Symfony 应用程序中集成和管理 AI 工具和资源的过程,使开发者能够轻松地为大型语言模型 (LLM) 客户端提供上下文服务。
主要功能点
- 资源 (Resources) 管理: 允许开发者注册和管理各种资源,并通过标准化的 MCP 协议向 LLM 客户端提供数据访问能力。
- 工具 (Tools) 注册与执行: 支持注册和执行外部功能(工具),使 LLM 客户端能够调用这些工具来扩展其能力。
- 基于 Symfony 框架: 充分利用 Symfony 框架的优势,如依赖注入、服务容器、命令控制台等,提供稳定、可扩展的 MCP 服务器解决方案。
- 自动配置: 通过 Symfony 的服务标签和自动配置机制,简化工具和资源的注册流程。
- 内置工具: 预置了 Symfony Profiler 相关的工具,方便开发者监控和调试应用。
- 命令支持: 提供 Symfony Console 命令来启动 MCP 服务器和管理 Profiler。
- 灵活配置: 允许通过 YAML 配置文件自定义 MCP 服务器的名称、版本和 Profiler 功能。
安装步骤
-
使用 Composer 安装 Bundle: 在你的 Symfony 项目根目录下运行以下命令:
composer require killerwolf/mcp-server-bundle -
启用 Bundle: 打开 'config/bundles.php' 文件,添加以下行以启用 MCP Server Bundle:
return [ // ... MCP\ServerBundle\MCPServerBundle::class => ['all' => true], ]; -
配置 Bundle (可选): 在 'config/packages/mcp_server.yaml' 文件中,你可以配置 MCP 服务器的名称、版本和 Profiler 功能。例如:
# config/packages/mcp_server.yaml mcp_server: name: '我的MCP服务器' version: '1.0.0' profiler: storage_path: '%kernel.cache_dir%/profiler' enabled: true
服务器配置 (MCP客户端配置)
MCP 客户端需要配置以下 JSON 格式的信息以连接到此 MCP 服务器。请注意替换 '/path/to/your/project/bin/console' 为你实际的 Symfony 项目 'bin/console' 文件的路径。
{ "serverName": "我的MCP服务器", // MCP 服务器名称,对应 mcp_server.yaml 中的 name 配置,默认为 'MCP Server' "command": "php", // 启动命令,通常为 php "args": [ // 启动参数 "/path/to/your/project/bin/console", // Symfony Console 文件的路径,请替换为你的实际路径 "mcp:server:run" // 运行 MCP 服务器的命令 ] }
参数注释:
- 'serverName': MCP 服务器的名称,这个名称应该与你在 'config/packages/mcp_server.yaml' 中配置的 'mcp_server.name' 一致。如果未配置,则默认为 ''MCP Server''。
- 'command': 运行 Symfony Console 命令的命令,通常是 'php',假设你的 PHP 可执行文件在系统 PATH 环境变量中。
- 'args': 一个字符串数组,包含了运行 MCP 服务器所需的参数。
- 第一个参数应该是你的 Symfony 项目中 'bin/console' 文件的绝对路径。你需要根据你的项目结构进行调整。
- 第二个参数固定为 'mcp:server:run',这是 Symfony MCP Server Bundle 提供的用于启动 MCP 服务器的命令。
基本使用方法
-
启动 MCP 服务器: 在 Symfony 项目根目录下,使用 Symfony Console 命令启动 MCP 服务器:
bin/console mcp:server:run此命令将启动 MCP 服务器,并监听来自 MCP 客户端的请求。
-
注册自定义工具和资源:
- 创建你的工具类和资源类,并确保它们继承自 'MCP\Server\Tool\Tool' 和 'MCP\Server\Resource\Resource'。
- 使用 '#[Tool]' 和 '#[Resource]' Attribute (PHP 8+) 或配置服务标签 'mcp_server.tool' 和 'mcp_server.resource' 将它们注册为 Symfony 服务。具体方法请参考 README.md 中的 "Registering Custom Tools and Resources" 章节。
-
使用 MCP Inspector 测试: 使用 MCP Inspector 工具连接到你的 Symfony MCP 服务器进行测试和交互。按照 README.md 中 "Using the MCP Inspector" 章节的指示操作。
-
在 LLM 客户端中使用: 配置你的 LLM 客户端,使其连接到运行中的 Symfony MCP 服务器。客户端将能够通过 MCP 协议访问你注册的资源和工具。
通过以上步骤,你就可以使用 Symfony MCP Server Bundle 构建和运行一个功能完善的 MCP 服务器,为你的 LLM 应用提供强大的上下文服务。
信息
分类
开发者工具