Smithery's MCP Proxy and managed identity shut down on October 31. See what's changing

SmitherySign up for Arcade

vastlint - IAB XML VAST validator and linter

aleksander/vastlint · vastlint.org

VAST XML validation MCP server for programmatic video advertising. Over $30 billion in annual CTV and video ad spend flows through VAST XML — malformed tags cause lost impressions, broken tracking, and revenue discrepancies between platforms.

Validates VAST tags against IAB Tech Lab VAST 2.0, 3.0, 4.0, 4.1, 4.2, and 4.3 specifications, W3C XML 1.0 well-formedness, RFC 3986 URI syntax, IANA media types, ISO 4217 currency codes, Ad-ID registry format, and IAB SIMID 1.0–1.2. 118 rules covering required fields, schema validation, structural correctness, security, deprecated features, and value formats.

Tools: validate_vast (validate inline XML), validate_vast_url (fetch and validate a VAST URL, following wrapper chains), list_rules (browse all 118 rules), explain_rule (get fix guidance for a specific rule), fix_vast (auto-fix common issues).

Built on a zero-dependency Rust core. Sub-millisecond latency. No data retention — VAST XML is validated ephemerally and never stored. Self-hostable via Docker or cargo. Apache 2.0 licensed.

Tools13

Last checked October 15, 2026

  • validate_vast

    Validate a VAST XML tag against the IAB VAST 2.0-4.3 specification. Returns all issues found with severity, rule ID, location, and spec reference. A document is valid when errors == 0, regardless of warning or info count. Use wrapper_depth when validating a document inside a wrapper chain.

  • validate_vast_url

    Fetch a VAST tag from a URL and validate it. Handles redirects. Use max_depth to control how deep wrapper chains are followed (default 5, per IAB VAST 4.x recommendation). AI agents typically receive VAST URLs rather than raw XML -- use this tool for that case.

  • list_rules

    List the full catalog of VAST validation rules available in vastlint. Returns rule IDs, default severities, and descriptions. Call this once and cache the result -- the catalog is static. Use rule IDs from this list with explain_rule for full details and fix guidance.

  • explain_rule

    Get full details for a specific VAST validation rule: description, spec reference, severity, what triggers it, and how to fix it. Use rule IDs from list_rules. This is the primary tool for understanding and fixing VAST issues flagged by validate_vast.

  • fix_vast

    Auto-fix a VAST XML tag. Applies all deterministic, safe fixes: HTTP → HTTPS upgrades in all URL-bearing elements, and removal of deprecated attributes. Returns the repaired XML, a list of every fix applied (rule ID + description + path), and any remaining issues that require manual intervention. Always re-validate the returned xml with validate_vast to confirm no errors remain.

  • get_adcp_capabilities

    AdCP protocol discovery. Returns the AdCP version, supported protocols, and governance capabilities of this vastlint agent. Call this first when integrating vastlint into an AdCP creative pipeline — it declares which VAST creative features can be evaluated (spec compliance, HTTPS enforcement, wrapper depth). Part of the Ad Context Protocol (AdCP 3.0) specification.

  • list_content_standards

    AdCP content-standards specialism. Lists content governance standards. When called with an 'account' object, returns buyer-defined standards stored for that brand. Without an account, returns the built-in catalog of VAST-relevant standards. Supports cursor-based pagination via the 'pagination' object. Requires Bearer authentication: Authorization: Bearer <api_key.

  • create_content_standards

    AdCP content-standards specialism. Creates a new set of content quality policies for a brand. Policies include brand safety rules, imagery quality requirements, and compliance constraints. Returns a standards_id that can be used with calibrate_content and validate_content_delivery. Requires Bearer authentication.

  • get_content_standards

    AdCP content-standards specialism. Retrieves the full details of a specific content standard, including all policies and their enforcement levels. Requires Bearer authentication.

  • update_content_standards

    AdCP content-standards specialism. Updates the policies on an existing content standard set. The supplied policies array replaces the existing policy set. Requires Bearer authentication.

  • calibrate_content

    AdCP content-standards specialism. Evaluates a creative artifact against a content standard set before delivery. Returns a per-policy verdict and an overall pass/fail result. Use this as a pre-flight check before launching a campaign. Requires Bearer authentication.

  • validate_content_delivery

    AdCP content-standards specialism. Validates that delivered creatives met the content standards. Accepts delivery records with creative references and returns per-record compliance status plus an overall summary. Requires Bearer authentication.

  • list_creatives

    AdCP creative governance. Lists creatives known to this agent. For a validation-only agent like vastlint, this always returns an empty collection — creatives are validated on demand via validate_vast rather than stored. Requires Bearer authentication.