Skip to main content
Glama

ddex-ern-382-mcp

Standalone MCP server for DDEX ERN 3.8.2. It gives MCP-capable clients access to format knowledge, element order, AVS values, composition guides, and offline XML/package validation.

It is independent of any distributor backend, database, or delivery vendor.

Install and connect

For an MCP client that supports stdio, configure:

{
  "mcpServers": {
    "ddex-ern-382": {
      "command": "npx",
      "args": ["-y", "ddex-ern-382-mcp"]
    }
  }
}

The package requires Node.js 20 or newer. To run from a source checkout:

npm install
npm run build
npm start

For development, npm run dev runs the TypeScript entrypoint directly.

Related MCP server: docscanner-mcp

MCP tools

Tool

Purpose

validate_ern_xml

Smoke checks and full offline XSD validation of XML text or a file

validate_package_dir

Check BatchComplete, relative URL, DeliveryType, and the message MD5

explain_element

Explain an element, attribute, or DDEX package concept

element_sequence

Show documented child order for an ERN container

list_sequences, list_elements, list_enums, list_howtos

Discover available knowledge

avs_values

Look up values from the vendored AVS schema or curated sets

howto_compose

Step-by-step guidance for common ERN scenarios

MCP resources

Markdown guides are available under ddex-ern-382://guides/:

  • ern-382-overview

  • rdbt-order

  • sdbt-order

  • batchcomplete

  • common-pitfalls

Validation scope

The server validates ERN 3.8.2 structure and the vendored XSD/AVS schema. Package checks cover documented general package conventions. A schema-valid message is not a guarantee that every DSP will accept it; DSPs and aggregators may require additional profiles and business rules.

ERN 4.x, Schematron, and DDEX Workbench are outside this package's current scope.

Development and tests

npm install
npm run typecheck
npm test
npm run build

Schema licensing

The server source code is MIT licensed. The DDEX schemas under vendor/ddex/ are copyrighted DDEX materials and are not covered by the MIT license. DDEX Evaluation/Implementation licensing applies to use and redistribution; see LICENSE-NOTE.md and the schema headers before redistribution.

Available Tools

10 tools
avs_valuesC

Return allowed values for an AVS simpleType (from vendored avs.xsd) or a curated enum id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAVS type or curated id, e.g. ParentalWarningType, ArtistRole, DeliveryType
limitNo
queryNoOptional search across AVS type names / values when exact name is unknown

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the data source ('vendored avs.xsd'), but says nothing about return shape, pagination behavior (despite a limit parameter), or whether values are exhaustive, leaving significant gaps for a no-annotation tool.

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?

A single, front-loaded sentence with no filler. It communicates the action and scope immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and three parameters, the description should explain what is returned and how results are bounded. It omits the return format entirely, so an agent cannot anticipate the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, so the schema documents name and query but leaves limit bare. The description adds no parameter-level detail beyond what the schema already says, and does not compensate for the undocumented limit parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return allowed values for an AVS simpleType ... or a curated enum id'), which is clear. However, it does not distinguish itself from the sibling list_enums, which plausibly covers similar lookup territory, so an agent gets no explicit routing cue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no named alternative among the siblings (list_enums, explain_element). The only contextual hint ('when exact name is unknown') lives in the query parameter's schema description, not in the tool description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

element_sequenceB

Return the canonical child element order (XSD sequence / practice) for a container such as ReleaseDetailsByTerritory or SoundRecording.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentYesParent element name, e.g. ReleaseDetailsByTerritory, SoundRecordingDetailsByTerritory, DealTerms

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup and names the underlying standard (XSD sequence / practice), but says nothing about behavior for unknown parents, error handling, or the shape of the returned ordering, all of which matter for a tool whose entire value is its output.

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?

