Skip to main content
Glama

Velvoite — EU Financial Regulatory Compliance

get_canonical_obligations

Read-only
Get deduplicated canonical obligations with enforcement intelligence.

Returns one obligation per unique legal requirement per actor role.
Each includes compliance difficulty, guidance, and enforcement metrics.

Use this instead of get_obligations when you want a clean, deduplicated
view of what a regulated entity must comply with, enriched with
enforcement risk data.

Args:
    regulation: Filter by regulation code (e.g. 'dora', 'mica', 'aml').
    actor_role: Comma-separated actor roles (e.g. 'credit_institution,significant_institution').
    entity_type: Filter by entity type code (e.g. 'credit_institution').
    compliance_difficulty: Filter by difficulty: 'low', 'medium', 'high', 'critical'.
    min_enforcement_count: Only return obligations with at least this many enforcement actions.
    sort: Sort order. Options: 'enforcement_count_desc' (default), 'compliance_difficulty_desc', 'regulation', 'actor_role'.
    page: Page number (default 1).
    per_page: Results per page (default 20, max 100).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNoenforcement_count_desc
per_pageNo
actor_roleNo
regulationNo
entity_typeNo
compliance_difficultyNo
min_enforcement_countNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description builds on that by disclosing deduplication behavior, per-actor-role structure, and the inclusion of compliance difficulty, guidance, and enforcement metrics. This adds meaningful context beyond the annotation alone.

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?

The description is front-loaded with a one-sentence purpose, followed by a crisp usage note and a well-organized Args block. There is no redundant text; every line contributes necessary decision-making or invocation information.

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?

Given the output schema exists, the readOnly annotation, and the detailed parameter documentation, the description fully equips an agent to select and call this tool. It covers purpose, differentiation from siblings, all filters, sorting options, and pagination defaults.

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?

The schema has 0% descriptive coverage, but the Args list comprehensively documents all 8 parameters with exact value examples, accepted strings, defaults, and constraints like per_page max 100. This fully compensates for the schema's lack of descriptions.

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 description opens with a specific verb and resource: 'Get deduplicated canonical obligations with enforcement intelligence.' It clearly distinguishes itself from get_obligations by emphasizing deduplication and enforcement risk enrichment.

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 explicitly tells the agent to 'Use this instead of get_obligations when you want a clean, deduplicated view' and names the alternative. However, it doesn't specify when get_obligations would be a better choice, so it lacks a full when-not exclusion.

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.

TDQS

A4.3/5.0
Disambiguation4/5

Each tool targets a distinct resource (obligations, documents, enforcement, Finnish statutes, CJEU cases) with clear parameter differences. Minor overlap exists between get_obligations and get_canonical_obligations, but descriptions explicitly differentiate them.

Naming Consistency5/5

All tools consistently use verb_noun patterns: get_ for retrievals, search_ for queries, list_documents, and audit_taxonomy. No mixed casing or inconsistent verb styles are present.

Tool Count2/5

At 26 tools, the surface exceeds the 25-tool threshold for 'too many'. While the domain is broad, the large number of specialized search/get tools could be consolidated without losing functionality.

Completeness4/5

The API covers the full regulatory compliance workflow: company profile, obligations, deadlines, documents, enforcement, and multiple legal sources (EU, Finnish, CJEU). Some Finnish/KHO tools return URLs requiring web fetch rather than direct data, which is a minor but by-design gap.

Resources