MCP.Market

Penguin Statistics MCP server

online · 100% uptime
by penguin-stats.io·io.penguin-stats/penguin-stats·v1.0.0·202 stars

Crowdsourced Arknights drop rates by stage and item, for the CN, US, JP and KR game servers

B77/100grade B
What users say
No reviews yet
Be the first
Safety scan
B77/100

full report

Adoption
Established

202 stars

Reviews

Write one

Nobody has reviewed Penguin Statistics yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Penguin Statistics tools (6, 1 write)

write = sends, deletes, buys or posts
  • get_dataset_infoFree

    Describes the Penguin Statistics drop data: what its numbers mean (times, quantity, drop rate, sanity per item, window), the game servers with their time zones and how fresh the data of each is, the caveats, the license and how to credit it. Call it when unsure how to read or cite the numbers.

  • get_item_drop_rateswrite actionFree

    Where to farm an item: ranks every stage of a game server that drops it, with sanity per item, drop rate (items per run), runs (times) and quantity. Use it for any question about where to get an item, its best or most efficient stage, or which of several stages to run for it: one call ranks every stage, so don't look stages up one by one with get_stage_drops (only a named stage left out of the top_n returned). By default the stages open now that still drop it, lowest sanity per item first; stages of fewer than 100 runs (lowSample) rank after the others, gachas and the recruitment (no sanity cost) last. sort_by=drop_rate ranks by rate instead; include_closed=true adds past events and ended drops. item_id takes the item's name in any language; search_items first only when the name may mean several items.

  • get_stage_dropsFree

    What one stage drops on a game server: each item with drop rate (items per run), sanity per item, runs (times) and quantity, highest rate first, then the items it no longer drops; with the sanity cost of the stage and whether it is open now. For questions about a given stage. To find where to farm an item, call get_item_drop_rates instead: one call ranks every stage that drops it. Takes the stage ID from search_stages (codes are shared by several stages); a code works too if only one stage on the server has it.

  • list_eventsFree

    Lists the events (limited-time activities) of a game server: status now (open, upcoming or closed), open and close times, whether a rerun. By default the open and upcoming events with their stage IDs (for get_stage_drops), or the latest 3 if there are none; open_only=false lists every event, latest first, with stage counts only. The main story and the permanent side stories are not events.

  • search_itemsFree

    Finds items (materials, battle records, chips, furniture, event items) by name in any language (zh, en, ja, ko), by alias or nickname (土块, 狗粮), by pinyin (guyuanyan) or by item ID, and returns their item IDs (get_item_drop_rates takes a name too; search first when unsure which item is meant) and names in every language. Best matches first: exact before prefix before substring, names before aliases. Several items can share an alias (石头 is each tier of Orirock): ambiguous is then true; ask the user which one is meant or decide by context. Items of other types (workshop-crafted materials such as D32 Steel, recruitment tags) are returned only when no listed item matches, with a note saying what they are.

  • search_stagesFree

    Finds stages by code (1-7, S2-12, YW-4; full-width characters work too), by stage ID (main_01-07), or by the name or ID of their zone (第十章, Under Tides), and returns their stage IDs (for get_stage_drops; to find the stages that drop an item, use get_item_drop_rates) with their zone, sanity cost and whether they are open on the server now. Codes are not unique: the standard and tough versions of a stage of the main story share them, as do an event, its rerun and the stages it left open for good. Best matches first (the code before the zone, exact before prefix before substring), then the stages open now, standard before tough, original before permanent before rerun. ambiguous is true when several stages share the best-matching code (not for the stages of a zone found by its name): ask the user which one is meant or decide by context.

Public scan report

scanner v0.1.10 · 2026-10-24 · same rubric, same numbers if you re-run it

1 high
  • –Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 2014ms17/20
  • Tool poisoning6 tool descriptions checked15/15
  • Auth qualityopen endpoint exposes 1 write-action tools with no auth3/15
  • Maintenancelast push 1 days ago15/15
  • Maintainer identitynamespace and repository owner differ; GitHub account older than a year; website matches verified namespace8/10

