# SEOPress képességek (Abilities API)

> A SEOPress által a WordPress Abilities API-n közzétett műveletek: bekapcsolás, AI-ügynök csatlakoztatása, a képességek listája, REST-hívások és biztonság.

A SEOPress a WordPress új Abilities API-ján regisztrál egy sor képességet (ability). Egy képesség egy jól körülhatárolt művelet, például „egy bejegyzés SEO-címének olvasása” vagy „átirányítás létrehozása”, amit AI-asszisztensek és automatizálási eszközök felfedezhetnek és biztonságosan futtathatnak, a meglévő WordPress-jogosultságaid betartásával.

A gyakorlatban egy AI-ügynököt (például Claude-ot vagy bármely MCP-kompatibilis eszközt) köthetsz a webhelyedhez, és rábízhatod a SEO-feladatokat a kézi kattintgatás helyett. A képességek a taxonomiatagokra (kategóriák, címkék, WooCommerce-termékkategóriák, egyéni taxonomiák) is kiterjednek: az ügynök olvashatja és frissítheti a SEO-címüket, meta leírásukat, robots- és közösségi beállításaikat, kikeresheti a hiányos metaadatú tagokat, SEOPress PRO-val pedig AI-javaslatot is kérhet rájuk.

## Követelmények

- A SEOPress (ingyenes) naprakész változata (az alapképességekhez és a taxonomiatag-képességekhez).
- A SEOPress PRO naprakész változata a PRO-képességekhez (átirányítások, strukturált adatok, AI-generálás, a taxonomiatagok AI-generálása is).
- A SEOPress Insights naprakész változata az Insights-képességekhez (helyezések, versenytársak, visszamutató linkek).
- WordPress 6.9 vagy újabb (az Abilities API ettől a verziótól a WordPress magja).
- Hitelesítési mód külső hívásokhoz (az alkalmazásjelszó ajánlott).
- Az AI-generáló képességekhez beállított AI-szolgáltató vagy SEOPress AI-kreditek.

## Bekapcsolás REST API-n keresztül

A képességek alapból ki vannak kapcsolva. A SEOPress ingyenes és PRO verziója egy kapcsolón osztozik; az Insightsnak külön van. Az egyik bekapcsolása a másikat nem kapcsolja be.

### SEOPress (ingyenes és PRO)

1. Menj a **SEO → Advanced** oldalra.
2. Nyisd meg az **Advanced** fület, azon belül az **Abilities API** részt.
3. Kapcsold be az **Expose abilities to AI agents and external tools** kapcsolót.
4. Mentsd a beállításokat.

### SEOPress Insights

Az Insights beállításaiban még nincs kapcsoló. Szűrővel kapcsold be, a sablonod `functions.php` fájljában vagy egy kis bővítményben:

```php
add_filter( 'seopress_insights_abilities_api_rest_enabled', '__return_true' );
```

Ha csak az Insightsot használod (SEOPress ingyenes vagy PRO nélkül), ez a szűrő elég.

Bekapcsolás után a képességek a `/wp-abilities/v1/` REST-névtéren át érhetők el, bármely felhasználónak, aki az adott műveletet amúgy is végezheti. A szerkesztőbe épített [AI-asszisztens](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/ai-asszisztens/) belsőleg ezeket a képességeket használja, és nem kell hozzá a kapcsoló: csak külső ügynök csatlakoztatásához kell.

## A webhely „ügynökkésszé” tétele (PRO)

A SEOPress PRO felfedezési jelzéseket tehet közzé, hogy az AI-eszközök maguktól megtalálják és megértsék a tartalmadat. Kapcsold be a [felkészültséget az AI-ügynökökre](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/ai-agent-readiness-llms-txt/): ez közzéteszi az MCP-szerverkártyát (`/.well-known/mcp.json`), egy `llms.txt` fájlt és további `/.well-known/` végpontokat.

## AI-ügynök (MCP) csatlakoztatása

1. Kapcsold be az **Expose abilities to AI agents and external tools** beállítást (PRO-nál az AI-ügynökökre való felkészültséget is).
2. Hozz létre alkalmazásjelszót annak a WordPress-felhasználónak, akinek a nevében az ügynök fog dolgozni (**Felhasználók → Profil → Application Passwords**).
3. Az MCP-kompatibilis kliensedben add meg a webhelyedet, és azzal a felhasználónévvel és alkalmazásjelszóval hitelesíts.
4. A kliens magától felfedezi az elérhető képességeket, és a nevedben futtatja őket.

Az ügynök mindig csak azt teheti, amit az a felhasználó. A hatókör szűkítéséhez korlátozott szerepkörű felhasználóként csatlakoztasd. A beépített, egyszerűbb csatlakoztatást az [MCP-szerver](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/ai-mcp-szerver/) fejezete írja le.

## Elérhető képességek

### SEOPress (ingyenes), a `seopress` kategóriában

| Képesség | Mit csinál | Jogosultság |
|---|---|---|
| `seopress/get-post-title-description` | Egy bejegyzés SEO-címének és meta leírásának olvasása | `edit_post` |
| `seopress/update-post-title-description` | Beállítja vagy törli a bejegyzés SEO-címét és meta leírását | `edit_post` |
| `seopress/get-post-robots-settings` | Az indexelési direktívák olvasása (noindex, nofollow, canonical…) | `edit_post` |
| `seopress/update-post-robots-settings` | Az indexelési direktívák módosítása | `edit_post` |
| `seopress/get-post-social-settings` | A Facebook- és X-metaadatok olvasása | `edit_post` |
| `seopress/update-post-social-settings` | A közösségi metaadatok módosítása | `edit_post` |
| `seopress/analyze-post-content` | Tartalomelemzés futtatása (pontszám és ellenőrzések) | `edit_post` |
| `seopress/get-global-titles-settings` | Az egész webhelyre érvényes cím- és metasablonok olvasása | `manage_options` |
| `seopress/list-posts-missing-metadata` | Azon bejegyzések, oldalak és egyéni típusok listája, amiknek nincs egyéni SEO-címe és/vagy meta leírása (`missing`: `title`, `description`, `any` vagy `both`) | `edit_posts` legalább egy nyilvános típuson |
| `seopress/list-posts-by-content-score` | A bejegyzések listája az utolsó tartalomelemzés eredményével (`good`, `needs_improvement`, `not_analyzed`), bejegyzésenként `checks_passed` és `checks_total` értékkel (a figyelmen kívül hagyott ellenőrzések nélkül) | `edit_posts` legalább egy nyilvános típuson |
| `seopress/list-posts-noindexed` | A kifejezett noindex direktívával rendelkező bejegyzések listája | `edit_posts` legalább egy nyilvános típuson |
| `seopress/get-sitemap-settings` | Az XML- és HTML-webhelytérkép beállításainak olvasása | `manage_options` |
| `seopress/get-instant-indexing-settings` | Az azonnali indexelés beállításai és naplója; az API-kulcsokat sosem adja vissza, csak azt, hogy be vannak-e állítva | `manage_options` |
| `seopress/get-global-social-settings` | Az egész webhelyre érvényes közösségi és Tudásgráf-beállítások olvasása | `manage_options` |

A három `list-posts-*` képesség csak azokat a bejegyzéseket adja vissza, amiket a csatlakozott felhasználó olvashat, alapból 20-at laponként (`per_page` legfeljebb 100, a `page` a lapozáshoz).

### SEOPress (ingyenes), taxonomiatagok, ugyanabban a `seopress` kategóriában

| Képesség | Mit csinál | Jogosultság |
|---|---|---|
| `seopress/get-term-title-description` | A tag egyéni SEO-címének és meta leírásának olvasása (üres, ha a globális sablon érvényes) | `edit_term` |
| `seopress/update-term-title-description` | Beállítja vagy törli a tag SEO-címét és/vagy meta leírását. Az üres szöveg törli az értéket, és újra a globális sablon érvényes | `edit_term` |
| `seopress/get-term-robots-settings` | A tag indexelési direktívái (noindex, nofollow, nosnippet, noimageindex, canonical URL) | `edit_term` |
| `seopress/update-term-robots-settings` | Módosítja a tag direktíváit. A globális beállítás által kikényszerített direktívát nem írja, hanem a `skipped` mezőben jelzi | `edit_term` |
| `seopress/get-term-social-settings` | A tag Facebook (Open Graph) és X címe, leírása és képe | `edit_term` |
| `seopress/update-term-social-settings` | Módosítja ezeket; a kép médiatár-azonosítóval vagy URL-lel adható meg | `edit_term` |
| `seopress/list-terms-missing-metadata` | Azon tagok listája, amiknek nincs egyéni SEO-címe és/vagy meta leírása, szükség esetén csak bizonyos taxonomiákra (`taxonomy`, például `["product_cat"]`) | Jogosultság legalább egy támogatott taxonomia tagjainak kezelésére |

