Turn a few lines about someone into a small video game made just for them. Free, about a minute.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Saves a supplied self-contained HTML game as a free private draft. Returns a preview URL and private management token. Accepted games have inline code and embedded assets, keyboard and touch controls, a goal and restart. Network requests, payments and personal-data collection are prohibited. Repeated requests with the same idempotency key return the existing draft.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Saves a supplied self-contained HTML game as a free private draft. Returns a preview URL and private management token. Accepted games have inline code and embedded assets, keyboard and touch controls, a goal and restart. Network requests, payments and personal-data collection are prohibited. Repeated requests with the same idempotency key return the existing draft.
| Argument | Type | Description |
|---|---|---|
| game* | object | |
| theme | string | |
| title* | string | |
| sender* | string | |
| concept* | string | |
| message | string | |
| occasion | string | |
| recipient* | string | |
| idempotencyKey* | string | |
| recipientEmail | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"recipient",
"sender",
"title",
"concept",
"game",
"idempotencyKey"
],
"properties": {
"game": {
"type": "object",
"required": [
"html"
],
"properties": {
"html": {
"type": "string",
"maxLength": 120000,
"minLength": 100,
"description": "Complete self-contained HTML game with inline CSS/JS and embedded assets. External dependencies, fetches, forms, popups, payments and personal-data collection are prohibited. Supported controls are canvas or DOM with keyboard and touch input. The game includes restart and clear win/lose states. Completion notification is parent.postMessage({type:'playablegift:complete'}, '*')."
}
},
"additionalProperties": false
},
"theme": {
"enum": [
"sunshine",
"midnight",
"rose"
],
"type": "string",
"default": "sunshine"
},
"title": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"sender": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"concept": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"message": {
"type": "string",
"default": "",
"maxLength": 2000
},
"occasion": {
"enum": [
"birthday",
"anniversary",
"thank-you",
"just-because"
],
"type": "string",
"default": "just-because"
},
"recipient": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"idempotencyKey": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"recipientEmail": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
{
"type": "string",
"const": ""
}
],
"default": ""
}
},
"additionalProperties": false
}Returns a private draft as portable JSON containing its complete self-contained game HTML. The recipient's email address and private tokens are excluded. An optional revision number selects a retained revision instead of the current version.
| Argument | Type | Description |
|---|---|---|
| revision | integer | A retained revision number. The default is the current revision. |
| managementToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"managementToken"
],
"properties": {
"revision": {
"type": "integer",
"maximum": 9007199254740991,
"description": "A retained revision number. The default is the current revision.",
"exclusiveMinimum": 0
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}Returns a private draft's metadata, current revision, preview link and status for the supplied management token. Game HTML is excluded.
| Argument | Type | Description |
|---|---|---|
| managementToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"managementToken"
],
"properties": {
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}Returns the supported formats, capabilities, requirements and limits for saving custom HTML games as private drafts.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Returns the last five retained revisions of a private draft for the supplied management token. Revision metadata may contain the sender's personal content. Game HTML is excluded.
| Argument | Type | Description |
|---|---|---|
| managementToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"managementToken"
],
"properties": {
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}Returns the current stage of a game generation job identified by its private idempotency key. A completed job includes the title, cast, recipient play link and sender management link. Management links grant private sender access.
| Argument | Type | Description |
|---|---|---|
| idempotencyKey* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotencyKey"
],
"properties": {
"idempotencyKey": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}Starts generation of a small browser game about one person from the sender's supplied habits or inside jokes. Returns immediately with build progress. Games are free within a daily allowance. When the assistant allowance runs out, returns an OAuth sign-in request or a handoff URL. It never charges anyone or sends messages.
| Argument | Type | Description |
|---|---|---|
| from | string | The sender's name, shown in the game. Optional. |
| brief* | string | The sender's supplied details about the recipient, including two or three specific habits, catchphrases or inside jokes. |
| friend | string | The recipient's name. |
| idempotencyKey* | string | Private request identifier containing 64 random lowercase hex characters. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"brief",
"idempotencyKey"
],
"properties": {
"from": {
"type": "string",
"default": "",
"maxLength": 40,
"description": "The sender's name, shown in the game. Optional."
},
"brief": {
"type": "string",
"maxLength": 2000,
"minLength": 12,
"description": "The sender's supplied details about the recipient, including two or three specific habits, catchphrases or inside jokes."
},
"friend": {
"type": "string",
"default": "",
"maxLength": 60,
"description": "The recipient's name."
},
"idempotencyKey": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private request identifier containing 64 random lowercase hex characters."
}
}
}Replaces an existing private draft with supplied HTML and game details. Requires the draft's management token and current revision number. A stale expectedRevision is rejected to prevent overwriting another edit.
| Argument | Type | Description |
|---|---|---|
| game* | object | |
| theme | string | |
| title* | string | |
| sender* | string | |
| concept* | string | |
| message | string | |
| occasion | string | |
| recipient* | string | |
| recipientEmail | any | |
| managementToken* | string | |
| expectedRevision |
| integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"recipient",
"sender",
"title",
"concept",
"game",
"expectedRevision",
"managementToken"
],
"properties": {
"game": {
"type": "object",
"required": [
"html"
],
"properties": {
"html": {
"type": "string",
"maxLength": 120000,
"minLength": 100,
"description": "Complete self-contained HTML game with inline CSS/JS and embedded assets. External dependencies, fetches, forms, popups, payments and personal-data collection are prohibited. Supported controls are canvas or DOM with keyboard and touch input. The game includes restart and clear win/lose states. Completion notification is parent.postMessage({type:'playablegift:complete'}, '*')."
}
},
"additionalProperties": false
},
"theme": {
"enum": [
"sunshine",
"midnight",
"rose"
],
"type": "string",
"default": "sunshine"
},
"title": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"sender": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"concept": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"message": {
"type": "string",
"default": "",
"maxLength": 2000
},
"occasion": {
"enum": [
"birthday",
"anniversary",
"thank-you",
"just-because"
],
"type": "string",
"default": "just-because"
},
"recipient": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"recipientEmail": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
{
"type": "string",
"const": ""
}
],
"default": ""
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}