Findings (1)

  • highWrite-action tools reachable without authenticationauth.open-write
Overall 77/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Penguin Statistics compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
77/100
higher than 50% of 48,255 servers
Tools
6
the typical server has 7
Tools that change things
17%
typical: 0%. Fewer write tools means less an agent can break
Uptime
100%
of our recent checks; the typical remote server answers 100%
Response time
578 ms
faster than 25% of 30,031 servers
GitHub stars
202
more than 95% of 28,688 servers

What its tools let an agent do: 5 read · 1 change

Install Penguin Statistics in Claude Code, Cursor or VS Code

claude mcp add --transport http penguin-stats https://mcp.penguin-stats.io/mcp
Add to Cursor

What the publisher says

From the Penguin Statistics repository's README, as published. We do not edit it. Read it on GitHub

Penguin Statistics - V3 Backend

The re-designed Penguin Statistics v3 Backend, built with Go.

Using the data

The drop data is public:

developer docs and the OpenAPI (Swagger 2.0) spec.

  • REST API at https://penguin-stats.io/PenguinStats/api/v2/: see the

https://mcp.penguin-stats.io/mcp: Streamable HTTP, no authentication, read-only. In Claude Code:

  • MCP server for AI assistants (Claude, ChatGPT, Cursor, VS Code, Cherry Studio and others) at
claude mcp add --transport http --scope user penguin-stats https://mcp.penguin-stats.io/mcp

The steps for every other app, in English and Chinese, are at https://mcp.penguin-stats.io/.

https://github.com/penguin-statistics/agent-skills

  • Plugin and skill for coding agents, the MCP server with a skill on reading, citing and querying the numbers:

The drop data is licensed CC BY-NC 4.0: non-commercial use, with credit. Credit it as Data: Penguin Statistics (penguin-stats.io), CC BY-NC 4.0. The code of this repository is MIT.

Architecture

This Go project mainly uses:

  • gofiber/fiber
  • uber-go/fx
  • uptrace/bun

This project mainly follows a RESTful API design.

Operations

Report tasks in the dead-letter stream

The report worker moves a report task out of the penguin-reports stream into penguin-reports-dead (subjects REPORTDEAD.) when it can never be processed (it is not a task, or a stage of it does not exist) or when it failed at each of its 30 deliveries, which take about 97 minutes of retry delays. Each move is logged at error level (reportwkr.malformed, reportwkr.parked or reportwkr.dead). The copy keeps the payload as published, with these headers:

  • Penguin-Original-Subject: the subject it was published under, like REPORT.SINGLE
  • Penguin-Original-Sequence: its sequence in penguin-reports
  • Penguin-Deliveries: its deliveries when it moved
  • Penguin-Last-Error: the error that moved it

A task too close to the maximum payload to fit with these headers moves without them, and its subject under REPORTDEAD. names its original subject; its move is logged as reportwkr.dead.bare, with the sequence and the error.

Nothing in the stream expires. With the nats CLI, once the cause is fixed:

# list the tasks, with their headers
nats stream view penguin-reports-dead
# show one, by its sequence in penguin-reports-dead
nats stream get penguin-reports-dead 42

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Penguin Statistics: common questions

Is Penguin Statistics MCP server safe?
Mostly: it is graded B (77/100). Read the Penguin Statistics safety report
How do I install Penguin Statistics?
It runs remotely at mcp.penguin-stats.io. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Penguin Statistics need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Penguin Statistics maintained?
The last commit was 12 days ago (2026-10-23). The latest release is v1.0.0.
Is Penguin Statistics up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
How does Penguin Statistics compare with other MCP servers?
safety score 77/100 (higher than 50% of 48,255 servers); tools 6 (the typical server has 7); tools that change things 17% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.