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
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.
Deres app. MCP Bro under panseret.
Kundens app
Brukeren stiller et spørsmål i deres egen løsning.
KI-søk
Tolker spørsmålet og velger søk.
MCP-verktøy
Utfører tilpassede kall til kildenes API-er.
Eksterne kilder
- NVA
- Nasjonalbiblioteket
- Semantic Scholar
- SSB · Eurostat
Forskning, publikasjoner og statistikk.
- Svar
- Kildehenvisninger
- Strukturerte data
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.noEPM Development AS · Greåker, Østfold · Oppdrag i hele Norge