Agent Pilot
Agent Pilot forvandler dit WordPress-site til en sikker fjern-MCP-server (Model Context Protocol). Installer det, forbind Claude — fra claude.ai på nettet, Claude Desktop eller Claude Code — og dit site bliver til noget, Claude rent faktisk kan betjene: søge i indlæg og produkter, skrive udkast til og redigere sider på brand-niveau, opdatere WooCommerce-ordrer, moderere kommentarer, tømme caches og meget mere.
Det svære ved at give en AI adgang til dit site er at gøre det sikkert. Agent Pilot er bygget op omkring netop det problem. Hver forbindelse går gennem et fuldt OAuth 2.1-handshake, hvert access-token er bundet til en bestemt WordPress-bruger, og hvert værktøj tjekker den brugers capabilities igen, før det kører. Claude kan aldrig gøre mere end den person, der gav autorisationen — og alt, hvad Claude gør, skrives til en audit-log, som du kan gennemgå og tilbagekalde når som helst.

Højdepunkter
- Standardbaseret og klient-agnostisk. En kompatibel MCP-server over Streamable-HTTP-transporten med fuld OAuth 2.1 (authorization code + PKCE + refresh, Dynamic Client Registration). Virker med claude.ai custom connectors, Claude Desktop og Claude Code lige ud af boksen.
- Multi-bruger og multi-instans. Forbind flere Claude-instanser — endda som forskellige WordPress-brugere. Hvert token er bundet til den bruger, der godkendte det, og begrænset til den brugers rolle. En shop managers connector ser kun det, en shop manager kan gøre.
- 25 indbyggede værktøjer fordelt på fire tilladelsesscopes — læsning, indholdsskrivning, WooCommerce og sitestyring — plus et valgfrit Chatbot Pilot-vidensbasescope og alle de værktøjer, andre Pilot-plugins bidrager med (fakturering, transaktionsmail, sikkerhed, SEO, abonnementer).
- Værktøjsstyring pr. rolle og pr. bruger. En dedikeret Tools-skærm aktiverer eller deaktiverer hvert værktøj — eller et helt scope — for enhver WordPress-rolle eller enkelt bruger. Administratorer får alt som standard; hver anden rolle starter tom og får præcis det, den har brug for.
- Kirurgiske indholdsrettelser.
wp_replace_in_postforetager målrettede find-og-erstat-rettelser, så Claude kan rette en slåfejl på en Divi- eller Elementor-side uden at omskrive tusindvis af linjer builder-markup. - Forsvar i dybden. En samtykkeskærm, dobbelttjek af scope-til-capability, bekræftelse pr. kald for destruktive handlinger, en fuld audit-log, rate-limiting, en valgfri IP-allowlist og nøglerotation med ét klik.
- Krypteret at rest. OAuth-signeringsnøglen genereres ved aktivering og gemmes krypteret med dine WordPress-salts (eller holdes i en fil uden for databasen, hvis du foretrækker det).
- Ingen lock-in, ingen telemetri. Selvhostet. Dine data og dine AI-udbyderoplysninger rører aldrig vores servere.
Sådan virker det
To åbne standarder gør det tunge arbejde:
- OAuth 2.1 besvarer “hvem må komme ind, og til at gøre hvad?”. Når en Claude-klient første gang kontakter dit site, har den intet token, så den sendes gennem et login- og samtykkeflow. En administrator godkender et sæt scopes, og klienten modtager et signeret, tidsbegrænset access-token.
- MCP (Model Context Protocol) besvarer “hvad kan agenten rent faktisk
gøre?”. Når den er autentificeret, kalder Claude et enkelt endpoint, der
eksponerer en liste af værktøjer —
wp_list_posts,wp_save_post,wc_list_ordersog så videre. Claude ser kun de værktøjer, dens token har lov til at bruge.
Discovery, login, samtykke og token-udveksling sker alt sammen automatisk, første gang du tilføjer connectoren. Fra da af genopretter Claude forbindelsen lydløst med sit refresh-token.
Krav
| Komponent | Anbefalet |
|---|---|
| WordPress | 5.8 eller nyere (testet op til 7.0) |
| PHP | 8.0 eller nyere |
| WooCommerce | 7.0+ (valgfri — Woo-værktøjer vises kun, når det er aktivt) |
| Chatbot Pilot | valgfri — vidensbase-værktøjer vises kun, når det er aktivt |
| HTTPS | Påkrævet for claude.ai på nettet; anbefales overalt |
| WordPress-salts | Unikke AUTH_KEY / SECURE_AUTH_KEY i wp-config.php (bruges til at kryptere signeringsnøglen) |
| Tilgængelighed | claude.ai forbinder fra Anthropic-skyen, så sitet skal være offentligt tilgængeligt for webklienten (lokale klienter kan bruge en lokal URL) |
Installation
- Åbn Plugins → Tilføj nyt → Upload plugin i WordPress-administrationen og upload Agent Pilot ZIP-filen.
- Aktiver Agent Pilot. Ved aktivering opretter det sine databasetabeller,
giver
manage_agent_pilot-capability til administratorer og genererer OAuth-signeringsnøglerne automatisk. - Åbn Agent Pilot → Connectors. Kopiér MCP-endpoint-URL’en, der vises øverst — det er den adresse, du giver Claude.
- Tilføj connectoren i din Claude-klient (se nedenfor) og gennemfør engangs-login + samtykke.
Forbind Claude
Alt, en klient har brug for, findes på Connectors-skærmen: MCP-endpointet, OAuth-issueren og en klar-til-at-indsætte-kommando til Claude Code.

