# Penguin Statistics MCP Server > Read-only remote MCP server for Arknights drop statistics (CN, US, JP, KR servers). URL: https://mcp.penguin-stats.io/mcp · Streamable HTTP · no authentication · 6 tools. Data: CC BY-NC 4.0, credit "Data: Penguin Statistics (penguin-stats.io), CC BY-NC 4.0". If you are an AI agent asked to connect this server: use the exact URL above (it ends in /mcp), pick the section for the client you run in, add it at user/global scope, then list the tools (search_items, search_stages, get_item_drop_rates, get_stage_drops, list_events, get_dataset_info) to verify. Item and stage names work in Chinese, English, Japanese and Korean, including nicknames and pinyin. Arknights drop rates for your AI assistant. Penguin Statistics (penguin-stats.io) counts the drops players report for every stage on the CN, US, JP and KR servers. Connect this server and Claude, ChatGPT, Cursor, VS Code, Cherry Studio and other AI apps can look the numbers up for you. MCP (Model Context Protocol) is the standard way AI apps connect to outside tools. **Free · No account · No API key · Read-only** ## Let your agent set it up Paste this into Claude Code, Codex, Cursor or another coding agent: ```text Add the Penguin Statistics MCP server to this agent: URL https://mcp.penguin-stats.io/mcp, transport Streamable HTTP, no authentication. Follow the steps for this client in https://mcp.penguin-stats.io/llms.txt, add it at user (global) scope, then list its tools to confirm it works. ``` ## Install | | | |---|---| | Server URL | `https://mcp.penguin-stats.io/mcp` | | Transport | Streamable HTTP (not SSE) | | Authentication | None. If your app asks, choose "No authentication" or "No sign in". | | Suggested name | `penguin-stats` | Use the URL exactly as shown, ending in `/mcp`. This page (https://mcp.penguin-stats.io/) is the guide, not the server. ### Chat apps #### Claude (claude.ai, Claude Desktop, Claude mobile) 1. Open [Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Penguin%20Statistics&connectorUrl=https%3A%2F%2Fmcp.penguin-stats.io%2Fmcp), or go to **Customize → Connectors → + Add → Add custom connector**. 2. Name: `Penguin Statistics`. Remote MCP server URL: `https://mcp.penguin-stats.io/mcp`. Click **Continue**. 3. Under **Authentication** choose **No sign in**, then **Add**. 4. In a chat, click **+ → Connectors** and turn on Penguin Statistics. The Free plan allows one custom connector. On Team and Enterprise plans an owner adds it under **Organization settings → Connectors**, then members click **Connect**. The mobile apps can't add connectors; add it on the web or desktop and it syncs. Claude Code signed in with the same account can use it too. Docs: https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp #### ChatGPT (web) 1. Go to https://chatgpt.com/plugins, click **+**, then **Add custom MCP server**. 2. Name `Penguin Statistics`, Server URL `https://mcp.penguin-stats.io/mcp`. 3. Authentication: **No authentication**. Read the warning, click **I understand and want to continue**, then **Create as a plugin**. 4. Install the plugin. In a chat, type **@** and choose Penguin Statistics. Availability depends on your plan and workspace settings. The ChatGPT desktop app uses the Codex settings: see Codex below. Docs: https://developers.openai.com/api/docs/guides/custom-mcp-server #### Cherry Studio One click: [Add to Cherry Studio](cherrystudio://mcp/install?servers=eyJtY3BTZXJ2ZXJzIjp7InBlbmd1aW4tc3RhdHMiOnsidHlwZSI6InN0cmVhbWFibGVIdHRwIiwidXJsIjoiaHR0cHM6Ly9tY3AucGVuZ3Vpbi1zdGF0cy5pby9tY3AifX19). It needs a recent version, and the server arrives switched off: review it, then turn it on. If nothing happens, add it by hand. By hand: **Settings → MCP → MCP Servers → Add → Import from JSON**, and paste: ```json {"mcpServers":{"penguin-stats":{"type":"streamableHttp","url":"https://mcp.penguin-stats.io/mcp"}}} ``` Keep `"type": "streamableHttp"`. Without it Cherry Studio uses the old SSE transport, and the connection fails. Then enable the server for your agent (**Work → Agent → Edit → MCP**; the menus may differ in your version). Docs: https://docs.cherryai.com.cn/advanced-basic/extensions/mcp ### Coding tools #### Claude Code Recommended: the plugin, which adds the server and the skill (see Plugin and skill below): ```sh claude plugin marketplace add penguin-statistics/agent-skills claude plugin install penguin-stats@penguin-statistics ``` Or the server alone: ```sh claude mcp add --transport http --scope user penguin-stats https://mcp.penguin-stats.io/mcp ``` Check with `claude mcp list` or `/mcp`. In a project `.mcp.json`, keep `"type": "http"`: ```json {"mcpServers":{"penguin-stats":{"type":"http","url":"https://mcp.penguin-stats.io/mcp"}}} ``` Docs: https://code.claude.com/docs/en/mcp #### Cursor [Add to Cursor](https://cursor.com/en/install-mcp?name=penguin-stats&config=eyJ1cmwiOiJodHRwczovL21jcC5wZW5ndWluLXN0YXRzLmlvL21jcCJ9), or add this to `~/.cursor/mcp.json`: ```json {"mcpServers":{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}} ``` Docs: https://cursor.com/docs/mcp #### VS Code (GitHub Copilot) [Add to VS Code](https://vscode.dev/redirect/mcp/install?name=penguin-stats&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.penguin-stats.io%2Fmcp%22%7D) · [VS Code Insiders](https://vscode.dev/redirect/mcp/install?name=penguin-stats&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.penguin-stats.io%2Fmcp%22%7D&quality=insiders) Or run **MCP: Add Server** from the Command Palette, choose **HTTP (HTTP or Server-Sent Events)**, paste the URL, enter `penguin-stats` as the server ID, then select **Global** and, when prompted, **Copilot Global**. This saves the server in `~/.copilot/mcp-config.json` (`$COPILOT_HOME/mcp-config.json` if `COPILOT_HOME` is set), which you can also edit by hand. Its top-level key is `mcpServers`: ```json {"mcpServers":{"penguin-stats":{"type":"http","url":"https://mcp.penguin-stats.io/mcp"}}} ``` Or run this, which adds the server to your user-profile `mcp.json`: ```sh code --add-mcp '{"name":"penguin-stats","type":"http","url":"https://mcp.penguin-stats.io/mcp"}' ``` `.vscode/mcp.json` and the user-profile `mcp.json`, kept for compatibility, use the VS Code format: the top-level key is `servers`, not `mcpServers`: ```json {"servers":{"penguin-stats":{"type":"http","url":"https://mcp.penguin-stats.io/mcp"}}} ``` Docs: https://code.visualstudio.com/docs/agent-customization/mcp-servers #### Codex (CLI, IDE extension, ChatGPT desktop app) ```sh codex mcp add penguin-stats --url https://mcp.penguin-stats.io/mcp ``` Or add to `~/.codex/config.toml`: ```toml [mcp_servers.penguin-stats] url = "https://mcp.penguin-stats.io/mcp" ``` The IDE extension and the ChatGPT desktop app share this file. In their UI: **Settings → MCP servers → Add server → Streamable HTTP**, paste the URL, **Save**, then **Restart**. Docs: https://learn.chatgpt.com/docs/extend/mcp #### Gemini CLI ```sh gemini mcp add --transport http -s user penguin-stats https://mcp.penguin-stats.io/mcp ``` Or in `~/.gemini/settings.json` use `httpUrl` (in Gemini, `url` means the old SSE transport): ```json {"mcpServers":{"penguin-stats":{"httpUrl":"https://mcp.penguin-stats.io/mcp"}}} ``` Docs: https://geminicli.com/docs/tools/mcp-server/ #### Trae **Settings → MCP → Add → Create Manually**, paste the following, then **Confirm**: ```json {"mcpServers":{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}} ``` Docs: https://docs.trae.ai/ide/model-context-protocol #### Cline **MCP Servers → Remote Servers**: name `penguin-stats`, the URL, Transport Type **Streamable HTTP** → **Add Server**. In `cline_mcp_settings.json` set the type explicitly (the default is SSE): ```json {"mcpServers":{"penguin-stats":{"type":"streamableHttp","url":"https://mcp.penguin-stats.io/mcp"}}} ``` CLI: `cline mcp add penguin-stats https://mcp.penguin-stats.io/mcp --transport http --yes` Docs: https://docs.cline.bot/mcp/mcp-overview ### Other apps | App | Where | What to add | |---|---|---| | GitHub Copilot CLI | shell | `copilot mcp add --transport http penguin-stats https://mcp.penguin-stats.io/mcp` | | Windsurf / Devin Desktop (Cascade agent) | `mcp_config.json` | `{"mcpServers":{"penguin-stats":{"serverUrl":"https://mcp.penguin-stats.io/mcp"}}}` (`serverUrl` or `url`) | | Devin CLI, Devin Desktop (Devin Local agent) | shell | `devin mcp add -s user penguin-stats https://mcp.penguin-stats.io/mcp` | | Zed | `settings.json` | `{"context_servers":{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}}` | | JetBrains AI Assistant | Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add → HTTP | `{"mcpServers":{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}}` | | LM Studio 0.3.17+ | [Add to LM Studio](https://lmstudio.ai/install-mcp?name=penguin-stats&config=eyJ1cmwiOiJodHRwczovL21jcC5wZW5ndWluLXN0YXRzLmlvL21jcCJ9), or Program → Install → Edit mcp.json | `{"mcpServers":{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}}` | | opencode | `opencode.json` | `{"mcp":{"penguin-stats":{"type":"remote","url":"https://mcp.penguin-stats.io/mcp","enabled":true}}}` | | Kiro | `~/.kiro/settings/mcp.json` | `{"mcpServers":{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}}` | | Goose | [Add to Goose](goose://extension?url=https%3A%2F%2Fmcp.penguin-stats.io%2Fmcp&type=streamable_http&id=penguin-stats&name=Penguin%20Statistics&description=Arknights%20drop%20rates), or `goose configure` → Remote Extension (Streamable HTTP) | the URL | | Warp | Settings → Agents → MCP servers → + Add | `{"penguin-stats":{"url":"https://mcp.penguin-stats.io/mcp"}}` | | Raycast (Pro) | "Install MCP Server" command → Transport HTTP | the URL | | Several apps at once (Node.js) | shell | `npx -y add-mcp https://mcp.penguin-stats.io/mcp --name penguin-stats -g` | | Anything else | | Remote MCP server, Streamable HTTP, the URL, no authentication | | Apps that only run local (stdio) servers | config | `{"mcpServers":{"penguin-stats":{"command":"npx","args":["-y","mcp-remote","https://mcp.penguin-stats.io/mcp","--transport","http-only"]}}}` (needs Node.js) | ## Try it Ask in any language: 中文, English, 日本語, 한국어. Names, nicknames and pinyin all work. - Where should I farm Orirock Cube on the US (global) server? Top 3 stages by sanity per item. - What does 1-7 drop on CN, and at what rates? - Which events are open on CN right now, and what do their stages drop? - Compare the best stages for Device on CN and US. - When was the JP data last updated? - Write a Python script that prints the 3 CN stages with the highest Orirock Cube drop rate, with the data time and the credit line. **Check that it works:** ask "Using Penguin Statistics, where is Orirock Cube cheapest to farm on CN?" A good answer names the server, says when the data is from, and credits Penguin Statistics. If the assistant answers without calling a tool, say "use the Penguin Statistics tools". ## Plugin and skill (optional) The MCP server gives your assistant the data. The `penguin-stats-api` skill teaches it to use the data well: name the server, prefer large samples, give the data time and the credit, and write correct code against the REST API. The plugin installs both. - Claude Code: `/plugin marketplace add penguin-statistics/agent-skills`, then `/plugin install penguin-stats@penguin-statistics` - Claude (web, desktop): **Customize → Plugins → Add → Add marketplace** → `penguin-statistics/agent-skills`, select **Penguin Statistics** and click **Add**, then on the plugin's **Connectors** tab add the server and connect it (no sign-in; on Team and Enterprise plans an Owner adds the connector) - Codex: `codex plugin marketplace add penguin-statistics/agent-skills`, then `codex plugin add penguin-stats@penguin-statistics` - Gemini CLI: `gemini extensions install https://github.com/penguin-statistics/agent-skills` - VS Code: **Chat: Install Plugin From Source** → `https://github.com/penguin-statistics/agent-skills` (with `chat.plugins.enabled` on) - Skill only, any agent: `npx skills add penguin-statistics/agent-skills` If you added the server by hand before: Claude and Claude Code treat it and the plugin's server as one, so keep it. In the other apps, remove the entry you added, or the tools may load twice. Source: https://github.com/penguin-statistics/agent-skills ## Tools All tools are read-only. They cannot change anything or submit drop reports. | Tool | What it does | |---|---| | `search_items` | Finds items by name in zh, en, ja or ko, by nickname (狗粮, 石头), pinyin or ID | | `search_stages` | Finds stages by code (1-7, S2-12), stage ID, or chapter or event name | | `get_item_drop_rates` | Where to farm an item on a server: runs, drop rate, sanity per item | | `get_stage_drops` | What a stage drops, with each item's rate | | `list_events` | Events open or upcoming on a server, with their stages | | `get_dataset_info` | What the numbers mean, how fresh each server's data is, caveats, license and credit | ## Data and license - Players report their drops. The numbers are counted per server: CN, US (the global English server), JP and KR. Each answer includes when the data was calculated. - Drop rate = quantity ÷ runs. It can exceed 100%. Rates from fewer than 100 runs are noisy. - License: [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/), for non-commercial use with credit: `Data: Penguin Statistics (penguin-stats.io), CC BY-NC 4.0`. The server asks assistants to include it. ## Limits - 120 requests per minute per IP address (IPv6: per /64). A question usually takes 2 to 4 requests. - Over the limit, the server answers "rate limited, retry after N s". Wait that long and retry. - Claude.ai and ChatGPT connect from their companies' servers, so their users may share a limit. If you see this message there, wait a minute. ## Privacy - No account, no key, no cookies. This page loads no scripts from other sites and has no analytics. - The server only receives what your assistant sends it: the tool name and its arguments, such as an item name. It never sees your conversation. - For each request we log the time, the IP address (with the country, city and network it belongs to), the User-Agent, the MCP client's name and version, the method and tool name, the result and how long it took. We do not log tool arguments, but when a call fails, the logged error message can quote the argument that was wrong, such as an unknown item name. - Logs are kept for 15 days by our monitoring provider (Datadog), then deleted. We use them only to run the service, stop abuse and count which tools and clients are used. Nothing is sold or shared for advertising. - Requests pass through Cloudflare, which processes them under its own terms. ## Troubleshooting - **"Can't connect", an SSE error, or 405:** the app may be using the old SSE transport, which this server does not support. Choose Streamable HTTP: `"type": "streamableHttp"` in Cherry Studio and Cline, `httpUrl` in Gemini CLI. In these apps a `url` alone means SSE. - **The server doesn't appear in VS Code:** the top-level key is `mcpServers` in `~/.copilot/mcp-config.json` and a workspace `.mcp.json`, but `servers` in `.vscode/mcp.json` and the user-profile `mcp.json`. - **The app asks you to sign in:** no sign-in is needed. Choose "No sign in" or "No authentication". - **Opening `/mcp` in a browser brings you here:** that's expected. The endpoint only takes POST requests from AI apps. - **"rate limited":** see Limits. - **The tools are added but not used:** turn the connector on in the chat (Claude: + → Connectors; ChatGPT: type @; Cherry Studio: enable MCP for the agent) and say "use Penguin Statistics". - **The numbers differ from the website:** check the server (CN is the default) and the time range, and ask the assistant which server and data time it used. - **From mainland China:** there is no .cn mirror of this server yet. Local apps may be slow or fail to connect; Claude and ChatGPT connect from their own servers and are not affected. **Test without an AI:** run `npx @modelcontextprotocol/inspector`, choose Streamable HTTP, enter the URL, Connect, List Tools. Or: ```sh curl -s https://mcp.penguin-stats.io/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'Mcp-Protocol-Version: 2025-06-18' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' ``` ## Links - Website: https://penguin-stats.io - REST API docs: https://developer.penguin-stats.io/public-api · OpenAPI: https://penguin-stats.io/swagger/doc.json - This guide as Markdown: https://mcp.penguin-stats.io/index.md?lang=en · for agents: https://mcp.penguin-stats.io/llms.txt · site guide: https://penguin-stats.io/llms.txt - Server card: https://mcp.penguin-stats.io/mcp/server-card - Source code: https://github.com/penguin-statistics/backend-next (internal/controller/mcp) - Report a problem: https://github.com/penguin-statistics/backend-next/issues --- Steps last checked against each app's documentation on 2026-10-23. Apps change their menus often; if a step is out of date, please [open an issue](https://github.com/penguin-statistics/backend-next/issues).