Het Model Context Protocol (MCP) is een open standaard voor veilige verbindingen tussen AI-tools en databronnen die niet openbaar zijn.

Met andere woorden: MCP slaat een veilige brug tussen AI-assistenten en jouw data. AI-modellen voeren daardoor rechtstreeks bewerkingen uit op je systemen, en developers hoeven niet langer voor elke API of database vanaf nul een custom integratie te bouwen.

MCP geeft tools zoals Claude en ChatGPT een directe lijn naar je data. De AI hoeft niet meer te gissen, maar raadpleegt je bestandssystemen, interne documentatie of databases om realtime informatie op te halen en bewerkingen uit te voeren in al je favoriete apps.

Voor online bedrijven opent dat ongekende mogelijkheden. Koppel je WordPress site aan een MCP-client zoals Claude Desktop, waarna de twee met elkaar kunnen communiceren. Via de abilities die je op je WordPress site registreert, benut je vervolgens de agentic mogelijkheden van AI.

Klinkt dat ingewikkeld? Geen zorgen. In deze tutorial stel je stap voor stap je WordPress site en de Claude MCP-client in, en voer je via Claude Desktop handelingen uit op je site.

Voordat we aan de handleiding beginnen, zetten we eerst de kernbegrippen van het Model Context Protocol op een rij.

Basisbegrippen en definities van MCP

Wil je je WordPress site openstellen voor interactie met een AI-model via het Model Context Protocol, dan is het belangrijk om de keten van betrokken componenten goed te begrijpen.

MCP-client: dit is de softwarecomponent waarmee een AI-host verbinding maakt met een MCP-server. De AI-host is de app waarmee jij als gebruiker werkt (zoals Claude Desktop), terwijl de client de component op protocolniveau is die de daadwerkelijke verbinding met de server mogelijk maakt.

MCP-server: dit is een applicatie (of proces) die via een gestandaardiseerd protocol specifieke mogelijkheden beschikbaar stelt aan een AI-applicatie. Denk hierbij aan servers voor bestandssystemen, databases of agenda’s.

MCP-adapter: dit is de vertaalbrug in twee richtingen tussen de MCP-client en de kern van je WordPress site. De adapter vertaalt de mogelijkheden van je WordPress site naar de primitieven van het Model Context Protocol, waardoor AI agents de functies van je site kunnen ontdekken en uitvoeren als MCP-tools, en de data ervan kunnen lezen als MCP-resources.

Abilities API: dit is de architectuurlaag waarmee alle WordPress componenten, zowel de kern als de plugins, hun functionaliteit op een uniforme, begrijpelijke manier beschikbaar stellen aan mensen en machines. Developers registreren daarmee gestandaardiseerde, zelfbeschrijvende acties met strikte input- en outputschema’s die de AI zelfstandig kan ontdekken en uitvoeren.

MCP-diagram
MCP-diagram (Afbeeldingsbron: Model Context Protocol)

Wat je kunt doen met WordPress en MCP

Koppel een AI agent aan je WordPress site en je zet de volledige kracht van AI in om data te lezen of complexe bewerkingen uit te voeren, rechtstreeks vanuit je AI-host.

Via je AI-host beheer je content, voer je beheer- en onderhoudstaken uit, houd je de status van je site in de gaten, beheer je gebruikers, werk je productcatalogi bij en analyseer je bestellingen. Het gaat niet om losse acties, maar om het beheren van de infrastructuur van je site zonder dat je het WordPress dashboard ooit opent.

Vraag de AI om een bericht op te stellen op basis van je richtlijnen en geef daarbij de lengte, de toon en de diepgang van de analyse aan. Je kunt hem ook opdracht geven om afbeeldingen te genereren, live berekeningen uit te voeren en de content te onderbouwen met overzichtstabellen met percentages en absolute waarden.

Denk ook aan de efficiëntie van geautomatiseerde processen. De onboarding van nieuwe gebruikers beheren door automatisch rollen toe te wijzen op basis van hun verantwoordelijkheden, de verkoopprestaties per product over het afgelopen kwartaal analyseren, of automatisch overzichtsrapporten voor je team genereren.

