BLACKBOOK
Valiyou-dashboard med sponsorat-valuation, mediefordeling og brandmetrikker – det system, AI'en nu kan arbejde i

Model Context Protocol (MCP) er den åbne standard, der lader AI-assistenter som Claude og ChatGPT arbejde direkte i tredjepartssystemer. Vi har bygget den ind i Valiyou – sponsorat- og valuation-platformen, vi har designet og udviklet. Resultatet: en bruger kan sige ”importér denne sponsorrapport og opret en kladde-valuation” – og AI'en gør det, i brugerens eget system, med brugerens egne rettigheder.

Udfordringen er aldrig at få det til at virke. Udfordringen er at få det til at virke, uden at AI'en kan mere, end brugeren selv kan i web-appen – og uden at miste en eneste byte sporbarhed undervejs.

Ét endpoint, OAuth 2.1, stateless

Hele MCP-serveren eksponeres på ét endpoint. Autentificering sker via OAuth 2.1 – MCP-profilen fra 2025-spec'en – bygget på platformens eksisterende auth-lag: ingen separate API-nøgler, ingen ny brugerdatabase. Klienten (Claude, ChatGPT, Cursor) gennemfører et standard OAuth-flow, og hvert request bærer et token, som serveren verificerer. Serveren er stateless – intet session-state mellem kald – hvilket passer til serverless hosting.

17 tools – ikke 130

Platformens REST API har 130 endpoints. Det ville være en fejl at spejle dem 1:1 som MCP-tools: hver tool-definition koster plads i AI'ens kontekst, og 130 valgmuligheder gør modellen dårligere, ikke bedre. Vi konsoliderede til 17 høj-signal tools – fx ét tool til pakker med handlinger som opret, opdatér og send tilbud, frem for fire separate. Hvert felt i input og output bærer sin egen beskrivelse, så AI'en forstår domænet uden ekstern dokumentation.

Valuation-trends over tid med salg, medieværdi og kvalitetsmultiplikator – data AI'en kan hente via analytics-tools

Sikkerhedsmodellen: antag at AI'en er jailbroken

Det vigtigste designprincip: guidance er UX – håndhævelse er server-side. Vi sender instruktioner til AI-klienten (”bekræft før sletning”), men vi stoler aldrig på dem. En manipuleret klient kan ignorere enhver instruktion. Derfor ligger alle grænser på serveren:

Scopes på transportniveau: tokens udstedes med granulære scopes for valuations, partnerships, dokumenter og analytics. Et read-only token kan fysisk ikke kalde write-tools.

Per-kald permission checks: hvert tool-kald slår brugerens medlemskab og rolle op i databasen og kører dem gennem præcis samme permission-engine som web-UI'et – 23 granulære rettigheder. Kan brugeren ikke se Organisation-siden på web, får AI'en heller ikke adresse- og CVR-data via MCP. Felterne fjernes server-side, ikke i prompten.

Opt-in for destruktive handlinger: sletning og afsendelse af tilbud kræver, at organisationen eksplicit har slået det til for MCP. Uden toggle: hård fejl, uanset hvad AI'en ”beslutter”. Demo-organisationer er helt usynlige for MCP, og settings er read-only by design – AI'en kan læse label-aliaser, locale og valuta, men ingen tool kan skrive til konfiguration, API-nøgler eller billing.

Valuation-detaljer med sankey-visualisering af sponsoratets komponenter – den slags kladder AI'en kan oprette fra en rapport

Audit-sporet: hver mutation efterlader bevis – menneske eller AI

Det er her, de fleste AI-integrationer skærer hjørner. Alle MCP-mutationer går gennem de samme service-funktioner som web-appen – der findes ingen ”MCP-genvej” ind i databasen, så audit-laget blev arvet, ikke duplikeret. Hver række i loggen registrerer hvem, hvad, hvilke felter der ændrede sig – og hvordan: et source-felt skelner mellem web, mcp og api_key. En administrator kan altid svare på spørgsmålet ”klikkede et menneske her, eller gjorde en AI det?”

Vi logger felt-diffs frem for fulde rækkekopier – kun det, der faktisk ændrede sig, med gammel og ny værdi. Det driver samtidig restore: en admin kan fortryde en ændring direkte fra audit-siden, og selve fortrydelsen logges også. Hemmeligheder når aldrig loggen – en sanitizer redigerer felter som password, token og secret, by construction frem for by convention.

Vi auditerede også vores egen auditering: alle cirka 181 mutation-handlers blev krydsrefereret mod audit-kaldene, og de seks konfigurations- og billing-mutationer, der ikke efterlod spor, gør det nu. Ét bevidst trade-off, sagt højt: fejler audit-skrivningen, gennemføres kundehandlingen alligevel – et dokumenteret valg, ikke et uheld.

Det undervurderede problem: guidance-budgettet

MCP-servere kan sende instruktioner til klienten ved connect – men fx Claude Code trunkerer dem omkring 2 KB, og det vigtigste skal stå i de første cirka 512 tegn. Serverens instruktioner vedligeholdes derfor under et hårdt byte-budget med workflow, regler og eksempler komprimeret til essensen: hent altid kontekst først, brug organisationens egne begreber, godkend aldrig en valuation uden eksplicit bekræftelse. Til klienter, der ignorerer server-instruktioner, vedligeholder vi en parallel, udførlig version til copy-paste – begge genereret fra samme kildefil, så de aldrig driver fra hinanden.

Resultatet

En bruger kan i dag forbinde Claude eller ChatGPT til Valiyou og importere en rapport, der bliver til en kladde-valuation med udtrukne metrics og CPM-satser. Registrere en sponsorkontrakt med sponsor, pakke, pris og periode. Styre inventory, dokumenter og mapper. Trække analytics: omsætningstrend, pipeline og top-sponsorer. Alt sammen med brugerens login, brugerens rettigheder, organisationens opt-ins og fuld audit trail.

AI'en er en ny klient oven på platformen. Ikke en bagdør ind i den.

Vil du se platformen bag? Se Valiyou-casen i porteføljen.

Vil du prøve integrationen? Guiden ligger på docs.valiyou.com/platform/mcp.