Skip to main content
Glama
sebastienrousseau

iso20022-bank-profile-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ISO20022_BANK_PROFILE_TOKENNoStatic dev-mode token for HTTP transport (alternative to OAuth)
ISO20022_BANK_PROFILE_ENTITLEMENTSNoComma- or space-separated list of premium profile IDs the operator is licensed for, or '*' for all
ISO20022_BANK_PROFILE_OAUTH_ISSUERNoOAuth 2.1 issuer URL for token validation (required when using OAuth with HTTP transport)
ISO20022_BANK_PROFILE_OAUTH_SCOPESNoRequired OAuth scopes (optional)
ISO20022_BANK_PROFILE_OAUTH_AUDIENCENoOAuth 2.1 audience for token validation (required when using OAuth with HTTP transport)
ISO20022_BANK_PROFILE_OAUTH_JWKS_URLNoJWKS URL for token validation (defaults to <issuer>/.well-known/jwks.json)<issuer>/.well-known/jwks.json

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_profilesA

List the available clearing profiles as lightweight summaries.

Purpose:
    Discover and enumerate all built-in and registered ISO 20022 clearing
    profiles, including supported messages and rule counts.

When to use:
    Call this tool first to discover valid `profile_id` values before
    fetching full profile rules with `get_profile` or linting payloads
    with `lint_payload`.

When NOT to use:
    Do not use if you need full rule bodies and validation expressions;
    use `get_profile` instead.

Behavioral transparency:
    - Deterministic: Returns identical summaries for registered profiles.
    - External dependencies: None (reads internal registry).
    - Side effects: Pure read-only operation; modifies no state.
    - Error states: Always succeeds and returns a list.
get_profileA

Return one clearing profile in full, including its rule bodies.

Purpose:
    Retrieve the complete definition of an ISO 20022 clearing profile,
    including rule bodies, validation logic, and metadata.

When to use:
    Use when inspecting the specific market-practice rules, XPath
    targets, or error severity configured for a specific clearing network.

When NOT to use:
    Do not use to discover available profile identifiers; use `list_profiles`
    first. Do not use to evaluate payloads; use `lint_payload`.

Behavioral transparency:
    - Deterministic: Given the same profile_id and entitlements, returns
      identical profile data.
    - External dependencies: None (local memory/registry).
    - Side effects: Pure read-only operation; modifies no state.
    - Error states: Returns an error object if profile_id is unknown
      or requires ungranted entitlements.

Args:
    profile_id: The clearing profile identifier.
lint_payloadA

Evaluate a payload against a clearing profile and return findings.

Purpose:
    Validate an ISO 20022 XML or JSON message payload against the
    market-practice rules and constraints of a specific bank clearing profile.

When to use:
    Use before submitting payment messages to clearing rails (CBPR+, SEPA,
    FedNow) to identify rule violations, missing elements, or format defects.

When NOT to use:
    Do not use for basic XSD schema validation; use structural XML
    validators. Do not use to validate rule pack schemas; use
    `validate_profile_definition`.

Behavioral transparency:
    - Deterministic: Identical payload and profile_id produce identical
      findings.
    - External dependencies: None (defusedxml parser only).
    - Side effects: Pure read-only operation; writes no data.
    - Error states: Returns an error object on XML syntax error,
      unknown profile_id, or entitlement failure.

Args:
    payload_content: The raw ISO 20022 message text.
    profile_id: The clearing profile to lint against.
validate_profile_definitionA

Validate a bank-supplied profile / rule-pack definition (raw JSON).

Purpose:
    Verify that a candidate clearing profile or rule-pack JSON text meets
    all schema, syntactic, and semantic requirements.

When to use:
    Use before registering new custom bank profiles or importing external
    rule packs into the engine.

When NOT to use:
    Do not use to validate payment messages; use `lint_payload` instead.

Behavioral transparency:
    - Deterministic: Evaluates strictly according to the Pydantic profile
      schema.
    - External dependencies: None (standard JSON parsing).
    - Side effects: Pure read-only validation; does not register the profile.
    - Error states: Returns `is_valid: False` with descriptive error details
      if validation fails.

Args:
    definition_content: The candidate profile definition, as JSON text.

Prompts

Interactive templates invoked by user choice

NameDescription
lint_bank_payloadGuide an agent through linting a payload against a clearing profile. Teaches the canonical three-step workflow: discover the available profiles with ``list_profiles``, inspect the chosen one with ``get_profile``, then evaluate a payload with ``lint_payload``. Args: profile_id: The clearing profile the guidance should target.

Resources

Contextual data attached and managed by the client

NameDescription
profiles_resourceExpose the clearing-profile summaries as a static JSON resource. Mirrors the ``list_profiles`` tool for clients that prefer to read context as a resource rather than invoke a tool.

TDQS

A4.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct action-resource pair: list_profiles (summaries), get_profile (full rule bodies), lint_payload (payload validation), and validate_profile_definition (profile/rule-pack validation). The descriptions explicitly cross-reference when to use each tool and clarify boundaries, eliminating overlap.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern: list_profiles, get_profile, lint_payload, validate_profile_definition. There is no mixing of conventions or vague verbs, making the set highly predictable.

Tool Count5/5

Four tools is well-scoped for a focused ISO 20022 profile server. Each tool has a clear, non-redundant role in discovery, retrieval, payload linting, and definition validation, so every tool earns its place.

Completeness3/5

The surface covers read and validation workflows (list, get, lint, validate_definition) but lacks any operation to register, update, or delete profiles or rule packs. This is a notable gap because the descriptions mention registering new custom bank profiles and importing external rule packs, yet no such tool exists.

Maintenance

ActivityActive
ResponsivenessNo issues