En je kunt nog veel verder gaan. Dankzij de Abilities API is WordPress een agentic hub geworden die naadloos past in geautomatiseerde workflows onder regie van AI. De AI agent houdt externe contexten in de gaten, zoals markttrends, prijsschommelingen of weersomstandigheden, raadpleegt de database om voorraadniveaus of aankoopgeschiedenis te controleren, en neemt zelfstandig beslissingen op basis van data.

Als site-eigenaar geef je de AI agent alleen instructies in natuurlijke taal, waarna die de hele operationele workflow coördineert.

Hoe je een AI agent via MCP aan je WordPress site koppelt

Voordat we met code en instellingen aan de slag gaan, lopen we eerst de systeemvereisten door. Om je WordPress site via MCP aan een AI-client te koppelen, heb je het volgende nodig:

  • Een WordPress ontwikkelsite: de minimaal vereiste versie is 6.9, maar 7.0+ wordt sterk aanbevolen.
  • Node.js geïnstalleerd op je lokale computer.
  • Claude Desktop: de officiële MCP-host van Anthropic.
  • Je favoriete code editor: voor deze tutorial gebruiken we VS Code.
  • Een API-client zoals Postman om te testen.

Configureer WordPress

Omdat we met de WordPress Abilities API gaan werken, heb je een test- of ontwikkelomgeving nodig met WordPress 6.9 of hoger. Werk je lokaal, zorg er dan voor dat URL rewriting is ingeschakeld.

Stap 1: Installeer de WordPress MCP Adapter plugin

Download eerst het .zip-bestand van de MCP Adapter plugin op GitHub en installeer het op je WordPress site. Zodra je de plugin activeert, registreert die automatisch een standaard MCP-server die bereikbaar is via het volgende adres:

https://yoursite.com/wp-json/mcp/mcp-adapter-default-server

De server verwacht geauthenticeerde verzoeken. Stuur je dit verzoek zonder authenticatie, dan krijg je het volgende response object:

{"code":"rest_forbidden","message":"Sorry, you are not allowed to do that.","data":{"status":401}}

Daar komen we zo op terug.

Nu controleer je of de namespace mcp goed is geregistreerd. Stuur daarvoor het volgende verzoek in je browser of in Postman:

https://yoursite.com/wp-json/

Zoek in het antwoord naar de namespace mcp:

{
	"name": "WordPress 7.0",
	"description": "",
	"url": "http://yoursite.com",
	"home": "https://yoursite.com",
	"gmt_offset": "0",
	"timezone_string": "",
	"page_for_posts": 0,
	"page_on_front": 345,
	"show_on_front": "page",
	"namespaces": [
		"oembed/1.0",
		"mcp",
		"wp/v2",
		"wp-site-health/v1",
		"wp-block-editor/v1",
		"wp-abilities/v1"
	],
	...
}

Zie je die staan, dan werkt de MCP-server zoals het hoort. Zo niet, controleer dan of de plugin actief is en of je de juiste versie van WordPress gebruikt.

Nu je van je WordPress site een MCP-server hebt gemaakt, registreer je de ability die je nodig hebt om de Claude Desktop MCP-client met je site te laten communiceren en acties uit te laten voeren. In ons voorbeeld maak je een conceptbericht aan.

Stap 2: Registreer je abilities met een plugin

Open je favoriete code editor, maak een nieuw bestand aan en schrijf de volgende code:

<?php
/**
 * Plugin Name: My MCP Test Plugin
 * Description: Demonstration plugin for creating posts via MCP.
 * Version: 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

add_action( 'wp_abilities_api_init', 'kinsta_mcp_register_simple_draft_ability' );

/**
 * Registers a minimal ability to create post drafts.
 * This acts as a formal contract between the underlying PHP logic and the AI client.
 *
 * @return void
 */