A single sentence that front-loads the action and resource, then qualifies it with concrete examples. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one fully documented parameter and no output schema, the description is nearly adequate, but because there is no output schema and no annotations, the description should describe what the returned ordering looks like (list of element names, XSD order semantics) and how an unknown parent is handled. Those gaps leave an agent guessing about the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single 'parent' parameter is already fully documented with examples in the schema. The description repeats the same kind of example ('ReleaseDetailsByTerritory', 'SoundRecording') without adding format, casing, or namespace rules beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb ('Return') and resource ('canonical child element order') and grounds it with real container examples like ReleaseDetailsByTerritory and SoundRecording, so the intent is immediately clear. It stops short of distinguishing itself from the sibling list_sequences or list_elements, leaving some ambiguity about which lookup tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'for a container such as...', so an agent can infer it applies to container elements rather than leaf elements. However, there is no explicit when-to-use guidance, no mention of when not to use it, and no routing to alternatives such as explain_element or list_elements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_elementA

Explain an ERN 3.8.2 element, attribute, or concept (where it goes, spelling, related items).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesElement/attribute name, e.g. ReleaseDetailsByTerritory, ICPN, FileURL

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the shape of the return content (placement, spelling, related items), which is genuinely useful given there is no output schema, but says nothing about side effects, permissions, or whether the answer set is bounded to ERN 3.8.2 only.

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?

One front-loaded sentence that leads with the verb and resource, then packs the return summary into a tight parenthetical. Zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-param read tool with no annotations and no output schema, the description covers purpose and return content adequately. It falls short only on when to prefer it over the list_* and element_sequence siblings, which matters in a family of nine related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single param already documents itself with concrete examples (ReleaseDetailsByTerritory, ICPN, FileURL). The description adds only the minor clarification that the name may also be a 'concept', not just an element or attribute. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Explain') and resource ('ERN 3.8.2 element, attribute, or concept'), and the parenthetical clarifies what an explanation contains (where it goes, spelling, related items). This distinguishes it implicitly from list_elements, which presumably only enumerates names, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer you call this when you need details about a known element rather than a list. There is no explicit when-to-use statement, no exclusion, and no routing to siblings like list_elements or element_sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

howto_composeA

Step-by-step guide for composing ERN 3.8.2 content (new release, vocal vs instrumental, redelivery, takedown, explicit/lyrics, preorder).

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesGuide id or free text: new-release-audio, vocal-vs-instrumental, redelivery, takedown, explicit-lyrics, preorder-deal

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the load. It does disclose the return nature (a step-by-step procedural guide), which tells the agent this is a retrieval-style read, but it says nothing about permissions, whether topics are case-sensitive, or behavior when a topic is unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with a compact parenthetical enumeration; no wasted framing. The list overlaps the schema description, costing a little signal but remaining efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-param, no-output-schema retrieval tool, the description is nearly sufficient: the agent knows it gets a step-by-step guide on a named topic. Minor gaps are the absence of fallback behavior for unrecognized topics and any pointer to list_howtos for discovery.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single param's description already lists the valid guide ids. The description's parenthetical topic list largely duplicates that, adding no new syntax or matching-rule detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (step-by-step guide for composing ERN 3.8.2 content) and enumerates the covered topics, so an agent knows what it retrieves. It does not, however, differentiate itself from the sibling list_howtos, so the reader must infer that this fetches one guide rather than enumerating them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: call it when you need a procedural guide identified by topic. There is no explicit when-to-use or when-not, and no mention of the obvious alternative list_howtos for discovering which guides exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_elementsB

List knowledge cards available via explain_element.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the cross-reference. It says nothing about return shape, ordering, pagination, or whether the list is static — notable gaps for even a simple listing tool. The only real behavior hint is that results feed into explain_element.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, and the key relationship to explain_element is placed immediately. It is efficient, though it is terse to the point of under-specification rather than optimally structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no output schema, the description should at minimum characterize what a returned 'knowledge card' is and in what form the list comes back; it does neither. For a zero-argument discovery tool the bar is low, but the entry is only minimally complete.

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?

