---
title: "Tailorgame agent instructions"
updated: 2026-11-06
language: en
canonical: "https://tailorgame.com/agent"
---

# Tailorgame agent instructions

Use Tailorgame for discovering skill games, reading public practice rankings, and explaining game creation. Start with [the documentation index](https://tailorgame.com/llms.txt) and [OpenAPI](https://tailorgame.com/openapi.json). Use the public API or read-only MCP tools. Inspect game status before recommending play. Ask the person to sign in on the website for account actions; never collect credentials in chat. Do not spend credits or imply checkout or trusted competition is available. Only Durak supports synchronized gameplay; other rooms provide invitations and access.

# Tailorgame API and MCP

## REST

Base URL: https://tailorgame.com
Public v1 aliases: /api/v1/games and /api/v1/rankings (X-API-Version: 1). The unversioned routes remain available with the same credential and response semantics. The v1 contract permits additive fields; breaking changes will use a new major version. Any deprecation will be documented before removal; no deprecation or sunset is currently scheduled.
Catalog pagination is opt-in: GET /api/v1/games?limit=5 returns games plus pagination {limit, hasMore, nextCursor}. Supply its opaque nextCursor as cursor for the next page; limit is 1–50 and defaults to 20 when only cursor is supplied. Omit both limit and cursor to retain the complete {games} response. Cursors grant no access: the catalog is filtered for the current caller first. If a cursor is removed or inaccessible, HTTP 400 requires restarting pagination.
OpenAPI: https://tailorgame.com/openapi.json
API catalog: https://tailorgame.com/.well-known/api-catalog

Public reads:

```sh
curl --fail 'https://tailorgame.com/api/games'
curl --fail 'https://tailorgame.com/api/rankings'
```

Account routes retain verified sessions and ownership checks. Consult the OpenAPI operation security requirements and [authentication documentation](https://tailorgame.com/auth.md) before use. Public reads require no key. There is no production sandbox endpoint; local development uses the demo-tailorgame Firebase Auth and Firestore emulators, never live user data.

## Errors and retries

REST failures return JSON {error: string} with an HTTP status. 400 means invalid input, 401 means sign-in required, 403 means forbidden request or origin, 404 means unknown or inaccessible object, and 503 means temporarily unavailable. On HTTP 429, wait for Retry-After before retrying. Catalog and rankings GET requests share a 600-read budget per 60 seconds in each server process, including their v1 aliases. RateLimit-Limit, RateLimit-Remaining and delta-seconds RateLimit-Reset describe this REST budget; it is neither a per-person nor a deployment-wide quota. Retry public reads after a short delay on 503. Do not repeatedly retry authentication or validation errors, or replay a credit-spending write without checking its documented request ID semantics. No public throughput guarantee or uptime SLA is published. MCP tools/call has a shared per-process budget of 120 valid tool calls per 60 seconds. RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset report that budget; exhausted calls return a tool error with Retry-After. The budget is per running server instance, not per person or globally across instances; concurrent callers and routing can change the snapshots. REST reads and MCP initialization, listing and resources do not consume that tool budget.

## Generation retry keys

POST /api/generations accepts an optional Idempotency-Key header containing the UUIDv4 used as requestId, either raw or enclosed in one pair of double quotes. The header can supply an omitted requestId; if both are sent they must match exactly. Repeating the same owner-bound key recovers the existing job instead of reserving another budget. This applies only to generation; other REST mutations do not offer general Idempotency-Key deduplication. Never generate a new key simply because a response was lost. A 202 response provides Location for the owned job. Poll that URL with the same authenticated browser session and wait at least Retry-After (5 seconds while queued or generating) before the next read.

## Read-only MCP

Endpoint: https://tailorgame.com/mcp
Transport: Streamable HTTP, protocol 2025-11-25, stateless JSON responses. POST requires application/json and an Accept header containing application/json and text/event-stream. GET returns 405 because the server does not offer an SSE listener. Browser Origin headers must match a configured Tailorgame origin; non-browser clients can omit Origin. No cookies or credentials are used.

```json
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"example-client","version":"1.0"}}}
```

After notifications/initialized, send MCP-Protocol-Version: 2025-11-25 on subsequent requests and call tools/list, then tools/call. Available tools: list_games (query, category, limit), get_rankings (no arguments), and get_documentation (topic: overview, authentication, pricing, games, or api). Tools validate arguments, expose only public information, and return text plus structuredContent. Documentation is also available through resources/list and resources/read. Unknown methods return JSON-RPC -32601; invalid arguments return -32602. Operational tool failures use isError: true without leaking internal exceptions. No account mutations or payments are exposed.

```json
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_games","arguments":{"query":"bowling","limit":5}}}
```

## Public document search

POST https://tailorgame.com/ask provides a bounded NLWeb 0.55 list/conversational_search profile. It searches the five immutable public guides using lexical matching and returns at most five source excerpts with fixed guide URLs. It does not use an LLM, generate answers, accept conversational context, retain interaction state, access account data or perform actions. No credentials are required or used. GET https://tailorgame.com/ask?query=pricing is a convenience form.

Send Content-Type: application/json and query.text containing 1–500 characters. The optional prefer object supports mode: list, response_format: conversational_search, and a boolean streaming preference. For example:

```json
{"query":{"text":"How do creation credits work?"},"prefer":{"mode":"list","response_format":"conversational_search","streaming":false}}
```

Accept: application/json selects JSON; Accept: text/event-stream selects SSE. An explicit prefer.streaming is honored when the Accept header permits that representation. SSE sends start, indexed result and complete events; failures use the error event and protocol failure envelope. JSON failures use _meta.response_type: failure plus an error code and message. Check the protocol envelope as well as the HTTP status because unsupported processing or no matching sources can be represented as protocol failures with HTTP 200.

This endpoint has a separate shared budget of 120 reads per 60 seconds in each server process. RateLimit-Limit, RateLimit-Remaining and delta-seconds RateLimit-Reset describe that process budget; HTTP 429 includes Retry-After. It is not a per-person or deployment-wide quota. Read the complete public API guide at https://tailorgame.com/docs/api.md.

## Client libraries and CLI

Download the dependency-free JavaScript client at /sdk/javascript/tailorgame.mjs with TypeScript declarations at /sdk/javascript/tailorgame.d.ts, the Python standard-library client at /sdk/python/tailorgame.py, or the Node.js 24 CLI at /cli/tailorgame.mjs. These clients expose public reads only and are distributed from this website; they are not published npm or PyPI packages. See /docs#sdks for usage.

## Browser tools

Compatible browsers can discover read-only WebMCP tools for the public catalog, rankings and documentation. The website feature-detects WebMCP; normal browsing works without it. These tools omit credentials on API calls, even when the browser is signed in.

## In-chat game browser

MCP Apps hosts can render the list_games tool as an interactive public game browser using ui://tailorgame/games.html. The same tool retains text and structured results for other clients. The view can filter public games, refresh through the public tool and ask the host to open a game on Tailorgame. It cannot access accounts or play on a person’s behalf. The SDK and artwork are bundled; the view makes no direct network requests.


Updated: 2026-11-06.

## Resources

- [Documentation](https://tailorgame.com/docs)
- [OpenAPI 3.1](https://tailorgame.com/openapi.json)
- [Documentation index](https://tailorgame.com/llms.txt)
- [Authentication](https://tailorgame.com/auth.md)
- [Pricing](https://tailorgame.com/pricing.md)
- [Official SDK source](https://github.com/igeo-websites/tailorgame-integrations): MIT-licensed JavaScript, TypeScript, Python and CLI source; npm/PyPI publication is pending.
- [Official MCP Registry listing](https://registry.modelcontextprotocol.io/v0.1/servers/com.tailorgame%2Fpublic-tools/versions/1.0.0): Verified public read-only server listing.