claude.ai (web) og Claude Desktop
I Claude åbner du Settings → Connectors → Add custom connector og indsætter dit
MCP-endpoint (for eksempel https://your-site.com/wp-json/agent-pilot/v1/mcp).
Claude åbner dit sites loginside, du godkender samtykkeskærmen, og connectoren er
klar. Webklienten forbinder fra Anthropics sky, så dit site skal være tilgængeligt
over offentlig HTTPS.
Claude Code
claude mcp add --transport http agent-pilot https://your-site.com/wp-json/agent-pilot/v1/mcpClaude Code starter OAuth-flowet i din browser; når du har godkendt, er værktøjerne
tilgængelige i din session. Kør /mcp for at se dem, eller bed bare Claude om at
gøre noget — “vis de seneste fem kladdeindlæg”, “vis mig denne uges ordrer under
behandling”.
Vælg hvem agenten handler som
Samtykkeskærmen kører som den indloggede WordPress-bruger, og det resulterende
token arver den brugers capabilities. For en stramt afgrænset forbindelse opretter
du en dedikeret WordPress-bruger med en begrænset rolle (plus
manage_agent_pilot-capability, så de kan autorisere) og godkender connectoren,
mens du er logget ind som den bruger. Agenten vil så kunne gøre præcis det, den
bruger kan — og intet mere.
Hvad Claude kan gøre
Værktøjer er grupperet i fire scopes. Under samtykket beslutter du, hvilke scopes en connector får; ved kaldstidspunktet verificerer hvert værktøj også den bundne brugers WordPress-capability. Begge tjek skal bestå.
Læsning (wp.read)
Skrivebeskyttet inspektion af sitet. Sikkert at give bredt.
| Værktøj | Hvad det gør |
|---|---|
wp_get_site_info | Sitenavn, URL’er, versioner, aktivt tema, WooCommerce-status, indholdstællinger |
wp_get_site_context | Tema, farvepalet, typografi, blokmønstre og et nyligt indlæg — så genereret indhold passer til din stil |
wp_list_posts | Søg og list indlæg, sider og enhver custom post type |
wp_get_post | Hent ét indlæg/side med fuldt indhold og metadata |
wp_list_terms | List taksonomi-termer (kategorier, tags, produktkategorier…) |
wc_list_products / wc_get_product | Søg og læs WooCommerce-produkter |
wc_list_orders / wc_get_order | Søg og læs ordrer med linjeposter |
wc_list_customers | Søg kunder med ordreantal og samlet forbrug |
Skriv indhold (wp.content.write)
Opret og rediger indhold. Destruktive handlinger kræver et eksplicit
confirm-flag.
| Værktøj | Hvad det gør |
|---|---|
wp_save_post | Opret et nyt indlæg/side/CPT eller opdater et eksisterende fuldt ud |
wp_replace_in_post | Målrettet find & erstat inde i en side — den sikre måde at rette en slåfejl eller en linje på en page-builder-side (se nedenfor) |
wp_delete_post | Smid et indlæg i papirkurven eller slet det permanent (confirm påkrævet) |
wp_upload_media | Sideload et billede/fil fra en URL ind i mediebiblioteket |
wc_save_product | Opret eller opdater et WooCommerce-produkt |
wc_save_order | Opdater en ordres status eller tilføj en ordrenote |
wp_comments | List og moderér kommentarer (godkend, afvis, spam, papirkurv) |
Administrér sitet (wp.manage)
Administrative operationer. Hver destruktiv ændring kræver bekræftelse.
| Værktøj | Hvad det gør |
|---|---|
wp_options | Læs eller opdater en WordPress-option (opdateringer kræver confirm; plugin-hemmeligheder er blokeret) |
wp_plugins | List, aktivér eller deaktivér plugins (confirm) |
wp_themes | List installerede temaer eller skift det aktive tema (confirm) |
wp_users | List, læs, opret, opdater eller slet brugere — med værn mod at slette dig selv eller den sidste administrator (confirm) |
wp_maintenance | Tøm object cache, tøm rewrite-regler, ryd transients |
Vidensbase (wp.kb)
Kun tilgængelig, når Chatbot Pilot er aktiv.
| Værktøj | Hvad det gør |
|---|---|
kb_search | Semantisk (embeddings) søgning i din Chatbot Pilot-vidensbase |
kb_stats | Indekseringsstatistik: scannede/indekserede filer, chunks, seneste kørsel |
kb_reindex | Udløs en baggrunds-reindeksering (kræver manage-capability) |
Værktøjer fra andre plugins
Agent Pilot er udvidelig: ethvert plugin kan registrere sine egne MCP-scopes og værktøjer, som derefter automatisk flyder gennem discovery, samtykkeskærmen og Tools-skærmen. Hvert bidraget scope mappes til en WordPress-capability ligesom de indbyggede, så det samme dobbelttjek af scope og capability gælder. På tværs af Pilot-suiten omfatter dette allerede:
| Plugin | Tilføjer muligheden for at |
|---|---|
| Invoice Pilot | Læse fakturaer og udstede en ud fra en WooCommerce-ordre |
| Mail Pilot | Gennemse send-loggen og sende en e-mail via sitets mailer |
| Security Pilot | Læse sikkerhedsstatus og angrebsloggen, blokere eller fjerne blokering af en IP |
| AI SEO Pilot | Læse et indlægs SEO-felter og sætte dets meta-beskrivelse, fokus-søgeord og schema |
| Subscriptions | Se brugeres abonnementer, status og faktureringsdatoer |
Tools-skærmen — adgang pr. rolle & pr. bruger
Scopes afgør i grove træk, hvad en connector må; Agent Pilot → Tools-skærmen lader dig gå mere detaljeret til værks og aktivere eller deaktivere enkelte værktøjer — eller et helt scope — for en WordPress-rolle eller en bestemt bruger.

- Admin-sikre standardindstillinger. Administratorer får hvert værktøj som standard. Hver anden rolle starter med ingen værktøjer — du giver præcis det, den har brug for, pr. scope eller pr. enkelt værktøj.
- Tre tilstande pr. række. Standard, Aktiveret eller Deaktiveret. En regel på værktøjsniveau slår en regel på scope-niveau; på tværs af en brugers roller vinder Deaktiveret altid.
- Overstyringer pr. bruger. Skriv et navn eller en e-mail for at indlæse en enkelt bruger og finjustere deres adgang uafhængigt af deres rolle.
- Kun begrænsende, og auditeret. Dette lag ligger oven på OAuth-scope-samtykke og WordPress-capabilities — det kan tage værktøjer væk, men aldrig give noget, den bundne bruger ikke allerede kunne gøre. Hvert blokeret kald skrives til audit-loggen.
Rediger page-builder-sider sikkert
Sider bygget med Divi, Elementor, WPBakery og lignende builders gemmer deres
layout som tusindvis af linjer shortcode eller JSON inde i post_content. At
omskrive det hele bare for at rette en slåfejl er risikabelt — ét malplaceret tegn
kan ødelægge siden.
wp_replace_in_post løser dette. I stedet for at overskrive hele siden giver du
Claude den præcise tekst, der skal findes, og dens erstatning, og kun de bytes
ændres — den omkringliggende builder-markup bevares byte for byte. Det understøtter
flere rettelser i ét kald (for eksempel en slåfejl og en FAQ-linje), nægter at
handle, når søgeteksten ikke findes, og kræver som standard, at uddraget er unikt,
så intet ændres ved et uheld.
Tip: bed Claude om at læse siden først med
wp_get_post, så den kopierer den præcise tekst, og om at kørewp_maintenancebagefter, hvis builderen cacher en statisk version af siden.
Sikkerhedsmodel
Agent Pilot lægger flere uafhængige beskyttelser oven på hinanden:
- OAuth 2.1, ikke en delt nøgle. Authorization-code-grant med PKCE og refresh-tokens. Access-tokens er kortlivede signerede JWT’er; der er intet statisk password, der kan lække.
- Bundet til en bruger. Hvert token bærer den WordPress-bruger, der godkendte det. Værktøjskald kører som den bruger, så rolle- og capability-regler gælder præcis, som de ville i wp-admin.
- Scope og capability. Et scope siger “denne connector må skrive indhold”; capability-tjekket siger “denne bruger har faktisk lov til det.” Begge skal bestå, ved hvert kald.
- Værktøjsspærring pr. rolle / pr. bruger. Oven på scopes kan Tools-skærmen deaktivere enkelte værktøjer (eller hele scopes) for en rolle eller en enkelt bruger. Det er et kun-begrænsende lag — altid håndhævet, og hvert blokeret kald auditeres.
- Samtykke, du kan læse. Godkendelsesskærmen navngiver connectoren, viser den anmodende host og lister hver ønsket tilladelse — og markerer enhver, din konto ikke faktisk kan give.
- Destruktive handlinger er spærret. At slette indhold, ændre
plugins/temaer/brugere eller opdatere options kræver et eksplicit
confirmi anmodningen, medmindre du bevidst markerer en connector som betroet. - Alt auditeres. Autorisationer, registreringer, hvert værktøjskald og hvert fejlet forsøg registreres med brugeren, connectoren, tidsstemplet og IP’en.
- Rate-limiting & IP-allowlist. Anmodningsgrænser pr. connector plus en valgfri CIDR-allowlist til låste deployments.
- Tilbagekald og rotér. Deaktivér en connector eller et enkelt token med ét klik, eller rotér signeringsnøglerne for at ugyldiggøre alle tokens på én gang.
Connectors-skærmen
Agent Pilot → Connectors er kommandocentralen:
- Forbind Claude til dette site — MCP-endpointet, OAuth-issueren og URL’en til protected-resource-metadata plus en copy-paste-kommando til Claude Code.
- Registrerede connectors — hver klient, der har registreret sig (hver Claude-instans er sin egen post), med dens type og et Revoke med ét klik.
- Aktive access-tokens — én række pr. levende forbindelse, der viser brugeren, connectoren, de tildelte scopes og udløbet, hver enkelt kan tilbagekaldes.
- Signeringsnøgler — Rotér nøgler ugyldiggør straks hvert udstedt token; connectors autoriserer sig simpelthen igen.
- Seneste aktivitet — et live audit-spor. En normal ny forbindelse dukker op
som
auth_fail(den indledende discovery-probe) →dcr(registrering) →authorize(godkendt) →tool_call-poster, mens Claude arbejder. Uautentificerede prober, der vises somauth_fail, er forventede for ethvert offentligt endpoint.
Indstillingsoversigt
Konfigurér adfærd under Agent Pilot → Settings.

| Indstilling | Formål |
|---|---|
| Enable MCP server | Hovedafbryder. Når den er slået fra, returnerer OAuth- og MCP-endpointene 503. |
| Accept new connectors | Tillad Dynamic Client Registration. claude.ai på nettet har brug for dette for at registrere sig selv; slå det fra for at fastfryse connector-listen. |
| Trust connectors (skip confirmations) | Når den er slået til, kører destruktive værktøjer uden confirm-flaget pr. kald. Lad den være slået fra af sikkerhedshensyn. |
| Access-token lifetime | Hvor længe et access-token er gyldigt, i sekunder (refresh-tokens forlænger sessionen). |
| MCP rate limit | Maksimalt antal MCP-anmodninger pr. minut, pr. connector. |
| IP allowlist | Valgfri CIDR-liste. Tom = tillad alle. Bemærk, at claude.ai forbinder fra Anthropic-sky-IP’er. |
| Extra redirect hosts | Yderligere OAuth-redirect-hosts, der accepteres ved registrering. claude.ai / claude.com og localhost er altid tilladt. |
| Audit-log retention | Hvor mange dage audit-poster gemmes, før de ryddes automatisk. |
| Remove all data on uninstall | Når den er aktiveret, dropper sletning af pluginet dets tabeller, options og capability. |
Multi-bruger & multi-instans
Fordi hvert token er bundet til en WordPress-bruger, kan du forbinde mange agenter på én gang med forskellig rækkevidde:
- Forbind Claude Desktop som redaktør til daglig indholdshåndtering og Claude Code som administrator til sitevedligehold.
- Giv en kollega deres egen connector under deres egen WordPress-konto — audit-loggen tilskriver hver handling til den rette person.
- Samtidige forbindelser er isolerede; én agents session og tilladelser blander sig aldrig med en andens.
Fejlfinding
Connectoren autoriserer, men Claude lister aldrig værktøjer. Det er næsten altid en URL-uoverensstemmelse. Sørg for, at du brugte det præcise MCP-endpoint, der vises på Connectors-skærmen, og at dit site er tilgængeligt over HTTPS fra klienten.
Hver anmodning viser auth_fail, selv med et token. Nogle Apache/nginx-opsætninger
fjerner Authorization-headeren, før den når PHP. Tilføj en rewrite-regel for at
sende den igennem (samme fix, der bruges til WordPress application passwords).
claude.ai kan ikke nå sitet. Webklienten forbinder fra Anthropics sky — en
localhost-URL virker ikke. Brug et offentligt tilgængeligt HTTPS-domæne.
Et værktøj returnerer “forbidden”. Den bundne WordPress-bruger mangler capability til den handling. Autorisér som en bruger med den rette rolle, eller giv capability’en.
Et destruktivt værktøj nægter at køre. Det kræver "confirm": true i anmodningen
(eller aktivér Trust connectors). Bed Claude om at prøve igen med bekræftelse.
Sitet blev hvidt efter aktivering sammen med et andet plugin. Ryd PHP-opcachen (eller genstart PHP) én gang efter aktivering, hvis et søsterplugins delte loader blev cachet i en inkonsistent tilstand.
Afinstallation
Deaktivering stopper serveren og de planlagte jobs. Sletning af pluginet fjerner
dets kode; det lader dine data være, medmindre du aktiverede Remove all data on
uninstall i Settings, i hvilket tilfælde dets tabeller, options og
manage_agent_pilot-capability droppes.