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. 

Utvikler Abhishek Thakur lufter hunden Baloo.
Publisert

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. 

Abhishek Thakur var frustrert over hvor vanskelig det var å undersøke norske bedrifter. 📸: Privat

– 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: 

    1. 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.
    2. 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.
    3. Skriv verktøybeskrivelsene på språket brukerne (og dataene) er på. Det er enkelt, men utrolig effektivt.
    4. 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.
    5. 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. 

Powered by Labrador CMS