快速结论:当 llama-server 命令行设置了 API Key,同时在 WebUI 中为某个 MCP Server 打开 Use llama-server proxy 后,代理会把 llama-server 自身的鉴权凭据错误地转发到外部 MCP 服务,导致本来无需鉴权的 MCP 服务返回 401。优先排查代理是否错误携带了本地 API Key,而不是先去检查外部 MCP 的配置。
适用环境:Issue 已确认环境包括:llama.cpp llama-server(Linux x86_64,version 8323 / 57819b8d,Clang 21.1.8;另有 macOS version 8343 / 710878a7d,AppleClang 17.0.0.17000604 for Darwin arm64);服务器启用 SSL 时使用 -DCPPHTTPLIB_OPENSSL_SUPPORT=ON 编译,并开启 --webui-mcp-proxy。Issue 未提供 Python、CUDA、显卡信息。
最快修复方案:暂无确认的一步修复方案。Issue 关闭时未给出经过验证的修复步骤,仅明确了问题定位方向:需要把 llama-server 自身的鉴权凭据与出站代理 MCP 请求隔离,或在外发请求中剥离该 API Key。
注意事项:Issue 标签为 bug-unconfirmed,相关结论多来自日志分析与用户侧的推断。CORS proxy 日志本身提示该功能为 EXPERIMENTAL、不建议暴露在不受信任环境。不要直接关闭 llama-server 的 API Key 鉴权来绕过,那会削弱本地服务安全性。
问题场景
用户在 llama-server 命令行设置了 API Key,然后在 WebUI 的 MCP Server 配置中打开 Use llama-server proxy 开关。此时访问外部 MCP 服务(如无需鉴权的 DeepWiki https://mcp.deepwiki.com/mcp)会失败并报 401。未打开该开关时,遇到的是浏览器侧的 CORS 报错;打开代理后,CORS 问题被绕过,但暴露出代理转发凭据的问题。同一环境下无需 API Key 的 Microsoft Learn MCP(https://learn.microsoft.com/api/mcp)可正常工作,说明问题与具体外部 MCP 服务及代理鉴权转发有关。
报错原文
Streamable HTTP error: Error POSTing to endpoint: {"error":{"message":"Invalid API Key","type":"authentication_error","code":401}}
00:31:12 Creating transport for https://mcp.deepwiki.com/mcp
00:31:12 Transport ready (streamable_http)
00:31:12 Sending initialize request...
00:31:12 Connection failed: Streamable HTTP error: Error POSTing to endpoint: {"error":{"message":"Invalid API Key","type":"authentication_error","code":401}}
0.15.651.665 W Unauthorized: Invalid API Key
0.15.651.680 I srv log_server_r: done request: GET /cors-proxy 127.0.0.1 401
原因分析
可能原因是:开启 Use llama-server proxy 后,WebUI 的 MCP 请求改由 llama-server 的 /cors-proxy 转发,该代理在向外部 MCP 服务发起出站请求时,错误地带上了 llama-server 自身的 API Key。对于 DeepWiki 这类明确无需鉴权的 MCP 服务,携带一个它不认识的 Key 反而会被判定为 “Invalid API Key” 并返回 401。服务端日志中反复出现 Unauthorized: Invalid API Key 与 GET /cors-proxy ... 401,与该推断一致。用户提到 PR #20167 只解决 CORS 检测与提示启用代理的体验问题,并不处理代理开启后的凭据转发问题,因此两者属于先后不同的问题。
环境排查
- 确认 llama-server 版本(Issue 中为 8323/57819b8d 与 8343/710878a7d)、构建工具(Clang 21.1.8 / AppleClang 17.0.0.17000604)与操作系统(Linux x86_64 / macOS arm64)。
- 确认启动 llama-server 时是否设置了 API Key。
- 确认 WebUI 中对应 MCP Server 的
Use llama-server proxy开关状态。 - 确认服务器是否以
-DCPPHTTPLIB_OPENSSL_SUPPORT=ON编译,以及是否启用--webui-mcp-proxy。 - 确认目标 MCP 服务是否本就不需要 API Key(如 DeepWiki 官方说明为 free、no-authentication-required)。
- 对照服务端日志中
/cors-proxy相关请求的返回码,确认是否为 401。
解决步骤
- 先对照现象:打开
Use llama-server proxy后出现 401,关闭后问题转为 CORS 报错,则可判定为代理鉴权转发问题,而不是外部 MCP 配置问题。 - 在 llama-server 日志中搜索
/cors-proxy与Invalid API Key,确认代理转发请求是否被本机鉴权拦截并返回 401。 - 分别测试一个无需鉴权的 MCP(如 DeepWiki)与一个已验证可用的 MCP(如 Microsoft Learn),确认问题是否只出现在需要外部无鉴权访问的服务上。
- 可优先尝试:在修复版本发布前,避免在已开启
Use llama-server proxy的同一实例上强依赖外部无需鉴权的 MCP,或改用不经过代理的连接方式(但会重新遇到 CORS 限制)。 - 关注 Issue #20475 与 PR #20167 的后续状态,等待针对凭据转发隔离的独立修复;如需自行处理,方向是让
/cors-proxy出站请求剥离或隔离 llama-server 自身的鉴权信息。
验证方法
在 WebUI 中重新用开启 Use llama-server proxy 的配置访问 DeepWiki MCP,若不再返回 Invalid API Key / 401,且能正常完成 Sending initialize request...,同时 llama-server 日志中不再出现 GET /cors-proxy ... 401,即可确认问题已解决。同时应回归验证需要本地 API Key 的 llama-server 自身接口仍能正常鉴权,确保隔离改动没有破坏本地鉴权。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug] Console dataset list performs N+1 queries during response serialization](https://www.chat-gpts.plus/wp-content/uploads/2026/09/42275-9eb6f388-768x403.jpg)
