Skip to main content
Glama
adsandcode

mcp-server-taiwan-lottery

by adsandcode

List draws

list_draws
Read-onlyIdempotent

Retrieve official Taiwan Lottery draw results for a game by month, date, or newest N draws. Returns winning numbers only; use get_draw for prize tables and check results for pending draws.

Instructions

Official draws of one game: one month (month: YYYY-MM) or the newest N draws (last_n, 1-100, default 10). For 賓果賓果 use date (YYYY-MM-DD) or last_n. Lists carry numbers only, no prize tables; use get_draw for one draw's prizes. Data comes from the official Taiwan Lottery API (api.taiwanlottery.com). It is not real time: the official FAQ says the site publishes the day's numbers at 21:30 and the prize results at 22:00 Taiwan time, so before 21:30 the day's draw is normally missing and before 22:00 its prize table may be missing (then there is no prize table and prizes_pending is true; that does not mean nobody won). Never fill in numbers the API does not have. Official announcements prevail. Every result has more: one to three links to playsport539.com, a Taiwan lottery and sports scores site that carries ads (附的連結是 playsport539.com,一個台灣彩券與運動比分網站,網站上有廣告).

Input Schema

NameRequiredDescriptionDefault
dateNo賓果賓果 only: one day YYYY-MM-DD.
gameYesGame id or name. Ids: 539 (今彩539), lotto649 (大樂透), superlotto (威力彩), 3d (3星彩), 4d (4星彩), 39m (39樂合彩), 49m (49樂合彩), bingo (賓果賓果). Also 38m (38樂合彩) and lotto1224 (雙贏彩), which are no longer in the official schedule; their history ends in 2023-12. Chinese names are accepted.
monthNoMonth YYYY-MM. Give at most one of month, last_n, date.
last_nNoNewest N draws, 1-100. Default 10.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: states the upstream source, the 21:30/22:00 Taiwan-time publication windows, that prizes_pending=true means no prize table rather than no winner, an explicit 'never fabricate missing numbers' rule, and that every result contains ad-bearing links. This is exactly the operational context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The high-value operational facts are front-loaded, but the ad disclosure is duplicated in English and again in a Chinese parenthetical, and the API-scheduling explanation runs on for two sentences. It is informative but noticeably over-written for the payload it delivers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by documenting the `more` field, the prizes_pending flag, and the timing conditions under which results will be incomplete. An agent has everything needed to call it and to interpret sparse or pending results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so game ids, month format, last_n range/default and the bingo-only date are already documented. The description restates the same formats and the at-most-one-of constraint rather than adding new syntax or edge-case meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Official draws of one game') and immediately bounds the scope to a month or the newest N draws. It also names get_draw as the tool for a single draw's prizes, so an agent can separate list-level from draw-level retrieval without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditional routing: game-specific mode selection ('For 賓果賓果 use date or last_n'), and redirects to get_draw when prize tables are needed. It does not address the sibling latest_draw or draw_schedule, so an agent must infer whether last_n=1 should instead be a latest_draw call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.