Wireforge MCP server: exposes ISO 8583 parse/build/validate as Model Context Protocol tools.
Wireforge MCP exposes 12 specialized financial message parsing/validation tools with domain-specific utility. All tools have descriptions (10 - 200 chars, within baseline 34 - 392 range) and input schemas with typed parameters. However, schemas lack depth: most parameters are simple strings without enums, patterns, or constraints. Output schemas are undocumented, LLMs cannot predict return structure. Error handling is minimal; tools return generic strings rather than actionable recovery guidance. Tool names are clear and verb-prefixed (wf_parse, wf_build, wf_check), but descriptions are terse and lack WHEN/WHY context. No tool annotations (readOnlyHint, destructiveHint) despite all being read-only. Composition is sound, each tool has one responsibility, but parameter relationships (e.g., mutually exclusive wf/mt_file/mx_file in wf_mt_mx_truncation_diff) are underdocumented.
Build ISO 8583 wire bytes from a JSON message description.
Decode EBCDIC bytes (supplied as a hex string) into Unicode text.
Encode Unicode text into EBCDIC bytes, returned as a lowercase hex string.
Convert a hex string to raw bytes (utility function).
Check a fixed-length layout draft against a single captured frame. The one-command verification step of the spec-recovery loop: a field table drafted from an interface spec (by hand or machine-assisted) is checked against real captured bytes BEFORE anyone trusts it. This is a STRUCTURAL check only — a layout 'matches' a frame when its declared field lengths account for every byte (exact tiling, no truncation, no remainder).
Check a fixed-length layout draft against captured frames from a trace file. The one-command verification step of the spec-recovery loop: a field table drafted from an interface spec (by hand or machine-assisted) is checked against real captured bytes BEFORE anyone trusts it. This is a STRUCTURAL check only — a layout 'matches' a frame when its declared field lengths account for every byte (exact tiling, no truncation, no remainder).
Output schemas undocumented. LLMs cannot predict return structure (field names, types, nesting). Tools return unstructured text or JSON without schema declaration.
Parameter constraints missing. 'code_page' in wf_ebcdic_decode/encode accepts '037' or '500' but no enum declared; LLMs may hallucinate invalid values. 'format' in wf_mx_address_check accepts 'text'|'json'|'csv' but undeclared.
Mutually exclusive parameters underdocumented. wf_mt_mx_truncation_diff accepts (wf) OR (mt_file + mx_file); wf_oracle_check accepts (wf) OR (req + legacy + migrated + spec). Descriptions do not state exclusivity or guide LLM on which to use.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Detect field truncation / loss between a SWIFT MT103 and an ISO 20022 pacs.008.001.08. This is a DETECTOR, not a converter: it does not convert MT to MX or MX to MT, and makes no certification, conformance, or equivalence claim.
Check debtor/creditor postal-address compliance of one-or-more pacs.008.001.08 / pacs.004.001.09 / pacs.003.001.08 / pain.001.001.09 envelopes. Structural CBPR+ SR2026 presence check: verifies that TwnNm and Ctry appear in dedicated structured PstlAdr fields (mandatory 2026-11-14). This is a DETECTOR — NOT a full CBPR+ validation and NOT a certification.
Produce deterministic ISO 8583 regression-conformance EVIDENCE by comparing a captured legacy response against a migrated response. This is EVIDENCE, NOT a proof, certification, or equivalence claim. It is a Mode-A replay: the two responses to the same request are diffed field-by-field under an operator-approved mask spec (STABLE / VOLATILE / CRYPTO / INTENDED-DELTA; unconsidered fields default to STABLE and fail closed).
Parse an ISO 8583 hex string into a field tree.
Compute the lowercase SM3 (GM/T 0004-2012) hash digest of an input.
Parse a SWIFT MT wire message into a block tree.
No tool annotations. All 12 tools are read-only (Risk: READ_ONLY) but lack readOnlyHint annotation in schema. Agents cannot infer safety without explicit hints.
Error handling lacks recovery guidance. Tools return generic error strings (e.g., 'Invalid input') without actionable next steps. No categorization of retryable vs. user-fixable errors.