快速结论:Langfuse MCP 服务器暴露的 JSON Schema 中,`pattern` 字段使用了 Unicode property escapes(如 `\p{L}`),导致 OpenAI 和 Google Vertex 的函数调用验证失败。优先排查 MCP 服务器版本是否已升级至 v3.206.0 或更高,或手动检查工具 schema 中是否包含 `\p{…}` 模式。
问题场景
在使用 Langfuse MCP 服务器(`cloud.langfuse.com/api/public/mcp`)通过 OpenAI Codex/GPT 或 Google Vertex/Gemini 调用函数时触发。具体表现为通过 MCP 暴露的 `updateScoreConfig` / `createScoreConfig` 等工具(涉及名称/类别验证)时,OpenAI 或 Vertex 的严格 schema 验证器拒绝 `pattern` 中的 Unicode 属性转义。
报错原文
Invalid schema for function 'mcp__langfuse_updatescoreconfig':
'^[\p{L}\p{N}_ .()-]+$' is not supported
Cloud Code Assist API error (400): Invalid value at
'request.tools[0].function_declarations[N].parameters.properties[..].value' (type ...)
status: INVALID_ARGUMENT
原因分析
根源是 Langfuse MCP 在 JSON Schema 中使用了 Unicode property escapes(`\p{L}`, `\p{N}`)作为 `pattern` 关键字的值。OpenAI 和 Google Vertex 的函数调用验证器不支持这种 ECMAScript 特性(需要 `u`/`v` 标志),导致整个工具目录的注册失败(因为它们以原子方式注册全部工具列表)。这个问题在 PR #12454(修复 #12042)中引入,当名称验证正则被迁移为 `/^[\p{L}][\p{L}\p{N}_]*$/u` 时,导致该模式传播到了 MCP 工具 schema 中。
环境排查
- Langfuse MCP 服务器版本:是否为 v3.206.0 或更高?
- 客户端类型:是否使用 OpenAI Codex/GPT 或 Google Vertex/Gemini(这些客户端会验证整个 schema)?
- 依赖版本:检查 Zakhar 序列化库的版本,确认是否使用了最新修正。
- API 端点:确认使用的是 `cloud.langfuse.com/api/public/mcp` 还是自托管版本。
- 认证方式:验证 `BASE64(PUBLIC_KEY:SECRET_KEY)` 是否正确。
解决步骤
- 升级 Langfuse MCP 服务器:升级到 v3.206.0 或更高版本(该版本已修复此问题)。
- 验证修复效果:用以下命令检查 schema 中是否还存在 Unicode property escapes:
curl -s https://cloud.langfuse.com/api/public/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H "Authorization: Bearer YOUR_BASE64_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
| jq '[.result.tools[] | {name, patterns: [.. | .pattern? // empty]}] | map(select(.patterns | length > 0))' - 临时规避(自托管/PRO):如果无法立即升级,可在生成 MCP schema 的位置(`defineTool()` / `z.toJSONSchema()`)中,删除或重写包含 `\p{…}` 的 `pattern` 关键字;在 MCP schema 中直接丢弃 `pattern`(因为服务端验证已由 Zod 负责,删除是安全的)。
- 确认没有残留:升级后重新测试,确保 schema 中的 `pattern` 不再使用 Unicode property escapes。
验证方法
使用如上 curl 命令检查 MCP 工具列表的 schema 中是否还有任何 `pattern` 包含 `\p{L}` 或 `\p{N}`。同时,尝试通过 OpenAI Codex 或 Google Vertex 触发函数调用,确认不会再返回 400 错误。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


