ISO 20022 Navigator

Look up the ISO 20022 replacement for legacy messages like MT103, and which schemes use a message.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
95%
Naming quality
60%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'iso20022_bank_transaction_codes' name length outside 3-30 rangein iso20022_bank_transaction_codes
  • LOWTool 'iso20022_legacy_and_scheme_mappings' name length outside 3-30 rangein iso20022_legacy_and_scheme_mappings

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,919Tokens (tool definitions)
~12.8 KBTypical response size
Significant attention impact (2.28% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "iso20022-navigator": {
      "url": "https://mcp.isonavigator.io/iso20022"
    }
  }
}

Remote endpoints

https://mcp.isonavigator.io/iso20022streamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢iso20022_bank_transaction_codes(code)

Use for ANY question about ISO 20022 Bank Transaction Codes (BTC): the Domain / Family / SubFamily codes that classify entries in bank statements and account reports, such as PMNT, PMNT-RCDT or PMNT-RCDT-ESCT. Call it even when the code looks familiar: it returns the official names, descriptions and how the codes fit together. Send the code in one of these forms: - PMNT (a domain): its name and its families. - PMNT-RCDT (domain and family): both names and its subfamilies. - PMNT-RCDT-ESCT (all three): the three names and an explanation of the combination. - /RCDT (a family): its name, the domains it appears in and its subfamilies. - //ESCT (a subfamily): its name, the domains and families it appears in. - /RCDT/ESCT (family and subfamily): the domains where this pair exists. - PMNT//ESCT (domain and subfamily): the families under PMNT that contain ESCT. - ESCT (no level given): matched as a domain, a family and a subfamily; each level where it exists is returned separately. This tool matches codes, not meanings. To find the code for a type of transaction, browse from the domain down: PMNT, then its families, then their subfamilies. It covers the ISO external code list only; bank-specific (proprietary) codes are outside it. It has no information about message structure or how a bank fills in a code.

Input Schema

