Skip to Content

Agent Pilot

Agent Pilot maakt van je WordPress-site een veilige remote MCP (Model Context Protocol)-server. Installeer hem, verbind Claude — vanaf claude.ai in de browser, Claude Desktop of Claude Code — en je site wordt iets dat Claude daadwerkelijk kan bedienen: posts en producten doorzoeken, pagina’s on-brand opstellen en bewerken, WooCommerce-orders bijwerken, reacties modereren, caches legen en meer.

Het lastige aan een AI toegang geven tot je site is het veilig doen. Agent Pilot is rond dat probleem gebouwd. Elke verbinding doorloopt een volledige OAuth 2.1-handshake, elk access token is gebonden aan een specifieke WordPress-gebruiker, en elke tool controleert de capabilities van die gebruiker opnieuw voordat hij draait. Claude kan nooit meer dan de persoon die de toegang verleende — en alles wat hij doet wordt weggeschreven naar een audit log die je op elk moment kunt inzien en intrekken.

Agent Pilot OAuth consent screen
Het consent-scherm: voordat enige verbinding werkt, logt een beheerder in en keurt precies goed wat de agent mag doen. De agent erft de capabilities van die gebruiker — nooit meer.

Voordelen

  • Standaard-gebaseerd en client-agnostisch. Een conforme MCP-server over de Streamable-HTTP transport met volledige OAuth 2.1 (authorization code + PKCE + refresh, Dynamic Client Registration). Werkt out of the box met claude.ai custom connectors, Claude Desktop en Claude Code.
  • Multi-user en multi-instance. Verbind meerdere Claude-instanties — zelfs als verschillende WordPress-gebruikers. Elk token is gebonden aan de gebruiker die het goedkeurde en beperkt tot diens rol. De connector van een shop manager ziet alleen wat een shop manager mag doen.
  • 25 ingebouwde tools verdeeld over vier permission scopes — read, content authoring, WooCommerce en sitebeheer — plus een optionele Chatbot Pilot kennisbank-scope en alle tools die andere Pilot-plugins bijdragen (facturatie, transactionele mail, beveiliging, SEO, abonnementen).
  • Tool-controle per rol en per gebruiker. Een speciaal Tools-scherm schakelt elke tool — of een hele scope — in of uit voor elke WordPress-rol of individuele gebruiker. Beheerders krijgen standaard alles; elke andere rol begint leeg en krijgt precies toegekend wat hij nodig heeft.
  • Chirurgische content-edits. wp_replace_in_post voert gerichte find-and- replace-bewerkingen uit, zodat Claude een typefout op een Divi- of Elementor-pagina kan corrigeren zonder duizenden regels builder-markup te herschrijven.
  • Defense in depth. Een consent-scherm, scope-naar-capability dubbele controles, per-call bevestiging voor destructieve acties, een volledige audit log, rate limiting, een optionele IP-allowlist en key-rotatie met één klik.
  • Versleuteld at rest. De OAuth signing key wordt bij activatie gegenereerd en versleuteld opgeslagen met je WordPress salts (of, als je dat liever hebt, bewaard in een bestand buiten de database).
  • Geen lock-in, geen telemetrie. Self-hosted. Je data en de credentials van je AI-provider raken nooit onze servers.

Hoe het werkt

Twee open standaarden doen het zware werk:

  • OAuth 2.1 beantwoordt “wie mag binnen, en om wat te doen?”. Wanneer een Claude-client je site voor het eerst bereikt heeft hij geen token, dus wordt hij door een login- en consent-flow gestuurd. Een beheerder keurt een set scopes goed, en de client ontvangt een gesigneerd, tijdgebonden access token.
  • MCP (Model Context Protocol) beantwoordt “wat kan de agent daadwerkelijk doen?”. Eenmaal geauthenticeerd roept Claude één endpoint aan dat een lijst met tools blootlegt — wp_list_posts, wp_save_post, wc_list_orders, enzovoort. Claude ziet alleen de tools die zijn token mag gebruiken.

De discovery, login, consent en token-uitwisseling gebeuren allemaal automatisch de eerste keer dat je de connector toevoegt. Vanaf dan reconnect Claude stilletjes met zijn refresh token.

Vereisten

ComponentAanbevolen
WordPress5.8 of nieuwer (getest tot en met 7.0)
PHP8.0 of nieuwer
WooCommerce7.0+ (optioneel — Woo-tools verschijnen alleen wanneer het actief is)
Chatbot Pilotoptioneel — kennisbank-tools verschijnen alleen wanneer het actief is
HTTPSVereist voor claude.ai web; overal aanbevolen
WordPress saltsUnieke AUTH_KEY / SECURE_AUTH_KEY in wp-config.php (gebruikt om de signing key te versleutelen)
Bereikbaarheidclaude.ai verbindt vanuit de Anthropic-cloud, dus de site moet publiek bereikbaar zijn voor de webclient (lokale clients kunnen een lokale URL gebruiken)

Installatie

  1. Open Plugins → Nieuwe plugin → Plugin uploaden in de WordPress-admin en upload het Agent Pilot ZIP-bestand.
  2. Activeer Agent Pilot. Bij activatie maakt hij zijn databasetabellen aan, verleent hij de manage_agent_pilot capability aan beheerders, en genereert hij de OAuth signing keys automatisch.
  3. Open Agent Pilot → Connectors. Kopieer de MCP endpoint-URL die bovenaan staat — dat is het adres dat je aan Claude geeft.
  4. Voeg de connector toe in je Claude-client (zie hieronder) en voltooi de eenmalige login + consent.

Claude verbinden

Alles wat een client nodig heeft staat op het Connectors-scherm: de MCP endpoint, de OAuth issuer, en een kant-en-klaar te plakken commando voor Claude Code.

Agent Pilot Connectors admin screen
Het Connectors-scherm — verbindingsdetails bovenaan, dan de geregistreerde connectors, de actieve access tokens (één per gebruiker/verbinding), key-rotatie, en een live audit log van recente activiteit.

claude.ai (web) en Claude Desktop

Open in Claude Settings → Connectors → Add custom connector en plak je MCP endpoint (bijvoorbeeld https://your-site.com/wp-json/agent-pilot/v1/mcp). Claude opent de loginpagina van je site, jij keurt het consent-scherm goed, en de connector is klaar. De webclient verbindt vanuit de cloud van Anthropic, dus je site moet bereikbaar zijn over publieke HTTPS.

Claude Code

claude mcp add --transport http agent-pilot https://your-site.com/wp-json/agent-pilot/v1/mcp

Claude Code start de OAuth-flow in je browser; nadat je goedkeurt zijn de tools beschikbaar in je sessie. Voer /mcp uit om ze te zien, of vraag Claude gewoon iets te doen — “toon de laatste vijf concept-posts”, “laat me de processing-orders van deze week zien”.

Kiezen als wie de agent handelt

Het consent-scherm draait als de ingelogde WordPress-gebruiker, en het resulterende token erft de capabilities van die gebruiker. Maak voor een strak afgebakende verbinding een dedicated WordPress-gebruiker aan met een beperkte rol (plus de manage_agent_pilot capability zodat ze kunnen autoriseren), en keur de connector goed terwijl je als die gebruiker bent ingelogd. De agent kan dan precies doen wat die gebruiker kan doen — en niets meer.

Wat Claude kan doen

Tools zijn gegroepeerd in vier scopes. Tijdens de consent bepaal jij welke scopes een connector krijgt; bij het aanroepen verifieert elke tool ook de WordPress-capability van de gebonden gebruiker. Beide controles moeten slagen.

Read (wp.read)

Read-only inspectie van de site. Veilig om breed te verlenen.

ToolWat het doet
wp_get_site_infoSitenaam, URL’s, versies, actief thema, WooCommerce-status, content-aantallen
wp_get_site_contextThema, kleurenpalet, typografie, block patterns en een recente post — zodat gegenereerde content bij je stijl past
wp_list_postsZoek en lijst posts, pagina’s en elk custom post type
wp_get_postHaal één post/pagina op met de volledige content en metadata
wp_list_termsLijst taxonomie-termen (categorieën, tags, productcategorieën…)
wc_list_products / wc_get_productZoek en lees WooCommerce-producten
wc_list_orders / wc_get_orderZoek en lees orders met regelitems
wc_list_customersZoek klanten met ordertelling en totaalbesteding

Write content (wp.content.write)

Content aanmaken en bewerken. Destructieve acties vereisen een expliciete confirm-flag.

ToolWat het doet
wp_save_postMaak een nieuwe post/pagina/CPT aan of werk een bestaande volledig bij
wp_replace_in_postGerichte find & replace binnen een pagina — de veilige manier om een typefout of een regel op een page-builder-pagina te corrigeren (zie hieronder)
wp_delete_postVerplaats naar prullenbak of verwijder een post permanent (confirm vereist)
wp_upload_mediaSideload een afbeelding/bestand vanuit een URL naar de mediabibliotheek
wc_save_productMaak een WooCommerce-product aan of werk het bij
wc_save_orderWerk de status van een order bij of voeg een order-notitie toe
wp_commentsLijst en modereer reacties (goedkeuren, afkeuren, spam, prullenbak)

De site beheren (wp.manage)

Administratieve operaties. Elke destructieve wijziging vereist bevestiging.

ToolWat het doet
wp_optionsLees of werk een WordPress-optie bij (updates vereisen confirm; plugin-secrets zijn geblokkeerd)
wp_pluginsLijst, activeer of deactiveer plugins (confirm)
wp_themesLijst geïnstalleerde thema’s of wissel van actief thema (confirm)
wp_usersLijst, lees, maak aan, werk bij of verwijder gebruikers — met waarborgen tegen het verwijderen van jezelf of de laatste beheerder (confirm)
wp_maintenanceLeeg de object cache, leeg de rewrite rules, wis transients

Kennisbank (wp.kb)

Alleen beschikbaar wanneer Chatbot Pilot actief is.

ToolWat het doet
kb_searchSemantische (embeddings) zoekopdracht over je Chatbot Pilot kennisbank
kb_statsIndexeringsstatistieken: bestanden gescand/geïndexeerd, chunks, laatste run
kb_reindexTrigger een herindexering op de achtergrond (vereist de manage capability)

Tools van andere plugins

Agent Pilot is uitbreidbaar: elke plugin kan zijn eigen MCP-scopes en tools registreren, die vervolgens automatisch door discovery, het consent-scherm en het Tools-scherm stromen. Elke bijgedragen scope is gekoppeld aan een WordPress-capability, net als de ingebouwde, dus dezelfde dubbele controle van scope-en-capability geldt. Binnen de Pilot-suite omvat dit al:

PluginVoegt de mogelijkheid toe om
Invoice PilotFacturen te lezen en er één uit te geven vanuit een WooCommerce-order
Mail PilotHet verzendlog te doorbladeren en een e-mail te verzenden via de site-mailer
Security PilotDe beveiligingsstatus en het aanvalslog te lezen, een IP te blokkeren of deblokkeren
AI SEO PilotDe SEO-velden van een post te lezen en de meta-omschrijving, focus-keyword en schema in te stellen
SubscriptionsDe abonnementen, status en facturatiedata van gebruikers te bekijken

Het Tools-scherm — toegang per rol & per gebruiker

Scopes bepalen in grote lijnen wat een connector mag doen; het Agent Pilot → Tools-scherm laat je verfijnder werken, door individuele tools — of een hele scope — in of uit te schakelen voor een WordPress-rol of een specifieke gebruiker.

Agent Pilot Tools-scherm — tooltoegang per rol en per gebruiker
Het Tools-scherm: kies een rol (of zoek een gebruiker), en zet daarna elke tool of scope op Standaard, Ingeschakeld of Uitgeschakeld. Destructieve tools worden gemarkeerd, en tools die door andere Pilot-plugins worden bijgedragen verschijnen gegroepeerd onder hun eigen scopes.
  • Admin-veilige standaardwaarden. Beheerders krijgen standaard elke tool. Elke andere rol begint met geen tools — je kent precies toe wat hij nodig heeft, per scope of per individuele tool.
  • Drie statussen per rij. Standaard, Ingeschakeld of Uitgeschakeld. Een regel op toolniveau wint van een regel op scope-niveau; over de rollen van een gebruiker heen wint Uitgeschakeld altijd.
  • Overrides per gebruiker. Typ een naam of e-mail om een enkele gebruiker te laden en zijn toegang los van zijn rol af te stemmen.
  • Alleen-beperkend, en geaudit. Deze laag ligt boven op de OAuth scope-consent en de WordPress-capabilities — hij kan tools afnemen, maar nooit iets verlenen dat de gebonden gebruiker niet al zou mogen doen. Elke geblokkeerde call wordt weggeschreven naar de audit log.

Page-builder-pagina’s veilig bewerken

Pagina’s gebouwd met Divi, Elementor, WPBakery en vergelijkbare builders slaan hun layout op als duizenden regels shortcode of JSON binnen post_content. Dat allemaal herschrijven enkel om een typefout te corrigeren is riskant — één verkeerd geplaatst teken kan de pagina breken.

wp_replace_in_post lost dit op. In plaats van de hele pagina te overschrijven geef je Claude de exacte tekst om te zoeken en de vervanging ervan, en alleen die bytes veranderen — de omliggende builder-markup blijft byte-voor-byte behouden. Het ondersteunt meerdere edits in één call (bijvoorbeeld een typefout en een FAQ-regel), weigert te handelen wanneer de zoektekst niet gevonden wordt, en vereist standaard dat het fragment uniek is zodat er niets per ongeluk wordt gewijzigd.

Tip: vraag Claude de pagina eerst te lezen met wp_get_post zodat hij de exacte tekst kopieert, en achteraf wp_maintenance te draaien als de builder een statische versie van de pagina cachet.

Beveiligingsmodel

Agent Pilot stapelt verschillende onafhankelijke beschermingen:

  • OAuth 2.1, geen gedeelde sleutel. Authorization-code grant met PKCE en refresh tokens. Access tokens zijn kortlevende gesigneerde JWT’s; er is geen statisch wachtwoord dat kan lekken.
  • Gebonden aan een gebruiker. Elk token draagt de WordPress-gebruiker die het goedkeurde. Tool-calls draaien als die gebruiker, dus rol- en capability-regels gelden precies zoals in wp-admin.
  • Scope én capability. Een scope zegt “deze connector mag content schrijven”; de capability-controle zegt “deze gebruiker mag dat ook echt.” Beide moeten slagen, bij elke call.
  • Tool-gating per rol / per gebruiker. Bovenop de scopes kan het Tools-scherm individuele tools (of hele scopes) uitschakelen voor een rol of een enkele gebruiker. Het is een alleen-beperkende laag — altijd afgedwongen, en elke geblokkeerde call wordt geaudit.
  • Consent die je kunt lezen. Het goedkeuringsscherm benoemt de connector, toont de aanvragende host, en lijst elke aangevraagde permission op — en markeert alles wat je account eigenlijk niet kan verlenen.
  • Destructieve acties zijn afgeschermd. Content verwijderen, plugins/thema’s/ gebruikers wijzigen of opties bijwerken vereist een expliciete confirm in de request, tenzij je een connector bewust als vertrouwd markeert.
  • Alles wordt geaudit. Autorisaties, registraties, elke tool-call en elke mislukte poging worden vastgelegd met de gebruiker, connector, timestamp en IP.
  • Rate limiting & IP-allowlist. Request-limieten per connector, plus een optionele CIDR-allowlist voor afgeschermde deployments.
  • Intrekken en roteren. Schakel een connector of een enkel token uit met één klik, of roteer de signing keys om in één keer elk token te invalideren.

Het Connectors-scherm

Agent Pilot → Connectors is de commandopost:

  • Connect Claude to this site — de MCP endpoint, OAuth issuer en protected-resource metadata-URL, plus een copy-paste-commando voor Claude Code.
  • Registered connectors — elke client die zich heeft geregistreerd (elke Claude-instantie is een eigen entry), met zijn type en een Revoke met één klik.
  • Active access tokens — één rij per live verbinding, die de gebruiker, de connector, de verleende scopes en de vervaltijd toont, elk individueel intrekbaar.
  • Signing keysRotate keys invalideert onmiddellijk elk uitgegeven token; connectors autoriseren simpelweg opnieuw.
  • Recent activity — een live audit trail. Een normale nieuwe verbinding verschijnt als auth_fail (de initiële discovery-probe) → dcr (registratie) → authorize (goedgekeurd) → tool_call-entries terwijl Claude werkt. Niet-geauthenticeerde probes die als auth_fail verschijnen zijn te verwachten voor elk publiek endpoint.

Instellingenreferentie

Configureer het gedrag onder Agent Pilot → Settings.

Agent Pilot settings
Het instellingenscherm.
InstellingDoel
Enable MCP serverHoofdschakelaar. Wanneer uit, geven de OAuth- en MCP-endpoints 503 terug.
Accept new connectorsSta Dynamic Client Registration toe. claude.ai web heeft dit nodig om zichzelf te registreren; schakel het uit om de connector-lijst te bevriezen.
Trust connectors (skip confirmations)Wanneer aan, draaien destructieve tools zonder de per-call confirm-flag. Laat uit voor de veiligheid.
Access-token lifetimeHoe lang een access token geldig is, in seconden (refresh tokens verlengen de sessie).
MCP rate limitMaximaal aantal MCP-requests per minuut, per connector.
IP allowlistOptionele CIDR-lijst. Leeg = alles toestaan. Let op: claude.ai verbindt vanuit Anthropic cloud-IP’s.
Extra redirect hostsExtra OAuth redirect-hosts die bij registratie geaccepteerd worden. claude.ai / claude.com en localhost zijn altijd toegestaan.
Audit-log retentionHoeveel dagen audit-entries bewaard blijven vóór automatische opschoning.
Remove all data on uninstallWanneer ingeschakeld, dropt het verwijderen van de plugin zijn tabellen, opties en capability.

Multi-user & multi-instance

Omdat elk token gebonden is aan een WordPress-gebruiker, kun je veel agents tegelijk verbinden met verschillende reikwijdte:

  • Verbind Claude Desktop als editor voor dagelijkse content, en Claude Code als beheerder voor sitebeheer.
  • Geef een collega zijn eigen connector onder zijn eigen WordPress-account — de audit log schrijft elke actie toe aan de juiste persoon.
  • Gelijktijdige verbindingen zijn geïsoleerd; de sessie en permissions van de ene agent lekken nooit door naar die van een andere.

Troubleshooting

De connector autoriseert maar Claude lijst nooit tools. Dit is bijna altijd een URL-mismatch. Zorg dat je de exacte MCP endpoint hebt gebruikt die op het Connectors-scherm staat, en dat je site over HTTPS bereikbaar is vanaf de client.

Elke request toont auth_fail zelfs met een token. Sommige Apache/nginx-setups strippen de Authorization-header voordat hij PHP bereikt. Voeg een rewrite rule toe om hem door te geven (dezelfde fix die voor WordPress application passwords gebruikt wordt).

claude.ai kan de site niet bereiken. De webclient verbindt vanuit de cloud van Anthropic — een localhost-URL werkt niet. Gebruik een publiek bereikbaar HTTPS-domein.

Een tool geeft “forbidden” terug. De gebonden WordPress-gebruiker mist de capability voor die actie. Autoriseer als een gebruiker met de juiste rol, of verleen de capability.

Een destructieve tool weigert te draaien. Hij heeft "confirm": true in de request nodig (of schakel Trust connectors in). Vraag Claude het opnieuw te proberen met bevestiging.

De site gaf een wit scherm na activatie naast een andere plugin. Wis de PHP opcache (of herstart PHP) eenmaal na activatie als de gedeelde loader van een sibling plugin in een inconsistente staat was gecached.

Uninstall

Deactiveren stopt de server en geplande jobs. De plugin verwijderen wist zijn code; het laat je data intact tenzij je Remove all data on uninstall in Settings hebt ingeschakeld, in welk geval zijn tabellen, opties en de manage_agent_pilot capability worden gedropt.

Last updated on