Hvem: Mariusz Szatkowski, WordPress-utvikler siden 2006, som har skrevet MCP-serveren på dette nettstedet og en MCP-server for WooCommerce med åpen kildekode. Jeg jobber alene, skriver integrasjonskoden selv og deler ikke tilgangene dine med noen.
Hva: Model Context Protocol-servere med smale verktøy, autorisasjon slik MCP-spesifikasjonen beskriver den, kobling til WordPress, WooCommerce, Shopify og innhold fra headless CMS, logging av kall og testing før lansering.
Hvor: eksternt fra Gdynia i Polen, i samme tidssone som Oslo. Avklaringer skjer på e-post, i dokumenter og i repositoriet. Før jeg får tilgang til personopplysninger, signerer vi en databehandleravtale etter GDPR artikkel 28, som gjelder i Norge gjennom EØS-avtalen.
Pris: hver integrasjon prises for seg, ut fra antall systemer og verktøy og om noe verktøy skriver data. Du får et skriftlig tilbud med forutsetningene det bygger på.
MCP- og KI-integrasjon for nettbutikker og WordPress-nettsteder
Model Context Protocol gir en KI-assistent en liste med presist beskrevne verktøy i stedet for et administratorpassord limt inn i chatten. Jeg kobler verktøyene til systemene du allerede har, og avgrenser dem slik at assistenten bare ser det du godkjenner.
Selve leveransen steg for steg står på siden MCP-server-utvikling. Her handler det om arkitekturvalg og om stedene der en integrasjon kan gjøre skade.
En assistent i kundeservice sparer tid, men hver snarvei kan lekke personopplysninger eller gi svar som motsier lagerstatus. Derfor begynner jeg med et datakart. Ordrehistorikk kan ofte vises for modellen som produktkategori, status og verdispenn, uten navn, adresse og telefonnummer. Felt som bare frakten trenger, blir i butikken.
Hvordan velge arbeidsflyter for et MCP-pilotprosjekt
Send meg en liste over oppgavene du tenker på: oppslag på ordrestatus, returregler, søk i teknisk dokumentasjon. Hver oppgave får ett av tre nivåer. Verktøyet kjører selv, verktøyet krever bekreftelse fra et menneske, eller oppgaven holdes utenfor assistenten.
Underveis noterer jeg produktidentifikatorer, valuta per marked og avgiftsunntak. Uten det kartet jevner modellen ut svarene og blander priser. Grensetilfeller henter jeg fra ekte saker i supportsystemet ditt: delvis refusjon, en ordre delt på to pakker, reklamasjon etter fristen.
Gjelder det arbeidsflyt i backoffice mer enn chat, se automatisering av forretningsprosesser.
Hva MCP gjør teknisk
MCP bygger på JSON-RPC 2.0. En KI-applikasjon (verten, for eksempel Claude eller ChatGPT) kobler seg via en klient til en server som tilbyr verktøy modellen kan kalle, ressurser med data og promptmaler. Gjeldende spesifikasjon er datert 28. juli 2026 og definerer to standardtransporter: stdio for en server som startes lokalt som prosess, og Streamable HTTP for en ekstern server der hver melding er en egen POST til ett endepunkt (spesifikasjonen). Spesifikasjonen slår fast at verktøy betyr kjøring av vilkårlig kode, at et menneske bør kunne avvise hvert kall, og at verktøybeskrivelser fra servere du ikke stoler på, skal regnes som upålitelige.
Hvordan designe en sikker MCP-server
Verktøy
Hvert verktøy har navn, beskrivelse og inndataskjema i JSON Schema, og et utdataskjema når det returnerer strukturerte data. Jeg foretrekker deterministiske operasjoner som “hent ordresammendrag etter ID” fremfor et vagt “fiks ordren”. Retting skjer i administrasjonspanelet.
Feil skilles slik spesifikasjonen beskriver: protokollfeil ved ukjent verktøy eller feilformet forespørsel, kjørefeil med isError: true ved feil dato, manglende post eller manglende tilgang. Da får modellen noe den kan rette.
Dette nettstedet fungerer allerede slik. Serveren på https://wppoland.com/mcp har skrivebeskyttede verktøy, blant annet check_services og request_quote, uten API-nøkkel. Oppsettet er beskrevet i WPPoland live MCP-server-guiden. Butikkvarianten vedlikeholder jeg som MCP-server for WooCommerce på GitHub: skrivebeskyttet, med verktøy som get_product, list_orders og sales_report.
Autorisasjon og tokens
For servere over HTTP bygger spesifikasjonen autorisasjonen på OAuth 2.1. En beskyttet MCP-server er en ressursserver: den publiserer metadata etter RFC 9728, godtar bare tokens utstedt til den og sender dem ikke videre. Klienten angir serveren med parameteren resource fra RFC 8707. En lokal server over stdio henter legitimasjon fra miljøvariabler (autorisasjon i MCP-spesifikasjonen).
Scopes setter jeg slik at ett verktøy kan slås av under en hendelse uten at hele assistenten stanser. Der WordPress eller WooCommerce allerede har tilgangsregler, speiler jeg dem i stedet for å bygge en parallell tilgangsliste som glir fra hverandre over tid.
Hvilke data som går tilbake til modellen
Verktøysvaret har ingen unødvendige personopplysninger, men tidsstempel fra kilden, valuta og språk, slik at modellen ikke blander markeder. Innhold fra CMS merkes for seg, adskilt fra tall fra butikken. På flerspråklige nettsteder returnerer verktøyet språkkoden, så assistenten ikke siterer en polsk beskrivelse til en kunde i Bergen.
Begrensning av MCP-trafikk i salgstopper
Spesifikasjonen krever at serveren validerer inndata, kontrollerer tilgang, begrenser kall og renser utdata. Grensen har en praktisk grunn: en assistent sender forespørsler raskere enn mennesker, og det samme butikk-API-et betjener ekte kunder. Jeg setter egne grenser for ordreverktøy og for markedsføringsinnhold, så et nyhetsbrev ikke kveler returbehandlingen. Data som tåler å være litt utdatert, kommer fra hurtigbuffer.
Før lansering kjører jeg en lasttest i staging for å sjekke nye forsøk med ventetid. Venter et verktøy på en synkron webhook til ERP, logger jeg ventetiden. Ellers oppgir assistenten en ordrestatus ERP-systemet ennå ikke kjenner.
MCP-integrasjon med WordPress og WooCommerce
WordPress 6.9 innførte Abilities API. Med wp_register_ability() registrerer du en operasjon med beskrivelse, inn- og utdataskjema og permission_callback, og WordPress eksponerer den i REST API under wp-abilities/v1 (kunngjøring på make.wordpress.org). MCP Adapter, en del av initiativet AI Building Blocks for WordPress, gjør dem om til MCP-verktøy, -ressurser og -prompter, tilgjengelig via WP-CLI over stdio eller over HTTP. En ability er privat for MCP til den merkes som offentlig, og serverens standardkontroll er bare is_user_logged_in(). Tilgangskontrollen for hver operasjon legger jeg derfor til selv.
Vurderer du om WordPress.com Agent med MCP write holder, eller om du trenger en egen adapter på din server, hjelper den sammenligningen deg å velge før prosjektet starter.
Dette passer jeg på i praksis:
- Et verktøy som skal vise faktisk lagerstatus, går forbi sidebufferen og spør et endepunkt med kort levetid på dataene.
- Med HPOS ligger ordrer i WooCommerce sine egne tabeller, så rapporter bruker ordre-API-et og ikke spørringer mot postmeta.
- I multisite tar verktøyet nettsteds-ID som argument, så modellen ikke blander kataloger fra ulike merker.
- HTTP-tilgang går via applikasjonspassord i WordPress eller OAuth, med rotasjon beskrevet i dokumentasjonen.
MCP-integrasjon med Shopify og flere plattformer
Hos Shopify gjelder plattformens egne grenser. GraphQL Admin API bruker beregnet spørringskostnad og svarer med en strupingsfeil og beskjed om å vente når grensen er nådd (Shopify-grenser). Verktøyet sier da til assistenten at svaret blir forsinket, i stedet for å dikte opp data. Land eller marked er et eksplisitt argument, så prisen i chatten stemmer med kassen. I B2B-butikker med firmakontoer får ulike scopes i Admin API hvert sitt verktøy, så et spørsmål fra en privatkunde ikke avslører engrospriser.
Når WooCommerce og et headless CMS deler samme assistent, skriver jeg ned hvilken kilde som vinner: lager og priser fra handelsplattformen, beskrivelser fra CMS-et. Regelen ligger i serverkoden.
Hvem eier MCP-serveren etter leveransen
Du eier koden, repositoriet og dokumentasjonen. Jeg leverer en skriftlig beskrivelse av hvert verktøy, instruks for å slå av enkeltverktøy eller hele serveren, og testsettet med forventede svar. Dermed kan supportlederen din eller en annen utvikler ta over uten å spørre meg. Vil du at jeg skal vedlikeholde serveren videre, avtaler vi det skriftlig, med de samme rutinene for oppdateringer i staging som i vanlig WordPress-vedlikehold.
Hvordan publisere en MCP-server i ChatGPT og Claude?
Oppdatering, . Begge assistentene har offentlige kataloger for MCP-servere, så en server en butikk har bygget for kundeservice, kan også tilbys kundene.
Plugin-katalogen i ChatGPT
OpenAI har én felles plugin-katalog for ChatGPT og Codex. Ifølge endringsloggen for Apps SDK har ChatGPT vært fullt kompatibel med MCP Apps-spesifikasjonen siden 22. februar 2026. Før publisering:
- innsendingen må komme fra en verifisert person eller organisasjon,
- utvidelsen trenger en publisert personvernerklæring og en supportkontakt,
- ZIP-pakken går gjennom automatiske kontroller og deretter gjennomgang, og etter godkjenning bestemmer du selv når den blir tilgjengelig,
- handel gjelder foreløpig bare fysiske varer, betalt på ditt eget domene (Instant Checkout har bare utvalgte partnere),
- tilgjengeligheten kan avgrenses med en landliste i feltet
publication.countries, - etter publisering skanner OpenAI den hostede MCP-serveren daglig.
Kilder: retningslinjer, innsending.
Connectors Directory i Claude
- innsending via claude.ai/directory/manage som MCP-connector; alle med betalt Claude-abonnement kan sende inn,
- ekstern server over HTTPS; en lokal server bare som del av en plugin,
- OAuth 2.0 for verktøy som handler på en brukers konto, ingen autentisering for offentlige data,
- hvert verktøy har tittel og annotasjonen
readOnlyHintellerdestructiveHint, - dokumentasjons-URL, URL til personvernerklæring, supportkontakt, ikon og en fullt utfylt testkonto for gjennomgangen,
- automatisk policykontroll etter innsending og merket Community som standard; servere med kundespesifikke URL-er trenger merket Verified.
Oppføringer som skrivebordsutvidelse (MCPB) er avviklet. Kilde: Anthropic-dokumentasjon.
Hva jeg forbereder før innsending
Et verktøy merket readOnlyHint endrer faktisk ingen data, i tråd med skillet mellom lesing og skriving over. Personvernerklæringen sier hva serveren sender til modelleverandøren, og oppfyller informasjonsplikten i artikkel 13 i GDPR. Testkontoen bruker eksempeldata, aldri ekte ordrer. En butikk som vil dukke opp i ChatGPT uten egen plugin, begynner med produktfeed og strukturerte data, beskrevet på siden om beredskap for KI-handel.
Hvordan teste en MCP-integrasjon
Jeg har et fast sett spørsmål med forventede svar og kjører det etter hver endring i verktøyene og hvert modellbytte hos leverandøren. Settet inneholder forsøk på prompt injection og scenarioer der modellens endepunkt eller butikkens API returnerer feil. Jeg måler faktariktighet, svartid for verktøyene og hvor ofte et menneske må ta over samtalen.
Vokser tokenforbruket raskere enn kvaliteten, forenkler jeg verktøyene eller korter ned konteksten. Prøver modellen flere ganger på rad å komme rundt reglene i et verktøy, finner jeg ut hvorfor.
Hvilke dokumenter du sitter igjen med
| Dokument | Formål | Hvem lager det |
|---|---|---|
| Beskrivelse av MCP-verktøyene | Godkjenning hos juridisk eller sikkerhetsansvarlig hos deg | Jeg |
| Databehandleravtale | GDPR artikkel 28, inkludert modelleverandøren | Du og jeg |
| Instruks for avslåing | Koble fra assistenten uten å ta ned butikken | Jeg |
| Testresultater | Spor av svarkvaliteten over tid | Jeg, i repositoriet |
MCP-svar og strukturerte data for GEO og AEO
Bruker produktsiden sku, gtin13 eller priceSpecification i schema.org, returnerer MCP-verktøyet de samme identifikatorene og beløpene. Avvik mellom siden og chatsvaret betyr en kunde som ser to ulike priser. Ved nye sider og endrede tilbud oppdaterer jeg begge i samme utrulling.
MCP som del av KI-implementering i bedriften
MCP-servere er én byggestein i en bredere KI-implementering for bedrifter, ved siden av automatisering av innhold og drift og kundeservice-chatboter med menneskelig godkjenning.
Hvordan starte et MCP-integrasjonsprosjekt
Send meg listen over API-er assistenten skal bruke, en beskrivelse av oppgavene og hva den aldri skal gjøre. Du får en skriftlig plan med verktøy, testing i staging og ansvarsfordeling før noe produksjonstoken slås på. Start gjerne med en liten gruppe av dine egne ansatte før kundene møter assistenten.







