# SEOPress MCP-szerver: Claude, ChatGPT és Cursor csatlakoztatása

> A beépített MCP-szerver bekapcsolása, AI-kliensek csatlakoztatása OAuth-tal vagy alkalmazásjelszóval, az eszközök listája, biztonság és hibaelhárítás.

Az MCP (Model Context Protocol) az a nyílt szabvány, amellyel az AI-asszisztensek külső eszközökkel beszélgetnek. A SEOPress beépített MCP-szervert tartalmaz: ha a webhelyed csatlakoztatva van, a Claude, a ChatGPT, a Cursor vagy bármely más MCP-kliens közvetlenül egy beszélgetésből olvashatja és kezelheti a SEO-adataidat: címeket, meta leírásokat, robots-direktívákat, közösségi metaadatokat, tartalomelemzést, átirányításokat, strukturált adatokat. A taxonomiatagokat is (kategóriák, címkék, termékkategóriák, egyéni taxonomiák).

Az MCP-szerver az ingyenes SEOPressben is benne van, a SEOPress PRO további eszközöket ad hozzá. Nincs extra bővítmény, nincs közbeeső külső szolgáltatás és nincs fizetendő API-kulcs: az AI-kliens közvetlenül a webhelyeddel beszél.

## Mit tehetsz vele?

Néhány kérés, amit a csatlakoztatás után az AI-kliensedbe írhatsz:

- „Listázd azokat az oldalakat, amiknek nincs meta leírása, és írj mindegyikhez egyet.”
- „Melyik bejegyzések vannak noindexre állítva? Mondd meg, ha valamelyik hibásnak tűnik.”
- „Futtasd a tartalomelemzést a 123-as bejegyzésen a »wordpress seo« kulcsszóra, és mondd meg, mit javítsak.”
- „Írd át a 10 legutóbbi bejegyzésem SEO-címét úgy, hogy 60 karakter alatt maradjanak.”
- „Listázd a meta leírás nélküli termékkategóriákat, és írj mindegyikhez egyet.”
- „Hozz létre 301-es átirányítást a /regi-oldal/ címről a /uj-oldal/ címre.” (SEOPress PRO)
- „Futtasd le a webhely műszaki auditját, és foglald össze a hibákat fontosság szerint.” (SEOPress PRO)

Az asszisztens maga választja ki a megfelelő eszközöket. Te azt szabályozod, mit tehet (lásd lent).

## Követelmények

- A SEOPress és a SEOPress PRO naprakész változata (a PRO-eszközökhöz és a taxonomiatagokra vonatkozó AI-javaslatokhoz is).
- WordPress 6.9 vagy újabb: az MCP-szerver a WordPress Abilities API-ra épül (lásd a [képességekről szóló fejezetet](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/ai-abilities/)).
- HTTPS-en kiszolgált webhely. A felhőben futó kliensek (claude.ai, chatgpt.com) nyilvános HTTPS-címet igényelnek.
- Egy WordPress-felhasználói fiók, amelynek meg vannak a jogosultságai ahhoz, amit az asszisztens csináljon.

A helyi webhelyek (`localhost`, `127.0.0.1`, `*.localhost`) HTTPS nélkül is működnek a saját gépeden futó kliensekkel: Claude Code, a Claude asztali alkalmazás és a Cursor. A claude.ai és a chatgpt.com a saját szervereiken fut, a helyi webhelyet nem látják.

## 1. lépés: az MCP-szerver bekapcsolása

Az MCP-szerver alapból ki van kapcsolva, amíg be nem kapcsolod, semmi nincs közzétéve.

1. Menj a **SEO → Advanced** oldalra, az **Advanced** fülre.
2. Az **Abilities API** részben kapcsold be az **Expose abilities to AI agents and external tools** kapcsolót.
3. Kattints a **Save changes** gombra.
4. Nyisd meg ugyanezen az oldalon az **MCP** fület.

Az MCP fül mindent megmutat, ami kell: a kapcsolat állapotát, a készenléti ellenőrzéseket, az MCP-szerver URL-jét, az egyes kliensek útmutatóját, a hibaelhárítási részt, a csatlakozott klienseket és az eszközök listáját.

![A SEO → Advanced → MCP fül: figyelmeztetés a kikapcsolt kitettségre, az MCP-szerver URL-je és a Claude-útmutató](./kepek/ai-mcp-ful.webp)

*A SEO → Advanced → MCP fül: figyelmeztetés a kikapcsolt kitettségre, az MCP-szerver URL-je és a Claude-útmutató* (https://minta-bolt.hu/wp-admin/admin.php?page=seopress-advanced)

A képen a kitettség még ki van kapcsolva, ezért a fül figyelmeztet, hogy a végpont minden kérést elutasít, és hivatkozik a bekapcsoló beállításra.

Az MCP fül a SEO vezérlőpultról is megnyitható (**SEO → Dashboard**, **SEO modules**, **Technical** csoport, **MCP Server** kártya, **Settings** hivatkozás). Ennek a kártyának nincs be- és kikapcsolója: a szervert a fenti **Expose abilities to AI agents and external tools** beállítás kapcsolja.

Az MCP-szerver URL-je így néz ki:

```
https://example.com/wp-json/seopress/mcp/v1
```

Ha a közvetlen hivatkozások **Alap** szerkezetűek, az URL a lekérdezési formát használja (`https://example.com/?rest_route=/seopress/mcp/v1`). Ez is működik: pontosan úgy másold, ahogy az MCP fül mutatja.

## 2. lépés: az AI-kliens csatlakoztatása

Az MCP fül **Connection** részében válaszd ki a klienst: Claude, ChatGPT vagy Cursor. Mindegyik másképp állítandó be, ezért csak a választott kliens útmutatója látszik, és mindegyiknél van egy **How it signs in:** sor is, ami megmondja, mire van szüksége a webhelytől.

Ha a webhelyed képes OAuth-ra, minden kliens így lép be: beillesztesz egy URL-t, a böngésződ megnyitja a saját webhelyedet, belépsz a WordPressbe, és jóváhagyod a kapcsolatot. Nem kell jelszót vagy API-kulcsot létrehozni vagy másolni. Ha a webhelyed nem tud OAuth-ot futtatni, a Claude és a Cursor fül magától áttér az alkalmazásjelszóra (lásd lent).

### Claude (claude.ai, asztali alkalmazás, Claude Code)

A Claude csevegőalkalmazásként (claude.ai vagy a gépedre telepítve) és Claude Code-ként (terminálban) létezik. A Claude fülön mindegyiknek külön blokkja van. A claude.ai és az asztali alkalmazás Connectors képernyője az Anthropic szerveréről csatlakozik, ezért a webhelynek nyilvános HTTPS-cím kell. A Claude Code a saját gépedről lép be.

**claude.ai és a Claude asztali alkalmazás**

1. Nyisd meg a **Settings → Connectors** oldalt, majd az **Add custom connector** gombot.
2. Illeszd be az MCP-szerver URL-jét. Minden más mezőt hagyj üresen: a webhelyed maga regisztrálja a klienst, és megmondja neki, hol lépjen be.
3. A böngésződ a webhelyedre kerül. Ha kell, jelentkezz be a WordPressbe, majd hagyd jóvá a kapcsolatot.

**Claude Code (terminál)**

Futtasd az MCP fülön látható parancsot egy terminálban. Így néz ki:

```bash
claude mcp add --transport http --scope user SEOPress "https://example.com/wp-json/seopress/mcp/v1"
```

Ezután indítsd el a Claude Code-ot, írd be, hogy `/mcp`, válaszd a SEOPress pontot, és lépj be a webhelyedre a megnyíló böngészőablakban.

### ChatGPT

A ChatGPT csak OAuth-tal lép be: alkalmazásjelszót nem használhat. A chatgpt.com az OpenAI szervereiről csatlakozik, ezért nyilvános HTTPS-cím kell. A ChatGPT fül külön lépéseket ad az asztali alkalmazáshoz és a chatgpt.com-hoz.

**A ChatGPT asztali alkalmazás**

1. Nyisd meg a **Settings** oldalt, ott az **Integrations** alatt a **Plugins** pontot. Kattints az **Add** gombra, és válaszd az **Add MCP server** lehetőséget.
2. Adj neki nevet, válaszd a **Streamable HTTP** típust, illeszd be az MCP-szerver URL-jét, és mentsd. A bearer token és a fejlécmezők maradjanak üresek: a webhelyed magától OAuth-tal lépteti be a kapcsolatot.
3. Kattints a szerver melletti **Authenticate** gombra, lépj be a webhelyedre, és hagyd jóvá a kapcsolatot.

**chatgpt.com**

1. Az egyéni MCP-szerverek csak fejlesztői módban jelennek meg. Nyisd meg a **Settings** oldalt, és kapcsold be a **Developer mode** beállítást a biztonsági és bejelentkezési részben.
2. A **Plugins** oldalról nyisd meg az egyéni bővítményt létrehozó űrlapot: a fiókodtól függően egy **+** gomb, vagy a **Browse directory**, majd az **Add**.
3. Töltsd ki egy névvel és az MCP-szerver URL-jével mint szerver-URL-lel, a hitelesítés maradjon OAuth, erősítsd meg a kockázati figyelmeztetést, és hozd létre.
4. Amikor a böngésződ a webhelyedre kerül, lépj be, és hagyd jóvá a kapcsolatot.

### Cursor

A Cursor az MCP-szervereit egy JSON-fájlból olvassa, amit te szerkesztesz. Az első használatkor OAuth-tal léptet be, ezért előre nem kell semmit létrehozni.

1. Nyisd meg vagy hozd létre a `.cursor/mcp.json` fájlt (csak ehhez a projekthez) vagy a `~/.cursor/mcp.json` fájlt (minden projekthez).
2. Add hozzá az alábbi SEOPress-szervert. Ha a fájlban már van `mcpServers` objektum, a `SEOPress` bejegyzést tedd bele, ne írd felül a fájlt.

```json
{
    "mcpServers": {
        "SEOPress": {
            "type": "http",
            "url": "https://example.com/wp-json/seopress/mcp/v1"
        }
    }
}
```

Indítsd újra a Cursort, nyisd meg a **Settings → Customize → MCPs** oldalt, kattints a SEOPress melletti **Authenticate** gombra, és hagyd jóvá a kapcsolatot.

### Ha a webhelyed nem tud OAuth-ot használni

Az OAuth nem működik, ha a webhely nem HTTPS-en fut (a helyi webhelyek kivételével), ha az OAuth-szerver ki van kapcsolva, vagy ha a tárhelyed a `/.well-known/` felfedezési címekre maga válaszol ahelyett, hogy a WordPressnek továbbadná. Az MCP fül a készenléti ellenőrzések eredményét figyelembe véve igazítja a kliensfüleket:

- A ChatGPT, a claude.ai és a Claude asztali alkalmazás Connectors képernyője nem tud csatlakozni. A fülükön látszik, mi hiányzik és mit kell javítani.
- A Claude Code, a Claude asztali alkalmazás és a Cursor továbbra is működik: ezek a saját gépeden futnak, és alkalmazásjelszót küldenek helyette. A Claude és a Cursor fül ilyenkor ehhez az módhoz mutat konfigurációkat.

**Az alkalmazásjelszó létrehozása**

A Claude vagy a Cursor fülön adj nevet a jelszónak (a **Name** mező alapértéke `SEOPress MCP`, ezen a néven szerepel a profilodon), és kattints a **Create an Application Password** gombra. A WordPress létrehozza a fiókodhoz, a fül konfigurációi pedig maguktól kitöltődnek vele: nincs mit kicserélni. A jelszó egyszer látszik, a SEOPress soha nem tárolja, ezért az oldal újratöltése előtt másold ki, ami kell.

Ha már a profilodból létrehoztál alkalmazásjelszót, addig, amíg a fülön nem készítesz egyet, a konfigurációkban a `BASE64_OF_USERNAME_COLON_APPLICATION_PASSWORD` helyőrző áll. A fül ad egy parancsot, ami elkéri a jelszavad, és kiírja a helyére illesztendő Base64-et. macOS-en vagy Linuxon terminálban futtasd (a fül a `USERNAME` helyére a saját felhasználónevedet írja):

```bash
read -rsp 'Application password: ' SEOPRESS_PW && printf '%s' "USERNAME:$SEOPRESS_PW" | base64 && unset SEOPRESS_PW
```

Windowson PowerShellben ezt:

```powershell
$pw = Read-Host 'Application password' -AsSecureString; [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('USERNAME:' + [Net.NetworkCredential]::new('', $pw).Password)); Remove-Variable pw
```

**Claude asztali alkalmazás**

Az asztali alkalmazás konfigurációs fájlja csak a saját gépeden futó szervereket indítja, ezért a webhelyedet az `mcp-remote` nevű kis hídon át éri el, amihez Node.js kell.

1. Telepítsd a Node.js-t (az LTS verziót a nodejs.org-ról), ha még nincs a gépeden. A híd az vele jövő `npx`-szel fut.
2. Az asztali alkalmazásban nyisd meg a **Settings**, majd a **Developer** oldalt, és kattints az **Edit Config** gombra. Ez megmutatja a `claude_desktop_config.json` fájlt: nyisd meg szövegszerkesztőben. A fájl macOS-en a `~/Library/Application Support/Claude/`, Windowson a `%APPDATA%\Claude\`, Linuxon a `~/.config/Claude/` mappában van.
3. Illeszd be az MCP fül konfigurációját. Ha a fájlban már van `mcpServers` objektum, a `SEOPress` bejegyzést tedd bele, ne írd felül a fájlt.
4. Lépj ki teljesen az alkalmazásból, majd nyisd meg újra: az ablak bezárása nem állítja le. macOS-en a Claude menüben válaszd a **Quit Claude** pontot, Windowson jobb gombbal a tálcán lévő Claude-ikonra, és **Quit**.
5. Nyisd meg újra a **Settings → Developer** oldalt: a SEOPressnek futóként kell szerepelnie. Ha hibát mutat, az onnan megnyitható napló megmondja az okot.

A konfiguráció így néz ki:

```json
{
    "mcpServers": {
        "SEOPress": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote",
                "https://example.com/wp-json/seopress/mcp/v1",
                "--header",
                "Authorization:${AUTH_HEADER}"
            ],
            "env": {
                "AUTH_HEADER": "Basic BASE64_OF_USERNAME_COLON_APPLICATION_PASSWORD"
            }
        }
    }
}
```

**Claude Code (terminál)**

A Claude Code maga küldi az alkalmazásjelszót, ezért nem kell híd. Futtasd az MCP fülön látható parancsot:

```bash
claude mcp add --transport http --scope user SEOPress "https://example.com/wp-json/seopress/mcp/v1" --header "Authorization: Basic BASE64_OF_USERNAME_COLON_APPLICATION_PASSWORD"
```

Indítsd el a Claude Code-ot, és írd be: `/mcp`. A SEOPressnek csatlakozottként kell szerepelnie.

**Cursor**

Illeszd be a Cursor fül konfigurációját a `.cursor/mcp.json` vagy a `~/.cursor/mcp.json` fájlba, a fentiek szerint. A jelszót egy fejlécben viszi:

```json
{
    "mcpServers": {
        "SEOPress": {
            "type": "http",
            "url": "https://example.com/wp-json/seopress/mcp/v1",
            "headers": {
                "Authorization": "Basic BASE64_OF_USERNAME_COLON_APPLICATION_PASSWORD"
            }
        }
    }
}
```

Indítsd újra a Cursort, és a **Settings → Customize → MCPs** oldalon a SEOPressnek az eszközeivel együtt kell szerepelnie.

### Más MCP-kliensek

Bármely kliens csatlakozhat, amelyik támogatja a Streamable HTTP átvitelt. Ha támogatja az OAuth-ot, add meg neki az MCP-szerver URL-jét, és megtalálja a belépési oldalt. Ha nem, hitelesíthetsz WordPress-alkalmazásjelszóval, egy Basic `Authorization` fejlécben, ahogy a fenti Cursor-konfigurációban:

```json
{
    "mcpServers": {
        "SEOPress": {
            "type": "http",
            "url": "https://example.com/wp-json/seopress/mcp/v1",
            "headers": {
                "Authorization": "Basic BASE64_OF_USERNAME_COLON_APPLICATION_PASSWORD"
            }
        }
    }
}
```

A fejléc értéke a `Basic`, egy szóköz, majd a felhasználóneved, egy kettőspont és az alkalmazásjelszó Base64-kódolása. A fenti Base64-parancsok ezt az értéket írják ki.

### A jóváhagyó képernyő: csak olvasás vagy olvasás és módosítás

Ha egy kliens OAuth-tal csatlakozik, a webhelyed egy jóváhagyó képernyőt mutat. Látszik rajta, melyik kliens kéri, melyik WordPress-fiókként fog eljárni, és milyen eszközöket kap. Itt döntöd el, mit tehet a kapcsolat:

- **Read and change**: minden eszköz elérhető.
- **Read only**: csak az adatot olvasó eszközök érhetők el. A módosító eszközök nem is jelennek meg ennek a kapcsolatnak, és névre szóló hívásnál is elutasítódnak.

Az **Allow this connection** gombbal fejezd be, a **Refuse** gombbal mégsem. A kliens maga választja a nevét a regisztrációkor, és ezt semmi nem ellenőrzi. Csak olyan kapcsolatot hagyj jóvá, amit épp az imént indítottál.

## 3. lépés: ellenőrzés

Kérdezd meg az asszisztensedet, milyen eszközei vannak. Az MCP fül **Exposed tools** részében látható eszközöket kell felsorolnia.

Ha semmi nem jelenik meg, nyisd meg az MCP fül tetején a **Diagnostics** panelt, és kattints a **Run the readiness checks** gombra. Minden sárga vagy piros sor megmondja, mit kell megváltoztatni a webhelyeden. Egy kék sor azt jelenti, hogy az eredmény a webhelyed beállításai mellett várt, és nincs mit javítani.

## Elérhető eszközök

Az eszközök neve `seopress__` előtagot kap. Például a `seopress/get-post-title-description` képesség `seopress__get-post-title-description` eszközként érhető el.

### SEOPress (ingyenes)

| Eszköz | Mit csinál | Hozzáférés | Ki használhatja |
|---|---|---|---|
| `get-post-title-description` | Egy bejegyzés egyéni SEO-címének és meta leírásának olvasása | Csak olvas | Aki szerkesztheti a bejegyzést |
| `update-post-title-description` | A SEO-cím és meta leírás beállítása vagy törlése | Módosít | Aki szerkesztheti a bejegyzést, ha a szerepköre nincs a SEO-metaboxokból tiltva |
| `get-post-robots-settings` | A bejegyzés robots-direktívái (noindex, nofollow, canonical URL, elsődleges kategória…) | Csak olvas | Aki szerkesztheti a bejegyzést |
| `update-post-robots-settings` | A robots-direktívák módosítása | Módosít | Mint fent |
| `get-post-social-settings` | A bejegyzés Facebook/Open Graph és X/Twitter metaadatai | Csak olvas | Aki szerkesztheti a bejegyzést |
| `update-post-social-settings` | Ezek módosítása | Módosít | Mint fent |
| `analyze-post-content` | Tartalomelemzés: pontszám, ellenőrzések, javaslatok | Csak olvas | Aki szerkesztheti a bejegyzést |
| `list-posts-missing-metadata` | Egyéni SEO-cím és/vagy meta leírás nélküli bejegyzések | Csak olvas | Aki szerkeszthet bejegyzéseket |
| `list-posts-by-content-score` | Bejegyzések az utolsó tartalomelemzés eredményével | Csak olvas | Aki szerkeszthet bejegyzéseket |
| `list-posts-noindexed` | Kifejezett noindex direktívájú bejegyzések | Csak olvas | Aki szerkeszthet bejegyzéseket |
| `get-term-title-description` | Taxonomiatag (kategória, címke, termékkategória…) egyéni SEO-címe és meta leírása | Csak olvas | Aki szerkesztheti a tagot |
| `update-term-title-description` | A tag SEO-címének és meta leírásának beállítása vagy törlése | Módosít | Aki szerkesztheti a tagot, ha a szerepköre nincs tiltva |
| `get-term-robots-settings` | A tag robots-direktívái (noindex, nofollow, nosnippet, noimageindex, canonical URL) | Csak olvas | Aki szerkesztheti a tagot |
| `update-term-robots-settings` | A tag direktíváinak módosítása; a globálisan kikényszerített direktívát nem írja | Módosít | Mint fent |
| `get-term-social-settings` | A tag Facebook/Open Graph és X/Twitter címe, leírása és képe | Csak olvas | Aki szerkesztheti a tagot |
| `update-term-social-settings` | Ezek módosítása | Módosít | Mint fent |
| `list-terms-missing-metadata` | Egyéni SEO-cím és/vagy meta leírás nélküli tagok | Csak olvas | Aki kezelheti a taxonomia tagjait (csak azok jelennek meg) |
| `get-global-titles-settings` | A webhely cím- és meta leírás-sablonjai | Csak olvas | Aki kezelheti a Titles & Metas beállításokat |
| `get-sitemap-settings` | Az XML- és HTML-webhelytérkép beállításai | Csak olvas | Aki kezelheti az XML / HTML Sitemap beállításokat |
| `get-instant-indexing-settings` | Az azonnali indexelés beállításai és beküldési naplója; az API-kulcsokat sosem adja vissza | Csak olvas | Aki kezelheti az Instant Indexing beállításokat |
| `get-global-social-settings` | A Tudásgráf és az alap közösségi beállítások | Csak olvas | Aki kezelheti a Social Networks beállításokat |

A tageszközök a nyilvános taxonomiákon működnek, ha a SEO-metaboxuk engedélyezett. Az a taxonomia, ahol a **Disable SEO metabox** be van jelölve (SEO → Titles & Metas, Taxonomies fül), elutasításra kerül.

### SEOPress PRO

| Eszköz | Mit csinál | Hozzáférés | Ki használhatja |
|---|---|---|---|
| `list-redirections` | Átirányítások és észlelt 404-esek lapozással, kereséssel és szűrőkkel | Csak olvas | Aki olvashat átirányításokat |
| `get-redirection` | Egy átirányítás olvasása | Csak olvas | Aki olvashat átirányításokat |
| `create-redirection` | Átirányítás létrehozása egy forrás URL-ről egy célra | Módosít | Aki közzétehet átirányításokat |
| `update-redirection` | Meglévő átirányítás módosítása | Módosít | Aki szerkesztheti az átirányítást |
| `delete-redirection` | Átirányítás végleges törlése | Módosít | Aki törölheti az átirányítást |
| `get-post-schemas` | A bejegyzés kézi strukturált adatainak (schema.org) olvasása | Csak olvas | Aki szerkesztheti a bejegyzést |
| `update-post-schemas` | A bejegyzés kézi strukturált adatainak cseréje | Módosít | Aki szerkesztheti a bejegyzést |
| `update-target-keywords` | A bejegyzés célkulcsszavainak frissítése | Módosít | Aki szerkesztheti a bejegyzést |
| `generate-seo-title` | SEO-cím javaslat AI-val; nem menti | Csak olvas | Aki szerkesztheti a bejegyzést, ha a szerepköre használhat AI-generálást |
| `generate-meta-description` | Meta leírás javaslat AI-val; nem menti | Csak olvas | Mint fent |
| `generate-term-seo-title` | SEO-cím javaslat egy tagnak AI-val; nem menti, mentés az `update-term-title-description` eszközzel | Csak olvas | Aki szerkesztheti a tagot, ha a szerepköre használhat AI-generálást |
| `generate-term-meta-description` | Meta leírás javaslat egy tagnak AI-val; nem menti | Csak olvas | Mint fent |
| `generate-alt-text` | Alternatív szöveg és képaláírás egy képhez AI-val; nem menti | Csak olvas | Aki szerkesztheti a képet, ha a szerepköre használhat AI-generálást |
| `upload-image` | Kép letöltése URL-ről a médiatárba | Módosít | Aki feltölthet fájlokat (és szerkesztheti a bejegyzést, ha a kép hozzá csatolódik) |
| `get-technical-audit` | A webhely műszaki ellenőrzései, strukturált ellenőrzőlistaként | Csak olvas | Aki kezelheti a SEOPress PRO audit-eszközeit |

A beállítások és audit-eszközök alapértelmezetten adminisztrátoroknak vannak fenntartva. Az öt `generate-*` eszköz a SEOPress PRO-ban beállított AI-szolgáltatót használja.

Az MCP-eszközök a **SEO → Advanced → Security** fül szerepkör-korlátozásait is követik, ahogy a WordPress admin:

- A **SEO metaboxes: blocked roles** résznél bejelölt szerepkör nem használhatja a bejegyzés vagy tag SEO-beállításait módosító eszközöket, de az olvasókat igen.
- SEOPress PRO-nál, ha az **AI-generálás** alatt szerepköröket jelölsz be, a `generate-*` eszközöket csak ezek a szerepkörök (és az adminisztrátorok) használhatják.

## Biztonság és jogosultságok

Az MCP-szervert úgy tervezték, hogy egy AI-kliens csatlakoztatása soha ne adjon neki több jogot, mint amennyi neked van.

- **Alapból kikapcsolt.** A végpont minden kérést elutasít, amíg be nem kapcsolod a kitettséget.
- **A te jogosultságaid, soha nem több.** A kapcsolat azon a WordPress-fiókon jár el, amelyik jóváhagyta. Minden eszközhívás ugyanazokon a jogosultság-ellenőrzéseken megy át, mint a WordPress admin, a Security fül szerepkör-korlátozásaival együtt. Egy Szerkesztő MCP-n át nem olvashatja az adminisztrátoroknak fenntartott SEOPress-beállításokat, egy Szerző pedig nem szerkesztheti más bejegyzését.
- **Csak olvasó kapcsolatok.** A jóváhagyó képernyőn választható, és a szerver a kapcsolat teljes élettartama alatt kikényszeríti.
- **Csak SEOPress-eszközök.** A szerver csak SEOPress-képességeket szolgál ki. Más bővítmények képességeit visszatartja, hacsak be nem kapcsolod.
- **Eszközönkénti szabályozás.** Bármelyik eszközt kikapcsolhatod az egész webhelyen.
- **Egyetlen titok sem hagyja el a webhelyet.** A SEOPress beállításaiban tárolt API-kulcsokat eszköz soha nem adja vissza. Az MCP fülről létrehozott alkalmazásjelszavak a WordPressből a böngésződbe mennek, a SEOPress soha nem tárolja és naplózza őket.
- **Szabványos OAuth 2.1.** A belépés PKCE-t, dinamikus kliensregisztrációt és a webhelycímhez kötött tokeneket használ. A hozzáférési tokenek egy óráig érvényesek és automatikusan megújulnak. Az a kapcsolat, amit 30 napig nem használtál, újra be kell lépnie.
- **Bármikor visszavonható.** Az MCP fülön egy kattintás azonnal megszakít egy klienst.

A módosító eszközök az éles webhelyre mentenek, pont mintha te szerkesztetted volna a bejegyzést. Kérd meg az asszisztenst, hogy módosítás előtt mutassa meg, mit tervez, és csak olvasó kapcsolatot használj, ha csak auditra van szükséged.

## A kapcsolat kezelése

### Csatlakozott kliensek

Az MCP fül **Connected clients** része felsorol minden klienst, amelynek tokenje van a fiókodhoz: a nevét, mire kapott jóváhagyást (csak olvasás vagy olvasás és módosítás), mikor csatlakozott és mikor használták utoljára. A **Revoke** gombbal megszakíthatsz egyet, a hatás azonnali.

Minden felhasználó csak a saját kapcsolatait látja és vonhatja vissza. Egy fiókhoz legfeljebb 25 kapcsolat tartozhat.

Ha megváltoztatod a webhelycímet, a régi címre kiadott kapcsolatok „No longer valid” jelölést kapnak: vond vissza őket, és csatlakozz újra.

Ez a lista csak az OAuth-kapcsolatokat mutatja. Az alkalmazásjelszóval belépő klienst a WordPress-profilodból vonhatod vissza, az MCP fül **Manage Application Passwords** hivatkozásával.

### Mely eszközök legyenek kiszolgálva

Az **Exposed tools** rész minden eszközt felsorol a hozzáférési szintjével. A sor végén lévő **Served** kapcsolóval kikapcsolhatsz egy eszközt, majd mentsd. A kikapcsolt eszközt egyetlen kliensnek sem listázza a szerver, és hívni sem lehet, bármi is a felhasználó jogosultsága. Ez hasznos, ha egy érzékeny eszközt (például a `delete-redirection`-t) magadnak tartanál.

### Más bővítmények képességei

Más bővítmények is regisztrálhatnak képességeket a WordPressben. A SEOPress MCP-szervere alapból nem szolgálja ki őket, hogy a SEO-eszközök bekapcsolása véletlenül se adjon egy AI-kliensnek más bővítményből eszközöket. Ha ezeket is ki akarod szolgálni, kapcsold be az **Exposed tools** részben az **Also serve abilities registered by other plugins** beállítást. Mentés előtt az MCP fül felsorolja, milyen eszközöket venne fel ez. Olvasd át a listát: egyesek adatot módosíthatnak vagy törölhetnek.

## Hibaelhárítás

A **Diagnostics** panel kilenc ellenőrzést futtat, és minden sikertelennél megmondja, mit kell javítani.

| Ellenőrzés | Ha sikertelen |
|---|---|
| WordPress Abilities API | Frissítsd a WordPresst 6.9-re vagy újabbra. |
| Abilities exposed to external clients | Kapcsold be az **Expose abilities to AI agents and external tools** beállítást az Advanced fülön, és mentsd. |
| MCP route registered | Egy másik bővítmény útvonalakat töröl a WordPress REST API-ból. Engedélyezd a `/seopress/mcp/v1` útvonalat. |
| MCP endpoint answering | Biztonsági bővítmény, tűzfal vagy CDN blokkolja a kérést, vagy a tárhelyed blokkolja a visszahurkoló (loopback) kéréseket. Engedélyezd a POST-kéréseket az MCP-szerver URL-jére. Itt a HTTP 401 válasz várt: az ellenőrzés hitelesítő adatok nélkül hívja a végpontot. |
| Application Passwords | Csak az OAuth-ot nem használó kliensekhez kell. A WordPress csak HTTPS-en kínálja, és egy biztonsági bővítmény kikapcsolhatja. |
| HTTPS | Telepíts TLS-tanúsítványt, és állítsd a WordPress-címet és a webhelycímet `https`-re. |
| Permalinks | Csak figyelmeztetés: az URL lekérdezési formában is működik. Rövidebb URL-hez válassz az Alaptól eltérő szerkezetet. |
| OAuth for browser clients | Az OAuth HTTPS-t (vagy helyi webhelyet) igényel. Ha az OAuth-szervert szándékosan kapcsoltad ki a `seopress_mcp_oauth_enabled` szűrővel, a sor kék: ez várt, ha alkalmazásjelszóval csatlakozol. |
| OAuth discovery document | A szervered nem irányítja a `/.well-known/` kéréseket a WordPressnek. Válassz az Alaptól eltérő közvetlen hivatkozás-szerkezetet. Ha a WordPress almappában van, adj hozzá szabályt, ami továbbítja a `/.well-known/` kéréseket. Egyes tárhelyek maguk válaszolnak ezekre a WordPress előtt: kérd meg a tárhelyedet, hogy a `/.well-known/oauth-protected-resource` és `/.well-known/oauth-authorization-server` címeket adja át a WordPressnek. Addig a Claude és a Cursor fül áttér az alkalmazásjelszóra. |

### Ha az ellenőrzések zöldek, de egy kliens mégsem működik

Az ellenőrzések a webhelyedet magából hívják, ezért egy előtte álló tűzfal vagy CDN nem látja őket. Az MCP fül **Troubleshooting** része a kapcsolati lépések alatt a kliensed üzenetéből indul ki:

- **A claude.ai vagy a ChatGPT elutasítást kap, miközben minden zöld** (például `Dynamic client registration failed: registration endpoint returned 403`). A claude.ai és a ChatGPT a saját szervereikről, böngésző nélkül hívják a webhelyedet, és a botvédelem ezt botnak tekinti. Engedélyezd a GET- és POST-kéréseket a fülön felsorolt Registration, Token és MCP-szerver címekre, bármely IP-címről. Cloudflare-nél nézd meg a Security → Events oldalt: ha a Bot Fight Mode kihívást adott, kapcsold ki (a Free csomagban egyéni WAF-szabály nem ugorhatja át), fizetős csomagnál adj hozzá WAF-szabályt, ami kihagyja a botvédelmet ezekre a címekre. Ezután add hozzá újra a szervert a klienshez.
- **A claude.ai vagy a ChatGPT megtalálja a webhelyet, de nem tud belépni.** A kliens nem tudta elolvasni az OAuth felfedezési dokumentumokat. Nyisd meg a fülön felsorolt két címet a böngészőben: mindkettőnek JSON-nal kell válaszolnia, nem „not found” oldallal. Ha nem, kérd meg a tárhelyedet, hogy adja át őket a WordPressnek.
- **A Claude asztali alkalmazás nem listázza a szervert.** A konfigurációs fájlja csak az általa indított szervereket fogadja el: a `url`-t tartalmazó bejegyzés nem támogatott, és az alkalmazás eldobhatja a fájl összes szerverét. Használd a Claude fül `mcp-remote` konfigurációját, ellenőrizd, hogy a Node.js telepítve van (az `npx --version` verziószámot ír ki), lépj ki teljesen az alkalmazásból és nyisd meg újra, majd olvasd el a szerver naplóját a **Settings → Developer** oldalon.
- **A Claude Code, az asztali alkalmazás vagy a Cursor HTTP 401-et kap.** Az `Authorization` fejléc hibás: a konfigurációban maradt helyőrző, másik fiók felhasználóneve, vagy visszavont jelszó. Hozz létre új alkalmazásjelszót a fülön, vagy futtasd újra a Base64-parancsot, és illeszd be a kimenetét a helyőrző helyére.

További gyakori helyzetek:

- **A kliens csatlakozik, de nem listáz eszközt.** Nézd meg az **Exposed tools** részt, és hogy a WordPress-fiókodnak megvannak-e a szükséges jogosultságai.
- **„This connection was approved for reading only”.** A kapcsolatot csak olvasásra hagyták jóvá. Töröld a kliensben, csatlakozz újra, és válaszd a **Read and change** lehetőséget.
- **„You do not have permission to use this tool”.** A WordPress-fiókodnak nincs meg az eszközhöz szükséges jogosultsága, vagy a szerepköre korlátozva van a Security fülön.
- **Az első kísérletnél hibázik az összekötő.** Nyisd meg a **Connected clients** részben a **Discovery documents** alatt felsorolt két címet. Mindkettőnek JSON-nal kell válaszolnia. Ha nem, biztonsági bővítmény, gyorsítótár vagy szerverszabály van az útban.
- **Gyorsítótár- vagy biztonsági réteg a webhely előtt.** Zárd ki az oldal-gyorsítótárból a `/wp-json/seopress/mcp/` és `/.well-known/oauth-*` útvonalakat, és ne töröld az `Authorization` fejlécet.
- **Egy másik bővítmény is futtat MCP-szervert ugyanazon a webhelyen.** Frissítsd a SEOPresst a legújabb változatra. A régebbi verziók a másik szervernek szánt OAuth-felfedezési kérésekre is válaszoltak, így annak kliensei a SEOPress dokumentumait kapták. Mostantól a SEOPress csak a saját szervere felfedezési címeire válaszol.

## Fejlesztőknek

A szerver az MCP Streamable HTTP átvitelt valósítja meg egyetlen REST-útvonalon (`POST /wp-json/seopress/mcp/v1`), és a `2025-06-18`, `2025-03-26` és `2024-11-05` protokollverziót támogatja. Csak eszközöket szolgál ki (erőforrásokat és promptokat nem).

Minden eszköz egy `wp_register_ability()` hívással a `seopress` névtérben regisztrált WordPress-képesség. A viselkedést ezek a szűrők módosítják:

| Szűrő | Célja |
|---|---|
| `seopress_abilities_api_rest_enabled` | A kitettség ki- vagy bekapcsolásának kikényszerítése, bármit is mond a beállítás. |
| `seopress_mcp_read_only` | Minden kapcsolat csak olvasóvá kényszerítése. |
| `seopress_mcp_disabled_abilities` | Képességek kikapcsolása név szerint. |
| `seopress_mcp_served_abilities` | Az utolsó szó a klienseknek kiszolgált képességek listájáról. |
| `seopress_mcp_exposed_namespaces` | További képességnévterek kiszolgálása a `seopress` mellett. |
| `seopress_mcp_foreign_namespaces_enabled` | Az összes többi bővítmény képességeinek kiszolgálása vagy tiltása. |
| `seopress_mcp_allowed_origins` | Böngészőből a végpontot elérhető origók. |
| `seopress_mcp_oauth_enabled` | Az OAuth-szerver kikapcsolása. |
| `seopress_mcp_oauth_transport_is_secure` | Megmondja az OAuth-szervernek, hogy a webhely biztonságosan szolgálódik ki, például TLS-t lezáró proxy mögött. |
| `seopress_remove_feature_mcp` | `false` visszaadásával elrejti az MCP Server kártyát a SEO vezérlőpultról. |

Példa: minden MCP-kapcsolat csak olvasó egy éles webhelyen.

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

Példa: a saját bővítményed képességeinek kiszolgálása a SEOPress mellett.

```php
add_filter( 'seopress_mcp_exposed_namespaces', function ( $namespaces ) {
	$namespaces[] = 'my-plugin';

	return $namespaces;
} );
```

## Gyakori kérdések

**Az ingyenes SEOPressben is elérhető az MCP-szerver?** Igen. A szerver és 21 eszköz az ingyenes változatban van. A SEOPress PRO 15 eszközt tesz hozzá (átirányítások, strukturált adatok, célkulcsszavak, AI-generálás bejegyzésekhez, tagokhoz és képekhez, képfeltöltés, műszaki audit).

**Elküldi a SEOPress a tartalmamat egy AI-szolgáltatónak?** Nem. A SEOPress csak az általad csatlakoztatott AI-kliens kéréseire válaszol. Hogy a kliens mit kezd a válaszokkal, az a klienstől és a szolgáltatójától függ.

**Kell OpenAI- vagy Anthropic-API-kulcs?** Nem. A saját ChatGPT-, Claude- vagy Cursor-csomagodat használod. Csak a SEOPress PRO öt `generate-*` eszköze támaszkodik a SEOPress PRO-ban beállított AI-szolgáltatóra. Egy ChatGPT- vagy Claude-előfizetés nem tartalmaz API-egyenleget.

**Csatlakozhat több felhasználó a saját kliensével?** Igen. Minden kapcsolat ahhoz a WordPress-fiókhoz kötött, amelyik jóváhagyta, és annak jogosultságaira korlátozódik.

**Működik multisite hálózaton?** A hálózat minden webhelyének saját MCP-szerver URL-je és saját beállítása van.

**Hogyan kapcsolok ki mindent?** Kapcsold ki az **Expose abilities to AI agents and external tools** beállítást, és mentsd. A végpont és az OAuth-szerver azonnal leáll.
