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. 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
  2. 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."
  3. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations are minimal (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description carries the full behavioral burden—and it succeeds. It discloses that the owner watches and submits themselves, klyo runs no model and saves nothing, invalid fields return in `odrzucone` with reasons, and certain sections (questionnaire, statements, consents) are intentionally not filled. This is far beyond what annotations provide.

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?

The description is long but each paragraph adds necessary operational detail: live nature, with/without `pola` behavior, exclusions, and examples. It front-loads the core purpose and then structures the details. It is dense but not wasteful; the examples are practical. A slightly shorter version could exist, but the complexity justifies the length.

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

Completeness4/5

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

The description covers usage, limitations, validation, privacy, and return indicators (`odrzucone`, `formularz_otwarty`). It does not fully specify the output structure, but since there is no output schema, the description gives enough for an agent to understand the response flow. The nested parameters are exhaustively documented in the schema, so the description complements rather than duplicates.

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?

The schema already provides 100% description coverage for the `pola` parameter and all nested fields. The tool description adds meaningful behavior beyond the schema: omitting `pola` returns the field list, allowed genres/moods, rules, and `formularz_otwarty`; providing it sends values live and invalid ones come back in `odrzucone`. This clarifies the interactive contract and response handling.

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?

The description uses a specific verb and resource: 'Types fields into the OPEN “New game” form in the developer's studio (dev.klyo.pl)'. It clearly distinguishes itself from siblings by emphasizing the live, owner-watched nature and explicitly excludes filling content questionnaire, statements, or consents. An agent can easily tell this apart from update_game or delete_game.

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

Usage Guidelines4/5

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

It provides explicit examples of when to use the tool ('Fill in the new game form on klyo') and negative guidance ('You do NOT fill in the content questionnaire...'). It explains the conditional behavior with and without `pola`, and states corrections are sent with the same tool. However, it does not explicitly name sibling alternatives like klyo_update_game for existing games, leaving that distinction somewhat implicit.

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.