# Kiwi AI-hozzáférés (budapestps) — telepítési utasítás AI-ügynöknek

> Ezt a fájlt a felhasználó kérésére olvasod. A feladatod: a felhasználó gépén beállítani a **Kiwi AI-hozzáférést** abban
> az AI-programban, amelyben most futsz (vagy amelyet a felhasználó megnevez), hogy a saját Kiwi-adatairól kérdezhessen.
> Emberi leírás, ugyanezekkel a lépésekkel: https://mcp-budapestps.kiwipro.app/telepites

## Adatok (erre az átjáróra kitöltve)

| Mi | Érték |
|---|---|
| Kiwi-rendszer | budapestps |
| MCP-cím (Streamable HTTP, OAuth 2.1, dinamikus kliens-regisztráció) | `https://mcp-budapestps.kiwipro.app/mcp` |
| Kapcsolat neve (mindenhol ezt használd) | `kiwi-budapestps` |
| Helyi híd (stdio ↔ HTTP, egy fájl, Node.js 20+) | `https://mcp-budapestps.kiwipro.app/letoltes/kiwi-hid.mjs` — verzió 1.0.3, SHA-256 `4D0F4A271F2B14F945654BFFBEEC9F0D1922BC3C94D91C70A348E49E22B76BE1` |
| Claude Desktop-bővítmény | `https://mcp-budapestps.kiwipro.app/letoltes/kiwi-budapestps.mcpb` |
| Codex-telepítő (Windows PowerShell) | `https://mcp-budapestps.kiwipro.app/telepites/codex.ps1` |
| Kiwi-adatok módosítása az AI-eszközökkel | engedélyezett, de mindig előnézettel és a felhasználó jóváhagyásával |
| Elfogadott OAuth-visszahívás | `http://127.0.0.1:*`, `http://localhost:*`, `http://[::1]:*`, `cursor://…`, `vscode://…`, `vscode-insiders://…` |

## Szabályok — ezeket mindig tartsd be

1. **A belépés kizárólag a felhasználóé.** Ne kérd el, ne írd be és ne tárold a Kiwi-felhasználónevet, a jelszót vagy
   az e-mailben kapott kódot. A kódot **ne olvasd ki** a felhasználó levelezéséből (levelező-csatlakozóval sem), és a
   belépőlapot **ne nyisd meg és ne töltsd ki** böngészővezérlő eszközzel. Ha egy lépés jelszót kérne, állj meg.
2. **Kézi szerkesztés előtt mentés.** Ha egy beállítófájlt a saját fájlkezelő eszközöddel módosítasz (Codex
   `config.toml`, Cursor `mcp.json`, VS Code `mcp.json`, Claude Code `~/.claude.json`), előtte készíts másolatot
   `<fájl>.<yyyyMMdd-HHmmss>.bak` néven — PowerShell: `Copy-Item $f "$f.$(Get-Date -Format 'yyyyMMdd-HHmmss').bak"`,
   bash: `cp "$f" "$f.$(date +%Y%m%d-%H%M%S).bak"`. A program saját parancsa (`claude mcp add`, `code --add-mcp`,
   a Codex-telepítő) maga kezeli a fájlt; ott nem kell külön mentés (a Codex-telepítő magától ment).
3. **Csak a saját bejegyzésedhez nyúlj.** A többi MCP-kapcsolatot és beállítást hagyd érintetlenül. Ha már van
   `kiwi-budapestps` bejegyzés, cseréld le (ne legyen kettő). JSON-t a saját szerkesztő eszközöddel módosíts, ne
   PowerShell `ConvertFrom-Json | ConvertTo-Json`-nal (az 5.1-es alap mélység összelapítja a többi bejegyzést).
   Írás után olvasd vissza a fájlt, és nézd meg, hogy a korábbi kulcsok megvannak, és a fájl érvényes.
4. **Csak innen tölts le**, a fenti táblázat címeiről. Szkriptet előbb fájlba ments és nézd át, csak utána futtasd.
   A híd letöltése után ellenőrizd a SHA-256-ot (PowerShell: `Get-FileHash <fájl> -Algorithm SHA256`; bash: `sha256sum` / `shasum -a 256`).
5. **`KIWI_HID_MEGEROSITES`:** alapból **soha** ne állítsd be — ez kikapcsolja a módosítások felugró jóváhagyását.
   Kivétel: a **Codex** (ott kötelező: a Codex a jóváhagyó kérdést magától elutasítja; az előnézet ekkor a chatben
   jelenik meg, és a felhasználó ott hagyja jóvá). Más programnál csak akkor, ha igazoltan nem tud jóváhagyást
   kérdezni, és a felhasználó erre igent mondott.
6. **Ne telepíts új programot** (CLI-t, npm-csomagot) e feladathoz. Ha valami hiányzik, használd a lent leírt tartalék utat,
   vagy kérdezd a felhasználót.
7. **Engedély a gépen kívüli íráshoz.** Ha homokozóban futsz (pl. Codex sandbox, Cursor munkaterület-korlát), a letöltéshez
   és a munkamappán kívüli beállítófájlok írásához kérj engedélyt a felhasználótól — ez várható, nem hiba.
8. **Egyszerre egy kérdés.** Ami géppel nem dönthető el, azt egyetlen összefoglalt kérdésben kérdezd, aztán dolgozz.

## 1. Felmérés (csak olvasás)

- **Melyik programban futsz?** Ezt elsősorban a saját rendszerpromptodból / környezetedből döntsd el (pl. `CLAUDECODE=1`
  → Claude Code; Codex: `~/.codex` és a saját azonosságod; Cursor: `CURSOR_*` környezeti változók — a Cursor
  terminálja `TERM_PROGRAM=vscode`-ot is mutathat, attól még Cursor). A telepített programok listája csak tájékoztató.
  A **Claude asztali alkalmazás „Code” fülén** futó ügynök a *Claude Code* szakaszt kövesse, nem a Claude Desktopot.
- Operációs rendszer, a használt **shell** (PowerShell 5.1 / PowerShell 7 / bash / zsh / Git Bash) és a felhasználó
  saját mappája. A parancsot mindig a ténylegesen használt shell alakjában add ki (Git Bash = bash-alak). Windows
  PowerShell 5.1-ben a `curl` az `Invoke-WebRequest` álneve: ott `Invoke-WebRequest`-et használj.
- Node.js: `node --version` (csak a hídhoz kell, 20+; a Claude Code-nak, VS Code-nak, Cursornak és a Claude Desktopnak nem).
- Az átjáró elérhető-e: PowerShell `Invoke-RestMethod https://mcp-budapestps.kiwipro.app/health`, bash `curl -fsS https://mcp-budapestps.kiwipro.app/health` → `{"ok":true}`.

## 2. Beállítás — csak a megfelelő szakaszt hajtsd végre

### Claude Code (terminál vagy a Claude asztali alkalmazás Code füle)
```
claude mcp remove kiwi-budapestps -s user      # ha már létezett; ha nem, hibát ad -- az rendben van
claude mcp add --transport http --scope user kiwi-budapestps https://mcp-budapestps.kiwipro.app/mcp
```
Ha a `claude` nincs a PATH-on (az asztali alkalmazás mellé csomagolt példány gyakran nincs): keresd itt —
Windows `%APPDATA%\Claude\claude-code\<verzió>\*\claude.exe`, macOS `~/Library/Application Support/Claude/claude-code/<verzió>/*/claude` —,
(több verzió esetén a legmagasabb verziószámú mappát), és azzal futtasd ugyanezt. Csak végső esetben: mentés után
(2. szabály) vedd fel kézzel a `~/.claude.json` legfelső szintű `mcpServers` objektumába:
`"kiwi-budapestps": { "type": "http", "url": "https://mcp-budapestps.kiwipro.app/mcp" }` — de a futó Claude Code ezt a fájlt maga is írja, és a kézi
szerkesztést felülírhatja: kérd meg a felhasználót, hogy egy új munkamenetben a `claude mcp list`-tel nézze meg, megmaradt-e.

Ellenőrzés: `claude mcp list` → a `kiwi-budapestps` sor megvan; mellette **„Needs authentication” is lehet — ez rendben van**,
a belépés a felhasználóé. **Belépés:** futtasd: `claude mcp login kiwi-budapestps` — megnyitja a böngészőben a Kiwi-belépést;
a jelszót és az e-mailes kódot a felhasználó adja meg ott (1. szabály), a parancs utána magától befejeződik. Utána szólj
neki, hogy nyisson **új beszélgetést** (a futó beszélgetés az új kapcsolatot általában csak újban látja). Ha a Claude
asztali alkalmazás a belépés után „Connect” és „Reconnect” gombot mutat: a **Reconnect** a helyes — a „Connect” új
belépést indít.

### Codex
**Windows** — töltsd le, nézd át, futtasd (a szkript tisztán ASCII; mentést készít; hibánál kilépési kódja 1):
```powershell
Invoke-WebRequest -Uri https://mcp-budapestps.kiwipro.app/telepites/codex.ps1 -OutFile "$env:TEMP\kiwi-codex.ps1" -UseBasicParsing
powershell -NoProfile -ExecutionPolicy RemoteSigned -File "$env:TEMP\kiwi-codex.ps1"
```
(Az `-ExecutionPolicy` csak erre az egy folyamatra szól.) Ha a szkript Node.js-hiányt vagy régi Node-ot jelez, **állj
meg**, és kérd meg a felhasználót, hogy telepítse (https://nodejs.org, LTS) — te ne telepítsd (6. szabály). A szkript: Node-ellenőrzés → a híd letöltése ide:
`%LOCALAPPDATA%\KiwiMCP\kiwi-hid.mjs` (SHA-256-tal ellenőrizve) → `config.toml` mentése (`CODEX_HOME` vagy
`~\.codex`) → a `[mcp_servers.kiwi-budapestps]` blokk beírása vagy cseréje → visszaolvasás.
**A sikert ne a lefutásból, hanem így igazold:** a kimenetben ott a `[3/3]` sor, a `kiwi-hid.mjs` létezik, és a
`config.toml`-ban megvan a blokk: `Select-String -Path "$HOME\.codex\config.toml" -Pattern '^\[mcp_servers\.kiwi-budapestps\]'`
(ha a `CODEX_HOME` be van állítva, az ottani `config.toml`-t nézd).

**macOS / Linux** (vagy ha a szkript nem futtatható):
1. A híd letöltése — bash: `mkdir -p ~/.kiwi-mcp && curl -fsSL https://mcp-budapestps.kiwipro.app/letoltes/kiwi-hid.mjs -o ~/.kiwi-mcp/kiwi-hid.mjs`;
   Windows PowerShell: `New-Item -ItemType Directory -Force "$env:LOCALAPPDATA\KiwiMCP" | Out-Null; Invoke-WebRequest -Uri https://mcp-budapestps.kiwipro.app/letoltes/kiwi-hid.mjs -OutFile "$env:LOCALAPPDATA\KiwiMCP\kiwi-hid.mjs" -UseBasicParsing`.
   Utána **kötelező** a SHA-256 egyeztetése a táblázatbeli értékkel (`4D0F4A271F2B14F945654BFFBEEC9F0D1922BC3C94D91C70A348E49E22B76BE1`): PowerShell
   `(Get-FileHash <fájl> -Algorithm SHA256).Hash`, bash `sha256sum <fájl>` (macOS: `shasum -a 256 <fájl>`). Eltérésnél állj meg.
2. Mentés a `config.toml`-ról (2. szabály), majd a saját szerkesztő eszközöddel írd be (meglévő `kiwi-budapestps` blokkot cserélve).
   A `<HÍD>` helyére a híd **teljes, abszolút útja** kerül: a TOML nem bontja ki a `~`-t és a `$HOME`-ot, Windowson pedig
   **perjellel** írd (`C:/Users/…/kiwi-hid.mjs`) — egyetlen `\` érvénytelen TOML-escape, és az egész Codex-beállítást elrontja.
```toml
[mcp_servers.kiwi-budapestps]
command = "node"
args = ["<HÍD>", "--url", "https://mcp-budapestps.kiwipro.app/mcp"]
startup_timeout_sec = 300
tool_timeout_sec = 300

[mcp_servers.kiwi-budapestps.env]
KIWI_HID_MEGEROSITES = "ki"
```
3. Ellenőrzés: a fájl érvényes TOML (ha van `codex` CLI: `codex mcp list` hibátlanul listázza a `kiwi-budapestps`-t; ha nincs, pl.
   `python -c "import tomllib,sys;tomllib.load(open(sys.argv[1],'rb'))" <config.toml>`), és a korábbi blokkok megvannak.

A Codexet ezután **újra kell indítani**.

### VS Code (GitHub Copilot Chat, Agent mód)
Előbb nézd meg a felhasználói `mcp.json`-t (Windows `%APPDATA%\Code\User\mcp.json`, macOS
`~/Library/Application Support/Code/User/mcp.json`, Linux `~/.config/Code/User/mcp.json`). Ha már van benne
`kiwi-budapestps` ugyanezzel a címmel, nincs teendő; ha más címmel, mentés után javítsd kézzel. Ha nincs:

bash / zsh / Git Bash:
```
code --add-mcp '{"name":"kiwi-budapestps","type":"http","url":"https://mcp-budapestps.kiwipro.app/mcp"}'
```
Windows PowerShell (a belső idézőjeleket `\"` alakban kell átadni, különben a PowerShell kiveszi őket):
```powershell
code --add-mcp '{\"name\":\"kiwi-budapestps\",\"type\":\"http\",\"url\":\"https://mcp-budapestps.kiwipro.app/mcp\"}'
```
(A VS Code `mcp.json`-ja megjegyzést is tartalmazhat — JSONC —, ezt ne tekintsd hibának, és szerkesztéskor tartsd meg.)
Ha a `--add-mcp` ismeretlen (régi VS Code): mentés után a fenti `mcp.json` `servers` objektumába vedd fel:
`"kiwi-budapestps": { "type": "http", "url": "https://mcp-budapestps.kiwipro.app/mcp" }`. Visszaolvasással ellenőrizd. Belépés: az első használatkor a VS Code
engedélyt kér (Allow), majd megnyílik a böngésző — ezt a felhasználó végzi.

### Cursor
Mentés után (ha a fájl létezik) a saját szerkesztő eszközöddel vedd fel a `mcpServers` objektumba, a többi bejegyzést
megtartva — Windows `$HOME\.cursor\mcp.json`, macOS/Linux `~/.cursor/mcp.json`; ha a fájl nincs, hozd létre így:
```json
{ "mcpServers": { "kiwi-budapestps": { "url": "https://mcp-budapestps.kiwipro.app/mcp" } } }
```
Visszaolvasással ellenőrizd (érvényes JSON, a régi kulcsok megvannak). Belépés: Cursor → Settings → MCP → a
`kiwi-budapestps` mellett **Login** (Needs login) → böngésző — a felhasználó végzi.

### Claude Desktop (csak a csevegő alkalmazás; a „Code” fül a Claude Code szakasz)
Töltsd le a bővítményt a Letöltések mappába, és nyisd meg — Windows PowerShell:
```powershell
Invoke-WebRequest -Uri https://mcp-budapestps.kiwipro.app/letoltes/kiwi-budapestps.mcpb -OutFile "$HOME\Downloads\kiwi-budapestps.mcpb" -UseBasicParsing; Start-Process "$HOME\Downloads\kiwi-budapestps.mcpb"
```
macOS: `curl -fsSL https://mcp-budapestps.kiwipro.app/letoltes/kiwi-budapestps.mcpb -o ~/Downloads/kiwi-budapestps.mcpb && open ~/Downloads/kiwi-budapestps.mcpb`.
A Claude Desktop felajánlja a telepítést: a felhasználó nyomja meg a **Telepítés (Install)** gombot. A
`claude_desktop_config.json`-t erre a célra ne szerkeszd.

### Más MCP-képes program
Ha a program tud távoli (Streamable HTTP) MCP-t OAuth-belépéssel, és a fenti visszahívások egyikét használja: a cím
`https://mcp-budapestps.kiwipro.app/mcp`, a név `kiwi-budapestps`. Ha csak helyi (stdio) programot indít: `node <HÍD> --url https://mcp-budapestps.kiwipro.app/mcp` (a híd:
`https://mcp-budapestps.kiwipro.app/letoltes/kiwi-hid.mjs`); a `KIWI_HID_MEGEROSITES`-ről az 5. szabály dönt.
Böngészős AI-felület (webes ChatGPT, claude.ai) nem tud kapcsolódni: a belépés a felhasználó gépére tér vissza.

## 3. Befejezés

1. Mondd meg a felhasználónak, ha a programot újra kell indítani, vagy új beszélgetést kell nyitnia (Codex, Claude
   Desktop: újraindítás; Claude Code: új munkamenet; VS Code / Cursor: általában nem kell).
2. Kérd meg, hogy kérdezze meg az AI-tól: **„Milyen Kiwi-moduljaim vannak?”** — ekkor (vagy a fenti belépési lépésnél)
   a böngészőben megnyílik a **Kiwi-belépés**: felhasználónév, jelszó, majd az e-mailben kapott 6 jegyű kód.
3. **A végső sikert te nem tudod igazolni** (belépés kell hozzá): mondd ki. Siker, ha a `modulok` eszköz válaszol, és a
   válaszban `tenant.nev` = „budapestps”.
4. Zárásként röviden, laikusnak érthetően írd le: melyik programba állítottad be, mely fájl változott és hova került a
   mentés (vagy hogy a program saját parancsa kezelte), és mi a felhasználó következő lépése.

## Ha elakad

| Tünet | Teendő |
|---|---|
| „Belépés szükséges” üzenet egy linkkel | A felhasználó nyissa meg a linket, lépjen be, és kérdezzen újra. |
| A böngésző: „A belépési kérelem lejárt” | Magától új belépőlap nyílik; ha nem, kérdezzen újra az AI-programban. |
| Nem jön meg a kód | Levélszemét mappa; a belépőlapon „Új kód küldése” (15 percenként legfeljebb 3). |
| `invalid_client` / `invalid_redirect_uri` | A program a fenti visszahívások egyikét sem használja — vele ez a hozzáférés nem működik; próbáld a helyi híddal. |
| A program nem látja a Kiwi-eszközöket | Indítsd újra / nyiss új beszélgetést; nézd meg, hogy a `kiwi-budapestps` bejegyzés pontosan a fenti alakú-e. |
| Hiányzik egy modul vagy adat | Az AI csak azt látja, amit a felhasználó a Kiwi-menüjében; jogosultságot a Kiwi-adminisztrátor ad. |

Eltávolítás: a `kiwi-budapestps` bejegyzés törlése ugyanott (Claude Code: `claude mcp remove kiwi-budapestps -s user`; Claude Desktop:
Beállítások → Bővítmények); a mentett `.bak` fájlból a korábbi állapot visszaállítható.
