← Portefølje

Eget prosjekt · Chatbot, MCP og kildesøk

MCPBro – MCP-server og API-integrasjoner

MCPBro er en plattform for KI-assistert kildesøk, utviklet av meg, Eivind Martinsen, utvikler og KI-konsulent i EPM Development AS. Jeg har bygget MCP-serveren, samtaleapplikasjonen og API-et som andre applikasjoner kan koble seg til. Løsningen dekker hele kjeden fra eksterne kilde-API-er til søkeverktøy for språkmodeller og resultater som kan brukes videre i kundens system.

Live produkt · Tilgjengelig for kjøp · Under aktiv videreutvikling

Fra kilde-API til MCP og videre til kundens applikasjon.

Informasjon som kan brukes i egne systemer

MCPBro samler søk i flere kilder og gjør resultatene tilgjengelige gjennom en samtale eller et API. Kildelenker og referanser hjelper brukeren å finne igjen grunnlaget. Dette viser hvordan KI kan kobles til eksisterende datatjenester og brukes i en arbeidsflyt, med avgrenset verktøytilgang og kontroll på antall søk.

Ulike kilder trenger ulike søk

Et spørsmål om et fagområde kan kreve forskningsartikler, norske publikasjoner, bibliotekmateriale og statistikk. Kildene har ulike søkeregler, metadata og tilgangsmåter. Et godt søk i én database kan ikke nødvendigvis brukes uendret i en annen.

Jeg har bygget kildeintegrasjoner med egne datamodeller og søkeverktøy, og sammensatte verktøy som kan søke i flere kilder samtidig. Samme forespørsel kan inneholde et eget søkeuttrykk for hver kilde. Språkmodellen kan dermed tilpasse søket til materialet den leter etter, mens tjenesten håndterer API-kallene og svarformatene.

Egen MCP-server og API for kundens applikasjon

MCP (Model Context Protocol) gjør data og verktøy tilgjengelige for KI-applikasjoner. I MCPBro gjør MCP-laget funksjonene i kilde-API-ene tilgjengelige som verktøy språkmodellen kan bruke. Over dette ligger søketjenesten, som håndterer samspillet mellom modellen og verktøyene. Den samme søkefunksjonaliteten er tilgjengelig gjennom MCPBros eget API, slik at en kunde kan koble den til sin applikasjon og bruke resultatene der.

Arkitekturen viser en praktisk vei fra eksisterende API-er, via MCP og KI-assistert søk, til et nytt API for kunden. Kunden kan bruke sin egen brukerflate, mens MCPBro håndterer søket og kildeintegrasjonene. Prosjektet er dermed også et fungerende proof of concept for å gjøre eksterne datatjenester tilgjengelige gjennom KI og levere dem videre som en integrerbar tjeneste.

Fra spørsmål til kilder

Deres app. MCP Bro under panseret.

01 / Spør

Kundens app

Brukeren stiller et spørsmål i deres egen løsning.

Eksempel«Hva sier forskningen om dette?»
02 / UndersøkMCP Bro
MCP Bros API

KI-søk

Tolker spørsmålet og velger søk.

MCP-verktøy

Utfører tilpassede kall til kildenes API-er.

03 / Hent

Eksterne kilder

  • NVA
  • Nasjonalbiblioteket
  • Semantic Scholar
  • SSB · Eurostat

Forskning, publikasjoner og statistikk.

Tilbake til appenGjennom MCP Bros API
  • Svar
  • Kildehenvisninger
  • Strukturerte data
KI-søket vurderer resultatene og kan be om flere verktøykall før det svarer. Kildedata går tilbake gjennom MCP Bro til appen deres.

En samtale som kan arbeide i flere trinn

Chatlaget håndterer en løkke mellom språkmodell og verktøy: modellen foreslår et søk, MCP-tjenesten utfører det, og resultatet går tilbake til modellen før den svarer eller søker videre. Svaret og status for verktøybruken strømmes til grensesnittet underveis.

Jeg har laget moduser for blant annet akademiske kilder, norske kilder og statistikk. Modus og brukertilgang styrer hvilke verktøy som gjøres tilgjengelige. Antall søkerunder begrenses, og samtalekontekst, tokenforbruk og prompt-caching håndteres i applikasjonen. Det er viktige avveininger når en oppgave kan utløse flere modell- og API-kall før brukeren får et svar.

Statistikkuttrekk fra SSB og Eurostat

For SSB og Eurostat må systemet først finne en relevant tabell eller et datasett, undersøke metadataene og velge riktige dimensjoner. Region, periode og måleenhet er del av selve spørringen og avgjør hva tallene betyr.

Jeg har bygget verktøy for denne kjeden fra oppdagelse til uttrekk. I Eurostat-integrasjonen brukes datasettets metadata til å bygge spørringen dynamisk, og valgte dimensjoner og tilgjengelige alternativer føres tilbake til modellen. Den får dermed grunnlag for å forstå utvalget og eventuelt presisere søket videre.

Strukturerte kildedata og referanser

Arbeidet med forsknings- og bibliotekkildene omfatter håndtering av ulike forfatterfelt, publikasjonstyper, DOI-er, dokumentlenker og tilgjengelig fulltekst. I applikasjonen kan kilder lagres med metadata og brukes til referanser i flere stiler.

Dette krever en sammenhengende datakjede fra kilde-API til brukergrensesnitt. En lenke til et API-svar er for eksempel ikke det samme som en lesbar publikasjonsside. Metadataene må bevare nok informasjon til at brukeren kan finne igjen materialet og vurdere om det støtter svaret.

Integrasjoner med ulike driftsbetingelser

MCP-tjenesten er bygget i Python og FastAPI, mens samtaleapplikasjonen bruker TypeScript, Express og React. Skillet gjør kildeintegrasjonene til et eget lag med verktøybeskrivelser og strukturerte parametere. Tjenesten har både MCP-håndtering og HTTP-endepunkter for integrasjon med applikasjonen.

Eksterne API-er gir også ulike begrensninger. Jeg har jobbet med kø for ratebegrensede søk, tidsavbrudd og feilhåndtering, i tillegg til brukeradministrasjon, kvoter, abonnementer og containerdrift på Cloud Run. Disse delene må fungere sammen med modellens verktøybruk for at søkeforløpet skal være håndterbart.

Erfaring med å koble KI til faktiske datakilder

MCPBro har gitt meg erfaring med hele kjeden fra naturlig språk til kildeavhengige spørringer, flere verktøyrunder og strukturerte resultater. Den erfaringen er relevant når en bedrift vil koble en KI-assistent til fagsystemer, databaser eller eksterne tjenester med ulike API-er.

Et live produkt i aktiv videreutvikling

MCPBro har vært i pilot og er live på nett, tilgjengelig for kjøp. Både produktet og API-et fungerer, og videreutviklingen er gjenopptatt. Løsningen viser hvordan MCP, KI og API-integrasjoner kan fungere sammen i et produkt.

Kontakt

Skal vi se på oppgaven?

Har dere en oppgave som tar mye tid, eller en idé dere vil undersøke? Send meg noen ord. Vi begynner med en kort, kostnadsfri samtale og finner ut om dere trenger rådgivning, hjelp til egne folk eller utvikling.

eivind.martinsen@epmdev.no

EPM Development AS · Greåker, Østfold · Oppdrag i hele Norge