Skip to main content
每个项目的 MCP 服务器运行在每个 Ayakaleaf Pro pod 的 web 服务(mcp-server 模块)中。它随 Git 集成 一起提供,没有单独的设置。如何连接 Claude Code、Codex 及其他客户端,请参见 MCP 服务器。

配置

设置 Git 集成。之后 MCP 服务器位于 ${OVERLEAF_SITE_URL}/project/<project id>/mcp,且该地址必须能从 AI 客户端运行的位置访问。

多个副本

通过 MCP 进行的编译在接收请求的副本上运行,其日志和 PDF 仅存在于该副本上。AI 客户端不会发送 cookie,因此负载均衡器可能会将下一个请求(get_compile_log 或 PDF 下载链接)发送到另一个副本,该副本会返回 “failed to fetch output file from CLSI” 或 404。在我们使用三个副本且未添加额外规则的测试中,6 次日志请求中有 5 次、4 次下载中有 3 次因此失败。 请像处理 /git/ 一样,将一个项目的所有 MCP 请求路由到同一个副本。使用 水平扩展 中的 HAProxy 时:
这样所有 MCP 编译都会在 overleaf-0 所在的节点上运行。使用其他 ingress 控制器时,请将路径 /project/<id>/mcp 及其下的所有路径路由到某个副本自身的名称(overleaf-0.overleaf-hl)。 添加此规则后,同样的测试(一次编译、6 次日志请求和 4 次 PDF 下载,均不带 cookie)每次都成功。

在 Kubernetes 上的测试

在 Kubernetes 1.37 上,以三个副本部署在 HAProxy 之后,我们针对 MCP 服务器的端到端测试全部通过(37 个用例):列出工具、拒绝错误、已删除或无访问权限的令牌、编译并读取日志、字数统计、项目设置和历史记录、PDF 下载链接、编辑文件(更改实时显示在已打开的编辑器中,并可拉取到 Git 克隆中)、评论、按角色的访问权限、编译和设置的速率限制,以及已停用的账户。这些请求来自浏览器会话,因此负载均衡器将它们保持在同一个副本上;对于不带 cookie 的客户端,请参见多个副本。
最后修改于 2026年11月2日