Ik wilde alleen één URL voor mijn agents. De tunnel kreeg ik er gratis bij.
Claude, Cursor en ChatGPT hadden elk tokens naar mijn Postgres, mijn GitHub en een bak onder mijn bureau. Nu delen ze één MCP-endpoint, zonder open poort.
Ik bouw software voor anderen en draai een paar dingen voor mezelf: een Postgres met tien jaar zijprojecten erin, een Gitea-mirror en een Ollama-bak onder mijn bureau die het saaie samenvatwerk doet, zodat ik er niet per token voor betaal. Ik gebruik Claude om te schrijven en na te denken, Cursor voor code en ChatGPT omdat klanten me daar dingen sturen. Drie agents, één ik.
Ik wilde geen zero trust. Ik wilde geen platform. Ik wilde één URL die ik in alle drie kon plakken, zodat ze dezelfde tools met dezelfde regels hadden, en ik wilde stoppen met om twee uur 's nachts tokens in configbestanden te plakken.
Hoe het eruitzag
voor
- Zes MCP-servers die lokaal draaiden, elk met een eigen token naar GitHub, Linear of Notion. Van elk drie kopieën, één per agent.
- Een port forward op mijn router zodat Cursor de Postgres vanuit een café kon bereiken. Poort 5432, open voor de hele wereld, met een wachtwoord dat ik in 2019 had gekozen.
- Ollama op dezelfde manier bereikbaar, omdat ik wilde dat Claude er lange documenten aan kon doorgeven.
- Geen idee wat eender welke agent vorige week echt had gedaan. Als Cursor een tabel dropte, merkte ik dat pas als er iets stukging.
na
- Eén MCP-URL. Claude, Cursor en ChatGPT verbinden er allemaal mee via OAuth, als mij.
- GitHub, Linear en Notion één keer toegevoegd, op het endpoint. De tokens staan daar, niet in mijn dotfiles.
- De bak onder mijn bureau draait de connector. Die belt naar buiten. Poorten 5432 en 11434 zijn dicht. Postgres en Ollama zijn tools op dezelfde URL.
- Een log. Elke toolcall, elke agent, één pagina.
postgres.queryis alleen-lezen voor agents. Schrijven doe ik zelf, in psql, zoals een volwassene.
De hele integratie
Dit is de volledige setup aan clientkant. Hetzelfde blok in Claude, Cursor en ChatGPT.
{
"mcpServers": {
"flowplane": { "url": "https://mcp.flowplane.eu/victor" }
}
}De eerste call opent een browsertab, ik keur het goed met een passkey en de agent krijgt een token dat zegt dat het de Claude van Victor is, geldig voor de tools van Victor, tot ik er anders over beslis. Er is geen sleutel om te roteren, want er is geen sleutel om te plakken.
Het deel dat ik niet had gepland
De tunnel. Ik zag hem als het ding waarmee het endpoint mijn Postgres kan zien, en dat is hij ook. Maar door de connector heeft de bak onder mijn bureau voor het eerst sinds ik hem kocht geen open poorten. Ollama is bereikbaar vanuit Claude, via de poort, als een tool die local.summarise heet, en van nergens anders. Ik heb twee firewallregels geschrapt die me al jaren dwarszaten en voelde niets dan opluchting.
Ik kocht één URL. Ik kreeg mijn router terug.
Wat de log laat zien
Dit is het record van de eerste keer dat Cursor behulpzaam probeerde te zijn met een migratie.
Ik gebruik de geheugenvaults niet en ik heb de Watchtower niet aangezet. Ik ben één persoon met drie agents en een bak; de log is voor mij genoeg toezicht. Als dat verandert, is het een schakelaar, geen project.
Setup, van begin tot eind: één avond, waarvan het grootste deel opging aan oude tokens verwijderen.