VXP eszközbérlés: API és MCP
A vxp.hu eszközbérlés két dolgot tesz gépileg is elérhetővé: a katalógus lekérdezését és egy bérlési igénylés beküldését. Mindkettő ugyanazt tudja, amit a weboldal: az igénylés nem foglalás, nem ad vissza szabad időpontot vagy élő készletet. A beküldött igénylésből egy e-mail lesz a VXP-nél, a visszaigazolás emberi lépés.
| Szolgáltatás | Cím | Állapot |
|---|---|---|
| Katalógus (JSON) | GET https://vxp.hu/api/eszkozberles/v1/katalogus.json | élő |
| Igénylés beküldése (REST) | POST https://vxp.hu/api/eszkozberles/v1/igenyles_endpoint.php | élő |
| MCP-szerver AI-asszisztenseknek | https://vxp.hu/api/eszkozberles/v1/mcp_endpoint.php | élő |
Katalógus
Nyilvános, hitelesítés nélküli JSON-fájl, a weboldal katalógusával azonos adat. Bármilyen HTTP-kliensből lekérhető.
curl https://vxp.hu/api/eszkozberles/v1/katalogus.json
Szerkezet
| Mező | Típus | Jelentés |
|---|---|---|
verzio | egész | A séma verziója (jelenleg 1). |
frissitve | szöveg | Az adat dátuma, ÉÉÉÉ-HH-NN. |
penznem | szöveg | HUF. |
arak | szöveg | Megjegyzés az árakhoz (napi díj, nettó, ÁFA nélkül; a pontos díjat a visszaigazolás tartalmazza). |
fokategoriak[] | tömb | id, nev. |
kategoriak[] | tömb | id, nev, fokategoria (egy fokategoriak[].id). |
eszkozok[] | tömb | id (ezzel hivatkozol igényléskor), nev, kategoria (egy kategoriak[].id), ar_nap (napi díj, Ft), db, kep (kép URL). |
csomagok[] | tömb | id, betu, nev, leiras[], ar_nap, tetelek[] (nev, db; megjelenítési adat, nem eszköz-hivatkozás). |
A db a nyilvántartott darabszám, nem élő készlet: azt nem tudja megmondani, hogy egy adott napon szabad-e az eszköz.
{
"verzio": 1,
"frissitve": "2026-09-28",
"penznem": "HUF",
"eszkozok": [
{ "id": "obj-001", "nev": "Tamron 28-75 F2.8", "kategoria": "objektivek",
"ar_nap": 3000, "db": 2, "kep": "https://vxp.hu/eszkozberles-kepek/obj-001.jpg" }
],
"...": "..."
}
A 2026-09-28-as változat 196 eszközt, 21 kategóriát és 3 csomagot tartalmaz. Az adat ritkán változik; gyorsítótárazhatod, de a beküldés előtt érdemes frissen lekérni.
Igénylés beküldése
POST https://vxp.hu/api/eszkozberles/v1/igenyles_endpoint.php, JSON-törzzsel (Content-Type: application/json), legfeljebb 16 KB. Hitelesítés nem kell: ugyanaz a nyilvános lehetőség, mint a weboldal űrlapja. CORS-fejlécet nem ad, tehát böngészőből közvetlenül nem hívható; a saját szerveredről vagy MCP-ből használd.
Mezők
| Mező | Kötelező | Szabály |
|---|---|---|
name | igen | Szöveg, legfeljebb 200 karakter. |
email | igen | Érvényes e-mail-cím. |
phone | nem | Szöveg, legfeljebb 50 karakter. |
tetelek | nem | Tömb, legfeljebb 50 elem. Elemenként id (kötelező, egy eszkozok[].id a katalógusból) és db (egész, 1–99, alapértelmezés 1). Ha üres, az igénylés jelzi, hogy nincs kiválasztott eszköz. |
tol, ig | nem | ÉÉÉÉ-HH-NN, létező naptári nap, nem lehet múltbeli, az ig nem lehet korábbi a tol-nál. |
megjegyzes | nem | Szöveg, legfeljebb 5000 karakter. |
Az eszközök nevét és kategóriáját a szerver a saját katalógusából veszi az id alapján, a beküldött szöveget nem használja. Ismeretlen id esetén semmi nem megy el.
Biztonságos próba (nem küld igénylést)
Hibás e-mail-címmel a kérés a validáción elbukik, és semmi nem megy el:
curl -i -X POST https://vxp.hu/api/eszkozberles/v1/igenyles_endpoint.php \
-H "Content-Type: application/json" \
-d '{"name":"Próba","email":"nem-email"}'
# HTTP/1.1 400 ... {"ok":false,"hiba":"..."}
Ez a próba is levon egyet az óránkénti 10 igénylési keretből, mert a keret a mezők ellenőrzése előtt fogy; csak a hibás JSON-törzsű kérés nem számít bele.
Valódi igénylés
Figyelem: a sikeres kérés valódi igénylést küld a VXP-nek. Csak valódi szándékkal futtasd.
curl -X POST https://vxp.hu/api/eszkozberles/v1/igenyles_endpoint.php \
-H "Content-Type: application/json" \
-d '{
"name": "Kovács Anna",
"email": "anna@example.com",
"phone": "+36 30 123 4567",
"tetelek": [ { "id": "obj-001", "db": 1 } ],
"tol": "2026-11-14",
"ig": "2026-11-16",
"megjegyzes": "Forgatás Budapesten, péntek reggeli átvétellel."
}'
Siker esetén: HTTP 200, {"ok":true}. Ez azt jelenti, hogy az igénylés megérkezett, nem azt, hogy az eszköz le van foglalva.
Hibakódok és korlátok
Hiba esetén a válasz {"ok":false,"hiba":"..."}. A hiba szöveg emberi olvasásra szól és változhat; programból a HTTP-státuszra építs.
| Státusz | Mikor | Mit tegyél |
|---|---|---|
| 400 | Hibás JSON, hiányzó vagy szabálytalan mező | Javítsd a kérést. |
| 405 | Nem POST kérés | POST-ot használj. |
| 413 | A törzs nagyobb 16 KB-nál | Rövidítsd a megjegyzést vagy a tétellistát. |
| 422 | Ismeretlen eszköz-id | Kérd le újra a katalógust. |
| 429 | Túl sok igénylés ugyanarról a címről | Várj, a keret óránként frissül. |
| 403 | Az igénylés erről a címről vagy ezzel a tartalommal nem küldhető | Vedd fel a kapcsolatot a VXP-vel. |
| 500, 502, 503 | Átmeneti szerver- vagy továbbítási hiba | Próbáld újra később; ne ismételd azonnal ciklusban. |
Korlát: óránként legfeljebb 10 igénylés egy IP-címről. Ez a keret közös a REST-végpont és az MCP között.
MCP AI-asszisztenseknek
Az MCP (Model Context Protocol) segítségével egy AI-asszisztens (például Claude) közvetlenül böngészhet a katalógusban, és a felhasználó jóváhagyásával igénylést küldhet. A szerver távoli, Streamable HTTP átvitelű, hitelesítés nélküli; ugyanazt a két műveletet adja, mint fent, ugyanazokkal a szabályokkal és korlátokkal.
Cím: https://vxp.hu/api/eszkozberles/v1/mcp_endpoint.php
Eszközök
| Eszköz | Mit csinál |
|---|---|
vxp_eszkozberles_katalogus | Visszaadja a katalógust. Szűrhető kategoriaId-vel és ékezet-független keres szóval. Csak olvas. |
vxp_eszkozberles_igenyles | Igénylést küld (name, email, phone, tetelek, tol, ig, megjegyzes, a fenti szabályokkal). Nem foglal. |
Hozzáadás a klienshez
Claude (claude.ai és Claude Desktop): Beállítások → Csatlakozók (Connectors) → Egyéni csatlakozó hozzáadása, majd a fenti cím. A pontos menüpontok a kliens verziójától függően eltérhetnek.
Claude Code:
claude mcp add --transport http vxp-eszkozberles https://vxp.hu/api/eszkozberles/v1/mcp_endpoint.php
Más MCP-kliensek (például Cursor, VS Code): távoli, HTTP-típusú szerverként add meg a címet. Egy jellemző beállítás:
{
"mcpServers": {
"vxp-eszkozberles": { "type": "http", "url": "https://vxp.hu/api/eszkozberles/v1/mcp_endpoint.php" }
}
}
A beállítófájl neve és pontos alakja kliensenként eltér; a kliens saját dokumentációja az irányadó.
Kézi próba
Az MCP JSON-RPC 2.0 üzeneteket fogad POST-tal. Ezek a hívások nem küldenek igénylést:
curl -X POST https://vxp.hu/api/eszkozberles/v1/mcp_endpoint.php \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -X POST https://vxp.hu/api/eszkozberles/v1/mcp_endpoint.php \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"vxp_eszkozberles_katalogus","arguments":{"keres":"kamera"}}}'
Támogatott protokollverziók: 2025-06-18 és 2025-03-26. A szerver állapotmentes: nem nyit SSE-folyamot és nem használ munkamenetet, GET-re 405-öt ad. Böngészőből csak a vxp.hu saját oldaláról hívható (Origin-ellenőrzés). Korlát: óránként 300 MCP-kérés IP-címenként, ezen belül az igénylésekre a közös óránkénti 10.
Verziózás és kapcsolat
Az útvonalban szereplő v1 stabil: új, nem kötelező mező megjelenhet, de meglévő mező jelentése nem változik. Visszafelé nem kompatibilis változás új verziószámon (/v2/) érkezik, a v1 addig elérhető marad.
Kérdés az API-val kapcsolatban: berles@vxp.hu.