项目简介

Laravel MCP 服务器开发套件(SDK)是一个基于 Laravel 框架的软件包,旨在帮助开发者轻松地将 Model Context Protocol (MCP) 服务器集成到他们的应用程序中。它允许大型语言模型(LLM)客户端通过标准的 JSON-RPC 协议与您的 Laravel 应用进行安全、可扩展的上下文信息和服务交互。此套件提供了管理资源、执行工具和定义 Prompt 模板的核心功能。

主要功能点

  • 上下文管理: 以结构化方式托管和管理应用程序数据作为“资源”,供 LLM 客户端访问。
  • 工具调用: 注册和执行“工具”,使 LLM 能够调用 Laravel 应用内的外部功能或业务逻辑。支持同步和异步(流式)工具响应。
  • Prompt 模板: 定义可重用的“Prompt 模板”,标准化 LLM 的输入,支持可定制的交互模式。
  • JSON-RPC 通信: 使用标准的 JSON-RPC 协议进行请求和响应处理。
  • 多种传输协议: 支持通过 HTTP(包括 SSE 流)和标准输入/输出(Stdio)两种方式运行 MCP 服务器。
  • 会话管理与能力声明: 管理客户端会话,并向客户端声明服务器支持的协议版本和功能。
  • 认证支持: 对于基于 HTTP 的 MCP 服务器,支持与 Laravel Passport 集成进行 OAuth2 认证。
  • 命令行工具: 提供 Artisan 命令来生成服务器、工具、资源和 Prompt 类,以及用于调试服务器的 Inspector 工具。

安装步骤

  1. 通过 Composer 安装 Laravel MCP 套件:

    composer require laravel/mcp
  2. 发布 MCP 路由文件 'routes/ai.php',用于定义您的 MCP 服务器:

    php artisan vendor:publish --tag=ai-routes

服务器配置

MCP 服务器可以通过两种方式部署,根据部署方式,MCP 客户端需要配置不同的连接信息:

  1. 本地 (Stdio) 服务器: 作为 Laravel Artisan 命令运行。 MCP 客户端的配置示例(JSON 格式):

    {
        "name": "本地 MCP 服务器",
        "command": "php",
        "args": ["artisan", "mcp:start", "demo"]
    }
    • 'name': 服务器的显示名称。
    • 'command': 启动 MCP 服务器的 PHP 可执行文件路径。
    • 'args': 启动命令的参数列表。例如,'"artisan", "mcp:start", "demo"' 表示运行 'php artisan mcp:start demo'。其中,'demo' 是您在 'routes/ai.php' 中使用 'Mcp::local('demo', ...)' 定义的服务器句柄。
  2. Web (HTTP) 服务器: 通过 HTTP POST 请求访问。 MCP 客户端的配置示例(JSON 格式):

    {
        "name": "Web MCP 服务器",
        "url": "http://your-app.com/mcp/demo"
    }
    • 'name': 服务器的显示名称。
    • 'url': MCP 服务器的 HTTP 访问地址。此地址应与您在 'routes/ai.php' 中使用 'Mcp::web('/mcp/demo', ...)' 定义的路由相匹配。请确保您的 Laravel 应用已正确配置并可公开访问。

基本使用方法

  1. 创建 MCP 服务器: 使用 Artisan 命令生成一个新的 MCP 服务器类:

    php artisan make:mcp-server MyServer
  2. 创建工具、资源或 Prompt: 同样使用 Artisan 命令生成所需的功能组件:

    php artisan make:mcp-tool MyTool
    php artisan make:mcp-resource MyResource
    php artisan make:mcp-prompt MyPrompt
  3. 在服务器中注册组件: 打开 'app/Mcp/Servers/MyServer.php' 文件,将您创建的工具、资源或 Prompt 类添加到相应的 '$tools', '$resources' 或 '$prompts' 数组中。

  4. 注册 MCP 服务器: 在 'routes/ai.php' 文件中注册您的服务器。

    • 注册一个本地服务器:
      use App\Mcp\Servers\MyServer;
      use Laravel\Mcp\Facades\Mcp;
      
      Mcp::local('myserver', MyServer::class);
    • 注册一个 Web 服务器:
      use App\Mcp\Servers\MyServer;
      use Laravel\Mcp\Facades\Mcp;
      
      Mcp::web('/mcp/myserver', MyServer::class);
  5. 测试服务器: 使用内置的 MCP Inspector 工具来测试和调试您的服务器:

    php artisan mcp:inspector myserver

    该工具将提供交互式界面,帮助您验证服务器的连接、认证、工具和资源的可用性。

信息

分类

开发者工具