Skip to main content
Glama

Find EU payments requirements

search_legislation
Read-onlyIdempotent

Use this to find EU legislative provisions on payment-services questions: strong customer authentication (SCA), dynamic linking, open banking, safeguarding and payment liability. The held corpus includes PSD2, RTS-SCA, PSD3/PSR and DORA. For exact wording use get_provision; for defined-term wording use get_defined_term. This searches held legislation, not national law or regulator guidance. Full-text search across articles, annexes and recitals, ranked in that order of authority. Every hit carries the exact locator get_provision accepts, its cite anchor, the matched passage and why it matched. A citation-shaped query resolves through the citation grammar first; instrument acronyms become ranking hints; initialisms of the corpus's defined terms are expanded. Absence of a result is not evidence that no relevant law exists. The matched passage is a snippet of at most 320 characters, not the provision: open the hit with get_provision before citing it, and echo the cite it serves. topic narrows these hits rather than widening them: a topic-tagged provision whose words the query misses is never reached, so a page of hits is not a sweep. For coverage questions ('everything on X', 'which instruments deal with Y') pick the instruments with list_instruments by category, enumerate each with list_provisions filtered by topic, then open them with get_provision.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoRestrict to one source type. Articles, annexes and recitals are all searched by default, ranked in that order of authority.
limitNo
queryYesEU legislative search terms, e.g. "strong customer authentication", "dynamic linking", "safeguarding" or "DORA ICT risk". Use words expected in the legal text, not an entire advice request. Quoted phrases are honoured; AND, OR and NOT are the only operators. A citation-shaped query ("Article 97(1) PSD2") is resolved through the citation grammar first.
topicNoKeep only provisions carrying this topic.
cursorNo
instrument_idNoRestrict to one instrument, e.g. "rts-sca".
in_force_on_dateNoISO date; keeps hits from instruments in force on that date, on the same semantics list_instruments uses.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
errorYes
coverageYes
warningsYes
paginationYes
provenanceYes
derivationsYes
corpus_releaseYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • removedInput schema / properties / cursor / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / cursor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / in_force_on_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / in_force_on_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / instrument_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / instrument_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / topic / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / topic / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / data / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "citation_routed": {
      -        "type": "boolean"
      -      },
      -      "items": {
      -        "items": {
      -          "additionalProperties": {},
      -          "properties": {
      -            "cite": {
      -              "type": "string"
      -            },
      -            "instrument_id": {
      -              "type": "string"
      -            },
      -            "locator": {
      -              "additionalProperties": {},
      -              "propertyNames": {
      -                "type": "string"
      -              },
      -              "type": "object"
      -            },
      -            "matched_via": {
      -              "type": "string"
      -            },
      -            "score": {
      -              "anyOf": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "snippet": {
      -              "type": "string"
      -            },
      -            "source_type": {
      -              "type": "string"
      -            },
      -            "url": {
      -              "type": "string"
      -            },
      -            "why": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "instrument_id",
      -            "cite",
      -            "source_type",
      -            "locator",
      -            "url",
      -            "snippet",
      -            "score",
      -            "why",
      -            "matched_via"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "match_mode": {
      -        "type": "string"
      -      },
      -      "next_cursor": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "query_terms": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "total": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "query_terms",
      -      "match_mode",
      -      "citation_routed",
      -      "items",
      -      "next_cursor",
      -      "total"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "citation_routed": {
      +        "type": "boolean"
      +      },
      +      "items": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "cite": {
      +              "type": "string"
      +            },
      +            "instrument_id": {
      +              "type": "string"
      +            },
      +            "locator": {
      +              "additionalProperties": {},
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "matched_via": {
      +              "type": "string"
      +            },
      +            "score": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "snippet": {
      +              "type": "string"
      +            },
      +            "source_type": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            },
      +            "why": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "instrument_id",
      +            "cite",
      +            "source_type",
      +            "locator",
      +            "url",
      +            "snippet",
      +            "score",
      +            "why",
      +            "matched_via"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "match_mode": {
      +        "type": "string"
      +      },
      +      "next_cursor": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "query_terms": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "total": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "query_terms",
      +      "match_mode",
      +      "citation_routed",
      +      "items",
      +      "next_cursor",
      +      "total"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / pagination / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "complete": {
      -        "type": "boolean"
      -      },
      -      "next_cursor": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "total": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "complete",
      -      "next_cursor"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "complete": {
      +        "type": "boolean"
      +      },
      +      "next_cursor": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "total": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "complete",
      +      "next_cursor"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"What to search for, in the words you expect in the legal text. Quoted phrases are honoured; AND, OR and NOT are the only operators. A citation-shaped query (\"Article 97(1) PSD2\") is resolved through the citation grammar first."New value: +"EU legislative search terms, e.g. \"strong customer authentication\", \"dynamic linking\", \"safeguarding\" or \"DORA ICT risk\". Use words expected in the legal text, not an entire advice request. Quoted phrases are honoured; AND, OR and NOT are the only operators. A citation-shaped query (\"Article 97(1) PSD2\") is resolved through the citation grammar first."
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly and idempotent hints, and the description adds substantial behavioral context: ranking order of authority, snippet length cap of 320 characters, citation-grammar resolution, acronym expansion, and the fact that topic narrowing means hits are not a sweep. It does not contradict the annotations.

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 dense but every sentence carries operational information, front-loading the purpose and corpus before caveats and alternative workflows. It uses one compact paragraph rather than burying key points in boilerplate.

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?

Coupled with an output schema and annotations, the description covers scope, result semantics, precise action on hits (open with get_provision, echo the cite), pitfalls, and alternative workflows for coverage questions. An agent has everything needed to invoke it correctly and interpret results.

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?

With 71% schema coverage the schema already documents most parameters, and the description adds real value beyond it by explaining query behavior (citation-shaped queries, initialisms) and the crucial topic semantics: topic narrows rather than widens, so a missed provision is unreachable. Only minor parameters like limit and cursor are not elaborated, but their names make them self-evident.

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?

Description opens with a specific verb and resource ('find EU legislative provisions on payment-services questions') and enumerates the held corpus (PSD2, RTS-SCA, PSD3/PSR, DORA) and search surface (articles, annexes, recitals). It also differentiates from related tools by routing exact wording to get_provision and defined terms to get_defined_term, so an agent can select it unambiguously.

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?

The description gives explicit when-to-use guidance and names concrete alternatives: use get_provision for exact wording, get_defined_term for defined terms, and a list_instruments/list_provisions/get_provision workflow for coverage questions. It also states exclusions ('not national law or regulator guidance') and warns that absence of a result is not evidence of absence.

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.

Resources