Skip to main content
ClaudeWave
ES, Spanish
aleksUIX / MCP Servers · Registry oficial

pixellint

Conversion API and tracking pixel validator. Lint Meta CAPI JSON, Facebook pixel URLs, and vendor contracts. CLI, npm, MCP.

  • 1 estrellas
  • 0 forks
  • 0 issues abiertos
  • Lenguaje: Rust
  • Licencia: Apache-2.0
  • actualizado

Instalación

Claude Code CLI
git clone https://github.com/aleksUIX/pixellint
  1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
  2. Replace any <placeholder> values with your API keys or paths.
  3. Restart Claude. The MCP server and its tools appear automatically.

Install the binary first: cargo install pixellint (or build from https://github.com/aleksUIX/pixellint).

README

Resumen de MCP Servers

README completo en GitHub

Pixellint

Rust crates.io npm docs.rs license

Pixellint is a spec-first validator for pixels, postbacks, conversion API payloads, and other measurement artifacts. It runs in a terminal, in CI, and in agents, and every finding carries a stable id, a severity, an evidence level, and the document it came from.

Broken pixels cost attribution, QA time, and campaign money. The tooling that exists is fragmented: vendor-specific helpers, enterprise tag auditors, and schema linters that know nothing about ad tech. Pixellint is the open validation layer underneath all of that.

$ pixellint validate url 'https://www.facebook.com/tr?ev=Purchse&em=buyer@example.com'
rulepack: core
  ok
rulepack: vendor/meta (vendor: meta)
  error   vendor.meta.param.id.missing   `id` is required on Meta Pixel requests but is not present. It is the numeric Pixel ID from Events Manager.
    fix: Set `id` to the numeric Pixel ID shown in Events Manager.
    docs: https://developers.facebook.com/docs/meta-pixel/get-started
  warning vendor.meta.param.ev.invalid   `ev` is `Purchse`, which is not one of the documented values: PageView, AddPaymentInfo, ...
    fix: Use a standard event name, or confirm the custom event is registered in Events Manager.
    docs: https://developers.facebook.com/docs/meta-pixel/reference
  error   vendor.meta.pii.unhashed_email A parameter carries what looks like a raw email address. Meta requires customer information to be normalized and SHA-256 hashed before it is sent.
    fix: Normalize the value, hash it with SHA-256, and send the hex digest instead of the plain address.
    docs: https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching

2 error(s), 1 warning(s), 0 info message(s) across 2 rulepack(s).

Server-side events are checked in the body, one event at a time:

$ pixellint validate json '{"data":[{"event_name":"Purchase","event_time":1770000000000,
    "action_source":"website","user_data":{"em":"buyer@example.com"}}]}'
rulepack: vendor/meta-conversions-api (vendor: meta)
  error   vendor.meta-conversions-api.body.event_time.invalid `event_time` must be at most 10 digits, but `1770000000000` has 13. Meta documents it as a Unix timestamp in seconds...
    fix: Send seconds, not milliseconds: divide a JavaScript `Date.now()` by 1000 and floor it.
  error   vendor.meta-conversions-api.body.purchase_requires_value_and_currency A `Purchase` event is missing `custom_data.value` or `custom_data.currency`.
  error   vendor.meta-conversions-api.body.website_requires_source_url The event is marked `action_source: website` but carries no `event_source_url`.

Install

cargo install pixellint          # CLI
cargo install pixellint-mcp      # MCP server
npm install pixellint            # library, WASM-backed

Or paste a URL into the playground at pixellint.org, which runs the same engine in your browser. Artifacts you test may be stored; see privacy. Vendor contracts are at pixellint.org/packs/. Guides for pixels, conversion APIs, and consent are at pixellint.org/docs/.

Start with the contracts people actually hit:

Use it

QA

Validate an inline artifact, a file with @path, or stdin with -:

pixellint validate url 'https://px.ads.linkedin.com/collect?pid=123456&fmt=gif'
pixellint validate postback @conversion-endpoint.txt --json
printf '%s\n' 'https://example.com/tracking?cb=[CACHEBUSTING]' | pixellint validate vast - --state template

Callers that already extracted many URLs (Vastlint, an HTML adapter) pass them as a document. Identical values validate once:

pixellint validate-many @extracted.json --json

Callers that know which artifacts belong to each ad session can supply explicit groups with original zero-based row indexes:

pixellint validate-sessions @sessions.json --json

The initial IAS UVP profile checks external-ID consistency within each group and uniqueness across groups. Its report preserves ordinary document findings and adds relationship coverage, original spans and provenance. See docs/SESSION_SCHEMA.md for grouping, typed skips and local resource limits.

extracted.json is the wrapper in docs/MULTI_ARTIFACT_SCHEMA.md, or a JSON array of URL strings. Pixellint does not parse VAST, HTML, or GTM.

vast means one tracking URL extracted from VAST, not a VAST XML document. It enables the IAB VAST macro-name checks on that URL.

Use request for a complete HTTP capture. It links endpoint, method, headers, query fields and body so the destination's transport and payload rules run together:

pixellint validate request @captured-request.json --json

The capture has string url and method, a headers object or list of { "name": "...", "value": "..." } entries. Use an optional raw string body for text, or body_base64 for captured binary bytes. The shared engine decodes identity and gzip entities within explicit local limits. See docs/HTTP_REQUEST_SCHEMA.md for examples and validation limits. A bare URL passed as request keeps its existing behavior.

If the artifact is still a template with unexpanded macros, say so, and macro rules adjust:

pixellint validate url 'https://example.com/pixel?cb=[CACHEBUSTING]' --state template
CI

pixellint validate exits 0 when the artifact is clean or only produced warnings, 1 when any error-severity finding is present, and 2 on a usage or input problem.

- uses: aleksUIX/pixellint@v0.31.12
  with:
    path: fixtures/conversion-pixel.txt
    kind: url

version selects the CLI release (auto follows the action's own v* tag). Linux and macOS runners, x86_64 and aarch64. The Action downloads a prebuilt tarball from GitHub Releases.

Or install the CLI:

- name: Validate tracking artifacts
  run: |
    cargo install pixellint
    pixellint validate url @fixtures/conversion-pixel.txt
Agents
cargo install pixellint-mcp

pixellint-mcp speaks MCP over stdio and exposes three tools. It does not send artifacts; there is no hosted MCP on pixellint.org. Playground artifacts on pixellint.org may be stored; see pixellint.org/privacy.

  • MCP Registry name: mcp-name: io.github.aleksUIX/pixellint

  • list_rulepacks

  • list_vendors, optionally filtered by category or attributing a single host

  • validate_artifact, taking artifact_kind, artifact, and optional claimed_vendor, expansion_state, rulepacks, except_rulepacks

Responses include the structured findings, the detected vendors, and a severity summary, so an agent can act on the result without parsing prose.

Node

The npm wrapper requires Node.js 18 or newer. Its ESM entry uses node:module to load the Node-target WASM build. For a browser integration, build pixellint-wasm for a browser target and supply a browser loader, as the playground does.

import { validate, isOk } from "pixellint";

const summary = validate("https://www.facebook.com/tr?ev=Purchase");
isOk(summary); // false, the pixel id is missing
Library
use pixellint_core::{ArtifactKind, Engine, ExpansionState, ValidationOptions, ValidationRequest};

let engine = Engine::default();
let request = ValidationRequest {
    artifact_kind: ArtifactKind::Url,
    artifact: "https://www.facebook.com/tr?id=1234567890123456&ev=PageView".to_string(),
    claimed_vendor: None,
    expansion_state: ExpansionState::Unknown,
};

let summary = engine.validate(&request, &ValidationOptions::default())?;
assert!(summary.is_ok());

Rulepacks

core runs on every URL-like artifact. Vendor packs run only when the artifact targets their endpoints, so you get vendor checks without asking for them, and nothing fires on an endpoint it does not understand. A conversion API body has no endpoint to go by, so those packs claim it by the shape of the payload.

The table shows selected built-in packs. Run pixellint list-rulepacks --json for the complete inventory in your installed build.

RulepackCoversEvidence
coreURL validity, transport, credentials, fragments, ad-tech macro handling, IAB consent signalsnormative
vendor/metafacebook.com/tr pixel requestsofficial vendor
vendor/meta-conversions-apiGraph API events edge, URL and JSON event payloadofficial vendor
vendor/google-analyticsGA4 Measurement Protocol, URL and JSON event payloadofficial vendor
vendor/google-analytics-collectThe /g/collect transport the Google tag uses in the browserecosystem reference
Topics
adtechcapiconversion-apifacebook-pixelgtmlintermarketing-analyticsmcppixelrusttrackingvalidator
Preguntas frecuentes

Lo que la gente pregunta sobre pixellint

¿Qué es aleksUIX/pixellint?

aleksUIX/pixellint es mcp servers para el ecosistema de Claude AI. Conversion API and tracking pixel validator. Lint Meta CAPI JSON, Facebook pixel URLs, and vendor contracts. CLI, npm, MCP. Tiene 1 estrellas en GitHub y su última actualización registrada es del 2026-10-21.

¿Cómo se instala pixellint?

Puedes instalar pixellint clonando el repositorio (https://github.com/aleksUIX/pixellint) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar aleksUIX/pixellint?

Nuestro agente de seguridad ha analizado aleksUIX/pixellint y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene aleksUIX/pixellint?

aleksUIX/pixellint es mantenido por aleksUIX. La última actividad registrada en GitHub es del 2026-10-21, con 0 issues abiertos.

¿Hay alternativas a pixellint?

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Web del proyecto
https://pixellint.org