Skip to main content
Glama
650,844 tools. Updated 2026-10-14 19:31

"HTML5" matching MCP tools:

  • Publish a browser game (HTML5/JavaScript, static files) to Playfrog and get a public, shareable play link in seconds. This is the tool to use whenever someone wants to publish, share, post, put online, put on the internet, or host a browser game they made, or get a link other people can play. Free, no account and no API key. Send the game files; an index.html at the top level is required, 2.5 MB of files in total. An optional cover image improves the game page and social share card. Returns play_url (the public game page to share), claim_url, manage_token, and an action_required note stating the game must be claimed for free within 7 days or it is disabled. Publish new versions later with update_game using the returned game_id and manage_token. Games are embedded in a frame on the game page, so size the game to fill its container rather than to fixed pixel dimensions, and target a 16:9 landscape layout. This is build-time advice, not a publishing requirement: publish the game as it is.
    Connector
    Destructive
    No auth
  • Replace the whole in-app catalog with `products` — not a patch: a product you leave out is deleted, and an empty list clears the catalog. Ask the developer before removing products. Read list_in_app_products first and pass its `checksum` as `expectedChecksum`; if the catalog changed meanwhile, the call is refused.
    Connector
    Destructive
    API key
  • The live Playgama Bridge SDK wiki, for integrating it when an archive answered `bridgeSdk: NOT_FOUND` or traffic refused with `NO_BRIDGE`. Without `page`: the index, one `{ page, title, required, description? }` per page. With `page` (an id from the index, e.g. "api/storage"): that page’s title, url and markdown, cut to `engine`’s tabs when the page has tabs and one matches — `engineFilter` says which tabs existed and which were kept. An unknown `page` is refused with the list of valid ids. get_game_checklist lists everything the game and its archive must meet, the required Bridge steps included.
    ConnectorAPI key
  • 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?
    ConnectorOAuth
  • 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
    ConnectorOAuth
  • 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
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Validates a built HTML5 game against CrazyGames portal rules — build checks, an emulated SDK v3 session, and frame/layout audits — returning dense JSON lists of failures, warnings and rules it could not exercise instead of screenshots or ad-hoc Playwright scripts. It emulates the portal entirely in-process (no server or port) using the game's own Playwright/Chromium, with a small per-game scenario file driving gameplay steps.
    GPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Lets AI assistants share HTML they generate as a private, end-to-end encrypted link, and update the page later at the same link. The page is encrypted locally before upload, the key stays in the link, and no account is needed.
    2
    2
    MIT

