> ## 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-сервер

> Підключайте клієнти ШІ до проєкту через його MCP-сервер у розгортанні на Kubernetes.

MCP-сервер кожного проєкту працює в службі **web** (модуль `mcp-server`) кожного пода Ayakaleaf Pro. Він постачається разом з [інтеграцією з Git](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/kubernetes/integrations/git-integration.md) і не має власних налаштувань. Як підключити Claude Code, Codex та інші клієнти, описано в розділі [MCP-сервер](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/overleaf-toolkit/integrations/mcp-server.md).

| | |
| - | - |
| Служба | web у кожному поді Ayakaleaf Pro |
| Вмикається через | `GIT_BRIDGE_ENABLED: "true"` і StatefulSet git-bridge, див. [Інтеграція з Git](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/kubernetes/integrations/git-integration.md) |
| Ззовні → Overleaf | клієнти ШІ виконують `POST ${OVERLEAF_SITE_URL}/project/<id>/mcp` з токеном автентифікації Git; посилання для завантаження PDF у `${OVERLEAF_SITE_URL}/project/<id>/mcp/download/` |
| Под → назовні | немає |
| Стан | між запитами немає; результати компіляції залишаються на поді, який компілював |
| Періодичні завдання | немає |

### Налаштування

Налаштуйте [інтеграцію з Git](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/kubernetes/integrations/git-integration.md). Після цього MCP-сервер доступний за адресою `${OVERLEAF_SITE_URL}/project/<project id>/mcp`, і ця адреса має бути доступною з того місця, де працює клієнт ШІ.

### Кілька реплік

Компіляція через MCP виконується на репліці, яка отримала запит, і її журнал та PDF існують лише там. Клієнти ШІ не надсилають cookie, тож балансувальник навантаження може надіслати наступний запит — `get_compile_log` або посилання для завантаження PDF — на іншу репліку, яка відповість «failed to fetch output file from CLSI» або 404. У нашому тесті з трьома репліками й без додаткового правила 5 із 6 запитів журналу та 3 із 4 завантажень завершилися саме такою помилкою.

Спрямовуйте всі MCP-запити проєкту на одну репліку, як і для `/git/`. З HAProxy з розділу [Горизонтальне масштабування](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/kubernetes/horizontal-scaling.md):

```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-клон через pull, коментарі, доступ за роллю, обмеження частоти компіляцій і змін налаштувань, а також заблоковані облікові записи. Ці запити надходили з браузерної сесії, тож балансувальник навантаження тримав їх на одній репліці; про клієнти без cookie див. [Кілька реплік](#several-replicas).


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