Use MCP (advanced)
Create and edit tier lists on this service from Claude Code, Codex, or any MCP-capable client.
What is MCP?
MCP (Model Context Protocol) is a standard way for AI agents to talk to external tools. This service exposes an HTTP-based MCP server; pass a single API token and your AI client can write to your account (create tier lists and upload images).
Endpoint
- URL:
https://<your-host>/api/mcp - Transport: HTTP(JSON-RPC 2.0 / Streamable HTTP MCP)
- Auth:
Authorization: Bearer <API token>
Setup
- Sign in with Google or GitHub (if not signed in yet).
- In the API token section below, press “Generate”. Copy the value immediately — it’s shown only once.
- Add the endpoint URL and token to your MCP client’s config file (Claude Code, Codex CLI, etc.).
- Restart the client and confirm the `AutoTierMCP` tools appear in its tool list.
API token
Sign in with Google or GitHub to generate an API token.
Client config examples
Claude Code
Add the following entry to your Claude Code MCP config JSON: macOS / Linux at `~/.claude/mcp_settings.json`, Windows at `%USERPROFILE%\.claude\mcp_settings.json` (e.g. `C:\Users\<user>\.claude\mcp_settings.json`). Set TIER_LIST_MCP_TOKEN to the generated token.
{
"mcpServers": {
"AutoTierMCP": {
"type": "http",
"url": "https://<your-host>/api/mcp",
"headers": {
"Authorization": "Bearer ${env:TIER_LIST_MCP_TOKEN}"
}
}
}
}Codex CLI
Add the following section to your Codex CLI config file (macOS / Linux: `~/.codex/config.toml`, Windows: `%USERPROFILE%\.codex\config.toml`, e.g. `C:\Users\<user>\.codex\config.toml`). Codex CLI supports HTTP MCP servers natively.
[mcp_servers.AutoTierMCP] type = "http" url = "https://<your-host>/api/mcp" bearer_token_env_var = "TIER_LIST_MCP_TOKEN"
Any other HTTP MCP (JSON-RPC 2.0) client works with the same URL and Authorization header.
Available tools
When you talk to your AI client in natural language, it will pick the right tool and call it automatically.
| Tool | Description |
|---|---|
create_tier_list | Create a new tier list with a description, per-item placement reasons, inline base64 image registration, and stored image size control. Always saved public; draft flag set by default. Limit: 1/day (admins unlimited). |
update_tier_list_items | Update selected items in an existing tier list, including image, label, and placement reason replacements. |
upload_image_data | Upload base64 / data: URL bytes directly (for client-side generated images). Uploaded images are recorded as “User upload” and may be freely reused by other users within this app. They may be removed without notice if they appear to infringe copyright or at the administrator’s discretion. |
get_ai_quota | Return the daily AI generation quota remaining (does not consume it). |
Example prompts
- "Make a tier list for top 2024 JRPGs and split them into S/A/B/C/D tiers."
- “Place Pokemon Gold/Silver characters into A–C (via
create_tier_list), including a description and per-character placement reasons.” - “Upload these client-generated images (base64) via
upload_image_dataand build a tier list using them.”
Safety and limits
- Anything created through MCP is saved as public (with the draft flag set by default). To unpublish, delete the list from the web UI.
- create_tier_list consumes the daily AI generation quota (1/day for regular users, unlimited for admins). It is the same counter the web UI uses. Use get_ai_quota to read the remaining count.
- Each token is capped at 200 writes per day. Exceeding the cap returns HTTP 429.
- Tier lists containing violent, sexual, or discriminatory content cannot be saved. Policy violations return an error and nothing is created.
- Revoke or rotate your token any time on the account settings page; revoked tokens lose access immediately.
- The service does not generate images server-side. Generate them client-side and pass the result bytes via
upload_image_data, then pass the returned URL intocreate_tier_listitems, or pass the bytes directly asimage_data_base64on each item.
About image generation
Run image generation (DALL-E, Stable Diffusion, Gemini, etc.) on the client side or through a separate MCP server. Pass the resulting base64 bytes to upload_image_data, then reference the returned URL inside your tier-list items.
Bulk image generation inside Claude Code / Codex CLI
A useful tier list usually needs tens of images. The right path depends on which client you use.
Codex CLI ships with a built-in image generation tool (image_gen / gpt-image-2) that runs inside the ChatGPT Plus / Pro / Team subscription with no extra billing. Claude Code does not generate images natively, so it relies on an external image-generation MCP server or shell-out API call.
Path 1: Codex CLI built-in image_gen (Codex CLI only, within Plus/Pro)
Codex CLI ships with a built-in image generation tool (image_gen / gpt-image-2) that runs inside your ChatGPT Plus / Pro / Team subscription with no extra billing. No OpenAI Platform API key required.
When prompting, explicitly say "use the built-in image_gen tool" and "do not use the OpenAI Platform API". A vague "generate an image" can trigger Codex to write a Python script that calls the Platform API, which incurs separate API billing.
# Example prompt for Codex CLI (use built-in image_gen) "Using Codex's built-in image_gen tool (NOT the OpenAI Platform API), generate one square 'anime portrait of <character name>, vivid colors' for each of 15 popular 2024 JRPG protagonists. Upload each base64 to tier-list via upload_image_data, then build an S/A/B/C/D tier list using create_tier_list, including a description and placement reasons."
Path 2: add an image-generation MCP server (works for Claude Code and other clients)
Claude Code has no built-in image generator. For both Claude Code and Codex CLI, you can register an image-generation MCP server alongside this service’s MCP. The LLM then runs “generate image → upload to tier-list → build tier list” in a single prompt. Example combinations:
- OpenAI DALL-E / gpt-image-2 (gpt-image-2 / DALL-E; requires an OpenAI API key)
- Replicate (SDXL, Flux, and many models via a single API; pay-per-token)
- FAL.ai (fast generation; subscription / metered)
- Stability AI (official Stable Diffusion API)
Add any of these (official or community-built) MCP servers to your Claude Code / Codex CLI config alongside this service. The LLM will automatically chain the image-gen tools with our upload tools.
Path 2: shell out to image generation APIs directly
Both Claude Code and Codex CLI can run shell commands, so you can curl an image API directly, base64-encode the result, and pipe it into upload_image_data. Lighter weight if you don't want to register another MCP server.
OpenAI Images (gpt-image-2) example — returns base64, fed into upload_image_data.
# Claude Code / Codex CLI 内のシェルで実行(OpenAI Platform API キーが必要、別途課金)
curl -s https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"anime portrait of Goku, square","size":"1024x1024","n":1}' \
| jq -r '.data[0].b64_json' > /tmp/goku.b64
# 取得した base64 を upload_image_data に渡す
cat /tmp/goku.b64# 25件をまとめて作るときの実用例: 5x5シート生成 -> 25分割
# 1) 5x5の1枚画像を生成
curl -s https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"5x5 grid of 25 occupation icons, no text, square cells","size":"1024x1024","n":1}' \
| jq -r '.data[0].b64_json' | base64 --decode > /tmp/jobs-grid.png
# 2) 1000x1000に正規化して 200x200 で25分割(sips)
sips -z 1000 1000 /tmp/jobs-grid.png --out /tmp/jobs-grid-1000.png
for r in 0 1 2 3 4; do
for c in 0 1 2 3 4; do
i=$((r*5+c+1))
sips -c 200 200 --cropOffset $((r*200)) $((c*200)) /tmp/jobs-grid-1000.png --out /tmp/tile-$i.png
base64 < /tmp/tile-$i.png | tr -d '\n' > /tmp/tile-$i.b64
done
done
# 3) 各 /tmp/tile-<n>.b64 を upload_image_data に渡し、返った /api/images/<hash> を update_tier_list_items へReplicate example — returns a public URL; download it yourself, base64-encode, then feed into upload_image_data.
# Replicate (SDXL Lightning) の例 — 公開 URL が返ったら自分でダウンロードして base64 化し、upload_image_data に渡す
PRED=$(curl -s https://api.replicate.com/v1/predictions \
-H "Authorization: Token $REPLICATE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"version":"<model-version-hash>","input":{"prompt":"anime portrait of Goku"}}' \
| jq -r '.urls.get')
# ポーリングして status=succeeded を待ってから output[0] URL を取得
IMG_URL=$(curl -s -H "Authorization: Token $REPLICATE_API_TOKEN" "$PRED" | jq -r '.output[0]')
curl -sL "$IMG_URL" | base64 > /tmp/img.b64
cat /tmp/img.b64 # この内容を upload_image_data の data 引数へ