WordPress MCP Adapter: ako spraviť z Abilities API nástroje pre AI agentov
WordPress 6.9 priniesol Abilities API – spôsob, ako v jadre aj v pluginoche registrovať funkcionalitu tak, aby bola štandardizovaná, objaviteľná (discoverable), typovaná (typed) a vykonateľná (executable). Z pohľadu automatizácie je to zásadné: keď vieš schopnosti opísať schémami vstupov/výstupov a bezpečne ich spúšťať, si len krok od toho, aby ich vedeli používať aj AI nástroje a agenti.
Presne na to nadväzuje Model Context Protocol (MCP) – protokol, ktorý umožňuje AI modelom získať dodatočný kontext a pristupovať k externým „primitívam“ ako sú nástroje či zdroje dát. A pre WordPress už existuje konkrétny most: WordPress MCP Adapter.
Rýchle zhrnutie: čo sú WordPress Abilities a prečo sú základom
Abilities API dáva WordPressu prvotriedne (first-class) funkčné API naprieč kontextami – teda jednotný spôsob, ako jadro aj pluginy vystavia „čo vedia robiť“. Jednu schopnosť (ability) definuješ raz a potom je dostupná z PHP, JavaScriptu aj cez REST API.
Každá ability sa registruje s týmito stavebnými prvkami:
- Jedinečný názov v tvare
namespace/ability-name - Typovaná input schema a output schema
permission_callback, ktorý vynúti oprávnenia (capabilities)execute_callback, ktorý vykoná reálnu logiku (napr. načítanie dát, update postov, diagnostika…)
Vo WordPresse 6.9 sú predvolene tri core abilities, na ktorých sa dá MCP Adapter rýchlo otestovať:
core/get-site-info: vráti informácie o webe nakonfigurované vo WordPresse (štandardne všetky polia, voliteľne filtrovaná podmnožina).core/get-user-info: vráti základné profilové údaje pre aktuálne autentifikovaného používateľa (personalizácia, audit, access-aware správanie).core/get-environment-info: vráti informácie o runtime prostredí pre diagnostiku a kompatibilitu (prostredie, PHP runtime, databázový server, verzia WordPressu).
Čo je WordPress MCP Adapter a kde zapadá
WordPress MCP Adapter je oficiálny balík v rámci iniciatívy AI Building Blocks for WordPress. Jeho úloha je praktická: zoberie abilities registrované cez Abilities API a „preloží“ ich do primitív, ktoré pozná Model Context Protocol (MCP) – aby ich AI agenti vedeli objaviť a spúšťať ako MCP tools a aby vedeli čítať WordPress dáta aj ako MCP resources.
V praxi to znamená jednoduchú vec: ak už v plugine registruješ abilities, si jeden krok od toho, aby ich mohol používať AI agent.
MCP v skratke: tools, resources, prompts
MCP organizuje interakcie do troch hlavných primitív:
- Tools: vykonateľné funkcie, ktoré AI volá, aby spravila akciu.
- Resources: pasívne zdroje dát (napr. súbory, riadky v databáze), ktoré AI číta ako kontext.
- Prompts: predpripravené šablóny (templates), ktoré vedú konkrétne workflow.
S MCP Adapterom sa abilities typicky vystavia ako tools, pretože reprezentujú vykonateľnú logiku (fetch, update, diagnostika). Adapter je však flexibilný: ak ability vracia len read-only dáta (napr. debug log alebo statickú konfiguráciu), dá sa nakonfigurovať aj ako resource, aby si to AI vedela načítať ako kontext bez explicitného „volania“.
Inštalácia MCP Adaptera (najrýchlejšia cesta)
Najrýchlejší štart je nainštalovať MCP Adapter ako plugin – stiahneš ho z Releases sekcie GitHub repozitára a aktivuješ vo WordPresse: https://github.com/WordPress/mcp-adapter/releases.
Po aktivácii plugin zaregistruje:
- predvolený MCP server s názvom
mcp-adapter-default-server - tri vlastné abilities:
mcp-adapter/discover-abilities,mcp-adapter/get-ability-info,mcp-adapter/execute-ability
Tieto tri abilities sa automaticky vystavia aj ako MCP tools:
mcp-adapter-discover-abilitiesmcp-adapter-get-ability-infomcp-adapter-execute-ability
Pre AI agentov je to vrstvený prístup: najprv zistí, aké abilities existujú, potom si vie vyžiadať info o konkrétnej ability a nakoniec ju vie spustiť.
Ako sprístupniť abilities v predvolenom MCP serveri
Predvolený MCP server sprístupní abilities iba vtedy, keď ich explicitne označíš ako verejné pre MCP. Robí sa to cez meta.mcp.public pri registrácii ability pomocou wp_register_ability().
'meta' => array(
'mcp' => array(
'public' => true, // Required for MCP default server access
),
)Pri core abilities (tie, ktoré registruje WordPress) si nevieš upraviť registráciu priamo, preto sa používa filter wp_register_ability_args, kde doplníš meta.mcp.public do argumentov registrácie.
<?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;
}Keď to máš nasadené, AI klient sa vie pripojiť na tvoj web cez MCP Adapter a volať core abilities cez MCP tools predvoleného servera.
Pripojenie AI aplikácií: STDIO vs HTTP
MCP má dva transporty: STDIO a HTTP. Voľba závisí najmä od toho, kde WordPress beží.
- STDIO: typicky lokálny vývoj. MCP Adapter to rieši cez WP-CLI (musíš ho mať nainštalované).
- HTTP: vhodné pre verejne dostupné inštalácie alebo keď nechceš používať STDIO. Používa sa remote proxy balík
@automattic/mcp-wordpress-remotecez Node.js a autentifikácia cez application passwords alebo vlastný OAuth.
Konfigurácia pre STDIO (lokálny WordPress cez WP-CLI)
Minimum konfigurácie pre pripojenie cez STDIO vyzerá takto:
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/path/to/your/wordpress/installation",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user={admin_user}"
]
}Detaily, ktoré sa oplatí si všimnúť:
- Názov servera v konfigurácii (
wordpress-mcp-server) je len label – môže byť ľubovoľný. commandjewp(WP-CLI).- V
argsje--pathna inštaláciu WordPressu. mcp-adapter servespustí MCP Adapter server.--servervyberá MCP server (tumcp-adapter-default-server).--userurčí používateľa, ako ktorého sa MCP klient autentifikuje (napr. admin).
Konfigurácia pre HTTP (remote proxy cez Node.js)
Ak ideš cez HTTP transport, použiješ @automattic/mcp-wordpress-remote (vyžaduje Node.js) a nastavíš autentifikáciu (application passwords alebo vlastný OAuth). Minimum konfigurácie:
"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}"
}
}Poznámky k poliam:
commandjenpx– spustí Node.js balík bez toho, aby si ho ručne inštaloval.- V
argsje-y(automatický súhlas s inštaláciou) a@automattic/mcp-wordpress-remote@latest(najnovšia verzia proxy). WP_API_URLsmeruje na MCP endpoint:.../wp-json/mcp/mcp-adapter-default-server.WP_API_USERNAMEaWP_API_PASSWORDsú prihlasovacie údaje – typicky application password.
Pri lokálnom WordPresse napojenom cez HTTP proxy existujú aj tipy na riešenie problémov (často ide o viac verzií Node.js alebo lokálne SSL certifikáty): https://github.com/Automattic/mcp-wordpress-remote/blob/trunk/Docs/troubleshooting.md.
Nastavenie v konkrétnych AI klientoch (Claude Desktop, Cursor, Claude Code, VS Code)
Ďalej sú štyri najbežnejšie klienty, kde sa MCP server konfiguruje. Formát konfigurácie je prakticky rovnaký, mení sa najmä miesto, kam JSON uložíš (a pri VS Code názov koreňového objektu).
Claude Desktop
V Claude Desktop otvor Developer kartu (Claude → Settings → Developer). V sekcii Local MCP servers klikni na Edit config – otvorí sa umiestnenie súboru claude_desktop_config.json. MCP servery sa definujú v objekte mcpServers.
{
"mcpServers": {
}
}Príklad konfigurácie cez STDIO:
{
"mcpServers": {
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/Users/jonathanbossenger/Studio/wordpress-mcp",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=admin"
]
}
}
}Príklad konfigurácie cez HTTP:
{
"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"
}
}
}
}Po uložení konfigurácie treba Claude Desktop reštartovať, pretože MCP konfiguráciu načítava iba pri štarte. V Developer karte potom uvidíš server v Local MCP servers; ak je pri ňom stav running, môžeš ho používať v konverzáciách.

Cursor
V Cursor choď do Cursor → Settings → Cursor Settings a otvor sekciu Tools and MCP.

Klikni na Add Custom MCP, čím sa otvorí konfiguračný súbor mcp.json. Formát je rovnaký ako v Claude Desktop (teda mcpServers). Po uložení sa v Tools and MCP zobrazí tvoj server a vieš ho zapnúť pre coding sessions.
Claude Code
V Claude Code môžeš MCP servery pridať buď do mcpServers objektu v súbore .claude.json v domovskom priečinku (globálne pre všetky projekty), alebo si vytvoriť .mcp.json priamo v projektovom adresári (rôzne konfigurácie pre rôzne projekty). V oboch prípadoch použiješ rovnaký formát konfigurácie ako v Cursor/Claude Desktop.
VS Code
Vo VS Code sa MCP server nastavuje cez JSON súbor, typicky mcp.json, uložený v .vscode adresári v rámci workspace. Dokumentácia pre konfiguráciu je tu: https://code.visualstudio.com/docs/copilot/customization/mcp-servers.
Rozdiel oproti Claude Desktop je, že VS Code používa koreňový objekt servers (nie mcpServers). Zvyšok konfigurácie je rovnaký.
{
"servers": {
// MCP server definitions go here
}
}Po vytvorení súboru VS Code zobrazí MCP toolbar, kde vieš server štartovať/stopnúť/reštartovať. Keď server beží, VS Code ukáže aj počet dostupných tools (v základnom prípade tri).
Používanie MCP tools v praxi
Keď je MCP server pripojený, môžeš začať volať tools, ktoré MCP Adapter vystavil. Typický scenár v Claude Desktop: zadáš požiadavku typu „Get the site info from my WordPress site“.
Klient si všimne, že má dostupný MCP server, zavolá mcp-adapter-discover-abilities, vyhodnotí, že požiadavku pokryje core/get-site-info, a následne spustí mcp-adapter-execute-ability s názvom danej ability. Výsledné dáta sa vrátia do aplikácie a tá z nich poskladá odpoveď.
Vlastný MCP server pre tvoj plugin (Composer integrácia)
Predvolený server (mcp-adapter-default-server) pokryje veľa prípadov, ale v plugine môžeš chcieť vlastný MCP server – napríklad kvôli presnej kontrole, ktoré abilities sa vystavujú ako tools, alebo kvôli vlastným handlerom pre logovanie/monitoring.
Postup je: nainštaluješ balík cez Composer, načítaš autoloader, inicializuješ adapter a cez hook vytvoríš server.
1) Pridanie balíka cez Composer
composer require wordpress/mcp-adapter2) Načítanie Composer autoloaderu v hlavnom súbore pluginu
if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
require_once __DIR__ . '/vendor/autoload.php';
}Ak je reálne, že viac pluginov na webe bude závisieť od MCP Adaptera alebo Abilities API, odporúča sa použiť Jetpack Autoloader kvôli konfliktom verzií: https://github.com/WordPress/mcp-adapter/blob/trunk/docs/getting-started/installation.md#using-jetpack-autoloader-highly-recommended.
3) Inicializácia MCP Adaptera
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) Vytvorenie vlastného servera cez mcp_adapter_init
Vlastný server vytvoríš cez $adapter->create_server() – definuješ identifikátor, REST namespace/route, názov/description, verziu, transporty, error/observability handler a hlavne zoznam abilities, ktoré chceš vystaviť ako tools.
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).
);
}Parametre, ktoré sú najdôležitejšie pri návrhu:
- 1. parameter: unikátny identifikátor servera (používa sa aj pri štarte cez WP-CLI).
- 2. a 3. parameter: REST API namespace a route pre MCP server.
- 4. a 5. parameter: názov a popis, ktoré sa zobrazia v AI aplikáciách.
- 6. parameter: verzia servera.
- 10. parameter: zoznam abilities, ktoré vystavíš ako MCP tools (môže ich byť viac).
- Ostatné parametre: transport, error handling a observability (v príklade HTTP transport, error log a null observability; vieš si spraviť aj vlastné handlery podľa potreby).
Príklad: vlastný MCP server pre plugin „List All URLs“
Ako konkrétny príklad sa dá vziať plugin List All URLs: https://github.com/wptrainingteam/list-all-urls. Cieľ je pridať mu vlastný MCP server a vystaviť iba jeho ability list-all-urls/urls ako MCP tool.
Dôležité
Ak už máš aktívny MCP Adapter plugin, pred týmto postupom ho deaktivuj, aby si testoval scénar s Composer integráciou v plugine.
1) Naklonovanie repozitára do wp-content/plugins
cd wp-content/plugins
git clone git@github.com:wptrainingteam/list-all-urls.git2) Prepnutie na branch s Abilities API implementáciou
cd list-all-urls
git checkout abilities3) Inštalácia závislostí a pridanie MCP Adaptera
composer installcomposer require wordpress/mcp-adapter4) Úprava list-all-urls.php: inicializácia a vytvorenie servera
Na koniec hlavného súboru pluginu list-all-urls.php pridaj tento kód:
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' ),
);
}V tomto prípade si nemusíš nastavovať meta.mcp.public pre list-all-urls/urls, pretože ability explicitne vystavuješ cez vlastný MCP server.
Plugin aktivuj vo WordPress administrácii. Následne uprav konfiguráciu v AI aplikácii tak, aby spúšťala nový server.
Ukážka VS Code konfigurácie s dvomi servermi (STDIO)
Príklad mcp.json pre VS Code, kde máš naraz predvolený server aj nový server z pluginu:
{
"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"
]
}
}
}Mať viac MCP serverov v jednom klientovi je úplne v poriadku – vieš tak prepínať medzi rôznymi webmi alebo pluginmi s rôznymi sadami abilities.
Po zmene konfigurácie treba buď reštartovať AI aplikáciu, alebo v nej server nanovo spustiť. Potom už vieš použiť tool list-all-urls-urls (cez MCP Adapter) a napríklad požiadať AI, aby „List all URLs on my WordPress site“.
Bezpečnosť a best practices: MCP klient je prihlásený používateľ
Kľúčová vec: MCP klienti sa správajú ako prihlásení WordPress používatelia. Ber ich ako súčasť aplikačného povrchu a drž sa týchto pravidiel:
- Používaj
permission_callbackopatrne - Každá ability má kontrolovať minimálne potrebné capability (
manage_options,edit_postsatď.). - Vyhýbaj sa
__return_truepri deštruktívnych operáciách (napr. mazanie obsahu). - Používaj dedikovaných používateľov pre MCP prístup
- Najmä v produkcii vytvor samostatného používateľa/rolu s obmedzenými právami.
- Nevystavuj silné abilities neauditovaným AI klientom.
- Pre verejné MCP endpointy preferuj read-only abilities
- Pri HTTP transporte dostupnom z internetu sa zameraj na read-only diagnostiku, reporty a prístup k obsahu.
- Ak treba, implementuj vlastnú autentifikáciu
- Predvolene sa používa autentifikácia cez application passwords, ale vieš nasadiť OAuth alebo iné metódy pre lepšiu bezpečnosť.
- Monitoruj a loguj používanie
- Využi vlastné error a observability handlery a napoj ich na svoj logging/monitoring stack.
Ako začať experimentovať hneď dnes (minimálna cesta)
Najkratšia „hello AI“ trasa pre WordPress developera je:
- Zaregistruj vlastnú ability (s rozumnými schémami a
permission_callback). - Pridaj MCP Adapter (plugin alebo Composer) a inicializuj ho.
- Sprístupni ability cez predvolený server (
meta.mcp.public) alebo cez vlastný MCP server v plugine. - Pripoj MCP-aware klienta (Claude Desktop, Cursor, VS Code, Claude Code) cez STDIO alebo HTTP a otestuj tools.
Ak už máš pluginy postavené na Abilities API, MCP Adapter z nich spraví AI-ready API s minimálnym dodatočným kódom. Najlepšie je začať s malým počtom read-only, neškodných abilities, testovať lokálne (Claude Desktop/Cursor) a postupne rozširovať na komplexnejšie workflow.
Užitočné odkazy na dokumentáciu:
- Abilities API: https://developer.wordpress.org/apis/abilities/
- MCP Adapter (repo): https://github.com/WordPress/mcp-adapter
Referencie / Zdroje
- From Abilities to AI Agents: Introducing the WordPress MCP Adapter
- Abilities API in WordPress 6.9
- Model Context Protocol: Introduction
- AI Building Blocks for WordPress
- MCP Adapter
- WordPress/mcp-adapter releases
- @automattic/mcp-wordpress-remote
- mcp-wordpress-remote troubleshooting
- Application Passwords Integration Guide
- MCP servers in VS Code (Copilot customization)
- WordPress Abilities API (introducing post)
- List All URLs plugin
- Using Jetpack Autoloader (highly recommended)
- Connect AI agents to WordPress (OAuth 2.1)
Peter Kováč
Databázový vývojár a big data inžinier. Optimalizácia SQL a architektúra dátových skladov sú moje hlavné oblasti. V dátach je pravda.
Všetky príspevky