{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_94ppv4gepzwc","handle":"games","url":"https://wellknown.network/agents/games","links":{"self":"https://wellknown.network/agents/games/record.json","html":"https://wellknown.network/agents/games","markdown":"https://wellknown.network/agents/games/record.md","api":"https://wellknown.network/api/v1/agents/games","status":"https://wellknown.network/api/v1/agents/games/status","claim":"https://wellknown.network/agents/games/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/games/claim.json","badge":"https://wellknown.network/agents/games/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/games/history","tools":"https://wellknown.network/api/v1/agents/games/tools"},"ard":{"identifier":"urn:air:panel.klyo.pl:server:games","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"klyo games: publish HTML5 browser games","summary":"Remote MCP server (OAuth 2.1, dynamic client registration) that lets an AI assistant publish and run a browser game end to end: upload a ZIP or point at a running game, get an own g-<name>.klyo.pl address, read live stats and errors, release a new version. The developer keeps the rights and 70% of …","description":"Remote MCP server (OAuth 2.1, dynamic client registration) that lets an AI assistant publish and run a browser game end to end: upload a ZIP or point at a running game, get an own g-<name>.klyo.pl address, read live stats and errors, release a new version. The developer keeps the rights and 70% of the net ad revenue attributed to the game.","publisher":{"name":"games.klyo.pl","url":"https://games.klyo.pl"},"homepage":"https://games.klyo.pl/mcp/","repository":"https://github.com/krastranseu-lang/klyo-games-mcp","version":"1.1.2","license":null,"protocols":["mcp"],"tags":["mcp","games","html5","publishing","gamedev","oauth","pl","en"],"pricing":null,"endpoints":[{"url":"https://panel.klyo.pl/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://panel.klyo.pl/mcp?profil=gry","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":["klyo_my_games","klyo_publish_game","klyo_upload_package","klyo_update_game","klyo_release_rollback","klyo_release_version","klyo_delete_game","klyo_game_stats","klyo_game_requirements","klyo_game_scaffold","klyo_game_sdk","klyo_game_cover","klyo_fix_game","klyo_game_diagnostics","klyo_game_files","klyo_game_patch","klyo_game_translate","klyo_creator_card","klyo_fill_game_form","klyo_add_post"],"extra":{"ard":{"type":"application/mcp-server-card+json","metadata":{"auth":"oauth2.1","tools":45,"scopes":"klyo:read klyo:edit_preview klyo:publish","registry":"https://registry.modelcontextprotocol.io/v0/servers?search=klyo","gameTools":20,"languages":"en,pl"},"identifier":"urn:air:klyo.pl:games:mcp-server","artifactUrl":null,"representativeQueries":["publish an html5 browser game from my ai assistant","mcp server that uploads and releases a web game","where can i publish my browser game and keep the rights","gdzie wydać grę przeglądarkową przez asystenta ai","serwer mcp do publikowania gier html5 i statystyk gry"]},"updatedAt":"2026-09-30T08:46:08.589888Z","publishedAt":"2026-09-30T08:46:08.589888Z","registryName":"pl.klyo/games"},"attribution":{"kind":"ard_catalog","name":"ard_catalog","repoUrl":"mcp_registry","summary":"ard_catalog","version":"ard_catalog","description":"ard_catalog","homepageUrl":"ard_catalog","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"content.translation","name":"Translation","confidence":1,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"declared"},{"slug":"data.web-search","name":"Web Search","confidence":0.583,"provenance":"derived"},{"slug":"infra.desktop","name":"Desktop Control","confidence":0.569,"provenance":"derived"},{"slug":"code.generation","name":"Code Generation","confidence":0.554,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.525,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.51,"provenance":"derived"}],"categories":["code","content","data","dev","documents","infra","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-21T12:26:00.902Z","lastProbedAt":"2026-10-21T12:26:00.902Z","statusComputedAt":"2026-10-21T12:29:43.517Z","reliability30d":{"probes":207,"successRate":0.9952,"p50Ms":85,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":205,"ok":204,"authBoundaryOk":3,"serviceOk":201,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-21T12:26:00.902Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":101,"error":null,"detail":{"tools":[{"name":"klyo_list_sites","description":"Wypisz domeny i wątki edycji należące do użytkownika (id wątku, domena, podgląd, licznik zmian). Read-only. Wywołaj NAJPIERW, by wybrać `thread_id` lub `domain`"},{"name":"klyo_preview_status","description":"Stan podglądu (preview worktree) wskazanego wątku: czy są niezaakceptowane zmiany, ścieżki, subdomena podglądu. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Jaki"},{"name":"klyo_preview_diff","description":"Lista zmienionych plików w podglądzie (ścieżka, +/- linie) PRZED publikacją. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Co się zmieni jak opublikuję wątek 3?\n•"},{"name":"klyo_preview_file","description":"Odczytaj zawartość jednego pliku z podglądu (anti-traversal, limit 1 MiB). Read-only. Wymaga `thread_id` + `path` (relatywny do roota worktree).\n\nExamples:\n• Po"},{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_fix_site_code","description":"Dla podanego adresu zwraca listę usterek WSKAZANYCH CO DO LINII w kodzie HTML: numer linii i kolumny, dokładny fragment kodu („jest”), gotowy kod do wstawienia "},{"name":"klyo_check_urls","description":"Podaj listę adresów — na przykład skopiowaną z raportu „Nie znaleziono (404)” w Google Search Console — a odpowiem, co z każdym zrobić. PO CO OSOBNE NARZĘDZIE: "},{"name":"klyo_adsense_check","description":"Sprawdź całą domenę (ze wszystkimi subdomenami, bo AdSense ocenia domenę w całości) tak, jak robi to recenzent Google: kod AdSense i ads.txt, robots dla robotów"},{"name":"klyo_ads_analysis","description":"Policz z prawdziwych danych Search Console (ostatnie 28 dni), gdzie reklama Google Ads ma sens: frazy, na których stronę widać, a prawie nikt nie klika (pozycja"},{"name":"klyo_search_rankings","description":"Ostatnie 7/28/90 dni z Google Search Console użytkownika dla `witryna` (`sc-domain:domena.pl` albo `https://domena.pl/`; właściciel klyo bez `witryna` dostaje `"},{"name":"klyo_seo_insights","description":"Wnioski z Google Search Console liczone z par strona × fraza: `utworz_strone` (Google pokazuje stronę ogólną na konkretną frazę — brakuje osobnej podstrony), `r"},{"name":"klyo_admob_analysis","description":"Ile płacą reklamy w aplikacjach użytkownika (Google AdMob) — z naszej historii dzień po dniu, bez pytania Google na żywo. Zwraca `wyrok` jednym zdaniem, `zadani"},{"name":"klyo_ga4_analysis","description":"Odczyt zapisanych raportów GA4, bez zmiany kampanii. WITRYNA: historia dzienna, strony, źródła i zdarzenia. APLIKACJA: osobna platforma Android/iOS/Facebook, fi"},{"name":"klyo_ads_account","description":"Odczyt z konta Google Ads użytkownika za ostatnie 28 dni: kampanie (status, typ, strategia, budżet dzienny, pokazania, kliknięcia, koszt, konwersje, CPC, CTR) o"},{"name":"klyo_keyword_map","description":"Krzyżówka dla własności `witryna` (wymagane, np. `sc-domain:games.klyo.pl` — mapa jest per własność w Search Console, bo strony bierze z jej indeksowania): każd"},{"name":"klyo_ads_ideas","description":"Realne liczby z planera Google Ads dla podanych fraz (do 20) i/lub adresu strony: średnie wyszukiwania miesięczne, konkurencja (0–100), stawka za górę strony (d"},{"name":"klyo_read_conversations","description":"Odczytaj dostępne dla tego konta prywatne rozmowy twórców z klyo. action=list zwraca skrzynkę, messages wymaga public_id rozmowy, file wymaga public_id i file_i"},{"name":"klyo_inspect_site","description":"Zbadaj dowolną publiczną stronę i zwróć raport: na czym stoi (WordPress, Wix, Shopify, strona pisana na zamówienie), jak widzi ją Google (tytuł, opis, nagłówki,"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":40,"toolsHash":"64589fa6947ae80efb3a1b97e9575717adbb7719a95c0fcced576cda413c789c","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T06:25:44.567Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":23,"toolsHash":"a9cd3d2953e595cda75ef736c1c66b046bffe9892d22d55d43e3dd2146259605","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T03:25:23.715Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":71,"error":null,"detail":{"tools":[{"name":"klyo_list_sites","description":"Wypisz domeny i wątki edycji należące do użytkownika (id wątku, domena, podgląd, licznik zmian). Read-only. Wywołaj NAJPIERW, by wybrać `thread_id` lub `domain`"},{"name":"klyo_preview_status","description":"Stan podglądu (preview worktree) wskazanego wątku: czy są niezaakceptowane zmiany, ścieżki, subdomena podglądu. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Jaki"},{"name":"klyo_preview_diff","description":"Lista zmienionych plików w podglądzie (ścieżka, +/- linie) PRZED publikacją. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Co się zmieni jak opublikuję wątek 3?\n•"},{"name":"klyo_preview_file","description":"Odczytaj zawartość jednego pliku z podglądu (anti-traversal, limit 1 MiB). Read-only. Wymaga `thread_id` + `path` (relatywny do roota worktree).\n\nExamples:\n• Po"},{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_fix_site_code","description":"Dla podanego adresu zwraca listę usterek WSKAZANYCH CO DO LINII w kodzie HTML: numer linii i kolumny, dokładny fragment kodu („jest”), gotowy kod do wstawienia "},{"name":"klyo_check_urls","description":"Podaj listę adresów — na przykład skopiowaną z raportu „Nie znaleziono (404)” w Google Search Console — a odpowiem, co z każdym zrobić. PO CO OSOBNE NARZĘDZIE: "},{"name":"klyo_adsense_check","description":"Sprawdź całą domenę (ze wszystkimi subdomenami, bo AdSense ocenia domenę w całości) tak, jak robi to recenzent Google: kod AdSense i ads.txt, robots dla robotów"},{"name":"klyo_ads_analysis","description":"Policz z prawdziwych danych Search Console (ostatnie 28 dni), gdzie reklama Google Ads ma sens: frazy, na których stronę widać, a prawie nikt nie klika (pozycja"},{"name":"klyo_search_rankings","description":"Ostatnie 7/28/90 dni z Google Search Console użytkownika dla `witryna` (`sc-domain:domena.pl` albo `https://domena.pl/`; właściciel klyo bez `witryna` dostaje `"},{"name":"klyo_seo_insights","description":"Wnioski z Google Search Console liczone z par strona × fraza: `utworz_strone` (Google pokazuje stronę ogólną na konkretną frazę — brakuje osobnej podstrony), `r"},{"name":"klyo_admob_analysis","description":"Ile płacą reklamy w aplikacjach użytkownika (Google AdMob) — z naszej historii dzień po dniu, bez pytania Google na żywo. Zwraca `wyrok` jednym zdaniem, `zadani"},{"name":"klyo_ga4_analysis","description":"Odczyt zapisanych raportów GA4, bez zmiany kampanii. WITRYNA: historia dzienna, strony, źródła i zdarzenia. APLIKACJA: osobna platforma Android/iOS/Facebook, fi"},{"name":"klyo_ads_account","description":"Odczyt z konta Google Ads użytkownika za ostatnie 28 dni: kampanie (status, typ, strategia, budżet dzienny, pokazania, kliknięcia, koszt, konwersje, CPC, CTR) o"},{"name":"klyo_keyword_map","description":"Krzyżówka dla własności `witryna` (wymagane, np. `sc-domain:games.klyo.pl` — mapa jest per własność w Search Console, bo strony bierze z jej indeksowania): każd"},{"name":"klyo_ads_ideas","description":"Realne liczby z planera Google Ads dla podanych fraz (do 20) i/lub adresu strony: średnie wyszukiwania miesięczne, konkurencja (0–100), stawka za górę strony (d"},{"name":"klyo_read_conversations","description":"Odczytaj dostępne dla tego konta prywatne rozmowy twórców z klyo. action=list zwraca skrzynkę, messages wymaga public_id rozmowy, file wymaga public_id i file_i"},{"name":"klyo_inspect_site","description":"Zbadaj dowolną publiczną stronę i zwróć raport: na czym stoi (WordPress, Wix, Shopify, strona pisana na zamówienie), jak widzi ją Google (tytuł, opis, nagłówki,"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":40,"toolsHash":"64589fa6947ae80efb3a1b97e9575717adbb7719a95c0fcced576cda413c789c","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T23:26:55.702Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":23,"toolsHash":"4376f9a8cd83239f29e32d4799a73a2d9a735729572b1df3bc4adb1e2115d11d","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T20:25:15.137Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"klyo_list_sites","description":"Wypisz domeny i wątki edycji należące do użytkownika (id wątku, domena, podgląd, licznik zmian). Read-only. Wywołaj NAJPIERW, by wybrać `thread_id` lub `domain`"},{"name":"klyo_preview_status","description":"Stan podglądu (preview worktree) wskazanego wątku: czy są niezaakceptowane zmiany, ścieżki, subdomena podglądu. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Jaki"},{"name":"klyo_preview_diff","description":"Lista zmienionych plików w podglądzie (ścieżka, +/- linie) PRZED publikacją. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Co się zmieni jak opublikuję wątek 3?\n•"},{"name":"klyo_preview_file","description":"Odczytaj zawartość jednego pliku z podglądu (anti-traversal, limit 1 MiB). Read-only. Wymaga `thread_id` + `path` (relatywny do roota worktree).\n\nExamples:\n• Po"},{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_fix_site_code","description":"Dla podanego adresu zwraca listę usterek WSKAZANYCH CO DO LINII w kodzie HTML: numer linii i kolumny, dokładny fragment kodu („jest”), gotowy kod do wstawienia "},{"name":"klyo_check_urls","description":"Podaj listę adresów — na przykład skopiowaną z raportu „Nie znaleziono (404)” w Google Search Console — a odpowiem, co z każdym zrobić. PO CO OSOBNE NARZĘDZIE: "},{"name":"klyo_adsense_check","description":"Sprawdź całą domenę (ze wszystkimi subdomenami, bo AdSense ocenia domenę w całości) tak, jak robi to recenzent Google: kod AdSense i ads.txt, robots dla robotów"},{"name":"klyo_ads_analysis","description":"Policz z prawdziwych danych Search Console (ostatnie 28 dni), gdzie reklama Google Ads ma sens: frazy, na których stronę widać, a prawie nikt nie klika (pozycja"},{"name":"klyo_search_rankings","description":"Ostatnie 7/28/90 dni z Google Search Console użytkownika dla `witryna` (`sc-domain:domena.pl` albo `https://domena.pl/`; właściciel klyo bez `witryna` dostaje `"},{"name":"klyo_seo_insights","description":"Wnioski z Google Search Console liczone z par strona × fraza: `utworz_strone` (Google pokazuje stronę ogólną na konkretną frazę — brakuje osobnej podstrony), `r"},{"name":"klyo_admob_analysis","description":"Ile płacą reklamy w aplikacjach użytkownika (Google AdMob) — z naszej historii dzień po dniu, bez pytania Google na żywo. Zwraca `wyrok` jednym zdaniem, `zadani"},{"name":"klyo_ga4_analysis","description":"Odczyt zapisanych raportów GA4, bez zmiany kampanii. WITRYNA: historia dzienna, strony, źródła i zdarzenia. APLIKACJA: osobna platforma Android/iOS/Facebook, fi"},{"name":"klyo_ads_account","description":"Odczyt z konta Google Ads użytkownika za ostatnie 28 dni: kampanie (status, typ, strategia, budżet dzienny, pokazania, kliknięcia, koszt, konwersje, CPC, CTR) o"},{"name":"klyo_keyword_map","description":"Krzyżówka dla własności `witryna` (wymagane, np. `sc-domain:games.klyo.pl` — mapa jest per własność w Search Console, bo strony bierze z jej indeksowania): każd"},{"name":"klyo_ads_ideas","description":"Realne liczby z planera Google Ads dla podanych fraz (do 20) i/lub adresu strony: średnie wyszukiwania miesięczne, konkurencja (0–100), stawka za górę strony (d"},{"name":"klyo_read_conversations","description":"Odczytaj dostępne dla tego konta prywatne rozmowy twórców z klyo. action=list zwraca skrzynkę, messages wymaga public_id rozmowy, file wymaga public_id i file_i"},{"name":"klyo_inspect_site","description":"Zbadaj dowolną publiczną stronę i zwróć raport: na czym stoi (WordPress, Wix, Shopify, strona pisana na zamówienie), jak widzi ją Google (tytuł, opis, nagłówki,"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":40,"toolsHash":"d95ac7dc0ca2ce42345178aba26fcaa68eb4d2915c6f1a092fad6b6119e2648d","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T17:27:30.567Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":134,"error":null,"detail":{"tools":[{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":23,"toolsHash":"4376f9a8cd83239f29e32d4799a73a2d9a735729572b1df3bc4adb1e2115d11d","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T13:27:33.869Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":88,"error":null,"detail":{"tools":[{"name":"klyo_list_sites","description":"Wypisz domeny i wątki edycji należące do użytkownika (id wątku, domena, podgląd, licznik zmian). Read-only. Wywołaj NAJPIERW, by wybrać `thread_id` lub `domain`"},{"name":"klyo_preview_status","description":"Stan podglądu (preview worktree) wskazanego wątku: czy są niezaakceptowane zmiany, ścieżki, subdomena podglądu. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Jaki"},{"name":"klyo_preview_diff","description":"Lista zmienionych plików w podglądzie (ścieżka, +/- linie) PRZED publikacją. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Co się zmieni jak opublikuję wątek 3?\n•"},{"name":"klyo_preview_file","description":"Odczytaj zawartość jednego pliku z podglądu (anti-traversal, limit 1 MiB). Read-only. Wymaga `thread_id` + `path` (relatywny do roota worktree).\n\nExamples:\n• Po"},{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_fix_site_code","description":"Dla podanego adresu zwraca listę usterek WSKAZANYCH CO DO LINII w kodzie HTML: numer linii i kolumny, dokładny fragment kodu („jest”), gotowy kod do wstawienia "},{"name":"klyo_check_urls","description":"Podaj listę adresów — na przykład skopiowaną z raportu „Nie znaleziono (404)” w Google Search Console — a odpowiem, co z każdym zrobić. PO CO OSOBNE NARZĘDZIE: "},{"name":"klyo_adsense_check","description":"Sprawdź całą domenę (ze wszystkimi subdomenami, bo AdSense ocenia domenę w całości) tak, jak robi to recenzent Google: kod AdSense i ads.txt, robots dla robotów"},{"name":"klyo_ads_analysis","description":"Policz z prawdziwych danych Search Console (ostatnie 28 dni), gdzie reklama Google Ads ma sens: frazy, na których stronę widać, a prawie nikt nie klika (pozycja"},{"name":"klyo_search_rankings","description":"Ostatnie 7/28/90 dni z Google Search Console użytkownika dla `witryna` (`sc-domain:domena.pl` albo `https://domena.pl/`; właściciel klyo bez `witryna` dostaje `"},{"name":"klyo_seo_insights","description":"Wnioski z Google Search Console liczone z par strona × fraza: `utworz_strone` (Google pokazuje stronę ogólną na konkretną frazę — brakuje osobnej podstrony), `r"},{"name":"klyo_admob_analysis","description":"Ile płacą reklamy w aplikacjach użytkownika (Google AdMob) — z naszej historii dzień po dniu, bez pytania Google na żywo. Zwraca `wyrok` jednym zdaniem, `zadani"},{"name":"klyo_ga4_analysis","description":"Odczyt zapisanych raportów GA4, bez zmiany kampanii. WITRYNA: historia dzienna, strony, źródła i zdarzenia. APLIKACJA: osobna platforma Android/iOS/Facebook, fi"},{"name":"klyo_ads_account","description":"Odczyt z konta Google Ads użytkownika za ostatnie 28 dni: kampanie (status, typ, strategia, budżet dzienny, pokazania, kliknięcia, koszt, konwersje, CPC, CTR) o"},{"name":"klyo_keyword_map","description":"Krzyżówka dla własności `witryna` (wymagane, np. `sc-domain:games.klyo.pl` — mapa jest per własność w Search Console, bo strony bierze z jej indeksowania): każd"},{"name":"klyo_ads_ideas","description":"Realne liczby z planera Google Ads dla podanych fraz (do 20) i/lub adresu strony: średnie wyszukiwania miesięczne, konkurencja (0–100), stawka za górę strony (d"},{"name":"klyo_read_conversations","description":"Odczytaj dostępne dla tego konta prywatne rozmowy twórców z klyo. action=list zwraca skrzynkę, messages wymaga public_id rozmowy, file wymaga public_id i file_i"},{"name":"klyo_inspect_site","description":"Zbadaj dowolną publiczną stronę i zwróć raport: na czym stoi (WordPress, Wix, Shopify, strona pisana na zamówienie), jak widzi ją Google (tytuł, opis, nagłówki,"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":39,"toolsHash":"95effd0184c6ab7297e9c09a5127608b8a8d3a48e171a5aef3aa606d1365275d","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T10:27:02.352Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":103,"error":null,"detail":{"tools":[{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":22,"toolsHash":"987e314c82b61d285013bc77fac3c02b2083484975364e4ca9fcf89efee96956","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T06:25:47.857Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":86,"error":null,"detail":{"tools":[{"name":"klyo_list_sites","description":"Wypisz domeny i wątki edycji należące do użytkownika (id wątku, domena, podgląd, licznik zmian). Read-only. Wywołaj NAJPIERW, by wybrać `thread_id` lub `domain`"},{"name":"klyo_preview_status","description":"Stan podglądu (preview worktree) wskazanego wątku: czy są niezaakceptowane zmiany, ścieżki, subdomena podglądu. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Jaki"},{"name":"klyo_preview_diff","description":"Lista zmienionych plików w podglądzie (ścieżka, +/- linie) PRZED publikacją. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Co się zmieni jak opublikuję wątek 3?\n•"},{"name":"klyo_preview_file","description":"Odczytaj zawartość jednego pliku z podglądu (anti-traversal, limit 1 MiB). Read-only. Wymaga `thread_id` + `path` (relatywny do roota worktree).\n\nExamples:\n• Po"},{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_fix_site_code","description":"Dla podanego adresu zwraca listę usterek WSKAZANYCH CO DO LINII w kodzie HTML: numer linii i kolumny, dokładny fragment kodu („jest”), gotowy kod do wstawienia "},{"name":"klyo_check_urls","description":"Podaj listę adresów — na przykład skopiowaną z raportu „Nie znaleziono (404)” w Google Search Console — a odpowiem, co z każdym zrobić. PO CO OSOBNE NARZĘDZIE: "},{"name":"klyo_adsense_check","description":"Sprawdź całą domenę (ze wszystkimi subdomenami, bo AdSense ocenia domenę w całości) tak, jak robi to recenzent Google: kod AdSense i ads.txt, robots dla robotów"},{"name":"klyo_ads_analysis","description":"Policz z prawdziwych danych Search Console (ostatnie 28 dni), gdzie reklama Google Ads ma sens: frazy, na których stronę widać, a prawie nikt nie klika (pozycja"},{"name":"klyo_search_rankings","description":"Ostatnie 7/28/90 dni z Google Search Console użytkownika dla `witryna` (`sc-domain:domena.pl` albo `https://domena.pl/`; właściciel klyo bez `witryna` dostaje `"},{"name":"klyo_seo_insights","description":"Wnioski z Google Search Console liczone z par strona × fraza: `utworz_strone` (Google pokazuje stronę ogólną na konkretną frazę — brakuje osobnej podstrony), `r"},{"name":"klyo_admob_analysis","description":"Ile płacą reklamy w aplikacjach użytkownika (Google AdMob) — z naszej historii dzień po dniu, bez pytania Google na żywo. Zwraca `wyrok` jednym zdaniem, `zadani"},{"name":"klyo_ga4_analysis","description":"Odczyt zapisanych raportów GA4, bez zmiany kampanii. WITRYNA: historia dzienna, strony, źródła i zdarzenia. APLIKACJA: osobna platforma Android/iOS/Facebook, fi"},{"name":"klyo_ads_account","description":"Odczyt z konta Google Ads użytkownika za ostatnie 28 dni: kampanie (status, typ, strategia, budżet dzienny, pokazania, kliknięcia, koszt, konwersje, CPC, CTR) o"},{"name":"klyo_keyword_map","description":"Krzyżówka dla własności `witryna` (wymagane, np. `sc-domain:games.klyo.pl` — mapa jest per własność w Search Console, bo strony bierze z jej indeksowania): każd"},{"name":"klyo_ads_ideas","description":"Realne liczby z planera Google Ads dla podanych fraz (do 20) i/lub adresu strony: średnie wyszukiwania miesięczne, konkurencja (0–100), stawka za górę strony (d"},{"name":"klyo_read_conversations","description":"Odczytaj dostępne dla tego konta prywatne rozmowy twórców z klyo. action=list zwraca skrzynkę, messages wymaga public_id rozmowy, file wymaga public_id i file_i"},{"name":"klyo_inspect_site","description":"Zbadaj dowolną publiczną stronę i zwróć raport: na czym stoi (WordPress, Wix, Shopify, strona pisana na zamówienie), jak widzi ją Google (tytuł, opis, nagłówki,"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":39,"toolsHash":"95effd0184c6ab7297e9c09a5127608b8a8d3a48e171a5aef3aa606d1365275d","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-20T03:29:46.471Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"toolCount":22,"toolsHash":"987e314c82b61d285013bc77fac3c02b2083484975364e4ca9fcf89efee96956","serverName":"klyo","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"klyo_list_sites","description":"Wypisz domeny i wątki edycji należące do użytkownika (id wątku, domena, podgląd, licznik zmian). Read-only. Wywołaj NAJPIERW, by wybrać `thread_id` lub `domain`"},{"name":"klyo_preview_status","description":"Stan podglądu (preview worktree) wskazanego wątku: czy są niezaakceptowane zmiany, ścieżki, subdomena podglądu. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Jaki"},{"name":"klyo_preview_diff","description":"Lista zmienionych plików w podglądzie (ścieżka, +/- linie) PRZED publikacją. Read-only. Wymaga `thread_id`.\n\nExamples:\n• Co się zmieni jak opublikuję wątek 3?\n•"},{"name":"klyo_preview_file","description":"Odczytaj zawartość jednego pliku z podglądu (anti-traversal, limit 1 MiB). Read-only. Wymaga `thread_id` + `path` (relatywny do roota worktree).\n\nExamples:\n• Po"},{"name":"klyo_my_games","description":"List this account's games in the klyo games catalogue: name, address (slug), state (published, or rejected with the reason), size, visits and plays. Read-only. "},{"name":"klyo_publish_game","description":"Prepare a browser game for release on games.klyo.pl: the package (`upload_id` from klyo_upload_package, or a public `zip_url`), name, tagline, player descriptio"},{"name":"klyo_upload_package","description":"The way to release a game from a file on disk, with no tunnel and without exposing an unreleased game publicly. Returns three things at once: (1) `paczki_w_pocz"},{"name":"klyo_update_game","description":"Upload a NEW VERSION of a game that is already on the account (`slug`): from a file (`upload_id` from klyo_upload_package) or from a public `zip_url`. The game "},{"name":"klyo_release_rollback","description":"Roll a game (`slug`) back to the previous version, the one before the last klyo_release_version. Same move as “Restore” in the studio: the previous version's fi"},{"name":"klyo_release_version","description":"Release to players the version waiting after klyo_update_game (`slug`). Same step as the “Release” button in the studio: players get the new version at once (an"},{"name":"klyo_delete_game","description":"Take this account's game (`slug`) off the portal. The first call removes it from the catalogue and takes its page down; the address stays yours and you can uplo"},{"name":"klyo_game_stats","description":"Visits to the game page and plays, day by day, for the given game (`slug`). Read-only. The developer's share of ad revenue is calculated from this.\n\nExamples:\n•"},{"name":"klyo_game_analytics","description":"Game analytics for the developer, read `_najpierw` first: one verdict (`wyrok`, `en.verdict`) and the top tasks with a reason and a fix (`dlaczego`/`jak`, `en.w"},{"name":"klyo_game_requirements","description":"GAME PRODUCTION CONTRACT: CALL THIS FIRST, before you design or write a single line of a game for klyo. Returns the “studio quality” standard: screens (phone, t"},{"name":"klyo_game_scaffold","description":"GAME SKELETON ON KLYO KIT: call after klyo_game_requirements, before you write code. Returns two starter files (index.html, gra.js) to copy and the full kit API"},{"name":"klyo_game_sdk","description":"Full description of the `klyo-gry-sdk.js` kit: how a game embedded in the catalogue sends a score to the leaderboard, saves progress on the server, asks for ful"},{"name":"klyo_game_cover","description":"Set the tile players recognise the game by in the catalogue. Frames are screenshots FROM YOUR RUNNING GAME: we take them ourselves once the game is live at its "},{"name":"klyo_fix_game","description":"Change the CONTENT of a game that is already in the catalogue: name, tagline, description, how to play on a phone and on a computer, round length, genre, shelve"},{"name":"klyo_game_diagnostics","description":"Read `_najpierw` first: one object with what blocks the release (`co`), the parsed error (`komunikat`, `miejsce` file:line, `biblioteka` crate and version, `urz"},{"name":"klyo_game_files","description":"Your game's files to read, without a ZIP from the owner. Target: a game's `slug` or a waiting-room package's `upload_id`. Without `path` you get the list (path,"},{"name":"klyo_game_patch","description":"Edits a game's text files (html, htm, js, mjs, css, json, svg, txt, xml, webmanifest) without a ZIP. Target: a game's `slug` or a waiting-room package's `upload"},{"name":"klyo_game_play","description":"Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo"},{"name":"klyo_game_translate","description":"Translations of a game's texts into the klyo languages (pl, en, de, fr, es, pt, it, ru, uk, tr). YOU TRANSLATE: the owner's assistant, on the owner's own AI pla"},{"name":"klyo_creator_card","description":"The developer's profile card on games.klyo.pl: “about me” and the tagline under the name. YOU WRITE: the owner's assistant, on the owner's own AI plan; klyo run"},{"name":"klyo_fill_game_form","description":"Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl); the owner watches them fill in, corrects them and submits the form THEMSELVE"},{"name":"klyo_add_post","description":"Write a post in the klyo games community: a question, a request for playtesters, a launch or a game showcase. The post is visible immediately, with no moderatio"},{"name":"klyo_fix_site_code","description":"Dla podanego adresu zwraca listę usterek WSKAZANYCH CO DO LINII w kodzie HTML: numer linii i kolumny, dokładny fragment kodu („jest”), gotowy kod do wstawienia "},{"name":"klyo_check_urls","description":"Podaj listę adresów — na przykład skopiowaną z raportu „Nie znaleziono (404)” w Google Search Console — a odpowiem, co z każdym zrobić. PO CO OSOBNE NARZĘDZIE: "},{"name":"klyo_adsense_check","description":"Sprawdź całą domenę (ze wszystkimi subdomenami, bo AdSense ocenia domenę w całości) tak, jak robi to recenzent Google: kod AdSense i ads.txt, robots dla robotów"},{"name":"klyo_ads_analysis","description":"Policz z prawdziwych danych Search Console (ostatnie 28 dni), gdzie reklama Google Ads ma sens: frazy, na których stronę widać, a prawie nikt nie klika (pozycja"},{"name":"klyo_search_rankings","description":"Ostatnie 7/28/90 dni z Google Search Console użytkownika dla `witryna` (`sc-domain:domena.pl` albo `https://domena.pl/`; właściciel klyo bez `witryna` dostaje `"},{"name":"klyo_seo_insights","description":"Wnioski z Google Search Console liczone z par strona × fraza: `utworz_strone` (Google pokazuje stronę ogólną na konkretną frazę — brakuje osobnej podstrony), `r"},{"name":"klyo_admob_analysis","description":"Ile płacą reklamy w aplikacjach użytkownika (Google AdMob) — z naszej historii dzień po dniu, bez pytania Google na żywo. Zwraca `wyrok` jednym zdaniem, `zadani"},{"name":"klyo_ga4_analysis","description":"Odczyt zapisanych raportów GA4, bez zmiany kampanii. WITRYNA: historia dzienna, strony, źródła i zdarzenia. APLIKACJA: osobna platforma Android/iOS/Facebook, fi"},{"name":"klyo_ads_account","description":"Odczyt z konta Google Ads użytkownika za ostatnie 28 dni: kampanie (status, typ, strategia, budżet dzienny, pokazania, kliknięcia, koszt, konwersje, CPC, CTR) o"},{"name":"klyo_keyword_map","description":"Krzyżówka dla własności `witryna` (wymagane, np. `sc-domain:games.klyo.pl` — mapa jest per własność w Search Console, bo strony bierze z jej indeksowania): każd"},{"name":"klyo_ads_ideas","description":"Realne liczby z planera Google Ads dla podanych fraz (do 20) i/lub adresu strony: średnie wyszukiwania miesięczne, konkurencja (0–100), stawka za górę strony (d"},{"name":"klyo_read_conversations","description":"Odczytaj dostępne dla tego konta prywatne rozmowy twórców z klyo. action=list zwraca skrzynkę, messages wymaga public_id rozmowy, file wymaga public_id i file_i"},{"name":"klyo_inspect_site","description":"Zbadaj dowolną publiczną stronę i zwróć raport: na czym stoi (WordPress, Wix, Shopify, strona pisana na zamówienie), jak widzi ją Google (tytuł, opis, nagłówki,"},{"name":"klyo_status","description":"State of this connection to klyo: server version, key scope, account role, how many tools you see and whether you may write, plus the state of integrations (Goo"}],"package":null,"toolSurface":{"id":"ts_74gyccmjys3f","endpointId":"ep_sa6bny9t7g82","hash":"64589fa6947ae80efb3a1b97e9575717adbb7719a95c0fcced576cda413c789c","toolCount":40,"serverName":"klyo","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-21T03:25:23.711Z","lastSeenAt":"2026-10-21T12:26:00.915Z","observations":2,"toolNames":["klyo_list_sites","klyo_preview_status","klyo_preview_diff","klyo_preview_file","klyo_my_games","klyo_publish_game","klyo_upload_package","klyo_update_game","klyo_release_rollback","klyo_release_version","klyo_delete_game","klyo_game_stats","klyo_game_analytics","klyo_game_requirements","klyo_game_scaffold","klyo_game_sdk","klyo_game_cover","klyo_fix_game","klyo_game_diagnostics","klyo_game_files","klyo_game_patch","klyo_game_play","klyo_game_translate","klyo_creator_card","klyo_fill_game_form","klyo_add_post","klyo_fix_site_code","klyo_check_urls","klyo_adsense_check","klyo_ads_analysis","klyo_search_rankings","klyo_seo_insights","klyo_admob_analysis","klyo_ga4_analysis","klyo_ads_account","klyo_keyword_map","klyo_ads_ideas","klyo_read_conversations","klyo_inspect_site","klyo_status"],"distinctSurfaces":27},"endpointFacts":[{"id":"ep_sa6bny9t7g82","url":"https://panel.klyo.pl/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-17T06:21:06.352Z","auth":{"observedAt":"2026-10-17T06:21:06.506Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://panel.klyo.pl/.well-known/oauth-protected-resource/mcp","resource":"https://panel.klyo.pl/mcp","authorizationServers":["https://panel.klyo.pl"],"scopesSupported":["klyo:read","klyo:edit_preview","klyo:publish"]},"authorizationServer":{"url":"https://panel.klyo.pl/.well-known/oauth-authorization-server","issuer":"https://panel.klyo.pl","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-17T06:21:06.520Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"klyo.pl","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-06T20:15:23.000Z","validTo":"2026-12-05T20:15:22.000Z","daysToExpiry":45,"sanCount":2,"fingerprint256":"0A:86:AE:CD:DF:35:AA:90:5D:0C:A0:E5:B0:5F:59:40:2E:D5:4B:3F:99:F0:8A:E3:5B:6A:09:62:FE:08:D4:67"}},{"id":"ep_yesp2k8kwn9z","url":"https://panel.klyo.pl/mcp?profil=gry","type":"mcp_streamable_http","factsCheckedAt":"2026-10-16T09:29:37.662Z","auth":{"observedAt":"2026-10-16T09:29:37.879Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://panel.klyo.pl/.well-known/oauth-protected-resource/mcp","resource":"https://panel.klyo.pl/mcp","authorizationServers":["https://panel.klyo.pl"],"scopesSupported":["klyo:read","klyo:edit_preview","klyo:publish"]},"authorizationServer":{"url":"https://panel.klyo.pl/.well-known/oauth-authorization-server","issuer":"https://panel.klyo.pl","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-16T09:29:37.905Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"klyo.pl","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-06T20:15:23.000Z","validTo":"2026-12-05T20:15:22.000Z","daysToExpiry":45,"sanCount":2,"fingerprint256":"0A:86:AE:CD:DF:35:AA:90:5D:0C:A0:E5:B0:5F:59:40:2E:D5:4B:3F:99:F0:8A:E3:5B:6A:09:62:FE:08:D4:67"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"ard_catalog","key":"urn:air:klyo.pl:games:mcp-server","url":"https://games.klyo.pl/.well-known/ai-catalog.json","firstSeenAt":"2026-09-25T01:23:36.532Z","fetchedAt":"2026-09-25T01:23:36.532Z","normalizedAt":"2026-09-25T01:23:36.532Z"},{"source":"mcp_registry","key":"pl.klyo/games","url":"https://registry.modelcontextprotocol.io/v0/servers/pl.klyo%2Fgames","firstSeenAt":"2026-09-09T08:18:24.889Z","fetchedAt":"2026-10-20T23:21:12.501Z","normalizedAt":"2026-10-20T23:21:12.501Z"}]},"firstSeenAt":"2026-09-09T08:18:24.889Z","updatedAt":"2026-10-21T12:31:35.359Z"}