vastlint

vastlint MCP server

vastlint ships a Model Context Protocol (MCP) server so any MCP-compatible AI agent or LLM pipeline can call VAST validation as a native tool. No copy-pasting XML, no REST wiring. Ask Claude to "validate this VAST tag" and it calls vastlint directly.

The server exposes five tools: validate_vast, validate_vast_url, list_rules, explain_rule, and fix_vast. All rules run in the same Rust core used by the CLI and web validator.

Option 1: Hosted endpoint (no install)

A free SSE endpoint is live at https://vastlint.org/mcp. Add it to your client config and you're done. No binary to install, no process to manage.

Claude Desktop

Open Claude → Settings → Developer → Edit Config (claude_desktop_config.json) and add:

{
  "mcpServers": {
    "vastlint": {
      "type": "sse",
      "url": "https://vastlint.org/mcp"
    }
  }
}

Restart Claude Desktop. You should see vastlint in the tools panel (hammer icon).

Cursor

Open Cursor → Settings → MCP (or edit ~/.cursor/mcp.json):

{
  "mcpServers": {
    "vastlint": {
      "type": "sse",
      "url": "https://vastlint.org/mcp"
    }
  }
}

Windsurf

Open Windsurf → Cascade → Configure MCP (or edit ~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "vastlint": {
      "type": "sse",
      "url": "https://vastlint.org/mcp"
    }
  }
}

VS Code (GitHub Copilot Agent Mode)

Add to your workspace .vscode/mcp.json:

{
  "servers": {
    "vastlint": {
      "type": "sse",
      "url": "https://vastlint.org/mcp"
    }
  }
}

Any other MCP client

Use the SSE transport URL https://vastlint.org/mcp in whatever config format your client expects. The endpoint follows the MCP 2025-03-26 SSE transport spec.

Option 2: Local binary (stdio)

Run the MCP server as a local subprocess if you prefer no external network calls, or if your client doesn't support SSE transport.

Install

# Homebrew (macOS / Linux)
brew install aleksUIX/tap/vastlint

# Cargo
cargo install vastlint-mcp

Claude Desktop (local)

{
  "mcpServers": {
    "vastlint": {
      "command": "vastlint-mcp"
    }
  }
}

Cursor / Windsurf / VS Code (local)

{
  "mcpServers": {
    "vastlint": {
      "type": "stdio",
      "command": "vastlint-mcp",
      "args": []
    }
  }
}

Available tools

ToolWhat it does
validate_vastValidate a VAST XML string. Returns all issues with severity, rule ID, line number, and spec reference.
validate_vast_urlFetch a VAST tag from a URL and validate it. Follows wrapper chains up to the configured depth.
list_rulesReturn the full catalog of validation rules with IDs, severities, and descriptions.
explain_ruleGet detailed guidance for a specific rule: description, spec reference, what triggers it, and how to fix it.
fix_vastAuto-fix a VAST tag. Upgrades HTTP URLs to HTTPS and removes deprecated attributes. Returns the repaired XML and a list of applied fixes.

Example prompts

Once connected, you can ask your AI assistant naturally:

  • "Validate this VAST tag and tell me what's wrong."
  • "Fix the HTTPS issues in my VAST XML."
  • "Fetch https://example.com/vast.xml and validate it."
  • "Explain rule VAST-2.0-impression-missing."
  • "List all VAST validation rules related to duration."

Source & registry

The MCP server is open-source. Registry listings on registry.modelcontextprotocol.io and smithery.ai are in progress. Search for vastlint once indexed.

Next steps

Further reading