Skip to main content
Glama

RegAI Legal MCP (Taiwan)

search_decisions

Read-onlyIdempotent

Search Taiwan (ROC) court decisions by legal concept, fact pattern, or keyword, ranked by relevance (hybrid semantic + keyword search, reranked). Covers an apex-tier subset: the Supreme Court, Supreme Administrative Court, Constitutional Court, Disciplinary Court and Intellectual Property and Commercial Court (district and high court decisions are not included). For constitutional questions it also covers the Constitutional Court's judgments (憲判字, from 2022) and the Council of Grand Justices Interpretations (釋字第1-813號), shown as 憲法法庭111年憲判字第N號判決 and 釋字第N號. Use it for questions like "how have courts ruled on X" or "find rulings on this fact pattern"; it returns the most relevant decisions, not every match. Use search_decisions_exact instead when the user needs EVERY decision containing a literal phrase, or an exact count; search_grand_chamber_decisions when the question is which interpretation prevails on a point where panels diverged (大法庭, 統一法律見解); search_law for the text of statutes. A citation such as 最高法院 112年度台上字第1234號 also works as the query: the matching decision ranks first. The same case number can exist in civil and criminal matters (and one case can hold several documents), so check the court and case-type code and the date. Each result shows its jid; read it in full with get_decision_details.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default 15)
queryYesSearch query: a legal concept, fact pattern, or keywords in Traditional Chinese, e.g. "車禍 過失責任" or "勞資 資遣費 認定".
sourcesNoOptional: limit which kinds of decisions are searched -- any of "decisions" (court rulings), "judgments" (Constitutional Court judgments, 憲判字), "interpretations" (Council of Grand Justices Interpretations, 釋字) or "constitutional" (both 憲判字 and 釋字). Omit to search everything (the default). Set it only when the user explicitly asks to limit the kind of source -- do NOT infer it from the query.
case_typesNoOptional case-type filter: any of C (憲法), V (民事), M (刑事), A (行政), P (懲戒). Omit for no restriction. Set it only when the user explicitly asks to limit the case type -- do NOT infer it from words in the query: terms like 民事/刑事/行政/懲戒 appear constantly in ordinary topical queries with no filtering intent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / sources
      Added value: +{
      +  "default": null,
      +  "description": "Optional: limit which kinds of decisions are searched -- any of \"decisions\" (court rulings), \"judgments\" (Constitutional Court judgments, 憲判字), \"interpretations\" (Council of Grand Justices Interpretations, 釋字) or \"constitutional\" (both 憲判字 and 釋字). Omit to search everything (the default). Set it only when the user explicitly asks to limit the kind of source -- do NOT infer it from the query.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / case_types / description
      Previous value: -"Explicit case-type filter: any of C (憲法), V (民事), M (刑事), A (行政), P (懲戒). Omit for no restriction -- do NOT infer this from words in the query text (see decisions_qdrant.rs's search_decisions_qdrant module comment for why: case-type words like 民事/刑事/行政/懲戒 show up constantly in ordinary topical queries with no filtering intent)."New value: +"Optional case-type filter: any of C (憲法), V (民事), M (刑事), A (行政), P (懲戒). Omit for no restriction. Set it only when the user explicitly asks to limit the case type -- do NOT infer it from words in the query: terms like 民事/刑事/行政/懲戒 appear constantly in ordinary topical queries with no filtering intent."
  3. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description nonetheless adds real behavioral context: hybrid semantic+keyword reranking, 'returns the most relevant decisions, not every match', apex-only coverage, citation queries ranking first, and the caveat that the same case number can exist across civil/criminal matters. It does not mention pagination or result limits beyond the schema default, so it sits just above adequate.

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?

Front-loaded with what it is, then coverage, then routing, then caveats — a sensible order with no filler sentences. It is on the long side and the court-list enumeration plus the 憲判字/釋字 naming examples could be tightened, keeping it short of a 5.

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?

For a search tool with no output schema, the description covers scope, ranking semantics, result interpretation (check court and case-type code and date), and the follow-up call (get_decision_details via jid). Nothing an agent needs to call and interpret it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 and the schema already documents limit, query, sources and case_types. The description adds value beyond it by documenting a non-obvious accepted query form (a citation like 最高法院 112年度台上字第1234號, which ranks first) and by explaining the output handle (jid) used with get_decision_details.

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?

States a specific verb and resource (search Taiwan ROC court decisions), the ranking method, and the exact court coverage (Supreme Court, Supreme Administrative Court, Constitutional Court, etc.), plus explicit exclusions (district and high court decisions). An agent can distinguish it from every sibling 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 Guidelines5/5

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

Gives concrete question shapes ('how have courts ruled on X', 'find rulings on this fact pattern') and then explicitly routes to three alternatives by condition: search_decisions_exact for exhaustive/literal/count needs, search_grand_chamber_decisions for 大法庭 unified-interpretation questions, search_law for statute text. Both when-to-use and when-not-to-use are covered.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Directories