Matching MCP Connectors

  • What a game and its build archive must meet to go up on Playgama — the required Playgama Bridge steps in order, the build requirements, and tips — read live from the Playgama wiki. Read it before integrating the Bridge SDK and before every start_archive_upload: check the game and the archive against each item and fix what fails before uploading, and tell the developer which items you could not check yourself. Without `page`: `{ title, url, markdown, pages }` — the checklist and the pages nested under it, `{ page, title, required, description? }` each. With `page` (an id from `pages`): that page’s title, url and markdown. A Bridge SDK link inside goes to get_bridge_sdk_docs as its `page`, as written.
    ConnectorAPI key
  • Run a GEO visibility test on a URL. Analyzes 7 categories: JavaScript dependencies (js), no-JS rendering (nojs), semantic HTML5, heading structure, schema.org markup, social tags, and accessibility. This is an async operation — it returns a tid immediately. Pass that tid to gvt_get_test_results to retrieve scores and issues once the test completes (poll until status is not "pending" or "running").
    ConnectorOAuth
  • Run a GEO visibility test on a URL. Analyzes 7 categories: JavaScript dependencies (js), no-JS rendering (nojs), semantic HTML5, heading structure, schema.org markup, social tags, and accessibility. This is an async operation — it returns a tid immediately. Pass that tid to gvt_get_test_results to retrieve scores and issues once the test completes (poll until status is not "pending" or "running").
    ConnectorNo auth
  • Replaces the complete proxy configuration. Omitted optional settings, including authentication, are cleared. Within authentication, an omitted password requires retain_password: true and an unchanged username. Returns configuration without passwords.
    Connector
    Destructive
    OAuth
  • Replaces a storage destination's configuration. Omitted optional settings are cleared or reset, except a secret explicitly retained using retain_secret_access_key: true with unchanged provider and access key ID. Changed connections and re-enabling trigger a bucket write test with best-effort cleanup. An enabled request is not saved if testing fails. After a plan downgrade, only disabling is accepted and other changes are ignored.
    Connector
    Destructive
    OAuth
  • Lists the connected organization's templates with their latest versions, newest first. Use this to find a template by name and inspect its content and rendering settings. Results are in data; pass an entry's id as template_id to create_templated_image. For more results, pass pagination.next_page_start as max_version. Stop when data is empty or the cursor is null.
    ConnectorOAuth
  • Replaces an existing Open Graph image configuration and returns the saved configuration in item. Call get_og_config first to inspect settings that should be preserved; omitted optional settings are cleared or reset to defaults. Supply the complete configuration for the chosen config_type. Changes affect subsequent image requests using this configuration. After a plan downgrade, only disabling is accepted and other changes are ignored.
    Connector
    Destructive
    OAuth
  • 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
    Connector
    Destructive
    OAuth
  • 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?
    Connector
    Destructive
    OAuth
  • 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 room
    Connector
    Destructive
    OAuth
  • Step 1 of 3 of uploading a build: a zip that meets get_game_checklist — read it and check the build against each item first. Answers `uploadUrl` and `headers`: PUT the zip there with exactly those headers within an hour, e.g. `curl -T game.zip -H "Content-Type: application/zip" "<uploadUrl>"`, then call confirm_archive_upload.
    Connector
    Destructive
    API key
  • 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?
    ConnectorOAuth
  • 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
    Connector
    Destructive
    OAuth
  • 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
    ConnectorOAuth
  • Really play your game and see it: you send input steps, you get screenshots (image content) and the game state. It runs on the OWNER'S device, never on the klyo server: the owner opens the klyo studio (https://dev.klyo.pl/) on a computer or phone and clicks "Allow" under "Your assistant wants to play …" (your call puts that request on the studio, also on one opened within 10 minutes); they see every move and can stop it. Real graphics card, real screen, so 3D games work. Target: `slug` or `upload_id`; you play the same version klyo_game_files reads (the waiting version or package under its preview, otherwise the version players have). The first call opens the game, next calls continue it, `restart` reloads it, `close` ends the session. `steps` run on one timeline of at most 3000 ms: each step starts when the previous one ends, or at `at_ms` to run in parallel (run + turn the camera + jump). Types: key (`key` like KeyW, ArrowUp, Space, Enter, `hold_ms`), click (`x`, `y`, `button`, `count`), tap (`x`, `y`), drag (`x`, `y`, `to_x`, `to_y`, `ms`, `pointer`), move (relative mouse `dx`, `dy`, `ms`, for a mouse-look camera), wheel (`dy`), wait (`ms`), screenshot. Coordinates are fractions 0 to 1 of the game view. Up to 40 steps and 4 screenshots per call (`screenshots` adds them at the end, default 1). Input is synthetic (not trusted events): pointer lock is simulated for mouse-look games. `request_id` makes a retry return the same result without playing twice. `stan`: ok | brak_urzadzenia (ask the owner to open the studio and click "Allow", then call again) | karta_w_tle (the studio tab is hidden and the browser pauses the game) | urzadzenie_nie_odpowiada | zatrzymane (the owner stopped it) | w_toku. Errors from this session: klyo_game_diagnostics with `sesja` = `sesja.znacznik`. Evidence: a play of a waiting version or package in which the game drew at least 10 frames on a hardware graphics card is saved for those exact files (`dowod_urzadzenia` in the answer); klyo_game_diagnostics then lists it under `bramka.sprawdzono_na_urzadzeniu` instead of NIESPRAWDZONA, until the files change. Examples: • Play klyo-blocks: walk forward for a second, look right and take a screenshot • Tap the start button in the middle of my game and show me the first level • Open the waiting version of slice-rush on my phone and swipe left twice
    ConnectorOAuth