Skip to main content
Glama

Court Decisions Ukraine MCP

Server Details

Experimental read-only MCP over metadata of Ukrainian court decisions (DSA/EDRSR open data).

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

B3.1/5.0

Scored across 6 tools

Disambiguation3/5

Two clear overlap pairs: 'stats' vs 'court_category_stats' both return aggregate counts, and 'search_decisions' accepts case numbers in its free-text query while 'search_by_case_number' does dedicated case-number lookup with prefix and normalization. Descriptions (limit ranges, group_by, prefix flag) give hints, but an agent must read carefully to pick the right one.

Naming Consistency3/5

Three tools follow verb_noun (get_decision, list_courts, search_decisions, search_by_case_number), but 'stats' and 'court_category_stats' break the pattern with bare noun-phrases and reversed ordering (domain-first rather than action-first). Readable, but the convention is not uniform.

Tool Count4/5

Six tools is a lean, well-scoped set for a read-only court registry: search, case lookup, single-record fetch, court directory, and two stats views. Slightly under-provisioned given there is no tool to pull decision text, but nothing is redundant.

Completeness3/5

Core discovery (search, case-number lookup, metadata fetch) and aggregation are covered, but notable gaps remain: get_decision returns metadata only with no way to retrieve decision text, and there are no reference lookups for categories or justice_kind (only list_courts). Agents can work around some of this by searching, but dead ends exist.

Available Tools

6 tools
court_category_statsAInspect

Кількість рішень за судом і/або категорією (за спаданням). Усі параметри необов'язкові: court і category — код або частина назви; date_from/date_to (YYYY-MM-DD, дата ухвалення); group_by = court | category | both; limit 1..200 (за замовчуванням 50). Надто важкий запит (>5 с) переривається з помилкою.

NameRequiredDescriptionDefault
courtNo
limitNo
date_toNo
categoryNo
group_byNoboth
date_fromNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden, and it does add real behavior: results are ordered descending, the limit defaults to 50, and queries that exceed about 5 seconds are aborted with an error. Return format, pagination, and match semantics (case sensitivity of partial names) remain undocumented.

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

Conciseness5/5

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

Everything is packed into a few dense clauses with no waste: purpose first, then parameter rules, then the timeout caveat. Each sentence adds information an agent needs to call the tool correctly.

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

Completeness4/5

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

For a six-parameter aggregation tool with no output schema and no annotations, the description is nearly complete: it documents defaults, formats, the enum, ordering, and timeout behavior. It could still say what the response rows contain (group key plus count) and whether partial names are case-insensitive.

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 description coverage is 0%, so the description must define all six parameters, and it does: court/category accept a code or a partial name, date_from/date_to use YYYY-MM-DD and refer to the decision date, group_by accepts court|category|both, and limit ranges from 1 to 200 with a default of 50.

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

Purpose4/5

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

The description states a specific operation: counting decisions grouped by court and/or category, sorted descending. It is clearly distinguishable from search_decisions or get_decision, though it doesn't explicitly contrast itself with the sibling 'stats' tool, so the agent must infer the difference.

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

Usage Guidelines3/5

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

It notes that every parameter is optional and that courts or categories can be passed as a full code or a partial name, which implies the tool is used for exploratory aggregation. However, it never says when to choose this tool over 'stats' or 'search_decisions', and it gives no guidance on resolving court codes via list_courts.

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

get_decisionCInspect

Метадані одного рішення за doc_id (ціле число, лише цифри 0-9). Поле judge — як у джерелі.

NameRequiredDescriptionDefault
doc_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears the full disclosure burden. It adds one useful data caveat (the judge field is as in the source), but says nothing about behavior for an unknown doc_id, the returned metadata structure, or whether the call is purely read-only beyond what the name implies.

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?

Two short sentences with the purpose front-loaded and no padding. The judge caveat is tersely worded but earns its place as real domain context.

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

Completeness3/5

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

This is a simple one-parameter getter with no output schema, so the description only needs to cover purpose, input format, and return meaning. Purpose and input format are handled, but 'metadata' is left vague and error behavior is unaddressed.

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 coverage is 0% and the schema allows either string or integer, so the description usefully constrains doc_id to an integer of digits 0-9. It does not clarify how a string input is treated or where a valid doc_id comes from.

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

Purpose4/5

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

The description states a specific verb and resource: retrieve the metadata of a single decision by doc_id. That clearly separates it from the retrieval-by-search siblings such as search_decisions, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

It implies you need a doc_id in hand, but gives no explicit when-to-use or when-not-to-use guidance and never points to search_decisions for the case where the caller does not already have an ID. The agent must infer the routing itself.

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

list_courtsCInspect

Довідник судів: name, region (частини назв), limit.

NameRequiredDescriptionDefault
nameNo
limitNo
regionNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden, yet it says nothing about the operation being a safe read, whether authentication is required, how results are ordered, or what happens when filters match nothing. The only behavioral hint is "(частини назв)" for region, which implies substring matching. For a tool with zero annotation coverage, this leaves significant gaps.

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?

A single short line with the key fields front-loaded and no filler. It is terse to the point of being cryptic (the parenthetical is unexplained), but nothing is wasted or buried.

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

Completeness2/5

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

The tool is simple (three optional filters, no output schema, no nesting), so a short description can suffice, but this one omits return shape, pagination implications of limit, and any hint of the matching semantics for name. Given no annotations and no output schema, the description should do noticeably more.

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 0%, so the description must compensate, and it partly does: it lists all three parameters and clarifies that region matches on parts of names. It does not explain the matching rule for name, the default or maximum value of limit, or whether empty strings mean "no filter". Partial compensation only.

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

Purpose3/5

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

The description names the resource as a court directory ("Довідник судів") and enumerates the filter fields, so an agent can infer it returns a list of courts. However, it uses a noun phrase with no verb, and it never distinguishes itself from the sibling court_category_stats, which also addresses courts. The purpose is understandable but imprecise.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus siblings such as court_category_stats or the search_* tools, and no prerequisites or exclusions are given. The agent must infer from the name alone that this is a reference/lookup endpoint used to resolve court identifiers.

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

search_by_case_numberAInspect

Усі рішення по справі за номером (нормалізація: пробіли, регістр, роздільники \ | /, лапки, №). prefix=true — пошук за початком номера (мін. 2 символи). Повертає метадані, суд, дату, вид, категорію, посилання на реєстр. limit 1..200 (за замовчуванням 50).

NameRequiredDescriptionDefault
limitNo
prefixNo
case_numberYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the behavioral burden and does add real context: input normalization rules (spaces, case, separators, quotes, '№'), the prefix minimum length, the returned fields, and the limit range. It omits read-only/side-effect framing and whether results are paginated or truncated beyond the limit, leaving meaningful gaps for a tool with zero annotation coverage.

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?

A compact single block with the core action front-loaded, followed by normalization, prefix mode, return fields, and limit bounds in a logical order. It is dense but every sentence carries information; the parenthetical normalization list is slightly compressed but not wasteful.

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

Completeness4/5

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

With three parameters, no output schema, and no annotations, the description covers what an agent needs: what it returns (metadata, court, date, type, category, registry link), input normalization, prefix behavior, and limit bounds. Remaining gaps are secondary, such as ordering of results, pagination beyond the limit, and behavior on no match.

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 0%, so the description must compensate, and it largely does: prefix is explained as start-of-number matching with a 2-character minimum, limit is bounded to 1..200 with a default of 50, and case_number gets concrete normalization semantics absent from the schema. Only the exact behavior of prefix=false borderline cases and any match-failure behavior remain unstated.

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

Purpose4/5

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

States a specific verb+resource: retrieve all decisions ('Усі рішення') for a given case number, with the scope of the lookup described precisely. It does not name or differentiate against siblings like search_decisions, so an agent must infer that this is the exact-case-number lookup path.

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?

The description makes the usage model clear through its normalization and prefix semantics: exact number lookup by default, prefix mode for partial numbers with a minimum of 2 characters. It gives no explicit when-to-use/when-not guidance versus search_decisions or get_decision, so routing is implied rather than stated.

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

search_decisionsCInspect

Пошук рішень: query (слова: номер справи, суд, категорія, суддя; до 8 слів, до 200 символів), court (код або частина назви), justice_kind (код або назва виду провадження), date_from/date_to (YYYY-MM-DD, дата ухвалення), limit (1..50).

NameRequiredDescriptionDefault
courtNo
limitNo
queryNo
date_toNo
date_fromNo
justice_kindNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, yet it says nothing about the operation being read-only, what the response contains, result ordering, or how limit interacts with total result counts. It does add useful input constraints (max 8 words / 200 chars for query, limit range 1..50), which is the main behavioral value present.

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?

A single front-loaded sentence names the verb and then enumerates parameters with parenthetical constraints, so there is little waste. It is dense but consistently structured, with no redundant sentences.

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

Completeness3/5

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

With six optional parameters, no annotations and no output schema, the description covers input semantics well but leaves the agent guessing about the return shape, pagination beyond limit, and sorting. For a search tool of this complexity, that is adequate but incomplete.

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 description coverage is 0%, so this text is the only documentation, and it defines all six parameters: query field coverage and length limits, court as code or name fragment, justice_kind as code or name, date format and that dates refer to the adoption date, and the limit range. Gaps remain: defaults (20, empty strings) are not mentioned and it does not state whether filters combine with AND or how empty strings are treated.

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

Purpose3/5

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

The opening 'Пошук рішень' states a clear verb+resource (search court decisions), and the parameter list clarifies what can be filtered. However, it never distinguishes itself from siblings like search_by_case_number or get_decision, and the mention of 'номер справи' (case number) inside query actually muddies which tool to pick for a case-number lookup.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no exclusions, and no named alternative despite four sibling search/lookup tools. The agent must infer usage entirely from the parameter list, and the overlap with search_by_case_number is left unresolved.

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

statsBInspect

Загальна статистика бази: кількість, діапазон дат, розподіл за видами проваджень.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden; it does disclose the shape of the result (count, date range, proceeding-type distribution), which is valuable given there is no output schema. However, it never states that the operation is read-only, whether it scans the whole base, or any cost/performance characteristics of a full-database aggregation.

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?

A single dense sentence with the scope ('database-wide') front-loaded and the three returned measures listed after the colon. No wasted wording; it is a fragment rather than a full sentence but that suits a stats tool.

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

Completeness4/5

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

For a zero-parameter, read-only aggregation with no output schema, the description covers what an agent most needs: that it is global and which measures come back. The notable residual gap is the missing boundary with court_category_stats.

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?

The tool takes zero parameters, so there is no parameter semantics to explain and the schema is inherently complete. Baseline 4 applies; the description adds nothing needed here because nothing can be supplied.

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

Purpose4/5

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

The description names a specific resource (database-wide statistics) and enumerates the three things returned: record count, date range, and distribution by proceeding type. This clearly distinguishes it from retrieval siblings like get_decision or search_decisions, though it does not explicitly distinguish it from court_category_stats, which may also return distributions.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The word 'Загальна' (general) weakly implies an overview/orientation use case, but an agent facing court_category_stats has no stated rule for choosing between the two.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedcourt_category_stats
    • First observedget_decision
    • First observedlist_courts
    • First observedsearch_by_case_number
    • First observedsearch_decisions
    • First observedstats

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Read-only MCP server for the Ukrainian state auction platform Prozorro.Sale. It enables users to search auctions, retrieve detailed information, timelines, results, documents, and analyze market trends through natural language.
    10
    8 npm
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    A read-only MCP connector for searching, fetching, and citing provenance-tracked legal corpora with verifiable content hashes.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Public MCP server for querying Brazilian court jurisprudence, processes, and communications without authentication. Supports courts like TJSP, TJRS, TJRJ, TJGO, and more via eSAJ, Datajud, and CNJ systems.
    8
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources