WordPress MCP Adapter: így kapnak az AI-agentek szabványos hozzáférést a WordPress Abilities-hez
A WordPress 6.9-ben megjelent Abilities API egy olyan alapréteg, amire régóta vártunk: egységes, felderíthető, típusos és futtatható módon lehet leírni, hogy egy WordPress-mag (Core) vagy egy bővítmény pontosan milyen műveletekre képes. Ennek a jelentősége nem csak architekturális: ez az a fajta szabványosítás, ami kifejezetten jól illeszkedik a generatív AI és az automatizált workflow-k világába.
Ebbe érkezik meg a Model Context Protocol (MCP), és vele a WordPress MCP Adapter: egy olyan hivatalos megoldás, amivel az AI-eszközök (például Claude Desktop, Claude Code, Cursor vagy VS Code) közvetlenül fel tudják fedezni és meg tudják hívni a WordPress Abilities-öket, mint MCP tools (eszközök). Magyarul: ha már van Abilities-alapú kódod, akkor nagyon közel vagy ahhoz, hogy egy AI-agent biztonságosan, szabványosan használni is tudja.
Gyors képfrissítés: mit ad az Abilities API, és miért fontos MCP-hez?
Az Abilities API lényege, hogy a WordPress kap egy elsőrangú (first-class), több kontextusban használható funkcionális API-t. Nem ad-hoc REST endpointokban és admin-ajaxban gondolkodsz, hanem “képességekben” (abilities), amik egyszerre egységesek, típusosak, felderíthetők és végrehajthatók.
Egy ability-t egyszer definiálsz a wp_register_ability() hívással, és a definíció részei:
- Egyedi név
namespace/ability-nameformátumban - Típusos bemeneti séma (input schema) és kimeneti séma (output schema)
permission_callback, ami a jogosultságokat (capabilities) kényszeríti kiexecute_callback, ami a tényleges műveletet lefuttatja
Az execute_callback mögött bármi lehet: adatlekérés, bejegyzés-módosítás, diagnosztika futtatása, vagy bármilyen jól körülhatárolt feladat.
A regisztrálás után az ability egységesen elérhető és futtatható PHP-ból, JavaScript-ből és a REST API-n keresztül is.
A WordPress 6.9 alapértelmezett (Core) Abilities-ei
A WordPress 6.9 három alapértelmezett ability-vel érkezik. Ezek kicsik, de kiválóak arra, hogy az MCP Adaptert gyorsan kipróbáld:
core/get-site-info: a WordPress-ben beállított webhely-információkat adja vissza. Alapból minden mezőt, de kérhető szűkített részhalmaz is.core/get-user-info: a jelenleg hitelesített felhasználó alap profiladatait adja vissza személyre szabáshoz, auditáláshoz és hozzáférés-tudatos működéshez.core/get-environment-info: a futtatási környezet főbb adatait adja vissza diagnosztikához és kompatibilitáshoz (környezet, PHP runtime, adatbázis-szerver információk, WordPress verzió).
Mi az a WordPress MCP Adapter, és mire jó valójában?
A WordPress MCP Adapter az AI Building Blocks for WordPress kezdeményezés hivatalos csomagja. A feladata, hogy az Abilities API-val regisztrált képességeket “lefordítsa” az MCP által támogatott primitívekre (primitives), hogy az AI-agentek fel tudják fedezni és végre tudják hajtani a webhely funkcióit MCP tools-ként, illetve olvasni tudjanak WordPress-adatokat MCP resources-ként.
Gyakorlati következmény: ha a bővítményed már abilities-re épít, akkor szinte kész az “AI-kompatibilis API”, amit AI-kliensek képesek meghívni.
MCP 101: tools, resources, prompts
Az MCP három fő primitív köré szervezi az együttműködést:
- tools: futtatható függvények/műveletek, amiket az AI meghívhat (például adatlekérés, módosítás, diagnosztika).
- resources: passzív adatforrások (például fájlok, adatbázis-sorok), amiket az AI csak olvas kontextusnak.
- prompts: előre konfigurált prompt-sablonok, amik egy adott workflow-t vezetnek.
A WordPress MCP Adapter esetén az Abilities jellemzően tools-ként jelennek meg, mert végrehajtható logikát képviselnek. De a rendszer rugalmas: ha egy ability tényleg csak olvasásra való (például statikus konfiguráció, debug log), akkor beállítható resource-nak is, így az AI “háttérkontextusként” tudja beolvasni, nem kell aktívan meghívnia.
Telepítés: a leggyorsabb út (plugin) és mit kapsz azonnal
A leggyorsabb indulás, ha a WordPress MCP Adaptert bővítményként telepíted a GitHub Releases oldalról:
Aktiválás után két fontos dolgot csinál:
- Regisztrál egy alapértelmezett MCP szervert
mcp-adapter-default-servernéven. - Létrehoz három saját ability-t, és azokat automatikusan MCP tool-ként is elérhetővé teszi.
A beépített MCP Adapter Abilities és tool-ok
A három egyedi ability:
mcp-adapter/discover-abilitiesmcp-adapter/get-ability-infomcp-adapter/execute-ability
Ezek tool-ként is megjelennek:
mcp-adapter-discover-abilitiesmcp-adapter-get-ability-infomcp-adapter-execute-ability
Ez a három tool rétegezett (layered) hozzáférést ad az agenteknek: előbb felderítik, mi érhető el, aztán lekérik a részleteket, végül végrehajtják a kiválasztott ability-t.
Hogyan engedélyezed, hogy egy ability elérhető legyen az alapértelmezett MCP szerveren?
Fontos alapelv: az alapértelmezett MCP szerveren csak az a képesség érhető el, amit kifejezetten nyilvánosra jelölsz MCP-hozzáféréshez. Ezt a meta.mcp.public flaggel tudod megtenni az ability regisztrációs argumentumai között.
'meta' => array(
'mcp' => array(
'public' => true, // Required for MCP default server access
),
)Core Abilities engedélyezése a wp_register_ability_args filterrel
A Core abilities esetén nem te regisztrálod a képességeket, ezért a wp_register_ability_args filteren keresztül tudod módosítani a regisztrációs argumentumokat, és hozzáadni a meta.mcp.public jelölést.
<?php
/**
* Plugin Name: Enable core abilities
* Version: 1.0.0
*
* @package enable-core-abilities
*/
add_filter( 'wp_register_ability_args', 'myplugin_enable_core_abilities_mcp_access', 10, 2 );
/**
* Enable MCP access for core abilities.
*
* @param array $args Ability registration arguments.
* @param string $ability_name Ability ID.
* @return array Modified ability registration arguments.
*/
function myplugin_enable_core_abilities_mcp_access( array $args, string $ability_name ) {
// Enable MCP access for the three current core abilities.
$core_abilities = array(
'core/get-site-info',
'core/get-user-info',
'core/get-environment-info',
);
if ( in_array( $ability_name, $core_abilities, true ) ) {
$args['meta']['mcp']['public'] = true;
}
return $args;
}
Ha ez megvan, már rá tudsz csatlakozni AI klienssel, és az alapértelmezett szerveren keresztül meghívhatod ezeket a Core abilities-ket is.
AI kliensek csatlakoztatása: STDIO vs HTTP transport
MCP oldalon két szállítási (transport) mechanizmus a lényeges: STDIO és HTTP. Hogy melyiket választod, többnyire attól függ, hol fut a WordPress.
- STDIO: tipikusan helyi fejlesztői környezetben a legegyszerűbb. A WordPress MCP Adapter ezt WP-CLI-n keresztül oldja meg, tehát helyben telepített WP-CLI szükséges.
- HTTP: publikus elérésű WordPress-eknél, vagy ha nem akarsz STDIO-t használni. Ilyenkor a Node.js-es távoli proxy, az
@automattic/mcp-wordpress-remotea járható út.
Minimál konfiguráció STDIO-hoz (WP-CLI)
{
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/path/to/your/wordpress/installation",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user={admin_user}"
]
}
}A fenti konfigurációban:
- A szerver kulcsa (
wordpress-mcp-server) tetszőleges név, amit te választasz. - A
commandawp(WP-CLI). - Az
argstartalmazza: --path: a WordPress telepítés útvonalamcp-adapter serve: az MCP Adapter szerver indítása--server: melyik MCP szervert indítsa (itt a default)--user: melyik WordPress felhasználóként hitelesítsen (például admin)
Minimál konfiguráció HTTP-hoz (Node.js remote proxy)
HTTP transportnál kell Node.js, és a hitelesítéshez vagy WordPress application passwords (alkalmazásjelszavak), vagy egyedi OAuth implementáció. A remote proxy az npx-szel futtatható:
{
"wordpress-mcp-server": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://yoursite.example/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "{admin_user}",
"WP_API_PASSWORD": "{application-password}"
}
}
}Amit itt érdemes fejben tartani:
npx: Node.js csomag futtatása telepítés nélkül (vagy automatikus telepítéssel).-y: automatikus beleegyezés a csomag telepítésébe.WP_API_URL: a WordPress MCP endpoint URL-je.WP_API_USERNAME: a WordPress felhasználó.WP_API_PASSWORD: a felhasználó application password-e.
Ha lokál WordPress-hez próbálsz HTTP remote proxyval csatlakozni, és elakadnál, az mcp-wordpress-remote csomag ad hibakeresési tippeket (gyakori ok: több Node.js verzió, vagy lokális SSL tanúsítvány gondok): https://github.com/Automattic/mcp-wordpress-remote/blob/trunk/Docs/troubleshooting.md
Alkalmazás-specifikus beállítások: hol add meg az MCP szervert?
A konfiguráció formátuma sok helyen ugyanaz, de a fájl neve és a JSON gyökérkulcsa (például mcpServers vs servers) eltérhet. Nézzük a leggyakoribb klienseket.
Claude Desktop
Claude Desktopnál az MCP támogatás be van építve. A szerverek hozzáadásához menj a Developer fülre (Claude → Settings → Developer), majd a Local MCP servers résznél válaszd az Edit config opciót. Ezzel megnyílik a claude_desktop_config.json helye.

A szervereket a fájlban egy mcpServers objektumba kell felvenni:
{
"mcpServers": {
}
}STDIO példa:
{
"mcpServers": {
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=admin"
]
}
}
}HTTP példa:
{
"mcpServers": {
"wordpress-mcp-server": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "http://localhost:8885/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "admin",
"WP_API_PASSWORD": "2SEB qW5j D7CW fpsh pbmN RGva"
}
}
}
}Mentés után Claude Desktopot újra kell indítanod, mert induláskor olvassa be az MCP szerver konfigurációkat. Ha a Developer fülön a szerver neve mellett running státuszt látsz, akkor indulhat a használat.

Cursor
Cursorban a beállítás itt van: Cursor → Settings → Cursor Settings, majd Tools and MCP szekció.

Az Add Custom MCP gomb megnyitja a mcp.json fájlt. A formátum megegyezik a Claude Desktop konfigurációjával. Mentés után a Tools and MCP részben látni fogod a szervert, és engedélyezheted a kódolási sessionökhöz.

Claude Code
Claude Code esetén két út van:
- A home könyvtárban lévő
.claude.jsonfájlba teszed amcpServersobjektumot, így globálisan elérhető lesz minden projekthez. - A projekt gyökerébe hozol létre egy
.mcp.jsonfájlt, így projektenként eltérő MCP szerver konfigurációt tarthatsz.
Mindkét esetben ugyanazt a konfigurációs formátumot használhatod, mint Cursorban vagy Claude Desktopban.
VS Code
VS Code-ban egy JSON konfigurációs fájl kell, ami leírja az MCP szerver részleteit. Tipikusan mcp.json néven, a workspace-en belül a .vscode könyvtárban. A VS Code dokumentációja itt tárgyalja az MCP szervereket: https://code.visualstudio.com/docs/copilot/customization/mcp-servers
A különbség Claude Desktophoz képest: a szerverek nem mcpServers, hanem servers objektumban vannak. A többi mező ugyanaz.
{
"servers": {
// MCP server definitions go here
}
}Ha a fájl megvan, VS Code MCP vezérlősávot mutat, ahol a szervert indíthatod/leállíthatod/újraindíthatod. Sikeres induláskor azt is jelzi, hány tool áll rendelkezésre (az alap esetben ez 3).

