> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP 服务器

> 在 Kubernetes 部署中，通过项目的 MCP 服务器将 AI 客户端连接到项目。

每个项目的 MCP 服务器运行在每个 Ayakaleaf Pro pod 的 **web** 服务（`mcp-server` 模块）中。它随 [Git 集成](https://ayakaleaf-pro.mintlify.site/zh-CN/on-premises/configuration/kubernetes/integrations/git-integration.md) 一起提供，没有单独的设置。如何连接 Claude Code、Codex 及其他客户端，请参见 [MCP 服务器](https://ayakaleaf-pro.mintlify.site/zh-CN/on-premises/configuration/overleaf-toolkit/integrations/mcp-server.md)。

| | |
| - | - |
| 服务 | web，位于每个 Ayakaleaf Pro pod 中 |
| 启用方式 | `GIT_BRIDGE_ENABLED: "true"` 以及 git-bridge StatefulSet，参见 [Git 集成](https://ayakaleaf-pro.mintlify.site/zh-CN/on-premises/configuration/kubernetes/integrations/git-integration.md) |
| 外部 → Overleaf | AI 客户端携带 Git 身份验证令牌向 `${OVERLEAF_SITE_URL}/project/<id>/mcp` 发送 `POST` 请求；PDF 下载链接位于 `${OVERLEAF_SITE_URL}/project/<id>/mcp/download/` 下 |
| Pod → 外部 | 无 |
| 状态 | 请求之间无状态；编译输出保留在执行编译的 pod 上 |
| 定期任务 | 无 |

### 配置

设置 [Git 集成](https://ayakaleaf-pro.mintlify.site/zh-CN/on-premises/configuration/kubernetes/integrations/git-integration.md)。之后 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 请求路由到同一个副本。使用 [水平扩展](https://ayakaleaf-pro.mintlify.site/zh-CN/on-premises/configuration/kubernetes/horizontal-scaling.md) 中的 HAProxy 时：

```text theme={null}
      use-server overleaf-0 if { path_reg ^/project/[0-9a-f]{24}/mcp(/|$) }
```

这样所有 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 的客户端，请参见[多个副本](#several-replicas)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.