Labsco
MCP SERVER

vastlint

by aleksUIX

Validate a VAST ad tag against the IAB spec and get back rule ids, XPath locations and a patched tag.

Marketing Automation & Advertising
Summary
Every answer carries the rule id and the place in the tag that failed.

That is what makes it usable inside a loop rather than as a linter you read: validate, look up the rule you tripped, apply the safe fixes, validate again — all from structured output. The docs are also clear about the boundary: the tools run the XML catalogue including the SIMID envelope, but they do not fetch the SIMID HTML or drive a session.

What it is

A Rust VAST XML validator with a native MCP server. It checks ad tags against the IAB Tech Lab VAST specification and answers in structured JSON — rule id, severity, the XPath of the offending node, and a spec reference.

What you get
  • `validate_vast` — raw XML in, an issues array out
  • `validate_vast_url` — fetch and validate a tag by URL, following wrapper chains to the configured depth
  • `inspect_vast` for a closer look at what a tag contains
  • `list_rules` — all 232 rule ids with severities and descriptions; static, so cache it
  • `explain_rule` — the full detail, spec reference and fix guidance for one rule id
  • `fix_vast` — applies the deterministic safe fixes (HTTP to HTTPS including SIMID, SIMID apiFramework/type/variableDuration, deprecated attribute removal) and returns the patched XML plus a diff of what changed
Requirements

Nothing to install for the hosted route: point any SSE-capable client at `https://vastlint.org/mcp`. For an air-gapped or low-latency setup, `cargo install vastlint-mcp` and run `vastlint-mcp` over stdio — same tools, same JSON schema, no network round trips.

Setup effort

One command — cargo install vastlint-mcp