Een MCP-server met zeven gratis tools.
Voeg deze server één keer toe aan Claude, Claude Code of een andere MCP-client, en je AI kan vanaf dat moment zelf een SEO-scan draaien, de lokale vindbaarheid van een bedrijf checken, gratis Claude-skills opzoeken en het bedrijfsbrein-sjabloon ophalen. Geen account en geen sleutel.
Wat de server wel en niet vastlegt
De MCP-server bewaart geen gesprek. De gebruiksteller in de code telt per geldige aanroep alleen de toolnaam, de UTC-dag en het getal 1, en staat op de server die nu draait nog niet aan; in die teller komen geen IP-adres, argumenten, headers of gespreksinhoud. Vijf van de zeven tools geven buiten die teller geen toolinvoer door aan de siteflow en lezen alleen uit onze eigen catalogus en open data. Twee tools geven wel gegevens door aan de siteflow: seo_scan bewaart het gescande webadres en de uitslag; lokale_vindbaarheid_check bewaart de bedrijfsnaam, plaats en uitslag. Dat is dezelfde vastlegging als bij de siteformulieren op theseo.nl. Wat we daarmee doen staat in de privacyverklaring.
https://theseo-mcp.sales-cc8.workers.dev/mcp
streamable http · theseo-mcp 0.1.0 · MIT-licentie · geen authenticatie
Je vraagt iets, de AI meet het
reg. M.001Zo ziet het eruit als de server aanstaat. Je typt een gewone zin, je AI herkent dat er een tool voor is, roept die aan met de invoer die in de code staat, en krijgt gemeten tekst terug in plaats van een gok. De getallen hieronder staan bewust als placeholder, want die komen uit jouw eigen site en niet uit onze verbeelding.
# het enige invoerveld: url, tekst, maximaal 400 tekens
Wat MCP is, in gewone taal
MCP staat voor Model Context Protocol. Het is een open standaard die afspreekt hoe een AI-assistent externe tools mag gebruiken. Dat klinkt technischer dan het is. Een taalmodel kan uit zichzelf maar één ding: tekst produceren op basis van wat het ooit heeft gelezen. Het kan niet je website openen, niet in Google Maps kijken en niet in een catalogus zoeken. Vraag je zo'n model hoe jouw site ervoor staat, dan krijg je een plausibel verhaal dat op niets is gebaseerd. Precies dat probleem is de reden dat MCP bestaat.
De standaard lost dat op met een simpele rolverdeling
Aan de ene kant staat de client: het programma waarin jij met de AI praat, bijvoorbeeld Claude, Claude Code of Cursor. Aan de andere kant staat een server die iets kan wat het model zelf niet kan. Die server vertelt aan de client welke tools hij aanbiedt, welke invoervelden elke tool verwacht en wat er ongeveer uitkomt. Je assistent leest die beschrijving en beslist zelf wanneer hij een tool aanroept. Jij hoeft geen commando te leren en geen knop te zoeken: je stelt je vraag in gewone taal en de assistent kiest het gereedschap.
De vergelijking die het snelst blijft hangen: MCP is voor AI-tools wat USB is voor randapparatuur
Voordat USB bestond had elk apparaat zijn eigen stekker en zijn eigen stuurprogramma. Nu past alles in dezelfde poort. Zonder MCP zou elke AI-omgeving zijn eigen koppeling met elke dienst moeten bouwen. Met MCP schrijf je één server, en werkt hij overal waar de standaard wordt gevolgd. De standaard is publiek gedocumenteerd op modelcontextprotocol.io en de meeste grote AI-omgevingen ondersteunen hem inmiddels.
Wat er praktisch verandert, laat zich het beste zien aan dezelfde vraag, twee keer gesteld
Zonder server komt er een antwoord dat klinkt als kennis. Met server komt er een antwoord dat je kunt nalezen.
Belangrijk detail: de AI beslist zelf of hij een tool gebruikt
Je kunt hem er wel expliciet om vragen, maar in de praktijk pakt hij hem vanzelf zodra je vraag erom vraagt. Alle zeven de tools in onze server staan geregistreerd als alleen-lezen: ze passen je site, profiel of brondata niet aan. De server telt wel een aanroep per tool en UTC-dag, en de scan en lokale check sturen hun invoer naar de siteflow zoals hieronder precies staat.
De vraag die daarbij hoort en die zelden ergens beantwoord wordt: hoe komt zo'n tool eigenlijk in je gesprek terecht?
Dat gebeurt in twee stukken die niets met elkaar te maken hebben. Eenmalig, op het moment dat je het endpoint plakt, doen client en server een korte handdruk waarin de server zijn hele gereedschapslijst opnoemt. En daarna, elke beurt opnieuw, kiest het model zelf of er iets tussen zit dat bij jouw zin past. Het figuur hieronder zet die twee naast elkaar, want ze worden vaak door elkaar gehaald.
Wat onze server precies is
theseo-mcp is een remote MCP-server. Remote betekent hier: hij draait niet op jouw computer maar op het internet, en je verbindt ermee via een URL. Je installeert dus niets, je downloadt niets en je hoeft geen Node of Python op je machine te hebben staan. Je plakt het endpoint in je client en je bent klaar. Het endpoint is https://theseo-mcp.sales-cc8.workers.dev/mcp en dat is werkelijk het enige gegeven dat je nodig hebt.
Onder de motorkap is het een Cloudflare Worker, geschreven in TypeScript, die het Streamable HTTP transport van de MCP-standaard gebruikt
De officiële MCP TypeScript SDK registreert de tools, en het Cloudflare-pakket agents levert de stateless handler eromheen. Stateless is hier een bewuste keuze en geen technisch detail: per aanvraag wordt een verse serverinstantie gebouwd, zodat er geen gedeelde staat tussen gesprekken kan ontstaan. Sessiegeheugen en een gebruikersadministratie ontbreken. Los daarvan schrijft de gebruiksteller per geldige toolaanroep uitsluitend de toolnaam, UTC-dag en het getal 1 naar Cloudflare Analytics Engine.
Opzettelijk dun is die server
Hij bevat geen sleutels, geen wachtwoorden en geen scanlogica. Het echte meetwerk gebeurt op de site-Worker van theseo.nl, dezelfde die de gratis SEO-scan en de lokale vindbaarheidschecker op deze site aandrijft. De MCP-server is een doorgeefluik: hij zet je vraag om in een aanvraag op een publiek API-endpoint, wacht maximaal dertig seconden op antwoord en vertaalt dat antwoord naar leesbare tekst voor je AI. Duurt het langer of gaat er iets mis, dan krijg je een eerlijk Nederlands foutbericht terug in plaats van een half resultaat.
Voor hun inhoudelijke antwoord zijn vijf van de zeven tools niet afhankelijk van een externe netwerkbron
De skill-zoeker doorzoekt een catalogusbestand dat met de server wordt meegeleverd, het bedrijfsbrein-sjabloon zit als tekst in de server zelf, en de drie AI-Index-tools lezen een meegeleverde index op de open data van de Nationale AI-Index. De gebruiksteller staat daarvan los, zodra hij op de server aanstaat, en mag bij een telstoring het toolantwoord niet breken. Deze bestanden worden gegenereerd uit de site-repo van theseo.nl, zodat wat de server teruggeeft overeenkomt met wat er op de site stond op het moment van uitrollen.
Bezoek je de server met een gewone browser op de basis-URL
Bezoek je de server met een gewone browser op de basis-URL, dus het adres zonder /mcp erachter, dan krijg je geen foutpagina maar een kort JSON-antwoord met de naam, de versie, het pad van het endpoint en de namen van de zeven tools. Bewust zo gebouwd: wie nieuwsgierig is en de URL plakt, hoort niet tegen een kale 404 aan te kijken.
Van jouw vraag naar de bron
reg. M.002Drie schakels, meer is het niet. De client waarin jij praat, de MCP-server die de tools aanbiedt, en de bron waar het antwoord vandaan komt. Wat waar wordt vastgelegd staat er bewust bij: de server telt alleen toolnaam, UTC-dag en één telpunt; de siteflow bewaart bij de scan en lokale check het adres of de bedrijfscontext en de uitslag.
Claude Code in je terminal
Cursor via mcp.json
# elke client die de standaard volgt
streamable http op /mcp
stateless, geen gespreksopslag
# telt alleen toolnaam + UTC-dag + 1
# de site-Worker in stap 03 legt scan en check wel vast
site-Worker: /api/vcheck
catalogus in de server zelf
# Google Places zit achter de site-Worker
Zeven tools, invoer en uitvoer
reg. M.003De invoervelden hieronder staan letterlijk zo in de code, inclusief de grenzen die erop zitten. Die grenzen zijn er niet om je te dwarsbomen maar om te voorkomen dat een AI per ongeluk een halve roman als bedrijfsnaam meestuurt.
url · tekst, 1 tot 400 tekens. De pagina die gescand moet worden, bijvoorbeeld https://voorbeeld.nl
UITVOEREen totaalscore van 0 tot 100 plus vier deelscores voor techniek, on-page, content en AI-gereedheid, en daaronder per punt een regel met status en uitleg.
bedrijfsnaam · tekst, 1 tot 120 tekens, zoals klanten het zoeken. stad · tekst, 1 tot 80 tekens, de plaats van vestiging.
UITVOERNaam en adres zoals Google ze kent, een score van 0 tot 100, per gemeten criterium de status met het gewicht, een aparte lijst met wat niet gemeten is en waarom, en concrete tips.
onderwerp · tekst, 2 tot 200 tekens, waar de skill over moet gaan. max · geheel getal van 1 tot 20, optioneel, standaard 5.
UITVOERPer treffer de naam, het cluster, een ingekorte beschrijving, de uitlegpagina op theseo.nl en de directe download-URL van de zip. Onderaan de link naar de volledige catalogus.
branche · tekst, 2 tot 60 tekens, bijvoorbeeld zorg of logistiek. Een deel van de naam is genoeg.
UITVOERHet aantal geldige metingen, de weigeringen, de tien meest genoemde bedrijven met het actuele beeld per vraag, en hoe geconcentreerd de vermeldingen zijn. Met bronregel.
branche · tekst, 2 tot 60 tekens. max · geheel getal van 1 tot 40, optioneel, standaard 10.
UITVOERDe letterlijke klantvragen die aan het model zijn gesteld, plus de vaste prompt, het model en de meetcyclus, zodat je de meting zelf kunt naspelen.
bedrijfsnaam · tekst, 2 tot 120 tekens, bijvoorbeeld Coolblue of bol.com.
UITVOERIn welke branches en bij welke vragen de naam voorkomt, met aantallen per meetmoment. Komt de naam niet voor, dan zegt de tool er uitdrukkelijk bij dat dit geen oordeel is.
Tool 1: seo_scan
De eerste tool scant één URL op 24 punten, verdeeld over vier categorieën. Onder techniek vallen HTTPS, de HTTP-status, de serversnelheid, de viewport-meta, de ingestelde taal, robots.txt, de XML-sitemap, de beveiligingsheaders en de e-mailauthenticatie. Onder on-page vallen de title, de meta description, de H1, de koppenstructuur, de alt-teksten van afbeeldingen, de canonical en de interne links. Onder content vallen het woordaantal, de contentstructuur en de indexeerbaarheid. En onder AI-gereedheid vallen gestructureerde data, het FAQ-schema, Open Graph, de Twitter Card en de entiteitshelderheid.
Dat laatste blok is de reden dat deze scan anders is dan de meeste
AI-gereedheid gaat over de vraag of een taalmodel jouw pagina kan begrijpen en citeren: staat er schema-opmaak in, is duidelijk wie of wat de pagina beschrijft, en zijn er velden waaruit een assistent een net antwoord kan samenstellen. Dit is een ander soort werk dan klassieke SEO, en het wordt snel belangrijker naarmate meer mensen hun vragen aan een assistent stellen in plaats van aan een zoekbalk.
Het antwoord dat je AI terugkrijgt begint met de gescande URL en het tijdstip
Het antwoord dat je AI terugkrijgt begint met de gescande URL en het tijdstip, dan de totaalscore, dan de vier deelscores, en daarna per categorie de losse punten. Elk punt draagt een status: OK als het goed staat, INFO als het alleen ter kennisgeving is, LET OP bij een waarschuwing en KRITIEK als het echt mis is. Achter die status staat de eerlijke uitleg van wat er goed of mis is, niet alleen een vinkje. Daardoor kan je AI er een leesbare samenvatting van maken zonder zelf iets te hoeven verzinnen.
Een realistisch gesprek loopt zo
Jij typt: draai een SEO-scan op mijn site en vertel me wat ik als eerste moet oppakken. De AI roept seo_scan aan met jouw URL, krijgt de 24 punten terug en zegt bijvoorbeeld dat de techniek in orde is, dat de meta description ontbreekt op de pagina die je noemde en dat er geen schema-opmaak staat. Vervolgens kun je gewoon doorpraten: vraag om de drie punten met de meeste impact, vraag om een voorstel voor een betere title, of vraag om het rijtje in een takenlijst te zetten. Dat gesprek is de winst. Een losse scanner geeft je een lijst, een AI met een scanner geeft je een lijst plus een plan.
Eén eerlijke grens hoort hier meteen bij: deze scan bekijkt één pagina en meet alleen wat automatisch meetbaar is
Hij vervangt geen audit. Een echte audit kijkt naar meerdere pagina's, naar je concurrentie, naar zoekwoorden en naar zoekintentie, en dat blijft handwerk. De tool zegt dat trouwens zelf ook in zijn antwoord, met een verwijzing naar de scanpagina voor de context erbij.
Tool 2: lokale_vindbaarheid_check
De tweede tool kijkt hoe een bedrijf ervoor staat in Google Maps. Je geeft twee dingen mee: de bedrijfsnaam zoals klanten hem zoeken, en de stad. Meer niet. De tool zoekt het Google Bedrijfsprofiel op en beoordeelt daarna zeven criteria die via de Google Places API meetbaar zijn: bestaat het profiel, staan de openingstijden erin, zijn er minstens tien foto's, is de beoordeling minimaal 4,0, zijn er minstens vijfentwintig reviews, is de website gekoppeld en staat het telefoonnummer erbij. Elk criterium heeft een eigen gewicht, en het antwoord laat dat gewicht zien, zodat je meteen ziet waar de zwaarste winst zit.
Het interessantste aan deze tool is wat hij niet doet
Twee criteria die op veel checklists staan komen hier terug als niet gemeten, met de reden erbij. Of je in het lokale kaartblok staat, de drie bedrijven die Google boven de resultaten toont, is alleen vast te stellen met een live zoekopdracht. En of je op reviews reageert stelt Google via deze weg niet beschikbaar. Beide worden expliciet als niet gemeten teruggegeven en tellen niet mee in de noemer van de score. Een punt dat niemand kan meten mag je cijfer niet omlaag trekken, want dan meet je je eigen blinde vlek in plaats van het bedrijf.
Wordt het bedrijf helemaal niet gevonden
Wordt het bedrijf helemaal niet gevonden, dan krijg je geen score van nul met een verzonnen analyse, maar een kort en duidelijk bericht dat we het bedrijf niet op Google vinden, plus de eerste stappen: dat betekent meestal dat er nog geen Google Bedrijfsprofiel is, en dat aanmaken kan gratis.
Een realistisch gesprek: check de lokale vindbaarheid van Bakkerij Jansen in Utrecht
Je assistent roept de tool aan met bedrijfsnaam en stad, krijgt de gemeten punten terug en vertelt bijvoorbeeld dat het profiel bestaat en de beoordeling in orde is, maar dat er te weinig foto's staan en dat de website niet gekoppeld is. En dan de vervolgvraag die dit interessant maakt: welke twee dingen lever ik deze week op om de score het meest te verhogen. Dat kan de AI beantwoorden, want hij heeft de gewichten en de tips erbij gekregen. Wie liever zelf klikt, kan dezelfde check draaien op de lokale vindbaarheidschecker.
Nog een grens die je moet kennen: deze check werkt pas als de bijbehorende API-sleutel op onze server staat
Ontbreekt die, dan geeft de tool het eerlijke foutbericht van de API door in plaats van een resultaat te verzinnen. De saaie variant, ja, maar wel de enige die je kunt vertrouwen.
Tool 3: skill_zoeken
De derde tool doorzoekt onze catalogus van 100 gratis Nederlandstalige Claude-skills op onderwerp. Een skill is een instructiebestand, SKILL.md, dat een AI een vaste werkwijze meegeeft voor één taak: een SWOT-analyse, een offerte, een notulenverslag, een beslisboom. Alle skills op de skill-bibliotheek zijn gratis en vragen geen account. Het probleem met een bibliotheek van die omvang is dat je moet weten wat er in staat om er iets uit te halen. Deze tool haalt dat probleem weg: je vraagt in gewone taal of er iets is voor jouw situatie, en je AI zoekt.
De zoeker doet dat zonder netwerk, want de catalogus zit in de server zelf
Hij knipt je onderwerp in losse termen en scoort elke skill op vier plekken: een treffer in de naam weegt het zwaarst, dan de slug, dan het cluster, en een treffer in de beschrijving weegt het lichtst. Dat laatste is bewust, want de beschrijvingen zijn lang en bevatten veel losse trefwoorden. Zonder die weging zou een skill die jouw woord toevallig ergens in zijn beschrijving noemt boven de skill komen die er letterlijk naar heet.
Per treffer krijg je de naam, het cluster waar hij bij hoort
Per treffer krijg je de naam, het cluster waar hij bij hoort, een beschrijving die op ongeveer 240 tekens wordt afgekapt, de link naar de uitlegpagina op theseo.nl en de directe download-URL van de zip. Standaard krijg je vijf treffers, maar je AI mag er tot twintig opvragen. Levert je zoekterm niets op, dan zegt de tool dat gewoon, stelt hij een bredere term voor en geeft hij de link naar de volledige catalogus mee.
Een realistisch gesprek: is er een gratis skill die me helpt met een SWOT-analyse
De AI roept skill_zoeken aan met dat onderwerp, krijgt de treffers terug en noemt de meest passende met de download-link erbij. Daarna kun je doorpakken: vraag hem de skill te downloaden en te installeren, of vraag wat het verschil is tussen twee treffers. Weet je nog niet hoe je een skill in je omgeving zet, dan staat dat stap voor stap op de pagina over Claude-skills installeren.
De eerlijke kanttekening: de catalogus in de server is een momentopname
Hij wordt gegenereerd uit de site-repo van theseo.nl, dus nieuwe skills verschijnen in de zoeker pas nadat de server opnieuw is uitgerold. De actuele lijst staat altijd op de site, en die link krijg je onder elk zoekresultaat mee.
Tool 4: bedrijfsbrein_template
De vierde tool heeft geen invoervelden. Je vraagt erom en je krijgt de volledige inhoud van het gratis bedrijfsbrein-sjabloon terug: een invulbaar contextbestand, bedrijfsbrein.md, dat een AI leert wie je bedrijf is. Aanbod, doelgroep, toon, werkwijze. Je vult het één keer in en geeft het daarna mee aan elke AI waarmee je werkt, zodat je niet in elk gesprek opnieuw hoeft uit te leggen wat je doet en voor wie.
Het antwoord bevat drie dingen
De link naar de uitlegpagina, de download-URL van de zip, en daarna de volledige tekst van zowel het leesmij-bestand als het sjabloon zelf. Dat laatste is de reden dat deze tool bestaat. Je hoeft niets te downloaden en niets te openen: het sjabloon staat gewoon in het gesprek, en je AI kan het meteen met je invullen.
Zo klinkt dat in de praktijk: haal het bedrijfsbrein-sjabloon op en vul het in voor mijn schildersbedrijf
De AI krijgt het complete sjabloon binnen, loopt de onderdelen met je door en stelt de vragen die hij nodig heeft om het te kunnen vullen. Aan het eind heb je een ingevuld bestand dat je kunt opslaan en hergebruiken. Vraag hem gerust om het als markdown terug te geven, dan kun je het direct in een bestand plakken.
Dit is meteen het beste voorbeeld van waarom MCP praktisch is
Zonder server zou je naar de site moeten, de zip downloaden, uitpakken, openen en de inhoud plakken. Met de server is het één zin. Het scheelt geen uren, maar het scheelt precies het soort wrijving waardoor goede voornemens blijven liggen.
En dan het eerlijke verhaal over de grens van dit sjabloon: het is een tekstbestand dat je zelf meeneemt naar elk gesprek
Het onthoudt niets uit zichzelf, het weet niet wat je gisteren besloot en het groeit niet mee. Wil je dat wel, dan heb je geen sjabloon nodig maar een brein. Daarover verderop meer, in de sectie over Jarvis.
Installeren in Claude Code, Claude.ai of een andere client
Er valt niets te installeren in de klassieke zin: je vertelt je AI-omgeving alleen waar de server staat. Hoe je dat doet verschilt per programma, maar het gaat overal om dezelfde URL. De drie routes die we hebben getest, met de echte commando's.
- Draai in je terminal:
claude mcp add --transport http theseo-mcp https://theseo-mcp.sales-cc8.workers.dev/mcp - Claude Code onthoudt de server en toont de zeven tools bij je volgende sessie.
- Vraag daarna gewoon om een scan of een skill, je hoeft geen commando te leren.
- Ga naar Instellingen en dan Connectors.
- Kies Connector toevoegen en plak de URL
https://theseo-mcp.sales-cc8.workers.dev/mcp - Klaar. Vraag Claude bijvoorbeeld om een SEO-scan van je site.
- Open
~/.cursor/mcp.json, of.cursor/mcp.jsonin je project. - Voeg onder
mcpServerseen sleuteltheseo-mcptoe met daarinurlop het endpoint. - Andere clients die de standaard volgen hebben genoeg aan diezelfde URL.
Voor Cursor ziet het bestand er dan zo uit
Bestaat er al een mcpServers-blok, dan zet je onze sleutel ernaast in plaats van het blok te vervangen.
Er is geen sleutel, geen token en geen aanmeldstap
Bewuste keuze: zodra je een account nodig hebt om een gratis tool te proberen, probeert bijna niemand hem nog. Omdat er geen account is, krijg je ook geen persoonlijke geschiedenis terug. De gebruiksteller kent, zodra hij aanstaat, alleen aantallen per tool per dag. Bij seo_scan bewaart de siteflow het gescande webadres en de uitslag; bij lokale_vindbaarheid_check bewaart hij de bedrijfsnaam, plaats en uitslag. Die vastlegging levert geen scherm op waarin je volgende week eerdere aanroepen kunt terugzoeken.
Werkt er iets niet, dan is de eerste controle simpel: plak de basis-URL van de server in je browser, dus het adres zonder /mcp erachter
Krijg je een kort JSON-antwoord met de naam, de versie en de zeven toolnamen te zien, dan draait de server en zit het probleem in je client. Zie je niets, dan is het aan onze kant.
Waarom dit gratis en open source is
De eerlijkste reden eerst: we verdienen ons geld niet aan scans. We verdienen het aan het werk dat daarna komt, en aan onze software. Een gratis tool die echt iets meet is voor ons de goedkoopste manier om te laten zien hoe we denken. Wie de scan draait en het antwoord leest, ziet binnen een minuut of onze manier van kijken hem bevalt. Betere kennismaking dan welke brochure ook, wat ons betreft.
De tweede reden is dat een gesloten meetinstrument nauwelijks waarde heeft
Als je niet kunt nakijken wat er gemeten wordt, moet je op ons woord vertrouwen dat een score klopt. Daarom staat alles open: de volledige broncode van de server staat op github.com/GianlucaNaarden/theseo-mcp onder de MIT-licentie. Je kunt precies nalezen welke velden een tool verwacht, wat er met je invoer gebeurt en hoe het antwoord wordt opgebouwd. Vind je iets onzinnig, dan kun je een issue openen. Wil je hem zelf draaien of aanpassen, dan mag dat gewoon: de MIT-licentie staat dat toe, ook commercieel.
Zelf draaien is geen theorie
Je hebt Node 20 of nieuwer nodig, daarna draai je de tests, start je hem lokaal en deploy je hem naar je eigen Cloudflare-account. De tests zijn er trouwens ook een verhaal apart: ze praten met de officiële MCP-client tegen de echte handler, in hetzelfde proces en zonder netwerk. Dat betekent dat er getest wordt wat er werkelijk gebeurt in plaats van een nagebouwde versie ervan.
De derde reden is dat het gewoon leuk is om iets nieuws te maken
Voor zover wij hebben kunnen nagaan is dit de eerste MCP-server van een Nederlands marketingbureau. Die slag om de arm hoort erbij, want we kunnen niet elk register en elke repository van de wereld doorzoeken, en morgen kan iemand anders er al staan. Wat we wel zeker weten: de standaard is jong, er is nog weinig Nederlandstalig gereedschap, en het leek ons zonde om te wachten tot iemand anders het bouwt.
Wat het ons oplevert is geen geheim
Wie dit gereedschap nuttig vindt, komt vanzelf een keer bij ons uit voor het werk dat we wel factureren: SEO, Google Ads, AI en automatisatie en onze eigen software. Dat is de hele afspraak, en die staat hier zwart op wit zodat je hem kunt controleren.
Wat deze server niet doet
reg. M.004Elke tool die eerlijk wil zijn moet zijn eigen randen kennen. Hieronder staan de verzoeken die je zou kunnen doen en het antwoord dat je werkelijk krijgt, inclusief de twee criteria die bewust buiten de score blijven omdat ze niet te meten zijn.
Zelf draaien of laten draaien
reg. M.005Eerlijk is eerlijk: deze server is de gratis doe-het-zelf-versie van werk dat we ook als dienst leveren. Hij blijft compleet en zonder addertjes, maar besef wat een tool is. Hij geeft antwoord als jij het vraagt, en elke nieuwe sessie begint leeg. De tool is niet de motor en niet het geheugen. Jij vraagt, jij levert de context, jij controleert. Wie dat anders wil, heeft twee vervolgstappen: de motor uit handen geven, of het geheugen regelen.
waar je nu bent De MCP-server: jij bent de motor Je verbindt de server met Claude, Claude Code of Cursor en vraagt zelf om een scan, een check of een skill. Kost niets, werkt vandaag, en alles op deze pagina blijft gewoon zo beschikbaar. De grens is je eigen tijd: het gebeurt alleen wanneer jij het vraagt.
laten voorbereiden De AI-medewerker: het staat klaar zonder dat jij het vraagt Precies dit soort werk, maar dan als dienst: de Rapportagemedewerker draait de metingen en zet de week- en maandrapportages klaar zonder dat jij ervoor achter een terminal hoeft te kruipen. De controle blijft bij jou, want output blijft concept tot een mens akkoord geeft. Dit leveren we via Mansotti, de onderneming waarvan TheSEO de handelsnaam is, die naast de Rapportagemedewerker ook een Offertemedewerker en een Salesmedewerker bouwt. Lees wat een AI-medewerker is en doet.
alles uit een bron Jarvis: al je AI's werken vanuit dezelfde bedrijfskennis Een tool leert je AI wat hij kan opvragen, het brein is waar het geheugen leeft. Wil je dat al je AI's vanuit dezelfde bedrijfskennis werken: dat is Jarvis, het organisatiebrein. Het verbindt ChatGPT, Claude, Codex en je mensen met dezelfde projecten, kernkennis en beslissingen, zodat je volgende AI-sessie niet opnieuw begint. Jarvis selecteert context, delegeert werk en bewaart alleen wat is goedgekeurd: klantkennis blijft geïsoleerd en elke stap laat een controleerbaar spoor na. Ook deze server wordt daar beter van, want welke sites en welke bedrijven je volgt hoef je dan niet meer per gesprek te herhalen. Wat dat concreet oplevert, van de plannen tot je eerste week, lees je bij Jarvis zelf.
Wat Jarvis concreet oplevert
reg. M.006Trede 3 verdient meer dan een alinea, en juist op deze pagina. Wie een MCP-server aansluit, snapt het onderscheid tussen een model dat gokt en een model dat iets kan opvragen. Er zit alleen een gat achter dat je pas na een paar weken merkt. Met opzet bewaart de MCP-server geen gesprek: de teller kent, zodra hij aanstaat, alleen toolnaam en UTC-dag. De siteflow bewaart voor de twee doorgeeftools wel het adres of de bedrijfscontext en de uitslag, maar niet wat jij daarna besloot. Dat besluit verdampt zodra het gesprek sluit. Jarvis is de laag die precies dat vasthoudt.
Wij draaien zelf al maanden op dit systeem. Elke agent-sessie, elke taak en elke beslissing wordt erin gelogd en is terug te lezen. Een nieuwe sessie begint daardoor niet blanco: hij haalt eerst de vastgelegde besluiten, de lopende projecten en de laatste wijzigingen op, en werkt verder waar de vorige stopte. Deze server is er zelf uit voortgekomen, inclusief de keuze om hem stateless te houden. We beschrijven hier geen belofte maar de manier waarop we zelf dagelijks werken.
Bekijk de vier plannen op jarvis/prijzen. Via de wachtlijst geef je alleen vrijblijvend je voorkeursplan door. Dat maakt nog geen account, bestelling of betalingsplicht. Zakelijk maatwerk bespreken we eerst.
Waar deze server op leunt
reg. M.007Elke tool in de server heeft een pagina op deze site waar hetzelfde werk met de hand kan. Dat is geen dubbeling maar een keuze: sommige mensen willen een knop, andere willen een gesprek. Hieronder staat het hele veld bij elkaar.
De bronnen achter de tools
zelfde meting, andere ingangDit zijn de scanners en bestanden waar de zeven tools op leunen. Werkt allemaal ook zonder AI.
Gratis SEO-scanDezelfde 24 punten als seo_scan, dan met een knop en een uitleg per punt op het scherm.TOOL Lokale vindbaarheidscheckerDezelfde check als lokale_vindbaarheid_check, inclusief wat er bewust niet gemeten wordt.TOOL De skill-bibliotheekDe 100 gratis skills die skill_zoeken doorzoekt, altijd actueel en per onderwerp gesorteerd.HUB Bedrijfsbrein-sjabloonHet bestand dat bedrijfsbrein_template teruggeeft, met uitleg en download.DOCZelf aan de slag met AI
van gereedschap naar werkwijzeWie het leuk vindt om dit soort dingen zelf op te zetten, vindt hier de volgende stap.
Claude-skills installerenHoe je een SKILL.md in je omgeving zet, stap voor stap, ook voor Codex en Cursor.DOC AI en automatisatieDe dienst erachter: van losse tools naar werkende automatisering in je bedrijf.SRV AI-trainingenAls je team wil leren hoe je dit soort werk zelf opzet en beheert.SRV KennisbankArtikelen over SEO, AI en online zichtbaarheid, doorzoekbaar.DOCOnze eigen software
wat we nog meer bouwenDeze server is niet het enige dat we zelf maken. Het volledige overzicht staat op de softwarepagina.
Software van TheSEOAlle instrumenten die we zelf bouwen en draaien, met uitleg per stuk.INS JarvisHet organisatiebrein dat je AI-tools verbindt met dezelfde bedrijfskennis.INS De AI-medewerkerDit werk als dienst, met menselijke eindcontrole voor er iets naar buiten gaat.SRV AI-indexMeet wie AI noemt per branche, op basis van open data.DOCHet werk erachter
waar we ons geld mee verdienenDe scan wijst je op iets, en dan begint het echte werk. Dat doen we ook gewoon voor je.
SEOBlijvend gevonden worden, in Google en in AI-antwoorden.SRV Google AdsAdverteren dat rendeert, met meting die je zelf kunt nakijken.SRV Over TheSEOWie we zijn, hoe we werken en waarom we dit soort dingen weggeven.DOC ContactVragen over de server of ideeën voor een achtste tool: laat het weten.DOCVeelgestelde vragen
Wat is MCP precies?
MCP staat voor Model Context Protocol. Het is een open standaard die afspreekt hoe een AI-assistent externe tools mag gebruiken. Een AI-model kan uit zichzelf alleen tekst produceren op basis van wat het ooit heeft gelezen. Met MCP kan het iets opvragen bij een server die wel kan meten, opzoeken of ophalen. De server vertelt welke tools er zijn, welke invoer ze verwachten en wat ze teruggeven, en de assistent kiest zelf wanneer hij er een aanroept.
Wat kost deze MCP-server?
Niets. Alle zeven tools zijn gratis, je hoeft geen account aan te maken, geen e-mailadres achter te laten en geen sleutel aan te vragen. De code staat onder de MIT-licentie op GitHub. Er is geen betaalde versie van deze server en er komt geen verkoopmail achteraan.
In welke programma's werkt de server?
In elke client die remote MCP-servers via Streamable HTTP ondersteunt. Wij documenteren Claude op claude.ai en in de desktop-app, Claude Code, en Cursor via het bestand mcp.json. Andere clients die de standaard volgen hebben genoeg aan de URL van het endpoint, want dat is het enige dat je hoeft in te vullen.
Slaat de server mijn gegevens op?
De MCP-server bewaart zelf geen gesprek of toolinvoer. De gebruiksteller in de code schrijft per geldige aanroep alleen de toolnaam, de UTC-dag en het getal 1 naar Analytics Engine; daaruit tellen we straks aantallen per tool per dag. Op de server die nu draait staat die teller nog niet aan. In die teller komen geen IP-adres, argumenten of headers. Twee tools geven wel gegevens door aan de siteflow: seo_scan bewaart het gescande webadres en de uitslag; lokale_vindbaarheid_check bewaart de bedrijfsnaam, plaats en uitslag. Dat is dezelfde vastlegging als bij de siteformulieren op theseo.nl. De overige vijf tools lezen alleen meegeleverde bestanden en bewaren geen gespreksinhoud.
Vervangt de SEO-scan een echte audit?
Nee, en dat zegt de tool zelf ook in zijn antwoord. De scan bekijkt een pagina op 24 automatisch meetbare punten en geeft daar een eerlijke score bij. Een volledige audit kijkt naar meerdere pagina's, naar concurrentie, naar zoekwoorden en naar zoekintentie, en dat blijft handwerk. Zie de scan als een goede eerste indruk waarmee je weet waar je moet kijken.
Waarom komen sommige criteria terug als niet gemeten?
Omdat wij liever niets zeggen dan iets verzinnen. De lokale vindbaarheidscheck meet wat via de Google Places API beschikbaar is. Of je in het lokale kaartblok staat vraagt om een live zoekopdracht, en of je op reviews reageert geeft Google via deze weg niet vrij. Die twee komen terug als niet gemeten met de reden erbij, en ze tellen niet mee in de noemer van de score. Zo kan een onmeetbaar punt je score nooit omlaag trekken.
Staat de nieuwste skill er meteen in?
Niet automatisch. De skill-catalogus in de server is een momentopname die uit de site-repo van theseo.nl wordt gegenereerd. Nieuwe skills verschijnen in de zoeker zodra de server opnieuw is uitgerold. De volledige en altijd actuele lijst staat op de skills-pagina van theseo.nl, en die link krijg je ook onderaan elk zoekresultaat mee.
Kan ik de server zelf draaien of aanpassen?
Ja. De code staat onder de MIT-licentie op GitHub. Je hebt Node 20 of nieuwer nodig, daarna draai je hem lokaal met npm run dev en deploy je hem naar je eigen Cloudflare-account met npm run deploy. De server bevat zelf geen sleutels: de scan- en checklogica draait op de site-Worker van theseo.nl en deze server roept daar alleen de publieke endpoints van aan.
Verbinden kost een minuut
Plak het endpoint in je client, vraag om een scan van je eigen site en kijk wat eruit komt. Bevalt de manier van kijken, dan weet je meteen hoe wij werken. Bevalt hij niet, dan heeft het je één minuut gekost en staat er geen account op je naam. Dat is de hele afweging.
Mis je een tool die er wel in hoort, of loop je tegen iets aan dat niet klopt, laat het weten. De code staat open, dus een issue op GitHub is de snelste weg. Wil je liever praten over wat AI verder voor je bedrijf kan doen, van losse tools tot een organisatiebrein, dan doen we dat gewoon in een gesprek.