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-mcpClaude Desktop (local)
{
"mcpServers": {
"vastlint": {
"command": "vastlint-mcp"
}
}
}Cursor / Windsurf / VS Code (local)
{
"mcpServers": {
"vastlint": {
"type": "stdio",
"command": "vastlint-mcp",
"args": []
}
}
}Available tools
| Tool | What it does |
|---|---|
validate_vast | Validate a VAST XML string. Returns all issues with severity, rule ID, line number, and spec reference. |
validate_vast_url | Fetch a VAST tag from a URL and validate it. Follows wrapper chains up to the configured depth. |
list_rules | Return the full catalog of validation rules with IDs, severities, and descriptions. |
explain_rule | Get detailed guidance for a specific rule: description, spec reference, what triggers it, and how to fix it. |
fix_vast | Auto-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
- How to validate VAST XML
- Rules reference
- AdCP and VAST: agentic ad buying and video delivery
- Open the VAST XML validator →