ddex-ern-382-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ddex-ern-382-mcpvalidate this ERN 3.8.2 XML and flag any element order issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 startFor development, npm run dev runs the TypeScript entrypoint directly.
Related MCP server: docscanner-mcp
MCP tools
Tool | Purpose |
| Smoke checks and full offline XSD validation of XML text or a file |
| Check BatchComplete, relative URL, DeliveryType, and the message MD5 |
| Explain an element, attribute, or DDEX package concept |
| Show documented child order for an ERN container |
| Discover available knowledge |
| Look up values from the vendored AVS schema or curated sets |
| Step-by-step guidance for common ERN scenarios |
MCP resources
Markdown guides are available under ddex-ern-382://guides/:
ern-382-overviewrdbt-ordersdbt-orderbatchcompletecommon-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 buildSchema 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.
Links
Available Tools
10 toolsavs_valuesC
Return allowed values for an AVS simpleType (from vendored avs.xsd) or a curated enum id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | AVS type or curated id, e.g. ParentalWarningType, ArtistRole, DeliveryType | |
| limit | No | ||
| query | No | Optional search across AVS type names / values when exact name is unknown |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| parent | Yes | Parent element name, e.g. ReleaseDetailsByTerritory, SoundRecordingDetailsByTerritory, DealTerms |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Element/attribute name, e.g. ReleaseDetailsByTerritory, ICPN, FileURL |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Guide id or free text: new-release-audio, vocal-vs-instrumental, redelivery, takedown, explicit-lyrics, preorder-deal |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| xml | No | Raw ERN XML string | |
| path | No | Absolute or relative path to an .xml file | |
| smoke_only | No | If true, skip full XSD and return smoke issues only |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the package directory containing BatchComplete |
TDQS
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.
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.
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.
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.
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.
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.
10 tool updates
v0.1.2- First observed
avs_values - First observed
element_sequence - First observed
explain_element - First observed
howto_compose - First observed
list_elements - First observed
list_enums - First observed
list_howtos - First observed
list_sequences - First observed
validate_ern_xml - First observed
validate_package_dir
TDQS
Scored across 10 tools
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.
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.
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.
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
Check a catalogue against The MLC, look up a song's writers, publishers and ISWC, validate CWR files
MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol
Evidence-readiness MCP server: validate, audit, and score briefs, memos, and evidence packs.
Version-true web3 docs, ABIs and human-validated integration recipes over MCP.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables users to validate MCP servers, skills, extensions, and packages for schema, security, functional, and semantic quality directly from their MCP client.-
- FlicenseNot gradedqualityDmaintenanceProvides lightweight documentation review tools including issue detection, readability scoring, style checking, and document summarization for integration with MCP-compatible clients.-
- AlicenseAqualityAmaintenanceMCP 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.7373 PyPI1Apache 2.0
- AlicenseAqualityDmaintenanceMCP server for parsing, validating, building and explaining FIX protocol trading messages — offline, no API keys.4MIT