Directory / Media & generation
Playable Gift
Creates a small browser game from someone's habits or inside jokes, then returns links for sharing the gift. Free within daily allowances. Endpoint: https://playablegift.com/mcp
Live Answered an MCP handshake without credentials and listed 8 tools.
- Category
- Media & generation
- Transport
http- Source
- https://playablegift.com/agents
- Endpoint
https://playablegift.com/mcp- Reports itself as
- playable-gift 0.3.0
- Protocol
- 2025-06-18
- Tools
- 8
- Context cost
- about 1,764 tokens for the tool definitions (estimated at four characters per token)
- Tool definitions last changed
- no change seen since first check
- Handshake time
- 462 ms
- Last checked
- 2026-10-14 09:36:19 UTC
- Listed since
- 2026-10-14
Health and compatibility
| Endpoint reachable | Verified | Responded in 462 ms |
|---|---|---|
| MCP handshake (initialize) | Verified | Completed without credentials |
| Tool discovery (tools/list) | Verified | 8 tools listed |
| Authentication | Verified | None needed to connect |
| Protocol version | Verified | 2025-06-18 |
| Transport | Verified | Streamable HTTP |
| Capabilities declared | Verified | prompts, resources, tools |
Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.
Recent history
1 daily check so far. Green answered, violet asked for auth, red did not answer.
Set up in your client
Claude Code
Run this in a terminal:
claude mcp add --transport http playable-gift https://playablegift.com/mcpClaude Desktop
Open Settings → Connectors → Add custom connector and paste this URL:
https://playablegift.com/mcpOr bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):
{
"mcpServers": {
"playable-gift": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://playablegift.com/mcp"
]
}
}
}Cursor
Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"playable-gift": {
"url": "https://playablegift.com/mcp"
}
}
}VS Code
Or add it to .vscode/mcp.json:
{
"servers": {
"playable-gift": {
"type": "http",
"url": "https://playablegift.com/mcp"
}
}
}Or from a terminal:
code --add-mcp '{"name": "playable-gift", "type": "http", "url": "https://playablegift.com/mcp"}'Windsurf
Add it to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"playable-gift": {
"serverUrl": "https://playablegift.com/mcp"
}
}
}Other clients
Most clients accept this shape. The endpoint is:
https://playablegift.com/mcp{
"mcpServers": {
"playable-gift": {
"type": "http",
"url": "https://playablegift.com/mcp"
}
}
}If it does not connect
- Restart the client after editing a config file, and keep keys out of files you commit.
- If the tools do not appear, open the client's MCP log: a 401 means the credentials were not accepted, and a timeout means the server did not answer.
Tools 8
Names, descriptions and input schemas exactly as the server returned them on 2026-10-14. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON
create_custom_gamecan modifyexternal accessSaves a supplied self-contained HTML game as a free private draft. Returns a preview URL and private …
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.
| Parameter | Type | Description | |
|---|---|---|---|
recipient | string | required | |
sender | string | required | |
title | string | required | |
concept | string | required | |
occasion | string | optional | One of: birthday, anniversary, thank-you, just-because |
theme | string | optional | One of: sunshine, midnight, rose |
message | string | optional | |
recipientEmail | string | optional | |
game | object | required | |
idempotencyKey | string | required |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "create_custom_game",
"arguments": {
"recipient": "...",
"sender": "...",
"title": "...",
"concept": "...",
"game": {},
"idempotencyKey": "..."
}
}
}export_giftread-onlyReturns a private draft as portable JSON containing its complete self-contained game HTML. The recipient's …
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.
| Parameter | Type | Description | |
|---|---|---|---|
managementToken | string | required | |
revision | integer | optional | A retained revision number. The default is the current revision. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "export_gift",
"arguments": {
"managementToken": "..."
}
}
}get_giftread-onlyReturns a private draft's metadata, current revision, preview link and status for the supplied management …
Returns a private draft's metadata, current revision, preview link and status for the supplied management token. Game HTML is excluded.
| Parameter | Type | Description | |
|---|---|---|---|
managementToken | string | required |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_gift",
"arguments": {
"managementToken": "..."
}
}
}get_gift_catalogread-onlyReturns the supported formats, capabilities, requirements and limits for saving custom HTML games as private …
Returns the supported formats, capabilities, requirements and limits for saving custom HTML games as private drafts.
Takes no parameters.
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_gift_catalog",
"arguments": {}
}
}get_gift_historyread-onlyReturns the last five retained revisions of a private draft for the supplied management token. Revision …
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.
| Parameter | Type | Description | |
|---|---|---|---|
managementToken | string | required |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_gift_history",
"arguments": {
"managementToken": "..."
}
}
}get_made_gameread-onlyReturns the current stage of a game generation job identified by its private idempotency key. A completed job …
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.
| Parameter | Type | Description | |
|---|---|---|---|
idempotencyKey | string | required |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_made_game",
"arguments": {
"idempotencyKey": "..."
}
}
}make_gamecan modifyexternal accessStarts generation of a small browser game about one person from the sender's supplied habits or inside jokes. …
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.
| Parameter | Type | Description | |
|---|---|---|---|
brief | string | required | The sender's supplied details about the recipient, including two or three specific habits, catchphrases or inside jokes. |
friend | string | optional | The recipient's name. |
from | string | optional | The sender's name, shown in the game. Optional. |
idempotencyKey | string | required | Private request identifier containing 64 random lowercase hex characters. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "make_game",
"arguments": {
"brief": "...",
"idempotencyKey": "..."
}
}
}revise_custom_gamecan modifyexternal accessReplaces an existing private draft with supplied HTML and game details. Requires the draft's management token …
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.
| Parameter | Type | Description | |
|---|---|---|---|
recipient | string | required | |
sender | string | required | |
title | string | required | |
concept | string | required | |
occasion | string | optional | One of: birthday, anniversary, thank-you, just-because |
theme | string | optional | One of: sunshine, midnight, rose |
message | string | optional | |
recipientEmail | string | optional | |
game | object | required | |
expectedRevision | integer | required | |
managementToken | string | required |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "revise_custom_game",
"arguments": {
"recipient": "...",
"sender": "...",
"title": "...",
"concept": "...",
"game": {},
"expectedRevision": 0,
"managementToken": "..."
}
}
}Resources 1
gift-guideHow to make a Playable Gift through an AI assistant, and how to share it safely.
Badge
Maintain this server? Put its live status in your README:
[](https://mcp.aianytime.net/s/playable-gift/)Edit this entry · Report a problem
More in Media & generation
Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt
Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers