概要
2026 年 6 月,Laravel 官方博客宣布,使用 Laravel AI SDK 构建的 AI 智能体现在可以连接到 MCP(Model Context Protocol)服务器。 此前 Laravel MCP 提供了”将 Laravel 应用作为 MCP 服务器公开”的功能,而这次新增的是相反方向的功能,即”Laravel 应用作为 MCP 客户端连接到其他 MCP 服务器”。关于 MCP 本身的详细机制,请参阅 Laravel MCP 的文档。本页仅聚焦于客户端功能。
为什么不在 AI SDK 本体而是在 Laravel MCP 中实现
MCP 是一个涉及范围较广的协议,包括传输协商、握手、认证流程等。若将其直接实现在 AI SDK 中,在不需要智能体也想与 MCP 服务器通信的场景(如队列任务或控制台命令)下就无法复用。 于是 Laravel 团队将功能分成了两部分。laravel/mcp:负责连接、协商、认证、工具调用的 MCP 客户端本体laravel/ai:让智能体能够在tools()中自然使用该客户端的薄集成层
连接到 MCP 服务器
支持作为本地进程启动的 STDIO 服务器,以及通过 HTTP 连接的远程服务器。tools() 即可。
认证
Bearer 令牌
OAuth
Nightwatch 等许多托管型 MCP 服务器都要求 OAuth。可以在服务提供者中注册命名客户端。mcp.oauth.nightwatch.connect 及其对应的回调路由。在 Blade 端只需放一个连接按钮即可。
集成到智能体
最大的亮点在于无需修改智能体的tools() 方法即可混入 MCP 工具。
tools() 数组中的项是 MCP 工具,并按智能体的工具契约进行封装。它会将 MCP 的输入 schema 转换为 Laravel 的 JSON Schema,当模型调用工具时进行远程调用,并规范化结果后返回。错误、结构化数据、纯文本、流式更新都会被自动处理,因此 MCP 的细节不会渗透到智能体侧的代码中。
多种传输方式也可以混合在同一个智能体中。
工具列表的缓存
获取工具列表需要与服务器进行一次往返。尤其是对于通过 OAuth 的远程服务器来说,每次提示都调用是浪费的。工具列表不常变更,非常适合缓存。测试
即使没有实际运行的 MCP 服务器,也可以使用 Laravel AI 的 fake 功能来测试智能体。MCP 工具名遵循mcp_tools_<name> 的命名约定,因此名为 search 的工具会以 mcp_tools_search 出现。
当前支持范围
在此次首次发布中,STDIO 和 Streamable HTTP 两种传输均支持工具与提示。认证支持 Bearer 令牌和 OAuth。随着 MCP 本身的演进,未来支持范围也会不断扩大。相关页面
创建 AI SDK 的自定义提供商
如何为标准未支持的 AI 服务实现自定义提供商
Laravel Nightwatch 入门
介绍本文示例中使用的托管型监控服务 Nightwatch