A taxonomiatag-képességek `term_id`-t várnak, és ugyanazokat a mezőket olvassák és írják, mint a tag szerkesztőképernyőjének SEO-metaboxa. Bármely nyilvános taxonomián működnek, kivéve ha ott be van kapcsolva a **Disable SEO metabox** (SEO → Titles & Metas → Taxonomies). A lista csak azokat a tagokat adja vissza, amiket a felhasználó kezelhet, alapból 20-at laponként (`per_page` legfeljebb 100).

### SEOPress PRO, ugyanabban a `seopress` kategóriában

| Képesség | Mit csinál | Jogosultság |
|---|---|---|
| `seopress/list-redirections` | Átirányítások és észlelt 404-esek listája | `read_redirection` |
| `seopress/get-redirection` | Egy átirányítás lekérése azonosító alapján | `read_redirection` |
| `seopress/create-redirection` | Átirányítás létrehozása (301/302/307/410/451) | `publish_redirections` |
| `seopress/update-redirection` | Átirányítás módosítása | `edit_redirection` |
| `seopress/delete-redirection` | Átirányítás törlése | `delete_redirection` |
| `seopress/get-post-schemas` | A bejegyzés strukturált adatainak (séma) olvasása | `edit_post` |
| `seopress/update-post-schemas` | A bejegyzés strukturált adatainak cseréje | `edit_post` |
| `seopress/update-target-keywords` | A tartalomelemzéshez használt célkulcsszavak beállítása | `edit_post` |
| `seopress/generate-seo-title` | AI-val optimalizált SEO-cím generálása | `edit_post` |
| `seopress/generate-meta-description` | AI-val optimalizált meta leírás generálása | `edit_post` |
| `seopress/generate-alt-text` | AI alternatív szöveg, képaláírás és leírás egy képhez; a javaslatot visszaadja, nem menti | `edit_post` a képen |
| `seopress/generate-term-seo-title` | AI-val optimalizált SEO-cím egy taxonomiatagnak; visszaadja, nem menti | `edit_term` |
| `seopress/generate-term-meta-description` | AI-val optimalizált meta leírás egy taxonomiatagnak; visszaadja, nem menti | `edit_term` |
| `seopress/upload-image` | Külső kép letöltése a médiatárba | `upload_files` (és `edit_post`, ha `post_id` meg van adva) |
| `seopress/get-technical-audit` | A webhely műszaki auditja (feltérképezési hibák és súlyosságuk) | `manage_options` |

Az AI-képességek (`generate-*`) beállított AI-szolgáltatót vagy SEOPress AI-krediteket igényelnek. Követik a **SEO → Advanced → Security** oldalon beállított AI-generálási szerepköröket is: az a szerepkör, amelynek ott nincs engedélye, itt sem használhatja őket. A taxonomiatag-javaslat mentéséhez add át a `seopress/update-term-title-description` képességnek.

### SEOPress Insights, ugyanabban a `seopress` kategóriában

| Képesség | Mit csinál | Jogosultság |
|---|---|---|
| `seopress/get-insights-dashboard` | Az Insights vezérlőpultja: KPI-összefoglaló, helyezési trend, kulcsszómozgások, pozíció-eloszlás, kedvenc kulcsszavak és a visszamutató linkek összegzése | `seopress_insights_manage_dashboard` |
| `seopress/get-keyword-rankings` | A követett kulcsszavak pozíciói, változatai, keresési volumene és diagramadatai | `seopress_insights_manage_rankings` |
| `seopress/get-competitor-rankings` | A versenytársak pozíciói a tieid mellett | `seopress_insights_manage_rankings` |
| `seopress/list-backlinks` | A visszamutató linkjeid Majestic Citation Flow és Trust Flow értékekkel | `seopress_insights_manage_backlinks` |

Az Insights-képességek csak olvasnak: az ügynök elemezheti a monitorozási adataidat, de nem módosíthatja. A vezérlőpult- és helyezés-képességek elfogadnak egy `start_date` és `end_date` paramétert (Unix-időbélyeg), valamint egy `keyword_ids` tömböt az eredmény szűkítésére. Az Insights jogosultságai ugyanazok, amelyek az Insights képernyőihez való hozzáférést szabályozzák.

## Fejlesztőknek

Három REST-útvonal áll rendelkezésre:

- `GET /wp-json/wp-abilities/v1/abilities`: az összes képesség listája,
- `GET /wp-json/wp-abilities/v1/abilities/<név>`: egy képesség definíciója,
- `…/abilities/<név>/run`: egy képesség futtatása.

