Laravel Workflow MCP 服务器示例
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个基于 Laravel 的后端服务器,暴露一个 MCP 接口,供 AI 客户端(如大语言模型)通过标准的 JSON-RPC 调用来发现、启动并查询 Laravel 工作流的执行状态与结果。
- 服务器核心通过 App\Mcp\Servers\WorkflowServer 提供工具集(如 ListWorkflows、StartWorkflow、GetWorkflowResult),以及与工作流存储、执行状态相关的模型和迁移。
-
主要功能点
- MCP 服务端核心:处理来自客户端的 MCP 请求和响应,按照配置暴露的工具集与工作流信息。
- 工具集(Tools):ListWorkflowsTool(列出可用工作流及最近执行)、StartWorkflowTool(异步启动工作流并返回工作流ID)、GetWorkflowResultTool(根据工作流ID获取状态与输出)。
- 工作流存储与执行:通过配置 config/workflows.php 及相关模型(StoredWorkflow 等)实现工作流的持久化、状态跟踪与输出读取。
- MCP 服务端配置:定义服务器名称、版本、使用说明、注册的工具、资源与提示(当前示例中工具已完整注册,资源/提示为空)。
- 路由/端点暴露:MCP 服务端端点位于 /mcp/workflows,供客户端通过 JSON-RPC 跟服务器交互。
-
安装步骤
-
- 安装依赖与环境搭建:在项目根目录执行依赖安装(如 composer install / npm install 等),并确保数据库与队列服务可用。
-
- 数据库迁移与种子:配置数据库连接后执行迁移,确保 StoredWorkflow 等表存在并能正确记录工作流状态。
-
- 启动应用:将 Laravel 应用部署到可访问的 Web 服务器(如内置服务器、Nginx、容器等),确保 /mcp/workflows 路径对外可访问。
-
- 验证 MCP 服务:在浏览器或 API 测试工具访问 /mcp/workflows,验证工具列表、请求处理是否正常。
-
-
服务器配置(MCP 客户端需要的配置信息,JSON 形式;客户端不需要此代码) 以下信息用于 MCP 客户端在对接该服务器时进行描述与对话初始化。注意:这不是代码,仅用于理解客户端应如何连接与使用。 { "server_name": "Laravel Workflow Server", "command": ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"], "args": [] // description: 服务器启动命令及监听端口,客户端通过该信息了解如何连接到服务器。 }
-
基本使用方法
- 发现可用工作流:通过工具列表接口获取服务器暴露的工作流清单及最近执行记录。
- 启动工作流:选择一个工作流键(如 simple、prism),提供必要的参数(如果有),发送 start_workflow 请求。
- 查询结果:拿到 workflow_id 后,通过 get_workflow_result 请求轮询状态,直到返回 Completed,取得输出结果;若失败将返回错误信息。
- 结果处理:客户端读取 output 字段获取工作流最终结果,或根据 error 字段获取失败原因。