> ## 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-server

> Verbind AI-clients met een project via de MCP-server in een Kubernetes-deployment.

De MCP-server van elk project draait in de **web**-service (de module `mcp-server`) van elke Ayakaleaf Pro-pod. Hij wordt meegeleverd met de [Git-integratie](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/kubernetes/integrations/git-integration.md) en heeft geen eigen instelling. Hoe je Claude Code, Codex en andere clients verbindt, staat beschreven in [MCP-server](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/overleaf-toolkit/integrations/mcp-server.md).

| | |
| - | - |
| Service | web, in elke Ayakaleaf Pro-pod |
| Ingeschakeld door | `GIT_BRIDGE_ENABLED: "true"` en de git-bridge-StatefulSet, zie [Git-integratie](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/kubernetes/integrations/git-integration.md) |
| Buiten → Overleaf | AI-clients `POST ${OVERLEAF_SITE_URL}/project/<id>/mcp` met een Git-authenticatietoken; PDF-downloadlinks onder `${OVERLEAF_SITE_URL}/project/<id>/mcp/download/` |
| Pod → buiten | geen |
| Status | geen tussen verzoeken; compilatie-uitvoer blijft op de pod die heeft gecompileerd |
| Periodieke taken | geen |

### Configuratie

Stel de [Git-integratie](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/kubernetes/integrations/git-integration.md) in. De MCP-server staat dan op `${OVERLEAF_SITE_URL}/project/<project id>/mcp`, en het adres moet bereikbaar zijn vanaf de plek waar de AI-client draait.

### Meerdere replica's

Een compilatie via MCP draait op de replica die het verzoek heeft ontvangen, en het log en de PDF ervan bestaan alleen daar. AI-clients sturen geen cookie mee, dus de load balancer kan het volgende verzoek, `get_compile_log` of de PDF-downloadlink, naar een andere replica sturen, die antwoordt met "failed to fetch output file from CLSI" of 404. In onze test met drie replica's en zonder extra regel mislukten op deze manier 5 van de 6 logverzoeken en 3 van de 4 downloads.

Stuur elk MCP-verzoek van een project naar één replica, zoals bij `/git/`. Met HAProxy uit [Horizontaal schalen](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/kubernetes/horizontal-scaling.md):

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

MCP-compilaties draaien dan allemaal op de node van `overleaf-0`. Met een andere ingress-controller stuur je het pad `/project/<id>/mcp` en alles daaronder naar de eigen naam van één replica (`overleaf-0.overleaf-hl`).

Met deze regel slaagde dezelfde test (een compilatie, 6 logverzoeken en 4 PDF-downloads, allemaal zonder cookie) elke keer.

### Getest op Kubernetes

Op Kubernetes 1.37 met drie replica's achter HAProxy slagen onze end-to-endtests voor de MCP-server (37 gevallen): de tools opvragen, tokens die worden geweigerd wanneer ze onjuist, verwijderd of zonder toegang zijn, compileren en het log lezen, woordentelling, projectinstellingen en geschiedenis, PDF-downloadlinks, bestanden bewerken waarbij de wijzigingen live in de geopende editor worden getoond en in een Git-kloon worden gepulld, opmerkingen, toegang per rol, de snelheidslimieten voor compileren en instellingen, en geschorste accounts. Deze verzoeken kwamen uit een browsersessie, dus de load balancer hield ze op één replica; voor clients zonder cookie, zie [Meerdere replica's](#several-replicas).


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