Skip to main content
Glama
adsandcode

mcp-server-taiwan-lottery

by adsandcode

Check a ticket

check_ticket
Read-onlyIdempotent

Check a Taiwan Lottery ticket against the latest or a specified official draw to see matched numbers and, when available, prize tier, winning condition, and per-ticket amount.

Instructions

Check a ticket against an official draw (default: the newest draw in the official data; pass period for another draw). Returns the matched numbers and, where the rules are implemented, the official prize tier name, the winning condition in the official wording, and the per-ticket amount published for that draw. Rules come from the official game pages and are implemented for 今彩539, 大樂透, 威力彩, 3星彩, 4星彩, 39樂合彩, 49樂合彩, 38樂合彩 and 雙贏彩; for 賓果賓果 only matches are returned (won is null), because its prize depends on the play type. Ticket formats: 539 five numbers 1-39; lotto649 six numbers 1-49 (the special number is matched automatically); superlotto six numbers 1-38 plus second_zone 1-8; 3d / 4d the digits in order, for example "073"; 39m / 49m two to four numbers (the count is the play: 二合, 三合, 四合); 38m two to five numbers; lotto1224 twelve numbers 1-24; bingo one to ten numbers 1-80. One ticket line per call. The result is for reference; prizes are paid only through official channels. 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
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.
periodNoDraw period number (期別) as printed on the ticket, for example 115000256. 賓果賓果 periods look like 115059885.
numbersYesPicked numbers as an array, or a string such as "03 08 14 23 28". For 3d / 4d the digits, e.g. "073".
second_zoneNo威力彩 only: second-zone number 1-8.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark it read-only, open-world, and idempotent, but the description adds substantial context: prize rules are implemented only for listed games, bingo returns null won, publication is not real time, prizes_pending has a specific meaning, and every result includes ad-bearing links. It also says never to fill in numbers the API does not have, which is important behavioral guidance.

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

Conciseness4/5

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

The description is front-loaded with purpose and default behavior, then moves through returns, formats, timing caveats, and source notes. It is long and dense for a single paragraph, and the playsport539 ad disclosure is less relevant to invocation, so it is not maximally concise.

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 still enumerates key return fields such as matched numbers, prize tier, winning condition, per-ticket amount, won null, prizes_pending, and more links. It also explains data freshness limits, which is enough for an agent to call and interpret results correctly.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds essential per-game semantics for numbers and second_zone that the schema does not fully capture, including number ranges, counts, play-type meaning for 39m/49m, and automatic special-number matching. It also explains the period default.

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?

The opening sentence names the specific action (check a ticket), the resource (official draw), and the default scope (newest draw unless period is passed). It also states the return content, which clearly separates it from draw-retrieval siblings like latest_draw and get_draw.

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?

It explains the default draw and how to target another draw via period, plus one ticket line per call and per-game ticket formats. It does not explicitly name sibling alternatives or when not to use this tool, so it is clear but not fully routing.

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