function kinsta_mcp_register_simple_draft_ability(): void {

	if ( ! function_exists( 'wp_register_ability' ) ) {
		return;
	}

	wp_register_ability(
		'kinsta-plugin/create-draft',
		array(
			'category'	=> 'post',
			'label'	   => __( 'Create Post Draft', 'kinsta-mcp-draft' ),
			'description' => __( 'Creates a new post draft with a title and content provided by the AI agent.', 'kinsta-mcp-draft' ),
			'input_schema'  => array(
				'type'	   => 'object',
				'properties' => array(
					'title'   => array(
						'type'		=> 'string',
						'description' => __( 'The headline or title of the post draft.', 'kinsta-mcp-draft' ),
					),
					'content' => array(
						'type'		=> 'string',
						'description' => __( 'The body text or content generated for the draft.', 'kinsta-mcp-draft' ),
					),
				),
				'required'   => array( 'title', 'content' ), // Mandatory fields for the AI payload
			),
			'permission_callback' => function(): bool {
				return current_user_can( 'edit_posts' );
			},
			'execute_callback'	=> function( array $args ): array {
				$post_id = wp_insert_post( array(
					'post_title'   => sanitize_text_field( $args['title'] ),
					'post_content' => wp_kses_post( $args['content'] ),
					'post_status'  => 'draft',
					'post_type'	=> 'post',
				) );

				if ( is_wp_error( $post_id ) ) {
					return array( 
						'success' => false, 
						'error'   => $post_id->get_error_message() 
					);
				}

				return array( 
					'success' => true, 
					'message' => __( 'Draft saved successfully!', 'kinsta-mcp-draft' ),
					'post_id' => $post_id 
				);
			},

			// Explicitly flag this ability as public to expose it through the default MCP Server
			'meta' => array(
				'mcp' => array(
					'public' => true, 
				),
				// Also expose within the native WordPress REST API
				'show_in_rest' => true,
			),
		)
	);
}

Dit zijn de belangrijkste punten van deze plugin:

  • Om je ability te registreren, koppel je de functie wp_register_ability() aan de actie wp_abilities_api_init.
  • Het eerste argument van de functie geeft de naam van de ability aan, inclusief de namespace (kinsta-plugin/create-draft).
  • Het tweede argument stelt de configuratieparameters van de ability in.
  • input_schema is een array die het inputcontract voor de ability definieert. In dit geval verwacht de ability een object met twee verplichte strings: title en content.
  • permission_callback is een functie die controleert of de agent de benodigde rechten heeft om de ability uit te voeren (edit_posts).
  • execute_callback is de callback-functie die draait zodra de ability wordt geactiveerd. In dit voorbeeld gebruiken we wp_insert_post om een nieuw conceptbericht aan te maken.
  • De vlag meta.mcp.public maakt de ability beschikbaar via de standaardserver van de MCP-adapter (lees hier meer hierover).

We gaan hier niet dieper in op de Abilities API. Wil of moet je er meer over weten, bekijk dan onze uitgebreide tutorial Aan de slag met de WordPress Abilities API.

Sla het bestand nu op, pak het in als zip en upload het als plugin naar je site. Zodra de plugin actief is, kun je door naar de volgende stappen.

Stap 3: Genereer een Application Password

Alle verzoeken naar de WordPress MCP-server moeten worden geauthenticeerd met een Application Password. Om er een te genereren, open je je WordPress dashboard, ga je naar Users > Profile en scroll je naar het gedeelte Application Passwords. Voer een naam in voor je wachtwoord en klik op Add New Application Password.

Daarmee genereer je een wachtwoord dat je in je applicatie gebruikt. Kopieer het en bewaar het op een veilige plek, want dit is de enige keer dat je het te zien krijgt. Raak je het kwijt, dan maak je een nieuw wachtwoord aan.

WordPress heeft een HTTPS-verbinding nodig om een Application Password te genereren. Zie je dit gedeelte niet in je gebruikersprofiel, controleer dan of je site via HTTPS wordt geserveerd. Kijk voor meer informatie in de officiële documentatie.

Test de hele keten in Postman

Voordat je Claude Desktop configureert, is het handig om de hele keten in Postman te testen. Problemen oplossen gaat daarmee een stuk makkelijker en sneller.

