GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Validate VAST, VMAP, and DAAST ad tags against IAB specs. 246 rules, pure Rust core.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://vastlint.org/mcpDownload the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
claude mcp add --transport sse vastlint https://vastlint.org/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"vastlint": {
"url": "https://vastlint.org/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"vastlint": {
"type": "sse",
"url": "https://vastlint.org/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://vastlint.org/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account aleksUIX, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 80 ms (HTTP 200)
No sign-in needed
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.16.2) reached the registry 12 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Created by Aleksander Sekowski.
This repository contains the validation engine, CLI, bindings and gRPC reference server. Chrome and IDE extensions, MCP applications and frontend runtime packages are maintained separately in vastlint-tools.
Website & web validator: VAST tag validator Paste a VAST tag and get results in your browser, no install required.
A high-performance VAST XML validator built on a pure-Rust core. Checks ad tags against the IAB Tech Lab VAST specification so you don't have to read it. Over $30 billion in annual CTV and video ad spend flows through VAST XML, and malformed tags are one of the most common causes of lost impressions, broken tracking, and revenue discrepancies between platforms. There is no widely adopted open-source tool that validates VAST XML against the full IAB specification across all published versions.
The VASTlint tools repository ships a native MCP server, making VAST validation available as a callable tool from Claude, Cursor, the AAMP Buyer Agent SDK, or any MCP-compatible client. Connect to vastlint.org/mcp and call validate_vast, validate_vast_url, inspect_vast, list_rules, explain_rule, or fix_vast. Each tool returns structured JSON with rule IDs, XPath locations, and spec references.
Bindings for realtime ad pipelines: vastlint-go (embedded WebAssembly by default, optional native cgo engine), vastlint-java (gRPC client for JVM ad servers), vastlint-erlang (Elixir/Erlang DirtyCpu NIF), and a WASM npm package for Node.js and browsers. All bindings use the same Rust validation core. The CLI daemon also supports OTP port integrations.
Need a copy-paste frontend starting point? See the React drop-in example in the tools examples.
Validates VAST documents against:
and nonlinear (the IAB-sanctioned VPAID replacement). Creative fetch, frame headers, and the postMessage handshake live in the VAST tester, not in vastlint-core or default check. — vendor format, duplicate vendor detection, OMID resource semantics, verification tracking validation, and pre-4.1 extension-carried compatibility blocks246 rules across required fields, schema validation, structural correctness, security, consistency, deprecated features, ambiguous usage, value formats, SIMID validation, OMID validation, VMAP 1.0, and DAAST 1.0. Rules marked with $ have direct revenue impact - use vastlint check --fail-on-warning in CI to catch them before they reach production. See common errors for the ones that cost real money. New to VASTlint? Start with the tutorial.
The CTV Addendum 2024 is supported across its legacy extension encodings, SIMID creative extensions on 4.x, and Icon regs. Supplied payloads are validated by default.
Full rule reference with examples and fix instructions: VAST error rule reference · RULES.md
How rules are derived: Rule derivation methodology · METHODOLOGY.md
For adjacent checks, RTBlint validates OpenRTB bid requests and responses. Pixellint validates pixels, postbacks, tracking URLs, and conversion API payloads.
Zero runtime dependencies in the core. vastlint-core has three compile-time dependencies (quick-xml, url, phf) and no runtime dependencies whatsoever — no async runtime, no regex engine, no schema interpreter. Rules are compiled Rust functions. There is no transitive dependency graph to audit, no CVE surface to track, and no supply chain to compromise at runtime.
Verifiable build provenance. All release artifacts are signed with SLSA Build Level 2 provenance via GitHub's native attestation store. Every binary, library, .vsix, and npm package can be verified cryptographically against the exact source commit that produced it. No developer machine is ever involved in producing release artifacts. SLSA L3 (hermetic, isolated signing) is in progress.
No data retention by default — and full self-hosting available. The VS Code extension and Chrome page-scan path process XML locally. Pasting a tag in the Chrome popup opens the hosted tester; that path follows the website policy. The CLI does not send tags unless you pass --contribute-sample. The hosted tester, inspector, validator, and MCP server at vastlint.org/mcp may store a redacted copy of tags you submit, so the rules can be improved; see vastlint.org/privacy. Local vastlint-mcp over stdio does not send tags. The RapidAPI /validate API and the gRPC sidecar still validate ephemerally. See Telemetry and sample contribution and PRIVACY.md for the Chrome extension policy.
For teams that require on-premise processing or air-gapped deployments, VASTlint runs entirely self-hosted: the CLI image (FROM scratch), the vastlint-grpc sidecar (aleksuix/vastlint-grpc:0.16.0), or the pre-built static musl binary. The Rust core has no network code: no callbacks, no telemetry, no license checks. The sidecar exposes partner tallies on /metrics (port 9090); scrape them yourself.
Apache 2.0 licensed. No CLA, no dual-license commercial upsell, no usage-based restrictions. Fork it, vendor it, embed it, redistribute it.
Dependency update automation. Dependabot monitors Cargo, npm, and GitHub Actions dependencies weekly and opens PRs automatically. Combined with cargo audit on every CI push and CodeQL static analysis on every push and PR, the dependency surface stays current without manual tracking.
Auditable. OpenSSF Scorecard runs weekly and publishes a public score. CII Best Practices badge covers vulnerability reporting, CI, fuzzing, and code review requirements. The Security Advisory channel provides a private disclosure path with a 48-hour acknowledgement SLA.
Fuzz-tested continuously. Three libFuzzer targets run on every CI push against the core validator and auto-fix engine. See the Fuzzing section below.
Benchmarked on Apple M4 (10-core), production-realistic VAST tags (17–44 KB):
| Metric | 17 KB tag | 44 KB tag |
|---|---|---|
| Single-thread throughput | 2,747 tags/sec | 475 tags/sec |
| Single-thread latency | 363 µs | 2,104 µs |
| 10-core throughput | 15,760 tags/sec | 2,635 tags/sec |
A typical OpenRTB bid cycle takes 100–300 ms; validation adds less than 2.1% of that budget even on the heaviest tags. An SSAI pipeline doing 1,000 stitches/sec spends more time on DNS than on validating the VAST response.
No async runtime, no regex engine, no schema interpreter. Rules are compiled Rust functions. Three dependencies: quick-xml, url, and phf (compile-time hash maps).
cargo install vastlint
CLI crate on crates.io: crates.io/crates/vastlint
Or download a pre-built binary from the releases page.
Pull the image from Docker Hub:
docker pull aleksuix/vastlint
Validate a file:
docker run --rm -v "$(pwd)":/data aleksuix/vastlint check /data/tag.xml
Pipe from stdin:
cat tag.xml | docker run --rm -i aleksuix/vastlint check -
JSON output:
docker run --rm -v "$(pwd)":/data aleksuix/vastlint check /data/tag.xml --format json
Validate a whole directory:
docker run --rm -v "$(pwd)/tags":/data aleksuix/vastlint check /data/*.xml
The image is built FROM scratch - a fully-static musl binary with no OS layer. Compressed size is under 5 MB. Cold-start to first result is under 10 ms.
# validate a file
vastlint check tag.xml
vastlint check *.xml
cat tag.xml | vastlint check -
vastlint check tag.xml --format json
vastlint check tag.xml --no-color
vastlint check tag.xml --no-fail
vastlint check tag.xml --telemetry
vastlint check tag.xml --vast-version 4.2
Only the beginning is shown; read the rest in the repo