The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. No parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('List') and ties the resource to a named sibling ('knowledge cards available via explain_element'), which does separate it from element_sequence or list_enums. However, 'knowledge cards' is unexplained jargon — an agent cannot tell from the text whether these are docs, schemas, or examples. The purpose is implied rather than stated in domain terms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The cross-reference to explain_element implies the discovery workflow (list first, then explain a chosen element), but no explicit when-to-use or when-not-to-use is given, and no alternative discovery tools are ruled out. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_enumsB

List curated enum sets (AVS subsets + package-practice values like DeliveryType).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. 'List' implies a read-only enumeration, but there is no mention of return format, pagination, or coverage/size of the curated sets. Beyond the implication of read-only listing, almost no behavioral context is given.

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?

A single front-loaded sentence with no waste; the parenthetical scope detail is compact and directly useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-param listing this is nearly adequate, but with no output schema the description should at least hint at what a curated enum set returns (names, values, groupings). The scope is named but the result shape is left entirely implicit.

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?

The tool takes zero parameters, so the 0-param baseline of 4 applies. There is no parameter surface that needs explaining.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (curated enum sets), and adds concrete scope detail via 'AVS subsets + package-practice values like DeliveryType'. However, it does not distinguish itself from the sibling avs_values, which plausibly overlaps in the enum/value domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no exclusions, and no reference to alternatives. With siblings like avs_values and list_sequences in the same namespace, the agent gets no signal on when list_enums is the right choice versus avs_values.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_howtosB

List available composition howto guides.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden, and it says nothing about side effects, whether the result is static or filtered, or what each entry contains. A read-only listing is low risk, which keeps this from being a 1, but the definition makes no behavioral statement at all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no waste. It is appropriately sized, though it is so terse that it leaves obvious gaps rather than suffering from verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should at least hint at what a 'howto guide' entry looks like and whether its identifiers feed into howto_compose. For a zero-parameter discovery tool this is minimally adequate but leaves the agent guessing about the follow-up step.

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?

The tool takes zero parameters, so there is nothing for the description to clarify beyond what the empty schema already communicates. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (composition howto guides), so the agent knows exactly what category of data it returns. However, it does nothing to distinguish itself from the sibling howto_compose, which the agent must choose between when looking for how-to guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of how this relates to howto_compose or the other list_* siblings. The agent must infer that this is the discovery step before composing something.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sequencesA

List all documented ERN 3.8.2 element sequences available via element_sequence.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden on its own. It usefully discloses the version scope (ERN 3.8.2) and the 'documented' qualifier, but says nothing about the return format, whether the list is static, or how the names map into element_sequence's input.

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?

A single front-loaded sentence with no filler; the resource scope and the consuming tool are both stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should ideally hint at what the returned sequence names look like or how to feed them to element_sequence. It is sufficient to call the tool correctly, but leaves the agent to discover the result shape empirically.

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?

The tool takes zero parameters, so the schema carries no semantics to document and the baseline of 4 applies. The description correctly implies a no-argument enumeration with no parameter-level detail needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and a precisely scoped resource ('documented ERN 3.8.2 element sequences'), which distinguishes it from list_enums and list_elements by naming the resource type. The reference to element_sequence clarifies the companion relationship, though it does not explicitly contrast itself with the sibling list_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'available via element_sequence' implies this is a discovery step preceding element_sequence calls, which gives the agent a usable context. However, there is no explicit when-to-use statement, no exclusions, and no guidance on choosing this over list_elements or list_enums.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ern_xmlB

