项目简介

Symfony MCP Bundle是官方MCP SDK的Symfony集成包,允许应用程序作为MCP服务器或客户端运行。它提供了完整的MCP协议实现,支持资源托管、工具注册和提示模板功能,能够与各种LLM客户端进行标准化通信。

主要功能

  • 多平台AI支持:集成OpenAI、Anthropic、Azure、Gemini、VertexAI等主流AI平台
  • 工具执行能力:注册和执行外部功能,允许LLM调用应用程序中的各种服务
  • 资源管理:托管和管理各类数据资源,为LLM提供上下文信息
  • 提示模板系统:定义和渲染可定制的LLM交互模式
  • 多种传输协议:支持Stdio、SSE、WebSocket等多种通信方式
  • 会话管理:支持多用户会话和状态维护
  • 配置驱动:通过YAML配置文件轻松定制服务器行为

安装步骤

  1. 通过Composer安装依赖:
composer require symfony/ai
  1. 在Symfony应用中启用MCP Bundle:
// config/bundles.php
return [
    Symfony\AI\McpBundle\McpBundle::class => ['all' => true]
  1. 配置MCP服务器参数(在config/packages/ai.yaml中):
mcp:
  # 应用标识和版本信息
  app: "my-symfony-app"
  version: "1.0.0"
  
  # 客户端传输配置
  client_transports:
    stdio: true    # 启用标准输入输出传输
    http: true      # 启用HTTP传输
  
  # HTTP特定配置
  http:
    path: "/_mcp"           # MCP端点路径
    session:
      store: "file"               # 会话存储方式:文件或内存
    directory: "%kernel.cache_dir%/mcp-sessions"
    ttl: 3600                     # 会话生存时间(秒)

服务器配置

在与MCP客户端建立连接时,需要配置以下参数:

  • 服务器名称:'symfony-mcp-server'
  • 启动命令:'php'
  • 启动参数:'bin/console mcp:server --transport=http"

关键配置项说明

  • 'app':标识服务器应用名称
  • 'version':服务器版本号
  • 'path':HTTP端点访问路径
  • 支持同时启用多种传输协议

基本使用方法

  1. 启动MCP服务器:
php bin/console mcp:server --transport=http
  1. 客户端连接配置示例(JSON格式):
{
  "mcpServers": {
    "symfony-mcp-server": {
      "command": "php",
      "args": ["bin/console", "mcp:server", "--transport=stdio"]
  1. 通过配置文件定义工具、资源和提示模板,服务器启动后自动向客户端声明能力

信息

分类

AI与计算