Bygget MCP-server oppå tjeneste: Starter oftere i Claude
I stedet for å besøke nettsider kan brukere hente inn data via KI-agenter med MCP-servere. Abhishek Thakur la like godt en oppå REST-API-et til Brønnøysundregistrene.
Mange lager for tiden diverse digitale produkter ved hjelp av kunstig intelligens.
Men ikke alle legger en egen MCP-server oppå tjenester.
Det gjorde derimot GitHub-stjerne Abhishek Thakur da han nylig bygget sokfirma.no, et åpent norsk bedriftsregister.
MCP står for model context control og er en åpen kildekode-standard for å koble KI-apper til eksterne systemer som databaser og lokale filer.
– Jeg så at flere og flere, inkludert meg selv, begynte å bruke Claude og ChatGPT som startpunkt for research i stedet for en nettleser, sier Thakur til kode24.
1 million selskaper
Nettsiden hans henter inn data om 1 million selskaper og rundt 830.000 underenheter fra Brønnøysundregistrene. Dataen inneholder blant annet eierstruktur, regnskap, konkurser og markedsanalyser, opplyser Thakur.
– I tillegg har jeg OCR-et 700.000 årsregnskap-PDF-er fra Brønnøysundregistrene for å hente ut detaljerte resultat- og balansetall som ikke finnes i deres API, sier Thakur.
Etter halvannen måned i drift har nettsiden rundt 1000 besøkende daglig og 50.000 sidevisninger i måneden.
Søk og analyse er KI-drevet. Og med en egen MCP-server kalt mcp.sokfirma.no kan pro-brukere koble KI-verktøy som Claude Desktop, Cursor og andre MCP-klienter direkte mot dataene til bedriftene.
– Jeg hadde allerede et offentlig REST-API (api.sokfirma.no) for pro-brukere, og MCP er i praksis et tynt lag over REST som lar LLM-en spørre direkte uten at brukeren må skrive kode eller kjenne endepunkter, sier Thakur.
– Mye KI som ligger bak
– Hvorfor lagde du sokfirma.no?
– Jeg endte opp med å starte dette fordi jeg stadig ble frustrert over hvor vanskelig det er å undersøke norske foretak uten å betale noen. Googler du et firmanavn, havner du på en berømt nettside,og vil du grave dypere enn overskriftene, dukker det opp et abonnement.
Målet ble dermed å samle alt på ett sted – og la det være gratis.
Til sammen har han indeksert rundt 4 millioner sider.
– Men selve datamengden er bare halve poenget. Det som har vært morsomst å bygge, og det som egentlig skiller sokfirma.no fra en vanlig katalog, er hvor mye KI som ligger bak det brukerne faktisk møter, sier Thakur.
Han lister opp hva KI brukes til: Automatisk uthenting fra årsrapporter, semantisk søk, lignende selskaper, KI-genererte sammendrag på hver foretaksside, KI-genererte foretaksrapporter i PDF for pro-brukere (fortsatt gratis) og markedsanalyse og salgslistebygger.
Det nyeste KI-laget
Videre er MCP-serveren det nyeste KI-laget oppå alt dette.
– Den lar språkmodeller som Claude og ChatGPT snakke direkte med dataene. Så det samme som ligger på nettsiden er nå tilgjengelig tre veier: via nettleser, som REST-API for utviklere, og som verktøy i KI-assistenter, forteller Thakur.
For eksempel kan han nå i Claude Desktop skrive «finn alle IT-konsulentselskaper i Trondheim med minst 20 ansatte og positiv driftsmargin, sortert etter vekst».
– Claude bruker MCP-verktøyene for å hente, filtrere og presentere svaret. Det hadde tidligere vært et halvtimes dypdykk i filtre og tabeller. Nå er det én setning, forteller han.
Og føyer til:
– Siden stadig flere bruker KI som sitt primære grensesnitt, gir det mening å være tilgjengelig der også, helt på linje med å være tilgjengelig via Google, offentlig API og sitemap.
Skrev på norsk
Thakur understreker at han ikke har bygget MCP-serveren fra bunn.
– Den sitter på toppen av det eksisterende REST-API-et og eksponerer rundt 18 verktøy som pakker inn spørsmålene folk faktisk stiller om norske foretak: foretaksoppslag, roller, regnskap, aksjonærer, eierskap, nettverk, markedsanalyse, endringer i registeret, og så videre.
Men han har gjort noen grep som han sier gjorde stor forskjell:
- Verktøybeskrivelsene er på norsk. – Modellen velger riktig verktøy langt oftere når beskrivelsene er på samme språk som brukerens spørsmål - og dataene. Det er en lite detalj med stor effekt, sier Thakur.
- Egne API-nøkler for REST og MCP. – Enklere å styre kvote, rettigheter og eventuelt trekke en enkelt nøkkel uten å stenge alt.
- Kvote per verktøykall, ikke per HTTP-request. – MCP-protokollen kan gruppere flere kall inn i én forespørsel, så man må måle der handlingen skjer.
– MCP og API blir viktigere
Selve MCP-laget tok to-tre dager å få på plass. Mesteparten av jobben handler om datamengden og KI-funksjonene under, forteller han. Thakur peker på at MCP-brukere foreløpig er en smal teknisk gruppe. Altså utviklere som bruker Claude Desktop, Cursor eller Claude Code.
– Men vi ser allerede interessante bruksmønstre.
– Blir dette måten folk bruker tjenester som din i framtiden?
– For utviklere og kraftbrukere, ja: MCP og API blir viktigere. Jeg merker det på meg selv: jeg starter oftere i Claude enn i en nettleser når jeg skal gjøre research.
Men:
– For flertallet tror jeg fortsatt nettsiden blir hovedinngangen. Det er raskt, visuelt, null oppsett, fungerer på alle enheter. MCP og REST-API utfyller nettsiden, de erstatter den ikke.
Tips til andre
Her er Thakurs tips til andre som vil bygge MCP-server:
- Bygg dataene og REST-API-et først. MCP er de siste 5 prosentene på toppen. Uten et solid datagrunnlag og en ren API-overflate har du ingenting som er verdt å eksponere: og det merker modellen med en gang.
- Hold verktøyoverflaten smal. 10–20 verktøy er bedre enn 100. Modellen blir forvirret av for mange valg, og du ender opp med dårligere treff, ikke bedre.
- Skriv verktøybeskrivelsene på språket brukerne (og dataene) er på. Det er enkelt, men utrolig effektivt.
- Mål kvota der handlingen skjer, per verktøykall, ikke per HTTP-request. Ellers kan brukerne utilsiktet sprenge planen sin med én enkelt forespørsel som trigger mange kall.
- Test med en ekte modell tidlig. Skriv en verktøybeskrivelse du selv synes er glassklar, og se hva modellen gjør med den. Den ville ikke brukt verktøyet i halvparten av tilfellene jeg trodde den ville. Justeringav beskrivelser er iterativt arbeid.
– Når bør man lage en? Når du har et datasett eller et API som er verdt å spørre mot programmatisk, og brukere som ville hatt nytte av det. Hvis dataene dine allerede ligger i Google Drive, Slack eller GitHub, finnes det sannsynligvis en ferdig MCP for det – da er det smartere å konfigurere den enn å bygge noe nytt, sier utvikleren.