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 en heeft geen eigen instelling. Hoe je Claude Code, Codex en andere clients verbindt, staat beschreven in MCP-server.
Configuratie
Stel de Git-integratie 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:
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. Laatst gewijzigd op 2 november 2026