A WordPress a képesség annotációi alapján írja elő a HTTP-metódust:

- csak olvasó képességek: GET,
- romboló és idempotens képességek (módosítás, törlés): DELETE,
- minden más (létrehozás): POST.

A képesség bemenete mindig az `input` kulcs alatt megy. GET és DELETE esetén lekérdezési paraméterként (`?input[post_id]=123`), POST esetén JSON-törzsben (`{"input": {…}}`). A lista végpont minden képességhez megadja a pontos `run` URL-t, így az MCP-kliensek maguktól a helyes metódust választják.

```bash
# Az összes képesség listája
curl https://example.com/wp-json/wp-abilities/v1/abilities \
--user "FELHASZNALO:ALKALMAZASJELSZO"

# Egy bejegyzés SEO-címe és meta leírása (GET, csak olvasás)
curl -g "https://example.com/wp-json/wp-abilities/v1/abilities/seopress/get-post-title-description/run?input[post_id]=123" \
--user "FELHASZNALO:ALKALMAZASJELSZO"

# A meta leírás nélküli termékkategóriák (GET, csak olvasás)
curl -g "https://example.com/wp-json/wp-abilities/v1/abilities/seopress/list-terms-missing-metadata/run?input[taxonomy][]=product_cat&input[missing]=description" \
--user "FELHASZNALO:ALKALMAZASJELSZO"

# A 15-ös tag SEO-címének beállítása (DELETE, romboló és idempotens)
curl -g -X DELETE "https://example.com/wp-json/wp-abilities/v1/abilities/seopress/update-term-title-description/run?input[term_id]=15&input[title]=Kerti+szerszamok" \
--user "FELHASZNALO:ALKALMAZASJELSZO"

# Átirányítás létrehozása (POST)
curl -X POST https://example.com/wp-json/wp-abilities/v1/abilities/seopress/create-redirection/run \
--user "FELHASZNALO:ALKALMAZASJELSZO" \
-H "Content-Type: application/json" \
-d '{"input":{"origin":"/regi-url/","destination":"/uj-url/","type":"301"}}'

# Átirányítás törlése (DELETE, romboló és idempotens)
curl -g -X DELETE "https://example.com/wp-json/wp-abilities/v1/abilities/seopress/delete-redirection/run?input[id]=42" \
--user "FELHASZNALO:ALKALMAZASJELSZO"
```

## Jogosultságok és biztonság

- A képességek alapból ki vannak kapcsolva, egyetlen kapcsolóval engeded be őket.
- Minden hívás a hitelesített felhasználóként fut, és újra ellenőrzi a WordPress-jogosultságait. Az ügynök nem léphet túl rajtuk.
- A bejegyzésenkénti képességekhez `edit_post` kell a célbejegyzésen, a taxonomiatagokhoz `edit_term` a célon, a globális beállításokhoz `manage_options`.
- A bejegyzés vagy tag SEO-beállításait módosító képességek (`update-post-*`, `update-term-*`) elutasítják azt a szerepkört, amelyet a **SEO → Advanced → Security → SEO metaboxes: blocked roles** résznél bejelöltél, ahogy az SEO-metabox és a REST API is. Az olvasás megengedett marad.
- Az AI-képességek az ugyanazon fül AI-generálási szerepköreit is ellenőrzik.
- Használj alkalmazásjelszót, és a legkisebb jogosultságú felhasználóként csatlakoztasd az ügynököket.

## Gyakori kérdések

**Kell hozzá a SEOPress PRO?** Nem. Az ingyenes bővítmény már 21 képességet közzétesz a bejegyzésekhez, taxonomiatagokhoz és a globális beállításokhoz. A PRO hozzáadja az átirányításokat, a strukturált adatokat, a műszaki auditot és az AI-generálást.

**Kérdezés nélkül változtat az ügynök?** REST-en át egy jogosult ügynök azt futtatja, amit kérnek tőle. A szerkesztőben az AI-asszisztens az alkalmazás előtt jóváhagyásra javasolja a módosításokat.

**Egy képesség „not found” hibát ad.** Győződj meg róla, hogy az **Expose abilities to AI agents and external tools** be van kapcsolva, és a csatlakozott felhasználó végezheti a műveletet.

**Egy taxonomiatag-képesség szerint a taxonomia nem támogatott.** A taxonomia nem nyilvános, vagy be van kapcsolva rajta a **Disable SEO metabox** (SEO → Titles & Metas → Taxonomies). A tagképességek csak ott működnek, ahol a tag szerkesztőképernyőjén elérhető a SEO-metabox.