Stap 1: Test de eerste handshake

Test eerst de handshake door het volgende POST-verzoek te versturen:

https://yoursite.com/wp-json/mcp/mcp-adapter-default-server

Het verzoek moet geauthenticeerd zijn. Maak je een nieuw HTTP-verzoek aan in Postman, selecteer dan Authorization > Basic Auth en voer je WordPress gebruikersnaam en Application Password in.

Authorization instellen op Basic Auth in Postman
Authorization instellen op Basic Auth in Postman

Voeg vervolgens de volgende headers toe:

Content-Type: application/json
Accept: application/json, text/event-stream
De request headers instellen in Postman
De request headers instellen in Postman

Ga naar het tabblad Body, selecteer raw > JSON en stel de volgende body in:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"postman","version":"1.0"}}}
De request body instellen in Postman
De request body instellen in Postman

Nu klik je op Send. Werkt de MCP-server goed, dan zie je een 200 OK-statuscode en het JSON-antwoord uit de afbeelding hieronder:

De inhoud van het antwoord van de MCP-server in Postman
De inhoud van het antwoord van de MCP-server in Postman

Het antwoord bevat de header mcp-session-id. Kopieer die waarde, want je hebt hem nodig voor de volgende test.

De headers van het antwoord van de MCP-server in Postman
De headers van het antwoord van de MCP-server in Postman

Stap 2: Controleer of de ability zichtbaar is

Nu controleer je of je ability zichtbaar is. Je gebruikt dezelfde URL en dezelfde Basic Auth. Voeg alleen de header mcp-session-id toe aan de headers die je al hebt ingevoerd, en gebruik het volgende JSON-object in de request body:

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"mcp-adapter-discover-abilities","arguments":{}}}

De volgende afbeelding toont de respons van de MCP-server:

De respons van de MCP-server in Postman
De respons van de MCP-server in Postman

Het JSON response object bevat de naam van je ability, in ons voorbeeld kinsta-plugin/create-draft.

Stap 3: Voer de ability uit vanuit Postman

Tot slot voeren we onze ability uit vanuit Postman. De URL, Basic Auth en headers blijven hetzelfde. Alleen de request body verandert, en die stel je als volgt in:

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp-adapter-execute-ability","arguments":{"ability_name":"kinsta-plugin/create-draft","parameters":{"title":"Postman test","content":"Test content from Postman"}}}}
  • method geeft de MCP-server opdracht om een van de standaard servertools te gebruiken (tools/call).
  • params.name is de generieke tool (mcp-adapter-execute-ability) die verantwoordelijk is voor het uitvoeren van de ability die je hieronder opgeeft.
  • params.arguments.ability_name is de volledige identifier van de uit te voeren ability (kinsta-plugin/create-draft).
  • params.arguments.parameters is het object met de argumenten die het input_schema van de ability vereist (title en content).

Klik nu op Send om het verzoek te versturen. Je zou een 200 OK-status en het volgende antwoord moeten krijgen:

Een geslaagde respons in Postman
Een geslaagde respons in Postman

Open vervolgens je WordPress dashboard en controleer of het concept Postman test er staat.

Ben je tot hier gekomen zonder problemen of fouten, dan kun je door naar de laatste stap: Claude Desktop configureren.

Configureer Claude Desktop

Nu verbind je Claude Desktop met je WordPress site via de officiële @automattic/mcp-wordpress-remote proxy. Die zet MCP calls via STDIO om in geauthenticeerde HTTP-verzoeken naar de WordPress REST API.

Stap 1: Bewerk het configuratiebestand

Open het configuratiebestand van Claude Desktop rechtstreeks vanuit de app: klik op het icoontje met je naam linksonder en ga naar Settings > Developer > Edit Config.

Het configuratiebestand van Claude Desktop openen
Het configuratiebestand van Claude Desktop openen

Daarmee ga je direct naar het bestand claude_desktop_config.json. Open het en vervang de huidige inhoud door het volgende:

{
  "mcpServers": {
	"wordpress-kinsta": {
	  "command": "npx",
	  "args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
	  "env": {
		"WP_API_URL": "https://yoursite.com/wp-json/mcp/mcp-adapter-default-server",
		"WP_API_USERNAME": "your-wp-username",
		"WP_API_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
		"OAUTH_ENABLED": "false"
	  }
	}
  }
}

Vervang de placeholders door je eigen gegevens, sla het bestand op en sluit Claude Desktop volledig af vanuit het systeemvak. Sluit dus niet alleen het venster, want dan blijft de app mogelijk op de achtergrond draaien.

Stap 2: Controleer de verbinding in Claude Desktop

Ga terug naar Claude Desktop en navigeer naar je naam > Settings > Developer. Hier vind je de lijst met lokale MCP-servers. Heb je alle voorgaande stappen gevolgd, dan zie je voor de server wordpress-kinsta een tabblad met een overzicht en de status running.

Lokale MCP-servers in Claude Desktop
Lokale MCP-servers in Claude Desktop

Vraag Claude nu om de beschikbare tools van de server wordpress-kinsta te tonen. Claude Desktop reageert met een overzicht van de tools, zoals in de afbeelding hieronder:

Overzicht van de beschikbare tools op de MCP-server
Claude Desktop geeft een overzicht van de beschikbare tools op de MCP-server.

Zoals gezegd hoef je de identifiers van elke ability niet te kennen. Leg de AI gewoon uit wat je wilt, waarna het model de geregistreerde abilities opzoekt, de juiste vindt met de bijbehorende parameters en die uiteindelijk met de juiste waarden uitvoert.

Een verzoek in natuurlijke taal in Claude Desktop
Een verzoek in natuurlijke taal in Claude Desktop.

Wil je meer details over een specifieke ability, dan vraagt Claude je om toestemming om Get Ability Info te gebruiken op de MCP-server wordpress-kinsta. Zodra je het verzoek goedkeurt, krijg je alle details van de ability te zien.

Claude geeft de details van de gevraagde ability
Claude geeft de details van de gevraagde ability

Vraag de AI om je ability uit te voeren

Tot slot stuur je Claude je eerste verzoek om een conceptbericht aan te maken. Je vraagt Claude natuurlijk om de tekst te genereren op basis van een prompt met specifieke richtlijnen. De afbeelding hieronder laat een voorbeeld zien:

Een voorbeeld van een prompt waarin om een concept voor een WordPress site wordt gevraagd
Een voorbeeld van een prompt waarin om een concept voor een WordPress site wordt gevraagd

Geef Claude toestemming om de ability uit te voeren en wacht een paar seconden op het resultaat. Wat je in de chat ziet zodra de bewerking klaar is, lijkt op de afbeelding hieronder:

Claude bevestigt dat het conceptbericht is aangemaakt
Claude bevestigt dat het conceptbericht is aangemaakt

Ga nu naar je WordPress dashboard en open het scherm Posts. Daar vind je je concept met de titel die je hebt gekozen. Open het en werp een blik in de editor:

Het gevraagde concept in de Block Editor
Het gevraagde concept in de Block Editor

En ja, het resultaat is echt verbluffend, zeker als je bedenkt dat het genereren maar een paar seconden duurde.

Let wel: de gegenereerde content is pure HTML. Dat komt doordat onze plugin geen logica bevat om onderdelen van de content naar Gutenberg blokken om te zetten.

Het conceptbericht van WordPress in de Code Editor
De inhoud van het bericht is niet gestructureerd in Gutenberg blokken

Vervolgens hebben we het verzoek herhaald, dit keer met de vraag aan Claude om de content op te maken in Gutenberg blokken. Dit is het antwoord dat we in de chat kregen:

Voorbeeldrespons in Claude Desktop.
Claude bevestigt dat de inhoud van het bericht nu in Gutenberg blokken is gestructureerd.

En hier is het conceptbericht in de Code Editor van WordPress:

De inhoud van het bericht is nu gestructureerd in Gutenberg blokken.
De inhoud van het bericht is nu gestructureerd in Gutenberg blokken.

Waarom je agentic WordPress site een krachtige infrastructuur nodig heeft

Koppel je je WordPress site via MCP aan een AI-model, dan verandert je website fundamenteel van karakter. Statische pagina’s uit een cache serveren en losse gebruikersverzoeken beantwoorden is niet langer het hele verhaal. Er komt een compleet ander type belasting bij, en WordPress moet dat aankunnen.

Een AI agent voert binnen enkele seconden tientallen REST calls uit, een tempo dat geen enkele bezoeker haalt. Daar komt bij dat MCP-verzoeken je paginacaching volledig omzeilen en bij elke handshake direct je PHP threads raken. Zonder een PHP- en databasestack die op prestaties is afgestemd, loop je tegen time-outs aan midden in een kritieke bewerking. Bijvoorbeeld terwijl je programmatisch een concept aanmaakt.

Bij openbare abilities komt beveiliging om de hoek kijken, want elke ability die je via MCP beschikbaar stelt, is een endpoint dat goed beveiligd moet zijn. De API laat je een permission_callback instellen en verzoeken moeten worden geauthenticeerd met een Application Password. Legt je hostingprovider daar stevige beveiligingsmaatregelen bovenop, denk aan web application firewalls, containerisolatie, automatische SSL-certificaten en IP-blokkering, dan verklein je je aanvalsoppervlak drastisch en beperk je het risico op ongeautoriseerde toegang tot je site.

Voordat je abilities live zet, test je ze. Fatsoenlijk testen kan alleen in een testomgeving die via HTTPS draait op exact dezelfde stack als je live site. En zonder developer tools zoals SSH en WP-CLI bouw je geen betrouwbare AI-integratie op het MCP-protocol.

Ook observability is strategisch voor een site die continu met AI-tools communiceert. Met een APM-tool en je serverlogs zie je wat er achter de schermen gebeurt, achterhaal je waarom een HTTP-verzoek stilletjes mislukt en spoor je knelpunten in je site-architectuur op.

De keuze voor je infrastructuur en hostingdienst is daarmee belangrijker dan ooit: je hebt de architectuur, de tools en de eersteklas support nodig die een moderne WordPress site vraagt. Bij Kinsta krijg je dat allemaal in één centraal dashboard.

Daarvandaan ga je direct naar je site, start je prestatiemonitoring, haal je SSH-inloggegevens op, download je logbestanden en bereik je ons gespecialiseerde supportteam. Vragen je AI-automatiseringen om meer rekenkracht? Dan optimaliseer je in één klik de PHP-prestaties of zet je de add-on Premium testomgevingen erbij, voor maximale responsiviteit tijdens het testen én in productie.

De toekomst van WordPress is agentic

WordPress groeit uit van traditioneel CMS tot volwaardige hub voor agentic applicaties. De Abilities API en de AI Client laten zien waar het web naartoe gaat: niet langer alleen menselijke interacties, maar voor een groot deel machines en intelligente agents die zelfstandig op de achtergrond doorwerken.

Een audiobestand omzetten in een bericht, een geautomatiseerde workflow via GitHub Actions integreren, een naadloze brug bouwen tussen je site en de Claude Desktop client: WordPress kan het aan en zet je input om in native Gutenberg blokken. Wat rest, is je applicaties de kracht, veiligheid en schaalbaarheid geven die ze nodig hebben. Daarvoor kies je een toonaangevende hostingpartner zoals Kinsta.

Heb je onze hostingpakketten al bekeken? Twijfel je welk pakket bij de workflow van je site past, dan beantwoordt ons salesteam graag al je vragen.

Carlo Daniele Kinsta

Carlo is een gepassioneerd liefhebber van webdesign en front-end development. Hij werkt al meer dan 10 jaar met WordPress, ook in samenwerking met Italiaanse en Europese universiteiten en onderwijsinstellingen. Hij heeft tientallen artikelen en gidsen over WordPress geschreven, gepubliceerd op zowel Italiaanse als internationale websites en in gedrukte tijdschriften. Je kunt Carlo vinden op X en LinkedIn.