Laravel 团队发布了 Laravel MCP 1.0,这是其用于在 Laravel 应用中构建模型上下文协议 (MCP) 服务器的软件包的首个稳定版本。这些服务器允许 AI 应用使用您应用的工具和数据,此版本还支持 MCP 修订版。
2026-07-28
。
内容如下:
- 协议 2026-07-28
用途
server/discover代替初始initialize交换 - 可搜索的工具目录 让代理根据需要查找工具
- 缓存提示 告知客户哪些响应可以重复使用以及可以重复使用多长时间
- 无状态服务器 根据新协议独立处理每个请求
- OAuth 变更 需要 PKCE 支持,并添加一种新的客户识别方式。
- MCP 应用
支持现在列在以下项下
extensions能力
仍然与客户保持联系的客户
initialize
继续工作。服务器响应协议版本。
2025-11-25
或者
2025-06-18
根据客户的要求而定。
可搜索的工具目录
发送给模型的每个工具定义都会占用其上下文窗口的空间,即模型一次可以处理的信息量。
ToolSearch
您可以将常用工具保留在主列表中,并将其他工具放在搜索框中:
使用
应用程序\Mcp\工具\当前天气工具
;使用
应用程序\Mcp\工具\历史天气工具
;使用
应用程序\Mcp\工具\天气警报工具
;使用
Laravel\Mcp\服务器
;使用
Laravel\Mcp\Server\Tools\ToolSearch
;班级
天气服务器
延伸
服务器{
受保护
大批
工具
=
[
// 始终可供代理人使用...
当前天气工具
::班级
,
// 仅在需要时进行搜索...
工具搜索
::班级
=>
[
历史天气工具
::班级
,
天气警报工具
::班级
,],];}
该软件包注册了两个工具来处理这个问题。
search_tools
接受查询和结果限制,然后返回匹配的工具及其名称、描述和预期输入。
execute_tools
按名称运行一个或多个工具。代理程序无需加载整个目录即可查找和使用工具。
#324
)
缓存提示
服务器现在可以告诉客户端哪些响应可以缓存、缓存多长时间以及是否可以在用户之间共享。使用以下方式设置默认值:
Cacheable
然后使用属性
cacheHints()
要针对单个方法进行覆盖:
使用
Laravel\Mcp\Enums\CacheScope
;使用
Laravel\Mcp\Server\Attributes\Cacheable
;#[
可缓存
(
ttlMs
:
60000
,
范围
:
缓存范围
::
民众
)]班级
天气服务器
延伸
服务器{
/*** 获取各个 MCP 方法的缓存提示。**
@返回
大批
<
细绳
可缓存>*/
受保护
功能
缓存提示
()
:
大批{
返回
[
'tools/list'
=>
新的
可缓存
(
ttlMs
:
30000
),];}}
启用缓存时,Laravel 的 MCP 客户端会遵循以下提示:
withCache()
. 回答缺失或为零的情况
ttlMs
工具调用不会被缓存。
#301
,
#326
)
无状态服务器
采用新协议后,服务器可以独立处理每个请求。每个 HTTP 请求和标准输入/输出 (stdio) 消息都包含协议版本以及客户端支持的功能。
params._meta
。
这
MCP-Session-Id
标题,
Request::sessionId()
,
Request::setSessionId()
,以及
SessionInitialized
事件已被移除。要跟踪相关调用,请在请求参数中传递您自己的标识符或
_meta
。(
#285
)
开放授权
OAuth授权现在需要PKCE支持。
OAuthClient::redirect()
扔一个
OAuthException
如果授权服务器离开
code_challenge_methods_supported
从其元数据中移除。此前,它只会拒绝包含该字段但未包含该字段的服务器。
S256
支持。
它还支持客户端 ID 元数据文档。使用此方法,您的
client_id
这是一个指向描述您的客户端的 JSON 文档的 HTTPS URL,并且
Mcp::oAuthRoutesFor()
该文件在
GET /mcp/oauth/{client}/client-metadata.json
如果您没有提供客户端 ID,Laravel 会在授权服务器支持时使用该文档,否则将回退到动态客户端注册(MCP)。
2026-07-28
已弃用。
当使用元数据文档时,
$token->clientSecret
是
null
因此,任何存储它的数据库列都必须接受
null
这也修复了一个每次都会在授权服务器上注册新客户端的错误。
redirect()
跑了。(
#323
,
#342
)
升级说明
如果您是从 0.9 版本升级,请检查您的客户端如何连接和发送请求。
ValidateMcpHeaders
中间件在每个通过注册的路由上运行
Mcp::web()
。
使用新协议的 POST 请求需要
MCP-Protocol-Version
和
Mcp-Method
与正文匹配的标头。调用
tools/call
,
prompts/get
, 和
resources/read
还需要
Mcp-Name
此标头必须与工具或提示名称或资源 URI 匹配。
发送这些请求的测试
postJson()
需要标头和
params._meta
字段也一样。标头不匹配会返回 HTTP 400 和 JSON-RPC 错误代码。
-32020
使用
initialize
并且不发送任何协议元数据
_meta
无需进行标头验证。
完整列表,包括错误代码更改和已移除项。
Server::CAPABILITY_UI
常量,以及定制运输合同,都在其中
1.0 升级指南
。







