Skip to main content
Glama

klyo games: publish HTML5 browser games

Fill the open New game form live (owner's own AI)

klyo_fill_game_form

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
polaNoFields to type in; omit to see what the form needs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / pola / properties / haslo / description
      Previous value: -"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 game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."New value: +"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 game is, in the words players search for (“classic offline sudoku”). It stands under the name as the H2 and in the Google title of the page. Keep it short: the Google title of the page is “Free {name}: {tagline}” (Polish “{nazwa} za darmo: {haslo}”) and must fit 59 characters, otherwise the page gets the generic “{name}: play free online”; do not repeat free/za darmo, the template adds it. The tool answer `do_poprawy` shows the resulting title per language. REQUIRED for release: without it the server refuses (`brak_hasla`)."
  2. Changed2 schema fields changed
    • changedInput schema / properties / pola / properties / uklad / description
      Previous value: -"Game layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone) or `oba` = both, the game adapts when the screen rotates."New value: +"Game layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone), `oba` = both, the game adapts when the screen rotates, or `komputer` = computer only (mouse and keyboard, landscape): the portal hides the game on phones and its page tells phone visitors to play on a computer. Phone screen notes then warn instead of blocking the release."
    • changedInput schema / properties / pola / properties / uklad / enum
      Previous value: -[
      -  "poziom",
      -  "pion",
      -  "oba"
      -]New value: +[
      +  "poziom",
      +  "pion",
      +  "oba",
      +  "komputer"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / pola / properties / opis / description
      Previous value: -"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 +40 XP for it). In each version: what you do in the game (first sentence), what a round looks like and how long it takes, who it is for, how it differs from similar games; Google needs about 220 words, and a shorter description means the game page is NOT indexed. Write like a person writing for players: normal punctuation, no “dive into” or “discover”, no lists or bold, no HTML tags. Other languages (<de>, <es>…) only when the developer REALLY wrote them personally; translations from the assistant go through klyo_game_translate as proposals to approve."New value: +"Description for players in TWO versions (up to 4000 characters EACH, as in the studio), 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 +40 XP for it). In each version: what you do in the game (first sentence), what a round looks like and how long it takes, who it is for, how it differs from similar games; Google needs about 220 words, and a shorter description means the game page is NOT indexed. Write like a person writing for players: normal punctuation, no “dive into” or “discover”, no lists or bold, no HTML tags. SUBHEADINGS: a line that starts with “## ” becomes a subheading on the game page; use them for the questions players really ask (“## How to play sudoku”, “## Sudoku tips for beginners”), each followed by a paragraph, and never as the first line (the first sentence is the lead). Other languages (<de>, <es>…) only when the developer REALLY wrote them personally; translations from the assistant go through klyo_game_translate as proposals to approve."
    • changedInput schema / properties / pola / properties / opis / maxLength
      Previous value: -4000New value: +9000
  4. Changed4 schema fields changed
    • changedInput schema / properties / pola / properties / haslo / description
      Previous value: -"Tagline under the name: one sentence up to 80 characters, no full stop at the end: what the game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."New value: +"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 game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."
    • changedInput schema / properties / pola / properties / haslo / maxLength
      Previous value: -80New value: +900
    • changedInput schema / properties / pola / properties / nazwa / description
      Previous value: -"ONLY the game's name, up to 30 characters (as in Google Play and the App Store), in ONE language (see `jezyk_tekstu`): “2048 Blockfall”, “Neon Coil: Family Arena”. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand."New value: +"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 version per tag, <en>Kulki: Glass Garden</en><pl>Kulki: Szklany Ogrod</pl>, and the 30-character limit counts each version on its own. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand."
    • changedInput schema / properties / pola / properties / nazwa / maxLength
      Previous value: -30New value: +400
  5. Changed22 schema fields changed
    • changedInput schema / properties / pola / description
      Previous value: -"Pola do wpisania; pomiń, żeby zobaczyć, czego formularz potrzebuje."New value: +"Fields to type in; omit to see what the form needs."
    • changedInput schema / properties / pola / properties / czas_partii / description
      Previous value: -"Ile trwa jedna partia („2-5 minut”), w języku `jezyk_tekstu`."New value: +"How long one round takes (“2-5 minutes”), in the `jezyk_tekstu` language."
    • changedInput schema / properties / pola / properties / etap / description
      Previous value: -"Na jakim etapie jest gra: `w_budowie` (jeszcze się zmienia), `demo` (skończony kawałek większej gry), `gotowa` (pełna gra). ZAPYTAJ TWÓRCĘ, nie zgaduj. Przy `w_budowie` i `demo` gracz widzi znaczek w katalogu."New value: +"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_budowie` and `demo` players see a badge in the catalogue."
    • changedInput schema / properties / pola / properties / etap_dni / description
      Previous value: -"Tylko przy `demo` i `w_budowie`: za ile dni (7 albo 30) przypominamy o zmianie etapu; po karencji gra bez decyzji schodzi z katalogu."New value: +"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."
    • changedInput schema / properties / pola / properties / haslo / description
      Previous value: -"Hasło pod nazwą — jedno zdanie do 80 znaków, bez kropki na końcu: czym gra jest, słowami, których gracz szuka („klasyczne sudoku offline za darmo”). Stoi pod nazwą jako H2 i w tytule karty w Google. OBOWIĄZKOWE przy wydaniu — bez niego serwer odmawia (`brak_hasla`)."New value: +"Tagline under the name: one sentence up to 80 characters, no full stop at the end: what the game is, in the words players search for (“classic offline sudoku for free”). It stands under the name as the H2 and in the Google title of the page. REQUIRED for release: without it the server refuses (`brak_hasla`)."
    • changedInput schema / properties / pola / properties / jezyk_tekstu / description
      Previous value: -"Kod języka, w którym napisano nazwę, hasło i sterowanie (pl, en, de, fr, es, pt, it, ru, uk, tr). Podaj ZAWSZE. Opis ma własne wersje <en> (wymagana) i <pl> (+40 XP) — patrz `opis`. Pozostałe języki tłumaczy asystent właściciela przez klyo_game_translate (propozycje, które właściciel przyjmuje w studiu); klyo nie tłumaczy na własnym koncie."New value: +"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, see `opis`. Other languages are translated by the owner's assistant through klyo_game_translate (proposals the owner approves in the studio); klyo does not translate on its own account."
    • changedInput schema / properties / pola / properties / jezyki_ui / description
      Previous value: -"Języki MENU I NAPISÓW W SAMEJ GRZE — nie języka opisu. Gracz ustawia, w jakich językach chce widzieć gry, więc od tego zależy, komu gra się pokaże. Gra bez ani jednego słowa (same liczby, kształty — jak 2048): wyłącznie [\"bez-tekstu\"]. Nie zgaduj — zapytaj właściciela albo pomiń."New value: +"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 word (only numbers and shapes, like 2048): only [\"bez-tekstu\"] (no text). Do not guess: ask the owner or omit it."
    • changedInput schema / properties / pola / properties / kategoria / description
      Previous value: -"Rodzaj gry z listy, DO TRZECH po przecinku (np. „platformowa,przygodowa”). Wybierz te, które naprawdę opisują grę — nie wszystkie pasujące, bo filtr przestaje cokolwiek znaczyć. „inne” tylko gdy nic nie pasuje. Co najmniej jeden — inaczej odmowa (`rodzaj_spoza_listy`). Dozwolone: zrecznosciowa, logiczna, ukladanki, klocki, dopasuj-3, kulki, pamiec, sudoku, pasjans, fizyczna, escape, biegacz, jazda, zarzadzanie, tekstowa, rysowanie, dwie-osoby, platformowa, przygodowa, akcja, strzelanka, walka, wyscigi, sportowa, strategiczna, obrona-wiezy, symulacja, farma, rpg, roguelike, przetrwanie, horror, karcianka, planszowa, mahjong, slowna, quiz, edukacyjna, muzyczna, klikacz, ubieranki, gotowanie, szukanie, io, inne."New value: +"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 filter stops meaning anything. “inne” (other) only when nothing fits. At least one, otherwise the refusal `rodzaj_spoza_listy`. The values are Polish identifiers, for example zrecznosciowa = arcade, logiczna = puzzle and logic, dopasuj-3 = match-3, obrona-wiezy = tower defense, strzelanka = shooter, wyscigi = racing, planszowa = board game, karcianka = card game, slowna = word game. Allowed: zrecznosciowa, logiczna, ukladanki, klocki, dopasuj-3, kulki, pamiec, sudoku, pasjans, fizyczna, escape, biegacz, jazda, zarzadzanie, tekstowa, rysowanie, dwie-osoby, platformowa, przygodowa, akcja, strzelanka, walka, wyscigi, sportowa, strategiczna, obrona-wiezy, symulacja, farma, rpg, roguelike, przetrwanie, horror, karcianka, planszowa, mahjong, slowna, quiz, edukacyjna, muzyczna, klikacz, ubieranki, gotowanie, szukanie, io, inne."
    • changedInput schema / properties / pola / properties / nastroje / description
      Previous value: -"Na co gracz ma ochotę — po przecinku, z listy: 5-minut, jeden-kciuk, rusz-glowa, adrenalina, klasyki, spokojne. To NIE jest rodzaj gry: rodzaj mówi, czym gra JEST, nastrój — na co trzeba mieć ochotę. Pomiń, jeśli nie wiesz."New value: +"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 = brain teaser, adrenalina = adrenaline, klasyki = classics, spokojne = calm). This is NOT the genre: the genre says what the game IS, the mood says what you need to feel like playing it. Omit if you do not know."
    • changedInput schema / properties / pola / properties / nazwa / description
      Previous value: -"SAMA nazwa gry, do 30 znaków (jak w Google Play i App Store), w JEDNYM języku (patrz `jezyk_tekstu`): „2048 Blockfall”, „Neon Coil: Family Arena”. BEZ hasła i zwrotów z wyszukiwarki („zagraj za darmo online”, „free online”) — to odrzucamy (`nazwa_z_haslem`), bo z nazwy powstaje adres gry i tytuł w Google w obu językach. Nie zaczynaj od cudzej marki."New value: +"ONLY the game's name, up to 30 characters (as in Google Play and the App Store), in ONE language (see `jezyk_tekstu`): “2048 Blockfall”, “Neon Coil: Family Arena”. NO tagline and no search phrases (“play free online”) in it: we reject that (`nazwa_z_haslem`), because the game's address and its Google title in both languages come from the name. Do not start with another company's brand."
    • changedInput schema / properties / pola / properties / opis / description
      Previous value: -"Opis dla gracza w DWÓCH wersjach, każda po swoim znaczniku: <en>…</en> po angielsku (WYMAGANA, MINIMUM 25 słów; bez niej odmowa `opis_en_wymagany`) i <pl>…</pl> po polsku (za nią właściciel dostaje +40 XP). W każdej wersji: co się robi w grze (pierwsze zdanie), jak wygląda partia i ile trwa, dla kogo jest, czym różni się od podobnych; do Google potrzeba około 220 słów — krótszy opis znaczy, że strona gry NIE wchodzi do wyszukiwarki. Pisz jak człowiek dla graczy: zwykła interpunkcja, bez „zanurz się / odkryj”, bez list i pogrubień, bez znaczników HTML. Inne języki (<de>, <es>…) tylko wtedy, gdy twórca NAPRAWDĘ napisał je sam; tłumaczenia od asystenta idą przez klyo_game_translate jako propozycje do przyjęcia."New value: +"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 +40 XP for it). In each version: what you do in the game (first sentence), what a round looks like and how long it takes, who it is for, how it differs from similar games; Google needs about 220 words, and a shorter description means the game page is NOT indexed. Write like a person writing for players: normal punctuation, no “dive into” or “discover”, no lists or bold, no HTML tags. Other languages (<de>, <es>…) only when the developer REALLY wrote them personally; translations from the assistant go through klyo_game_translate as proposals to approve."
    • changedInput schema / properties / pola / properties / przemoc_realistyczna / description
      Previous value: -"Starsze pole: Przemoc realistyczna, krew, okrucieństwo. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Realistic violence, blood or cruelty. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / pola / properties / przemoc_rysunkowa / description
      Previous value: -"Starsze pole: Przemoc rysunkowa lub umowna, bez krwi. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Cartoon or abstract violence, no blood. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / pola / properties / seks / description
      Previous value: -"Starsze pole: Nagość, treści seksualne lub sugestywne. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Nudity, sexual or suggestive content. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / pola / properties / sklep_apple / description
      Previous value: -"Adres tej samej gry w App Store (https://apps.apple.com/…), jeśli jest też aplikacją na iPhone’a."New value: +"Address of the same game in the App Store (https://apps.apple.com/…), if it is also an iPhone app."
    • changedInput schema / properties / pola / properties / sklep_play / description
      Previous value: -"Adres tej samej gry w Google Play (https://play.google.com/store/apps/details?id=…), jeśli jest też aplikacją. Odznaka na stronie gry i w tekstach udostępnienia; pusto = brak odznaki."New value: +"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."
    • changedInput schema / properties / pola / properties / sterowanie_dotyk / description
      Previous value: -"Jak grać NA TELEFONIE, krótko i konkretnie („przesuń palcem po ekranie”), w języku `jezyk_tekstu`."New value: +"How to play ON A PHONE, short and concrete (“swipe across the screen”), in the `jezyk_tekstu` language."
    • changedInput schema / properties / pola / properties / sterowanie_klawiatura / description
      Previous value: -"Jak grać NA KOMPUTERZE („strzałki i spacja”), w języku `jezyk_tekstu`."New value: +"How to play ON A COMPUTER (“arrow keys and space”), in the `jezyk_tekstu` language."
    • changedInput schema / properties / pola / properties / strach / description
      Previous value: -"Starsze pole: Sceny, które mogą przestraszyć dzieci. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Scenes that may frighten children. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / pola / properties / uklad / description
      Previous value: -"Układ gry: poziom (jak ekran komputera), pion (jak telefon) albo oba — gra dopasowuje się do obrotu ekranu."New value: +"Game layout: `poziom` = landscape (like a computer screen), `pion` = portrait (like a phone) or `oba` = both, the game adapts when the screen rotates."
    • changedInput schema / properties / pola / properties / wulgaryzmy / description
      Previous value: -"Starsze pole: Wulgaryzmy lub obraźliwy język. Wolimy obiekt `ankieta` z kompletem pytań."New value: +"Legacy field: Strong or offensive language. Prefer the `ankieta` object with all the questions."
    • changedInput schema / properties / pola / properties / wynik_max / description
      Previous value: -"Najwyższy możliwy wynik w jednej partii — zapora przed nabijaniem punktów na tablicy. Pomiń, gdy gra nie ma wyniku albo górnej granicy."New value: +"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."
  6. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false. The description adds substantial context beyond them: the owner watches and submits, klyo runs no model and saves nothing (pure browser draft), and invalid fields return in `odrzucone` with reasons while `do_poprawy`/`formularz_otwarty` surface validation and form state. This tells the agent what actually happens on invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose in the first sentence, followed by mode behavior, constraints and concrete examples — every paragraph earns its place. It is dense and the opening sentence is long, but there is no filler; a slightly tighter lead would make it a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a 24-field nested schema, no output schema and no required params, the description covers the workflow (open form → fill → owner submits), the validation feedback keys, and the scope exclusions. The agent has everything needed to call it correctly and interpret the interactive result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3; the description earns above baseline by explaining the two-mode semantics of `pola` (omit → discovery/field list, provide → live send) and the refusal/validation loop. It does not add field-level detail beyond the already exhaustive schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource — types fields into the OPEN 'New game' form in the developer's studio — and immediately scopes it as a live draft the owner submits themselves. This distinguishes it behaviorally from the save/update siblings (klyo_update_game, klyo_game_patch) even without naming them. An agent can tell what this tool does and does not do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit two-mode guidance: without `pola` you get the field list, allowed values and `formularz_otwarty` (whether the form is open); with `pola` fields are sent live. It states what must NOT be filled (questionnaire, statements, consents) and how to send corrections ('same tool'). Routing to klyo_game_translate for other languages is named in the schema, so the alternative path is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.