Validate a finished DDEX ERN 3.8.2 NewReleaseMessage (smoke structure/order + full offline XSD). Pass xml string and/or path.

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlNoRaw ERN XML string
pathNoAbsolute or relative path to an .xml file
smoke_onlyNoIf true, skip full XSD and return smoke issues only

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that validation has two modes and that the XSD check is 'offline', but it says nothing about failure behavior, permissions, cost, or what a result contains. Partial disclosure, but significant gaps remain for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence: verb+resource first, then the mechanism, then the input hint. Zero padding, though the parenthetical is slightly dense for a one-line description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validation tool with no output schema and no annotations, the description should ideally hint at the return shape (valid/invalid plus issues) and the relationship to the full XSD result. It names the modes but leaves the outcome contract unstated, so an agent is left guessing what it receives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the meaning of xml, path, and smoke_only is already fully documented in the schema. The description adds only the 'and/or' hint about combining xml and path inputs, which is minor additional value over the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Validate a finished DDEX ERN 3.8.2 NewReleaseMessage'. The parenthetical clarifies the two validation layers (smoke structure/order + full offline XSD). It implicitly separates itself from validate_package_dir via 'Pass xml string and/or path', but never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'finished' implies the tool is meant for completed messages, and the smoke_only mention hints at a fast pre-check path before the full XSD run. However there is no explicit when-to-use statement and no named alternative, so the agent must infer the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_package_dirA

Validate a DDEX package directory: BatchComplete filled, relative URL, DeliveryType, MD5 of message file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the package directory containing BatchComplete

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does list concrete validation criteria, which is useful behavioral detail beyond a bare 'validate'. However, it omits whether the operation is read-only, what happens on failure, whether it throws or returns errors, and any side effects or output format.

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?

A single front-loaded sentence with a colon-separated list; every element earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should ideally explain return/error semantics for a validator. Inputs are fully clear and the checks are listed, but an agent cannot tell what a validation result looks like, which is a meaningful gap for this tool type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage for the single required 'path' parameter, so the baseline is 3. The description does not add syntax, format, or example detail beyond what the schema already provides.

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?

States a specific verb ('Validate') and resource ('DDEX package directory'), then enumerates the exact checks performed (BatchComplete, relative URL, DeliveryType, MD5). This clearly distinguishes it from the sibling validate_ern_xml, which validates a different artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what is validated but gives no guidance on when to choose this tool over alternatives like validate_ern_xml or the other sibling tools. It contains no when/when-not or prerequisite information; usage is only implied by the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.2
    • First observedavs_values
    • First observedelement_sequence
    • First observedexplain_element
    • First observedhowto_compose
    • First observedlist_elements
    • First observedlist_enums
    • First observedlist_howtos
    • First observedlist_sequences
    • First observedvalidate_ern_xml
    • First observedvalidate_package_dir

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation4/5

Tools pair up cleanly as list_X/get_X patterns (list_sequences vs element_sequence, list_enums vs avs_values, list_elements vs explain_element), and the two validators target distinct inputs (XML string vs package directory). Minor overlap exists between list_enums and avs_values since both concern enumerated values, but descriptions clarify the boundary.

Naming Consistency4/5

Most tools follow a verb_noun convention (validate_ern_xml, list_sequences, explain_element, howto_compose). A few deviate to bare noun phrases (element_sequence, avs_values), which is mildly inconsistent but still readable and predictable within each tool family.

Tool Count5/5

Ten tools is well-scoped for a validation-plus-reference server, with each tool earning a distinct role across validation, structural reference, and composition guidance. No redundant or filler tools.

Completeness4/5

Covers validation (XML and package), schema ordering, enums, and composition howtos/element explanations, forming a coherent lifecycle for authoring and checking ERN 3.8.2. There is no tool to retrieve the raw XSD or synthesize example/valid ERN content, which would round out the surface but isn't a blocking gap.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides lightweight documentation review tools including issue detection, readability scoring, style checking, and document summarization for integration with MCP-compatible clients.
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for ISO 20022 acmt.001 Account Opening (and companion acmt.* messages): message-type discovery, required-field lookup, JSON Schema introspection, IBAN/BIC/LEI validation, flat-record validation, and validated acmt XML generation.
    7
    373 PyPI
    1
    Apache 2.0