MCP tool-ok használata a gyakorlatban: hogyan “gondolkodik” egy AI-agent?
Ha a kliens csatlakozott az MCP szerverhez, elkezdheted használni a WordPress-ből publikált tool-okat. Például Claude Desktopban elég annyit kérned: “Kérd le a site info-t a WordPress oldalamról.”

A folyamat jellemzően így néz ki:
- A kliens észleli, hogy van elérhető MCP szerver.
- Meghívja a
mcp-adapter-discover-abilitiestool-t, hogy lássa, milyen abilities érhetők el. - A kérés alapján kiválasztja a megfelelő ability-t (például
core/get-site-info). - Meghívja a
mcp-adapter-execute-abilitytool-t, és paraméterként átadja az ability nevét. - Visszajönnek az adatok, a kliens pedig ezekből megfogalmazza a választ.
Egyedi MCP szerver a bővítményedhez: finomhangolás és kontroll
Az alapértelmezett MCP szerver sok esetben elég, de bővítmény-fejlesztőként gyakran jól jön a kontroll: pontosan mely abilities-ek menjenek ki tool-ként, milyen transport legyen, hogyan logolj, hogyan mérj megfigyelhetőséget (observability). Ehhez egyedi MCP servert tudsz definiálni.
Ennek a menete: Composerrel felveszed a csomagot, betöltöd az autoloader-t, inicializálod az adaptert, majd a mcp_adapter_init actionre feliratkozva létrehozod a saját szerveredet.
1) MCP Adapter telepítése Composerrel
composer require wordpress/mcp-adapter2) Composer autoloader betöltése a fő bővítmény fájlban
if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
require_once __DIR__ . '/vendor/autoload.php';
}Ha reális, hogy több bővítmény is függ az MCP Adaptertől vagy az Abilities API-tól, akkor érdemes felkészülni verzióütközésekre. A javasolt megoldás a Jetpack Autoloader használata (részletek a telepítési doksiban): https://github.com/WordPress/mcp-adapter/blob/trunk/docs/getting-started/installation.md#using-jetpack-autoloader-highly-recommended
3) MCP Adapter inicializálása
if ( ! class_exists( WPMCPCoreMcpAdapter::class ) ) {
// check if the MCP Adapter class is available, if not show some sort of error or admin notice
return;
}
// Initialize MCP Adapter and its default server.
WPMCPCoreMcpAdapter::instance();
4) Saját MCP szerver létrehozása a mcp_adapter_init actionnel
add_action( 'mcp_adapter_init', 'myplugin_create_custom_mcp_server' );
function myplugin_create_custom_mcp_server( $adapter ) {
$adapter = WPMCPCoreMcpAdapter::instance();
$adapter->create_server(
'custom-mcp-server', // Unique server identifier.
'custom-mcp-server', // REST API namespace.
'mcp', // REST API route.
'Custom MCP Server', // Server name.
'Custom MCP Server', // Server description.
'v1.0.0', // Server version.
array( // Transport methods.
WPMCPTransportHttpTransport::class, // Recommended: MCP 2025-06-18 compliant.
),
WPMCPInfrastructureErrorHandlingErrorLogMcpErrorHandler::class, // Error handler.
WPMCPInfrastructureObservabilityNullMcpObservabilityHandler::class, // Observability handler.
array( 'namespace/ability-name' ), // Abilities to expose as tools
array(), // Resources (optional).
array(), // Prompts (optional).
);
}
A create_server() legfontosabb paraméterei:
- 1. paraméter: egyedi szerverazonosító (WP-CLI indításnál ezt fogod használni).
- 2–3. paraméter: REST API namespace és route az MCP szerverhez.
- 4–5. paraméter: szerver neve és leírása (AI appok listáiban így látszik).
- 6. paraméter: szerver verzió.
- 10. paraméter: abilities nevek listája, amiket MCP tool-ként publikálsz (több is lehet).
- A többi paraméter: transport metódusok, error handler, observability handler. Használhatod a core csomag komponenseit, vagy írhatsz sajátot, ha a saját szállítási/log/monitoring rendszeredhez integrálnál.
Gyakorlati példa: egyedi MCP szerver a List All URLs bővítményhez
Egy kézzelfogható mintához jó kiindulás a List All URLs bővítmény. Itt egy konkrét forgatókönyv: hozzáadsz egyedi MCP szervert, ami csak a bővítmény egyetlen ability-jét teszi elérhetővé tool-ként.
Mielőtt belevágsz: ha a WordPress MCP Adaptert plugin formában aktiváltad, akkor ehhez a példához kapcsold ki (deaktiváld).
1) Repo klónozása a plugins könyvtárba
cd wp-content/plugins
git clone git@github.com:wptrainingteam/list-all-urls.git2) Váltás az Abilities API-t tartalmazó branchre
cd list-all-urls
git checkout abilities3) Composer függőségek telepítése
composer install4) MCP Adapter felvétele
composer require wordpress/mcp-adapter5) Kód hozzáadása a list-all-urls.php fájl végére
if ( ! class_exists( WPMCPCoreMcpAdapter::class ) ) {
return;
}
// Initialize MCP Adapter and its default server.
WPMCPCoreMcpAdapter::instance();
add_action( 'mcp_adapter_init', 'list_all_urls_create_custom_mcp_server' );
/**
* Create a custom MCP server for the List All URLs plugin.
*
* @param object $adapter WPMCPCoreMcpAdapter The MCP Adapter instance.
* @return void
*/
function list_all_urls_create_custom_mcp_server( $adapter ) {
$adapter = WPMCPCoreMcpAdapter::instance();
$adapter->create_server(
'list-all-urls-mcp-server',
'list-all-urls-mcp-server',
'mcp',
'List All URLS MCP Server',
'Custom MCP Server for the List All URLs plugin. Currently exposes only the list-all-urls/urls ability as an MCP Tool.',
'v1.0.0',
array(
WPMCPTransportHttpTransport::class,
),
WPMCPInfrastructureErrorHandlingErrorLogMcpErrorHandler::class,
WPMCPInfrastructureObservabilityNullMcpObservabilityHandler::class,
array( 'list-all-urls/urls' ),
);
}
Itt van egy lényeges különbség a default szerverhez képest: nem kell meta.mcp.public flag a list-all-urls/urls ability-re, mert az egyedi szerverben te explicit módon publikálod tool-ként.
6) Bővítmény aktiválása, majd az AI kliens konfiguráció frissítése
Aktiváld a List All URLs bővítményt a WordPress adminban, majd az AI alkalmazásod MCP konfigurációjába vedd fel az új szervert. Például VS Code-ban így néz ki, ha egyszerre használod a default szervert és a List All URLs saját szerverét, mindkettőt STDIO-val:
{
"servers": {
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=admin"
]
},
"list-all-urls-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=list-all-urls-mcp-server",
"--user=admin"
]
}
}
}Egy kliensen belül több MCP szervert is tarthatsz: akár több WordPress site-ot, akár több bővítmény külön tool-készletét is külön szerverként.
Konfiguráció módosítása után vagy indítsd újra az alkalmazást, vagy indítsd el újra az MCP szervert az alkalmazás saját vezérlőjéből. Ha minden oké, az AI már képes lesz meghívni a list-all-urls/urls ability-t mint tool-t, például egy “Listázd az összes URL-t a WordPress oldalamon” kéréssel.

Biztonság és best practice: MCP kliens = bejelentkezett felhasználó
Az MCP kliensek WordPress oldalról nézve bejelentkezett felhasználóként működnek. Emiatt úgy kezeld őket, mint az alkalmazásod támadási felületének (surface area) egy részét. A legfontosabb gyakorlatok:
- A
permission_callbacklegyen kőkeményen átgondolva - Minden ability-ben a minimálisan szükséges capability-t ellenőrizd (
manage_options,edit_posts, stb.). - Kerüld a
__return_truehasználatát romboló műveleteknél (például tartalom törlése). - Használj dedikált felhasználót MCP hozzáféréshez
- Különösen éles környezetben hozz létre külön szerepkört/felhasználót limitált jogosultságokkal.
- Ne adj erős abilities-eket nem auditált AI kliensek kezébe.
- Publikus HTTP MCP endpointokra inkább read-only képességeket adj
- Internet felől elérhető HTTP transportnál fókuszálj read-only diagnosztikára, riportokra, tartalom-olvasásra.
- Ha kell, csinálj egyedi hitelesítést
- Alapból application passwords a kézenfekvő, de OAuth vagy egyéb megoldás erősebb kontrollt adhat.
- Monitorozz és logolj
- Egyedi error és observability handlerrel bekötheted a saját log/monitoring stack-edbe.
Hogyan érdemes ma elkezdeni kísérletezni?
Egy minimál “hello AI” útvonal WordPress-fejlesztőként meglepően rövid:
- Regisztrálsz egy ability-t (lehetőleg read-only, nem destruktív).
- Composerrel felveszed és inicializálod az MCP Adaptert (vagy plugin formában telepíted).
- Rákötöd egy MCP-kompatibilis klienssel (Claude Desktop, Cursor, VS Code, Claude Code).
Ha már most is Abilities API-t használó bővítményeid vannak, az MCP Adapter nagyon kis extra munkával “AI-ready API”-vá teszi őket. A jó stratégia az, hogy kicsiben indulsz: pár read-only tool, lokális teszt STDIO-val, majd fokozatosan bővíted a komplexebb workflow-k felé.
Dokumentációs belépők:
- Abilities API: https://developer.wordpress.org/apis/abilities/
- WordPress MCP Adapter (repo): https://github.com/WordPress/mcp-adapter
- Model Context Protocol (MCP) bevezető: https://modelcontextprotocol.io/docs/getting-started/intro
WordPress.com vs self-hosted: mi a fő különbség most?
A WordPress.com oldalon az MCP tool-ok ugyanarra az Abilities API + MCP Adapter alapra épülnek, de a hitelesítés ott OAuth 2.1-en keresztül történik. Self-hosted környezetben jelenleg tipikusan JWT tokenekre vagy application passwords-re támaszkodsz.
Hivatkozások / Források
- From Abilities to AI Agents: Introducing the WordPress MCP Adapter
- Abilities API in WordPress 6.9
- Introducing the WordPress Abilities API
- Model Context Protocol
- MCP Adapter
- AI Building Blocks for WordPress
- @automattic/mcp-wordpress-remote
- Application Passwords Integration Guide
- MCP servers in VS Code
- mcp-wordpress-remote troubleshooting
- List All URLs plugin
- Build MCP tools like ogres with layers
- Connect AI Agents to WordPress with OAuth 2.1
Kovács Anna
A magyar szerkesztőség vezetője, PHP és WordPress szakértő. Imádom az elegáns megoldásokat és a jól strukturált kódot. Szabadidőmben open source projekteken dolgozom.
Összes bejegyzés