{
  "type": "object",
  "properties": {
    "code": {
      "description": "A Bank Transaction Code or part of one, written domain-family-subfamily with hyphens, e.g. 'PMNT-RCDT-ESCT'. Each part is four letters or digits. Begin with slashes to fix the level ('/RCDT' is a family, '//ESCT' is a subfamily) and leave a level empty to skip it ('PMNT//ESCT'). Slash, comma or space also work as separators.",
      "maxLength": 30,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9 ,./_\\-]+$",
      "title": "Code",
      "type": "string"
    }
  },
  "required": [
    "code"
  ],
  "title": "find_transaction_codesArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "found": {
      "title": "Found",
      "type": "boolean"
    },
    "input": {
      "description": "The code as interpreted by the server, slash-separated by level, e.g. PMNT/RCDT, /RCDT, //ESCT",
      "title": "Input",
      "type": "string"
    },
    "matches": {
      "items": {
        "$ref": "#/$defs/Match"
      },
      "title": "Matches",
      "type": "array"
    },
    "segments": {
      "description": "Not found only: where each part of the input exists in the ISO list",
      "items": {
        "$ref": "#/$defs/Segment"
      },
      "title": "Segments",
      "type": "array"
    },
    "closest_paths": {
      "description": "Not found only: up to 5 existing paths sharing a part with the input",
      "items": {
        "type": "string"
      },
      "title": "Closest Paths",
      "type": "array"
    },
    "notes": {
      "description": "Caveats to pass on to the user",
      "items": {
        "type": "string"
      },
      "title": "Notes",
      "type": "array"
    },
    "provenance": {
      "$ref": "#/$defs/Provenance"
    }
  },
  "required": [
    "found",
    "input",
    "provenance"
  ],
  "$defs": {
    "Code": {
      "properties": {
        "code": {
          "title": "Code",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "code",
        "name"
      ],
      "title": "Code",
      "type": "object"
    },
    "Counts": {
      "properties": {
        "domains": {
          "title": "Domains",
          "type": "integer"
        },
        "families": {
          "title": "Families",
          "type": "integer"
        },
        "subfamilies": {
          "title": "Subfamilies",
          "type": "integer"
        },
        "combinations": {
          "description": "Valid domain-family-subfamily combinations that match",
          "title": "Combinations",
          "type": "integer"
        }
      },
      "required": [
        "domains",
        "families",
        "subfamilies",
        "combinations"
      ],
      "title": "Counts",
      "type": "object"
    },
    "Match": {
      "properties": {
        "level": {
          "description": "The deepest level the request fixed; 'combination' when all three were given",
          "enum": [
            "domain",
            "family",
            "subfamily",
            "combination"
          ],
          "title": "Level",
          "type": "string"
        },
        "resolved": {
          "$ref": "#/$defs/Resolved",
          "description": "The codes the request fixed, with their official names"
        },
        "counts": {
          "anyOf": [
            {
              "$ref": "#/$defs/Counts"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Totals over all matching combinations (not only those listed)"
        },
        "domains": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Code"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domains"
        },
        "families": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Code"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Families"
        },
        "subfamilies": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Code"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subfamilies"
        },
        "all_pairs_exist": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Present when two lists are returned. True: every item in one list combines with every item in the other. False: the lists are not paired; some pairs do not exist.",
          "title": "All Pairs Exist"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "AI-generated description of the combination, validated against ISO definitions; present when exactly one combination matches",
          "title": "Description"
        }
      },
      "required": [
        "level",
        "resolved"
      ],
      "title": "Match",
      "type": "object"
    },
    "Provenance": {
      "description": "Where the data comes from [3.6]. Each tool supplies its own `scope`.",
      "properties": {
        "source": {
          "default": "ISO 20022 Navigator reference data (https://www.isonavigator.io/iso20022/)",
          "title": "Source",
          "type": "string"
        },
        "scope": {
          "title": "Scope",
          "type": "string"
        },
        "data_baseline": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Quarter of the Navigator's baseline data load, e.g. 4Q2025: data reflects that load unless stated otherwise. This is when data was added to the Navigator, not an ISO 20022 publication.",
          "title": "Data Baseline"
        }
      },
      "required": [
        "scope"
      ],
      "title": "Provenance",
      "type": "object"
    },
    "Resolved": {
      "properties": {
        "domain": {
          "anyOf": [
            {
              "$ref": "#/$defs/Code"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "family": {
          "anyOf": [
            {
              "$ref": "#/$defs/Code"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "subfamily": {
          "anyOf": [
            {
              "$ref": "#/$defs/Code"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "Resolved",
      "type": "object"
    },
    "Segment": {
      "properties": {
        "code": {
          "title": "Code",
          "type": "string"
        },
        "exists_as": {
          "anyOf": [
            {
              "items": {
                "enum": [
                  "domain",
                  "family",
                  "subfamily"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Levels at which this code exists in the ISO list; absent if it exists nowhere",
          "title": "Exists As"
        }
      },
      "required": [
        "code"
      ],
      "title": "Segment",
      "type": "object"
    }
  },
  "title": "BankTransactionCodeResult"
}
🟢iso20022_legacy_and_scheme_mappings(message, standard)

Use for ANY question about what replaces or corresponds to a legacy payment message (SWIFT MT such as MT103, MT202, MT940; NACHA; CHAPS), or which payment schemes use an ISO 20022 message (pacs.008, pain.001, pain.008, camt.053; SEPA, NPP, CHAPS, Lynx, CIPS and others). Call it even when the answer seems well known: it returns sourced, current mappings with status and caveats. For "which schemes use X", call once with only the message: the response lists every recorded scheme (without descriptions, to keep it compact). Omit `standard` unless the user names one scheme; with `standard`, the response includes that scheme's description. - Legacy input (MT103, 940, ACH Statement): returns its ISO 20022 equivalent(s) in legacy_equivalents. - ISO 20022 input (pacs.008): returns legacy_equivalents (legacy messages that map to it) and used_by_schemes (schemes that use it). Mappings are message-level only; this tool does not map individual fields and has no information about a message's structure, elements or rules. Do not cite it for those. ISO 20022 messages that have been retired are returned flagged with iso20022_deactivated_in, not hidden.

Input Schema

{
  "type": "object",
  "properties": {
    "message": {
      "description": "A legacy message (e.g. 'MT103', 'MT 202COV', '940', 'ACH Statement') or an ISO 20022 message (e.g. 'pacs.008', 'camt.053.001.08').",
      "maxLength": 40,
      "minLength": 2,
      "pattern": "^[A-Za-z0-9 .\\-/()]+$",
      "title": "Message",
      "type": "string"
    },
    "standard": {
      "anyOf": [
        {
          "maxLength": 30,
          "pattern": "^[A-Za-z0-9 _+/()\\-]*$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Omit (or leave empty) unless the user names one specific standard or scheme. Omitted returns every recorded scheme and legacy equivalent in one call; do not use this to check schemes one by one. Examples when the user names one: 'SWIFT_MT', 'SEPA', 'NPP', 'CHAPS'.",
      "title": "Standard"
    }
  },
  "required": [
    "message"
  ],
  "title": "find_mappingsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "found": {
      "title": "Found",
      "type": "boolean"
    },
    "input": {
      "description": "The message identifier as interpreted by the server",
      "title": "Input",
      "type": "string"
    },
    "input_kind": {
      "enum": [
        "iso20022",
        "legacy"
      ],
      "title": "Input Kind",
      "type": "string"
    },
    "iso20022_message_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Name of the ISO 20022 message, when the input is one",
      "title": "Iso20022 Message Name"
    },
    "iso20022_deactivated_in": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Navigator data load (quarter) in which the input message was marked deactivated; absent if current",
      "title": "Iso20022 Deactivated In"
    },
    "legacy_equivalents": {
      "description": "Legacy or non-ISO messages (SWIFT MT, NACHA, CHAPS legacy) and their ISO 20022 equivalent",
      "items": {
        "$ref": "#/$defs/Mapping"
      },
      "title": "Legacy Equivalents",
      "type": "array"
    },
    "used_by_schemes": {
      "description": "Payment schemes that use this ISO 20022 message",
      "items": {
        "$ref": "#/$defs/Mapping"
      },
      "title": "Used By Schemes",
      "type": "array"
    },
    "notes": {
      "description": "Caveats to pass on to the user",
      "items": {
        "type": "string"
      },
      "title": "Notes",
      "type": "array"
    },
    "provenance": {
      "$ref": "#/$defs/Provenance"
    }
  },
  "required": [
    "found",
    "input",
    "input_kind",
    "provenance"
  ],
  "$defs": {
    "Mapping": {
      "properties": {
        "standard_id": {
          "description": "Identifier of the payment standard or scheme, e.g. SWIFT_MT, SEPA",
          "title": "Standard Id",
          "type": "string"
        },
        "standard_name": {
          "title": "Standard Name",
          "type": "string"
        },
        "ref_id": {
          "description": "Message identifier as the standard writes it, e.g. 103, MT103, pacs.008",
          "title": "Ref Id",
          "type": "string"
        },
        "ref_name": {
          "title": "Ref Name",
          "type": "string"
        },
        "iso20022_message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ISO 20022 message; absent when there is no equivalent",
          "title": "Iso20022 Message Id"
        },
        "iso20022_message_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Iso20022 Message Name"
        },
        "iso20022_deactivated_in": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Navigator data load (quarter) in which this ISO 20022 message was marked deactivated; absent if current",
          "title": "Iso20022 Deactivated In"
        },
        "status": {
          "enum": [
            "ACTIVE",
            "DEPRECATED"
          ],
          "title": "Status",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Explanation of this specific mapping",
          "title": "Description"
        }
      },
      "required": [
        "standard_id",
        "standard_name",
        "ref_id",
        "ref_name",
        "status"
      ],
      "title": "Mapping",
      "type": "object"
    },
    "Provenance": {
      "description": "Where the data comes from [3.6]. Each tool supplies its own `scope`.",
      "properties": {
        "source": {
          "default": "ISO 20022 Navigator reference data (https://www.isonavigator.io/iso20022/)",
          "title": "Source",
          "type": "string"
        },
        "scope": {
          "title": "Scope",
          "type": "string"
        },
        "data_baseline": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Quarter of the Navigator's baseline data load, e.g. 4Q2025: data reflects that load unless stated otherwise. This is when data was added to the Navigator, not an ISO 20022 publication.",
          "title": "Data Baseline"
        }
      },
      "required": [
        "scope"
      ],
      "title": "Provenance",
      "type": "object"
    }
  },
  "title": "MappingResult"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools