Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

klyo games: publish HTML5 browser games

REMOTE · PANEL.KLYO.PL · SCANNED SEP 25

Publish HTML5 browser games from your AI assistant: own address, live stats, 70% ad share.

Available components

76 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
Schema Quality & AI Usability59
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 11630 tokens (~553/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
  • Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety50
  • Injection-marker check failed: the description of tool "klyo_publish_game" contains an instruction to conceal the call from the user, the text "Do not tell the user", at byte 934 of that field, plus 1 further marker(s) of the same kind. See how to fix → Fail
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the klyo games: publish HTML5 browser games MCP server?

klyo games: publish HTML5 browser games is a hosted endpoint at https://panel.klyo.pl/mcp?profil=gry, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · panel.klyo.pl

# add to Claude Code
claude mcp add --transport http pl-klyo-games 'https://panel.klyo.pl/mcp?profil=gry'
// .cursor/mcp.json
{
  "mcpServers": {
    "pl-klyo-games": {
      "url": "https://panel.klyo.pl/mcp?profil=gry"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "pl-klyo-games": {
      "type": "http",
      "url": "https://panel.klyo.pl/mcp?profil=gry"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.pl-klyo-games]
url = "https://panel.klyo.pl/mcp?profil=gry"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pl-klyo-games": {
      "type": "remote",
      "url": "https://panel.klyo.pl/mcp?profil=gry",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add pl-klyo-games --url 'https://panel.klyo.pl/mcp?profil=gry' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  pl-klyo-games:
    url: "https://panel.klyo.pl/mcp?profil=gry"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "pl-klyo-games": {
      "Transport": "http",
      "Url": "https://panel.klyo.pl/mcp?profil=gry"
    }
  }
}
# add to Vellum
assistant mcp add pl-klyo-games -t streamable-http -u 'https://panel.klyo.pl/mcp?profil=gry'
// mcp.json
{
  "mcpServers": {
    "pl-klyo-games": {
      "type": "http",
      "url": "https://panel.klyo.pl/mcp?profil=gry"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 25 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 −3
    • Injection markers: pass → fail ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “klyo_game_patch”, which the server declares destructive security
    • Tool “klyo_fill_game_form” rewrote its description, which is the text the model reads security
    • Tool “klyo_add_post” rewrote its description, which is the text the model reads security
    • Tool “klyo_creator_card” rewrote its description, which is the text the model reads security
    • Tool “klyo_delete_game” rewrote its description, which is the text the model reads security
    • Tool “klyo_fix_game” rewrote its description, which is the text the model reads security
    • Tool “klyo_release_rollback” rewrote its description, which is the text the model reads security
    • Tool “klyo_release_version” rewrote its description, which is the text the model reads security
    • Tool “klyo_status” rewrote its description, which is the text the model reads security
    • Tool “klyo_update_game” rewrote its description, which is the text the model reads security
    • Tool “klyo_upload_package” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_cover” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_diagnostics” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_requirements” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_scaffold” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_sdk” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_stats” rewrote its description, which is the text the model reads security
    • Tool “klyo_game_translate” rewrote its description, which is the text the model reads security
    • Tool “klyo_my_games” rewrote its description, which is the text the model reads security
    • Tool “klyo_publish_game” rewrote its description, which is the text the model reads security
    • Tool “klyo_creator_card” is now declared destructive security
    • Tool “klyo_fix_game” is now declared destructive security
    • Tool “klyo_update_game” is now declared destructive security
    • New tool “klyo_game_files” functional
    • “klyo_delete_game” added an optional parameter “upload_id” cosmetic
    • “klyo_publish_game” added an optional parameter “przeglad” cosmetic
    • “klyo_release_version” added an optional parameter “przeglad” cosmetic
    • “klyo_game_diagnostics” added an optional parameter “jezyki” cosmetic
    • “klyo_game_diagnostics” added an optional parameter “pelny” cosmetic
    • “klyo_game_diagnostics” added an optional parameter “zmierz” cosmetic
    • “klyo_game_stats” added an optional parameter “dni” cosmetic
    • “klyo_game_stats” added an optional parameter “sprawdz_google” cosmetic
    • “klyo_add_post” reworded the description of “gra_slug” cosmetic
    • “klyo_add_post” reworded the description of “jezyk” cosmetic
    • “klyo_add_post” reworded the description of “link” cosmetic
    • “klyo_add_post” reworded the description of “rodzaj” cosmetic
    • “klyo_add_post” reworded the description of “tresc” cosmetic
    • “klyo_add_post” reworded the description of “tytul” cosmetic
    • “klyo_creator_card” reworded the description of “haslo” cosmetic
    • “klyo_creator_card” reworded the description of “o_mnie” cosmetic
    • “klyo_delete_game” reworded the description of “slug” cosmetic
    • “klyo_fill_game_form” reworded the description of “pola” cosmetic
    • “klyo_fix_game” reworded the description of “ankieta” cosmetic
    • “klyo_fix_game” reworded the description of “czas_partii” cosmetic
    • “klyo_fix_game” reworded the description of “etap” cosmetic
    • “klyo_fix_game” reworded the description of “etap_dni” cosmetic
    • “klyo_fix_game” reworded the description of “haslo” cosmetic
    • “klyo_fix_game” reworded the description of “jezyk_tekstu” cosmetic
    • “klyo_fix_game” reworded the description of “jezyki_ui” cosmetic
    • “klyo_fix_game” reworded the description of “kategoria” cosmetic
    • “klyo_fix_game” reworded the description of “nastroje” cosmetic
    • “klyo_fix_game” reworded the description of “nazwa” cosmetic
    • “klyo_fix_game” reworded the description of “opis” cosmetic
    • “klyo_fix_game” reworded the description of “przemoc_realistyczna” cosmetic
    • “klyo_release_rollback” reworded the description of “slug” cosmetic
    • “klyo_release_version” reworded the description of “nowosc” cosmetic
    • “klyo_release_version” reworded the description of “slug” cosmetic
    • “klyo_release_version” reworded the description of “zmiana” cosmetic
    • “klyo_update_game” reworded the description of “slug” cosmetic
    • “klyo_update_game” reworded the description of “upload_id” cosmetic
    • “klyo_update_game” reworded the description of “zip_url” cosmetic
    • “klyo_fix_game” reworded the description of “przemoc_rysunkowa” cosmetic
    • “klyo_fix_game” reworded the description of “seks” cosmetic
    • “klyo_fix_game” reworded the description of “sklep_apple” cosmetic
    • “klyo_fix_game” reworded the description of “sklep_play” cosmetic
    • “klyo_fix_game” reworded the description of “slug” cosmetic
    • “klyo_fix_game” reworded the description of “sterowanie_dotyk” cosmetic
    • “klyo_fix_game” reworded the description of “sterowanie_klawiatura” cosmetic
    • “klyo_fix_game” reworded the description of “strach” cosmetic
    • “klyo_fix_game” reworded the description of “tagi” cosmetic
    • “klyo_fix_game” reworded the description of “uklad” cosmetic
    • “klyo_fix_game” reworded the description of “uklad_pionowy” cosmetic
    • “klyo_fix_game” reworded the description of “wiek_min” cosmetic
    • “klyo_fix_game” reworded the description of “wulgaryzmy” cosmetic
    • “klyo_fix_game” reworded the description of “wynik_max” cosmetic
    • “klyo_game_cover” reworded the description of “klatka” cosmetic
    • “klyo_game_cover” reworded the description of “slug” cosmetic
    • “klyo_game_diagnostics” reworded the description of “sesja” cosmetic
    • “klyo_game_diagnostics” reworded the description of “slug” cosmetic
    • “klyo_game_diagnostics” reworded the description of “upload_id” cosmetic
    • “klyo_game_scaffold” reworded the description of “rodzaj” cosmetic
    • “klyo_game_stats” reworded the description of “slug” cosmetic
    • “klyo_game_translate” reworded the description of “slug” cosmetic
    • “klyo_game_translate” reworded the description of “tlumaczenia” cosmetic
    • “klyo_publish_game” reworded the description of “ankieta” cosmetic
    • “klyo_publish_game” reworded the description of “bez_porno” cosmetic
    • “klyo_publish_game” reworded the description of “czas_partii” cosmetic
    • “klyo_publish_game” reworded the description of “etap” cosmetic
    • “klyo_publish_game” reworded the description of “etap_dni” cosmetic
    • “klyo_publish_game” reworded the description of “haslo” cosmetic
    • “klyo_publish_game” reworded the description of “jezyk_tekstu” cosmetic
    • “klyo_publish_game” reworded the description of “jezyki_ui” cosmetic
    • “klyo_publish_game” reworded the description of “kategoria” cosmetic
    • “klyo_publish_game” reworded the description of “nastroje” cosmetic
    • “klyo_publish_game” reworded the description of “nazwa” cosmetic
    • “klyo_publish_game” reworded the description of “opis” cosmetic
    • “klyo_publish_game” reworded the description of “przemoc_realistyczna” cosmetic
    • “klyo_publish_game” reworded the description of “przemoc_rysunkowa” cosmetic
    • “klyo_publish_game” reworded the description of “seks” cosmetic
    • “klyo_publish_game” reworded the description of “sklep_apple” cosmetic
    • “klyo_publish_game” reworded the description of “sklep_play” cosmetic
    • “klyo_publish_game” reworded the description of “sterowanie_dotyk” cosmetic
    • “klyo_publish_game” reworded the description of “sterowanie_klawiatura” cosmetic
    • “klyo_publish_game” reworded the description of “strach” cosmetic
    • “klyo_publish_game” reworded the description of “tagi” cosmetic
    • “klyo_publish_game” reworded the description of “uklad” cosmetic
    • “klyo_publish_game” reworded the description of “uklad_pionowy” cosmetic
    • “klyo_publish_game” reworded the description of “upload_id” cosmetic
    • “klyo_publish_game” reworded the description of “wiek_min” cosmetic
    • “klyo_publish_game” reworded the description of “wulgaryzmy” cosmetic
    • “klyo_publish_game” reworded the description of “wynik_max” cosmetic
    • “klyo_publish_game” reworded the description of “zip_url” cosmetic
    • “klyo_delete_game” made “slug” optional cosmetic
    • Tool “klyo_delete_game” changed its title: Delete your game → Take your game off the portal cosmetic
    • Tool “klyo_game_scaffold” changed its title: Klyo Kit — game skeleton to start from → Klyo Kit: game skeleton to start from cosmetic
  • 23 Sept 26 0
    • New tool “klyo_delete_game”, which the server declares destructive security
    • Tool “klyo_game_diagnostics” rewrote its description, which is the text the model reads security
    • Schema quality: 313 → 573 ▼ functional
    • Schema quality: 313 → 601 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • Destructive annotations: pass → 100 functional
    • New tool “klyo_fill_game_form” functional
    • New tool “klyo_creator_card” functional
    • New tool “klyo_add_post” functional
    • New tool “klyo_fix_game” functional
    • New tool “klyo_game_cover” functional
    • New tool “klyo_game_translate” functional
    • New tool “klyo_publish_game” functional
    • New tool “klyo_release_rollback” functional
    • New tool “klyo_release_version” functional
    • New tool “klyo_update_game” functional
    • New tool “klyo_upload_package” functional
  • 22 Sept 26 78

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 25 Sept 2026 · Probed https://panel.klyo.pl/mcp?profil=gry

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=klyo.pl CN=YE2,O=Let's Encrypt,C=US 6 Sept 2026 5 Dec 2026 ECDSA 256 ECDSA-SHA384 61f0f834134e65db410d59cad883f7ddc9a
SANs: *.klyo.pl, klyo.pl
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of panel.klyo.pl. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
pl. present 2782 8 Verified
klyo.pl. present 2371 13 Verified
panel.klyo.pl. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://panel.klyo.pl/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://panel.klyo.pl/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' https://*.stripe.com https://m.stripe.network https://cdn.jsdelivr.net; script-src-elem 'self' 'unsafe-inline' https://*.stripe.com https://m.stripe.network https://cdn.jsdelivr.net; child-src 'self' blob: https://*.stripe.com; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; connect-src 'self' wss://panel.klyo.pl wss://klyo.pl https://klyo.pl https://*.klyo.pl blob: data: https://*.stripe.com https://m.stripe.network; frame-src 'self' blob: https://*.stripe.com https://*.klyo.pl; frame-ancestors 'none'; form-action 'self' https://api.stripe.com; base-uri 'self'; object-src 'none'; worker-src 'self' blob:; manifest-src 'self'; upgrade-insecure-requests
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy accelerometer=(), autoplay=(), camera=(), display-capture=(), encrypted-media=(), fullscreen=(self "https://js.stripe.com"), geolocation=(), gyroscope=(), hid=(), idle-detection=(), magnetometer=(), microphone=(), midi=(), payment=(self "https://js.stripe.com" "https://hooks.stripe.com"), picture-in-picture=(), publickey-credentials-get=(self "https://js.stripe.com"), screen-wake-lock=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=(), interest-cohort=(), browsing-topics=()

Protected resource metadata

Document https://panel.klyo.pl/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://panel.klyo.pl/mcp
Authorisation server https://panel.klyo.pl

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://panel.klyo.pl/mcp?profil=gry Verified 200
http (plaintext) http://panel.klyo.pl/mcp?profil=gry HTTPS enforced 301 https://panel.klyo.pl/mcp?profil=gry
MCP tools · 21 exposed · ~11,378 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
klyo_add_post ~250

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 moderation queue, and can be linked to a game from the catalogue (`gra_slug`); then readers get a “play” button. Examples: • Write a post on klyo about my game's launch • Ask for playtesters for my game on klyo games • Add a showcase of lantern-thief to the community

NameTypeReqDescription
gra_slugstring–Optional: the catalogue game the post is about.
jezykstringyesLanguage of the post.
linkstring–Optional: address of the game in a store or on another site.
rodzajstringyes`pytanie` = question | `test` = request for playtesters | `premiera` = launch | `pokaz` = showcase.
trescstringyesPost text, at least 20 characters. Write like a person talking to people, without advertising slogans.
tytulstringyesPost title, 6 to 120 characters.

No output schema declared.

No examples provided.

klyo_creator_card ~274

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 runs no model. Without `o_mnie` and `haslo` we return the current card, the released games (the only material you may write from) and the rules. With them, we save through the same check as the studio; an omitted field stays unchanged. Saving changes the developer's public page immediately and replaces the previous text, so FIRST show the text to the owner and save only with their consent. Do not invent facts about the person. Examples: • Write my developer profile card on klyo • Improve the tagline under my name on my developer page • What is in my profile card on games.klyo.pl now?

NameTypeReqDescription
haslostring–One sentence up to 80 characters per language with no full stop; may have <pl>...</pl><en>...</en>, each version counted on its own. Omit to leave it as it is.
o_mniestring–“About me” in the first person; two versions in tags <pl>…</pl><en>…</en>. Omit to only read.

No output schema declared.

No examples provided.

klyo_delete_game ~254

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 upload the game there again. A second call on a game that is already taken down removes it from your list for good. Scores and reviews stay attached to the address and are never handed to another game. Use it to clean up after a failed attempt, for example when two entries of the same game ended up in the waiting room. A package that never became a game (only `upload_id` in the waiting room, from klyo_upload_package or klyo_my_games) is deleted with `upload_id` instead of `slug`: its file and preview are removed for good. Examples: • Delete my game neon-coil-arena • Remove the failed entry from the waiting room • Delete the older copy of the same game

NameTypeReqDescription
slugstring–Game address in the catalogue, for example lantern-thief (from klyo_my_games).
upload_idstring–Package in the waiting room that never became a game (from klyo_upload_package or klyo_my_games → paczki).

No output schema declared.

No examples provided.

klyo_fill_game_form ~241

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 THEMSELVES. You write, on the owner's own AI plan; klyo runs no model and saves nothing: it is a draft in their browser. Without `pola` you get the list of fields, the allowed genres and moods, the rules and `formularz_otwarty` (whether the form is open). With `pola` we send them live; invalid ones (too long, a genre outside the list, no English description, profanity) come back in `odrzucone` with the reason. You do NOT fill in the content questionnaire, statements or consents: those are the owner's declarations. Send corrections with the same tool. Examples: • Fill in the new game form on klyo • Add the English and Polish descriptions in my game's form • Change the tagline in the form to a shorter one

NameTypeReqDescription
polaobject–Fields to type in; omit to see what the form needs.

No output schema declared.

No examples provided.

klyo_fix_game ~2,229

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, shelves, mood, game languages, screen layout, score limit, stage, store links, content questionnaire and age. It does NOT touch the package: replacing files is `klyo_update_game`, which runs the game through the safety check again. A typo in the description should not cost that, which is why these are two tools. LANGUAGES (since 2026-09-18): the description has TWO versions in tags: <en>…</en> in English (REQUIRED, at least 25 words) and <pl>…</pl> in Polish (the owner gets +40 XP for it). Put versions in other languages here only if the developer wrote them personally; what YOU translate goes through klyo_game_translate as a proposal the owner approves in the studio. klyo does not translate on its own account. `jezyk_tekstu` says which language the name, tagline and controls are in. Pass ONLY the fields you change: everything else stays as it is, and the fields you pass replace the current text. Examples: • Add to my game how to play it on a phone • Fix the description of lantern-thief and add an English version • Set the round length to 2 to 5 minutes in slice-rush

NameTypeReqDescription
ankietaobject–Content questionnaire (as in the app stores): ten yes/no questions about what IS in the game. The answers decide the age label on the game page, whether ads are shown next to the game and whether the…
czas_partiistring–How long one round takes (“2-5 minutes”), in the `jezyk_tekstu` language.
etapstring–Which stage the game is at: `w_budowie` = in development (still changing), `demo` (a finished slice of a bigger game), `gotowa` = finished (the full game). ASK THE DEVELOPER, do not guess. With `w_bu…
etap_dniinteger–Only with `demo` and `w_budowie`: after how many days (7 or 30) we remind the developer to change the stage; after the grace period a game without a decision leaves the catalogue.
haslostring–Tagline under the name: one sentence up to 80 characters PER LANGUAGE, no full stop at the end, plain text or one version per tag (<en>...</en><pl>...</pl>, each version counted on its own): what the…
jezyk_tekstustring–Code of the language the name, tagline and controls are written in (pl, en, de, fr, es, pt, it, ru, uk, tr). ALWAYS give it. The description has its own <en> (required) and <pl> (+40 XP) versions, se…
jezyki_uiarray–Languages of the MENU AND TEXT INSIDE THE GAME, not of the description. Players choose which languages they want to see games in, so this decides who the game is shown to. A game without a single wor…
kategoriastring–Game genre from the list, UP TO THREE separated by commas (for example “platformowa,przygodowa” = platformer, adventure). Pick the ones that really describe the game, not every one that fits, or the…
nastrojestring–What the player is in the mood for, separated by commas, from the list: 5-minut, jeden-kciuk, rusz-glowa, adrenalina, klasyki, spokojne (5-minut = five-minute fun, jeden-kciuk = one thumb, rusz-glowa…
nazwastring–ONLY the game's name, up to 30 characters PER LANGUAGE (as in Google Play and the App Store): “2048 Blockfall”, “Neon Coil: Family Arena”. One language: plain text in `jezyk_tekstu`. Several: one ver…
opisstring–Description for players in TWO versions, each in its own tag: <en>…</en> in English (REQUIRED, AT LEAST 25 words; without it the refusal `opis_en_wymagany`) and <pl>…</pl> in Polish (the owner gets +…
przemoc_realistycznaboolean–Legacy field: Realistic violence, blood or cruelty. Prefer the `ankieta` object with all the questions.
przemoc_rysunkowaboolean–Legacy field: Cartoon or abstract violence, no blood. Prefer the `ankieta` object with all the questions.
seksboolean–Legacy field: Nudity, sexual or suggestive content. Prefer the `ankieta` object with all the questions.
sklep_applestring–Address of the same game in the App Store (https://apps.apple.com/…), if it is also an iPhone app.
sklep_playstring–Address of the same game in Google Play (https://play.google.com/store/apps/details?id=…), if it is also an app. A badge on the game page and in share texts; empty = no badge.
slugstringyesGame address on the account, for example lantern-thief (from klyo_my_games).
sterowanie_dotykstring–How to play ON A PHONE, short and concrete (“swipe across the screen”), in the `jezyk_tekstu` language.
sterowanie_klawiaturastring–How to play ON A COMPUTER (“arrow keys and space”), in the `jezyk_tekstu` language.
strachboolean–Legacy field: Scenes that may frighten children. Prefer the `ankieta` object with all the questions.
tagistring–Catalogue shelves separated by commas, optional: logiczne (puzzle), zrecznosciowe (arcade), platformowe (platformers), przygodowe (adventure), na-telefon (for phones), klasyki (classics). Unknown one…
ukladstring–Game layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone) or `oba` = both, the game adapts when the screen rotates.
uklad_pionowyboolean–Legacy field: true = portrait game. Prefer `uklad`.
wiek_mininteger–Player age ACCORDING TO THE DEVELOPER: it can only RAISE the label above the questionnaire result (a game for older players by choice), never lower it. Above 12 the game does not go into the store ap…
wulgaryzmyboolean–Legacy field: Strong or offensive language. Prefer the `ankieta` object with all the questions.
wynik_maxinteger–The highest possible score in one round: a guard against inflated scores on the leaderboard. Omit it when the game has no score or no upper limit.

No output schema declared.

No examples provided.

klyo_game_cover ~245

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 own address, so they appear only AFTER release (`klyo_publish_game`), not during it. Call without `klatka` to get the list of available frames with their addresses; show them to the account owner, or look at them yourself and pick one that shows gameplay rather than the title screen. Then call again with its number. We deliberately do not accept a custom image: the cover must show what the player will really see after clicking. Retouched art that does not match the game is a reason for taking the game down. Examples: • Show frames to choose from for the cover of lantern-thief • Set the second frame as my game's cover • My game has no image in the catalogue, fix it

NameTypeReqDescription
klatkainteger–Number of the frame to set. OMIT it to get the list of frames to choose from first.
slugstringyesGame address on the account, for example lantern-thief (from klyo_my_games).

No output schema declared.

No examples provided.

klyo_game_diagnostics ~1,030

Eyes inside the game: for a package in the waiting room (`upload_id`) or a game in the catalogue (`slug`) it returns the files the game asked for that are missing from the package, and the JavaScript errors from the preview in the browser, in the order they happened. Also: the package check result (size, third-party ads, malicious code, missing klyo kit), ready conclusions in `wnioski`, and `dopasowanie`: the fit measurement from publishing on four screens (phone portrait and landscape with touch, tablet, desktop): `uwagi[]` with the codes `przewija` (page scrolls) | `maly_ekran` (screen too small) | `maly_tekst` (text too small) | `ciezka` (too heavy) | `dlugie_wczytanie` (long load) | `niski_fps` (low frame rate) | `male_cele_dotyku` (small touch targets) | `przycisk_bez_nazwy` (button without a name), `dotyk_nasluch` and `zrzut` thumbnails; `null` = the game has not been measured yet (a measurement starts with every version release). Read-only. YOUR BROWSER IS THE EYE HERE: we do not keep a browser farm and do not need one. Open the preview address on YOUR side (Playwright, Chrome, a phone), really play (click, swipe, wait for the second level) and our sensor on that page reports everything that crashed. Then ask with this tool. Order: open, play, ask; the other way round gives an empty answer, because errors are collected only once the game runs. Add `?s=<your marker>` to the address and pass `sesja` with the same value to get only the errors from your own run. NO BROWSER (a conversation in claude.ai or ChatGPT)? Pass `zmierz: true` for a package or a waiting version: we open the preview for you, collect errors and thumbnails of four screens (`zrzut_adres`); one measurement runs at a time per account and one more waits in the queue and starts by itself; 6 per hour, a full measurement counts as two. Add `pelny: true` for the production profile (a slow phone and every declared language). A game with a waiting version (workshop) shows its files, errors and premium…

NameTypeReqDescription
jezykiarray–With `pelny: true`: the languages to check (for example ["pl","en","de"]) instead of the ones the game declares. A language the game does not show is `jezyk_niedostepny`.
pelnyboolean–With `zmierz: true`: the production profile you run before `etap: gotowa` and before any release other than `poprawka`. On top of the four screens it adds a slow phone (CPU ×4, 3G network: frames, st…
sesjastring–Your test marker (1 to 24 characters: letters, digits, - and _). Open the preview on your side with `?s=<the same marker>`, play, then pass it here: you get ONLY the errors from your own run, without…
slugstring–Game address in the catalogue, for example lantern-thief (from klyo_my_games).
upload_idstring–ID of a package in the waiting room (from the upload response or from the preview).
zmierzboolean–Measurement on request for a waiting-room package or a waiting version (workshop): we open the preview on four screens, collect errors and take thumbnails (`dopasowanie.ekrany[].zrzut_adres`). For an…

No output schema declared.

No examples provided.

klyo_game_files ~392

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, size, whether it is text, `hash`); with `path`, the content of one text file, up to 200 KB at a time (read further with `from_line`, narrow with `lines`); with `changes: true`, what changed in the waiting version compared with the version players have: how much code, visuals and sound (the same numbers the studio shows at “Release”) and the line differences. When the game has a waiting version (a workshop from klyo_game_patch or a new package) you read that one; otherwise the version players are playing. Pass the `hash` field as `expected_hash` to klyo_game_patch. Images and sounds are not returned as content, only their size. Read-only. Examples: • Show the files of my game czworki • Read js/gra.js from lantern-thief starting at line 200 • What changed in the waiting version of slice-rush?

NameTypeReqDescription
changesboolean–Together with the list: what changed in the waiting version compared with the version players have.
from_lineinteger–Line to start reading from (default 1).
linesinteger–Maximum number of lines (reading stops at 200 KB anyway).
pathstring–File to read, relative to the game, for example js/gra.js. Without this field you get the file list.
slugstring–Game address, for example lantern-thief (from klyo_my_games). Give this or `upload_id`.
upload_idstring–A waiting-room package (from klyo_upload_package), when there is no game yet.

No output schema declared.

No examples provided.

klyo_game_patch ~904

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_id`. The first edit opens a WORKSHOP: a copy of the game next to the version players have, with its own preview address. Players keep playing the previous version until you release the new one (klyo_release_version for a game, klyo_publish_game for a package); the owner sees it in the studio as “New version waiting”. Each item of `edits` has a `path` and one of three: `old_string` with `new_string` (an exact fragment that must occur once, or add `replace_all`), `content` (the whole file or a new file), or `delete: true`. For a file that exists, pass `expected_hash` from klyo_game_files: if someone changed the file in the meantime you get a conflict and nothing is saved. The changes of one call are applied all or none. Every changed file goes through the klyo check (malicious code, third-party ads, nothing from outside klyo), and the whole game once more before release. Send an image, sound, font or large file (up to 20 MB) with the ticket from klyo_upload_package and reference it in the edit with `from_upload` (no base64). GAME FROM SCRATCH: `nowa` (plansza, zrecznosciowa, logiczna) instead of a target creates a package from the Klyo Kit skeleton and applies `edits` right away; the response carries `upload_id`. UNDO: before every edit a checkpoint `auto-N` is created (it is in the response); `revert` goes back to it or to a named `checkpoint`, `discard` abandons the whole workshop for good; players see none of this. Limits: a file from content up to 1 MB, a call up to 256 KB and 20 edits, 3 open workshops per account; a workshop with no changes for 7 days expires, and the version players have stays untouched. Examples: • Change the board colour in style.css of my game czworki • In js/gra.js of slice-rush change the speed from 4 to 6 • Add a levels.json file with three levels to the package in the waiting r…

NameTypeReqDescription
checkpointstring–A named workshop checkpoint (for example premium-ui-v1): a snapshot of the state BEFORE the changes of this call; may stand alone, without `edits`. An automatic `auto-N` checkpoint is created before…
discardboolean–Abandon the workshop: the game loses the waiting version from the workshop (the version players have is untouched), a package returns to the files from its ZIP. Stands alone, without `edits`.
editsarray–Changes; applied all or none. Each: `path` and one of three: `old_string` with `new_string`, `content` or `delete: true`.
nowastring–A game from scratch, without a ZIP: in the same call a package is created from the Klyo Kit skeleton (as in klyo_game_scaffold) and `edits` change it right away (you overwrite skeleton files without…
revertstring–Return the workshop to a checkpoint (`auto-N` from an edit response or a name from `checkpoint`; the list is in klyo_game_files). Stands alone, without `edits`. The state before the revert is saved a…
slugstring–Game address (from klyo_my_games). Give this or `upload_id`.
upload_idstring–A waiting-room package, when there is no game yet; klyo_publish_game later releases it with these edits.

No output schema declared.

No examples provided.

klyo_game_requirements ~235

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, tablet, desktop, portrait and landscape, resize), input (touch, mouse and keyboard), game loop, minimum content, sound, graphics, social layer (leaderboard, saves, clips; multiplayer only when it makes sense), brands and law, the LOCAL test `klyo-test` (the same one the server runs on publishing) with a fix-and-test loop, the quality gate and the release stages (preview, demo, finished, new version). The text of the standard is in Polish. Read-only, no parameters. When the user writes “make a battleship game”, do not ask them about phones, leaderboards or sound: it is all here. Do not say “done” until `klyo-test` passes without critical errors. Examples: • Make me a battleship game • What are the requirements for a game on klyo? • Build a puzzle game for phone and desktop

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

klyo_game_scaffold ~330

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: game loop (menu, play and pause, game over, play again), touch, mouse, keyboard and gamepad input as one event, a canvas for any screen with safe areas, synthesized sound with no files (resumed after the app comes back from the background), juice (tweens, shake, particles, flash), light and dark theme, saves across devices, a score to the leaderboard with rank, modes solo, on one device or online by link, PL and EN, accessibility. You write ONLY the gameplay. Read-only. Optional `rodzaj`: `plansza` (board game with turns), `zrecznosciowa` (arcade) or `logiczna` (puzzle, the default). Reference game: Battleships. Examples: • Start a game on Klyo Kit • Give me a game skeleton with a menu, pause and a leaderboard • How do I make an online game that friends join by link on klyo?

NameTypeReqDescription
rodzajstring–Shape of the game: `plansza` = board game with turns (solo against minimax, on one device, online); `zrecznosciowa` = arcade, a real-time loop steered by finger or keys; `logiczna` (default) = puzzle…

No output schema declared.

No examples provided.

klyo_game_sdk ~181

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 full screen, inserts an ad break, offers a REWARDED ad and lets the player record a clip. Read-only, needs no input. CALL THIS RIGHT AFTER klyo_game_requirements, BEFORE YOU WRITE A GAME FOR klyo. Without it you will build a game with no leaderboard, no saves across devices and without the only allowed way to show ads, and the package will bounce off the check if you put another ad network in it. Examples: • How do I add a rewarded ad to a game on klyo? • What can a game embedded in klyo games call? • How do I save player progress across devices?

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

klyo_game_stats ~197

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. Examples: • How many people played my game this week? • Stats for lantern-thief • Show plays day by day

NameTypeReqDescription
dniinteger–How many days of the daily series (default 30).
slugstringyesGame address in the catalogue, for example lantern-thief (from klyo_my_games).
sprawdz_googleboolean–Ask Google about this game's pages now (URL Inspection), at most once an hour per game. Each page then carries `sprawdzono` (when we asked) and `odwiedziny` (Google's last crawl). Google has no API t…

No output schema declared.

No examples provided.

klyo_game_translate ~474

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 plan; klyo runs no model and does not pay for translation. Two steps in one tool: (1) call with only `slug` to get the original field by field (`oryginal`), the original language, the languages still to do (`do_tlumaczenia`, with their state) and the check rules; (2) call with `slug` and `tlumaczenia` = { language code: { field: text } } with ALL the fields from `oryginal`. Each language goes through the same check as the developer's own text: long dashes and the ellipsis character are replaced with plain ones, no markup, no longer than twice the original, name and tagline on one line up to 80 characters, the text must be in that language, no disallowed words. A language that fails comes back in `odrzucone` with the reason: fix it and send it again; good languages are saved. What is saved are PROPOSALS: the owner approves them in the studio (dev.klyo.pl, the game, Translations) and only approved ones count for Google. Do not tell the user the translations are already on the page. This tool does not change the developer's own texts (English required, Polish for XP); that is klyo_fix_game. Examples: • Translate my game into all klyo languages • What is missing in the translations of lantern-thief? • Add German and French versions of my game's description

NameTypeReqDescription
slugstringyesGame address, for example lantern-thief (from klyo_my_games).
tlumaczeniaobject–Omit to see what to translate. When saving: language code (pl, en, de, fr, es, pt, it, ru, uk, tr) → an object with ALL the fields from `oryginal` (nazwa, haslo, opis, sterowanie_dotyk, sterowanie_kl…

No output schema declared.

No examples provided.

klyo_my_games ~91

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. Call this FIRST to learn the `slug` the other tools need. Examples: • Which games do I have on klyo? • Is my game published yet? • Show the state of my games

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

klyo_publish_game ~2,533

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 description (at least 25 words, about 220 to be indexed by Google), genre from the list, text language and all ten answers of the content questionnaire, exactly what a person fills in in the studio wizard; limits are in the schema (name up to 30 characters, tagline up to 80, lists of genres and moods). Write the description in English (required) and in Polish (earns XP); you translate other languages later with klyo_game_translate and the owner approves them in the studio. We download and check the package (size, files, third-party ads, malicious code, profanity, other companies' brands). IT DOES NOT PUBLISH: the game goes live at its own address `g-<slug>.klyo.pl` in the `oczekuje` (waiting) state until the account owner plays it and clicks “Release to the catalogue”. Do not tell the user the game is published; it is ready to be looked at. We check the package, not the gameplay. If the game shows a white screen, call `klyo_game_diagnostics` with the same `slug`. REQUIRES that the account owner has accepted the developer terms in a browser at https://dev.klyo.pl/ beforehand; the assistant does not sign agreements. PREMIUM REVIEW: for stage `gotowa` (finished) or no stage, pass `przeglad`: seven points (graphics, animation, sound, feedback to player actions, light and dark theme, languages, online), each with evidence; the owner sees it before “Release”, together with the traces found in the code. Examples: • Prepare my game from this ZIP address for release on klyo games • Publish the game “Lantern Thief”, the package is at this link • Upload this package as a game for everyone, with no violence

NameTypeReqDescription
ankietaobjectyesContent questionnaire (as in the app stores): ten yes/no questions about what IS in the game. The answers decide the age label on the game page, whether ads are shown next to the game and whether the…
bez_pornobooleanyesStatement by the account owner: the game has no nudity or sexual content. Must be `true`. We accept 18+ games for violence, but not sexual content: that is a condition of the catalogue, not a prefere…
czas_partiistring–How long one round takes (“2-5 minutes”), in the `jezyk_tekstu` language.
etapstring–Which stage the game is at: `w_budowie` = in development (still changing), `demo` (a finished slice of a bigger game), `gotowa` = finished (the full game). ASK THE DEVELOPER, do not guess. With `w_bu…
etap_dniinteger–Only with `demo` and `w_budowie`: after how many days (7 or 30) we remind the developer to change the stage; after the grace period a game without a decision leaves the catalogue.
haslostringyesTagline under the name: one sentence up to 80 characters PER LANGUAGE, no full stop at the end, plain text or one version per tag (<en>...</en><pl>...</pl>, each version counted on its own): what the…
jezyk_tekstustringyesCode of the language the name, tagline and controls are written in (pl, en, de, fr, es, pt, it, ru, uk, tr). ALWAYS give it. The description has its own <en> (required) and <pl> (+40 XP) versions, se…
jezyki_uiarray–Languages of the MENU AND TEXT INSIDE THE GAME, not of the description. Players choose which languages they want to see games in, so this decides who the game is shown to. A game without a single wor…
kategoriastringyesGame genre from the list, UP TO THREE separated by commas (for example “platformowa,przygodowa” = platformer, adventure). Pick the ones that really describe the game, not every one that fits, or the…
nastrojestring–What the player is in the mood for, separated by commas, from the list: 5-minut, jeden-kciuk, rusz-glowa, adrenalina, klasyki, spokojne (5-minut = five-minute fun, jeden-kciuk = one thumb, rusz-glowa…
nazwastringyesONLY the game's name, up to 30 characters PER LANGUAGE (as in Google Play and the App Store): “2048 Blockfall”, “Neon Coil: Family Arena”. One language: plain text in `jezyk_tekstu`. Several: one ver…
opisstringyesDescription for players in TWO versions, each in its own tag: <en>…</en> in English (REQUIRED, AT LEAST 25 words; without it the refusal `opis_en_wymagany`) and <pl>…</pl> in Polish (the owner gets +…
przegladobject–Premium quality review, seven points with evidence. Required for stage `gotowa` and when no stage is given; may be omitted for `demo` and `w_budowie`. The server does not judge taste; it matches the…
przemoc_realistycznaboolean–Legacy field: Realistic violence, blood or cruelty. Prefer the `ankieta` object with all the questions.
przemoc_rysunkowaboolean–Legacy field: Cartoon or abstract violence, no blood. Prefer the `ankieta` object with all the questions.
seksboolean–Legacy field: Nudity, sexual or suggestive content. Prefer the `ankieta` object with all the questions.
sklep_applestring–Address of the same game in the App Store (https://apps.apple.com/…), if it is also an iPhone app.
sklep_playstring–Address of the same game in Google Play (https://play.google.com/store/apps/details?id=…), if it is also an app. A badge on the game page and in share texts; empty = no badge.
sterowanie_dotykstring–How to play ON A PHONE, short and concrete (“swipe across the screen”), in the `jezyk_tekstu` language.
sterowanie_klawiaturastring–How to play ON A COMPUTER (“arrow keys and space”), in the `jezyk_tekstu` language.
strachboolean–Legacy field: Scenes that may frighten children. Prefer the `ankieta` object with all the questions.
tagistring–Catalogue shelves separated by commas, optional: logiczne (puzzle), zrecznosciowe (arcade), platformowe (platformers), przygodowe (adventure), na-telefon (for phones), klasyki (classics). Unknown one…
ukladstring–Game layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone) or `oba` = both, the game adapts when the screen rotates.
uklad_pionowyboolean–Legacy field: true = portrait game. Prefer `uklad`.
upload_idstring–ID of the package sent to klyo (see klyo_upload_package). Use THIS when the file is on disk; do not set up a tunnel.
wiek_mininteger–Player age ACCORDING TO THE DEVELOPER: it can only RAISE the label above the questionnaire result (a game for older players by choice), never lower it. Above 12 the game does not go into the store ap…
wulgaryzmyboolean–Legacy field: Strong or offensive language. Prefer the `ankieta` object with all the questions.
wynik_maxinteger–The highest possible score in one round: a guard against inflated scores on the leaderboard. Omit it when the game has no score or no upper limit.
zip_urlstring–Public https address of the ZIP package (index.html inside), up to 100 MB. Only for a game that REALLY is online already, for example when moving it from itch.io.

No output schema declared.

No examples provided.

klyo_release_rollback ~194

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 files are kept next to the current ones and come back with one switch, without uploading; the version we take down stays next to it (rolling back again swaps them). The game's address, scores and stats do not change. Refused with `brak_poprzedniej` when the game has only one version. Use it when the owner reports that a new version breaks the game; then fix locally, run klyo-test, klyo_update_game, klyo_release_version. Examples: • Roll lantern-thief back to the previous version • The new version breaks the game, restore the previous one

NameTypeReqDescription
slugstringyesGame address in the catalogue (from klyo_my_games).

No output schema declared.

No examples provided.

klyo_release_version ~502

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 (anyone in the middle of a round sees a bar “update or finish the round”), the previous version stays with us, the game page is rebuilt and the developer's followers are notified. You may omit the kind of change (`zmiana`); then we use the one measured from the files. Effect on the clip: `poprawka` (fix): the clip stays; `funkcja` (feature): the clip stays and `nowosc` (one sentence) goes to the feed as “New”; `interfejs` (interface): the old clip leaves the tile and the feed until a person records a new one in the studio (the assistant does not record clips). Release only when the owner has confirmed that they played the new version, or deliberately wants to release it without playing. PREMIUM REVIEW: for any change other than `poprawka`, pass `przeglad` (seven points with evidence, listed in the schema and in klyo_game_requirements); before the swap the whole game goes through the check again. Examples: • Release the new version of lantern-thief, it is a fix • I played it and it works: release the version with the new feature, a daily mode • Release the waiting version of my game

NameTypeReqDescription
nowoscstring–What is new: one sentence for the clip card in the feed. Only with `funkcja`.
przegladobject–Premium quality review, seven points with evidence. Required unless `zmiana` is `poprawka` (a fix). The server does not judge taste; it matches the declaration against traces in the code and shows it…
slugstringyesGame address on the account, for example lantern-thief (from klyo_my_games).
zmianastring–Kind of change: `poprawka` = fix (the clip stays) | `funkcja` = feature (the clip stays, `nowosc` goes to the feed) | `interfejs` = interface (the old clip is taken down until a new one is recorded).…

No output schema declared.

No examples provided.

klyo_status ~145

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 (Google Search Console, Google Ads, AdMob, and for the owner also Cloudflare), each as `ok`, `not_connected`, `auth_error` or `no_data`, with what to do. Call it at the start of work and before you base a decision on a report whose section may not have loaded. Read-only. Examples: • Is my connection to klyo working and what can I do? • Which integrations are connected? • Which version is the klyo server?

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

klyo_update_game ~370

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 keeps its address, name, description, scores and hearts; only the files change. Do not create a second game to ship a fix: that splits players and records between two addresses. A published game does NOT change right away: the new version goes to a waiting room with its own preview address and replaces any version that was already waiting there, including an open workshop from klyo_game_patch; the response carries a measurement of the files (`zmiana`: how much code, visuals and sound changed, new files and texts, and a suggested kind: `poprawka` fix | `funkcja` feature | `interfejs` interface). A game that is not in the catalogue yet gets the new files at once. Then two ways: the owner plays the preview and clicks “Release” in the studio, OR you call klyo_release_version. A clip for the new version is recorded by a person in the studio; the assistant does not record. Examples: • Upload the fixed version of lantern-thief from this address • Replace my game's package with the new one, I fixed a bug • Update the game without changing its address or name

NameTypeReqDescription
slugstringyesGame address on the account, for example lantern-thief (from klyo_my_games).
upload_idstring–ID of the NEW package sent to klyo (see klyo_upload_package). Preferred when the file is on disk.
zip_urlstring–Public https address of the NEW ZIP package. Only when the package really is online.

No output schema declared.

No examples provided.

klyo_upload_package ~307

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_poczekalni`: packages already on the account that have not become a game yet, each with its `upload_id`; (2) `bilet`: a token valid for one hour ONLY for sending files, which you put in the `Authorization: Bearer` header (it opens no tool; you do not have it in your configuration, which is why you get it here); (3) a recipe: if you have a shell (curl), send the file with the ticket in two HTTP requests; if you do not, ask the owner to upload the ZIP in the studio at https://dev.klyo.pl/ (it lands in the waiting room, nothing is published) and call this tool again: the package will appear in `paczki_w_poczekalni`. Pass the returned `upload_id` to klyo_publish_game or klyo_update_game instead of `zip_url`. Do not save the ticket in project files. Examples: • How do I send a ZIP from my disk to klyo? • Publish this game, the file is on my computer • The owner uploaded a package in the studio, which one should I publish? • I don't want to expose the game publicly, how do I upload the package?

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Common questions

What is the klyo games: publish HTML5 browser games MCP server?

klyo games: publish HTML5 browser games is an MCP server listed in the public MCP registry as pl.klyo/games. Publish HTML5 browser games from your AI assistant: own address, live stats, 70% ad share. This page covers its hosted endpoint (https://panel.klyo.pl/mcp?profil=gry).

Is the klyo games: publish HTML5 browser games MCP server safe to use?

klyo games: publish HTML5 browser games scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the klyo games: publish HTML5 browser games MCP server expose?

klyo games: publish HTML5 browser games exposes 21 tools: klyo_my_games, klyo_publish_game, klyo_upload_package, klyo_update_game, klyo_release_rollback, and 16 more. Their descriptions and schemas cost roughly 11,378 tokens of context every time the server is loaded.

Does the klyo games: publish HTML5 browser games MCP server require authentication?

Yes. klyo games: publish HTML5 browser games asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the klyo games: publish HTML5 browser games MCP server still maintained?

klyo games: publish HTML5 browser games is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.