mcpField
P
Pixellint

Pixellint

ローカル
github.com/aleksUIXビジネス・マーケティング12 日前に更新

Pixellint について

Pixellintは広告計測データ向けの仕様ベース検証ツールで、QA、CI、エージェントに適しています。各指摘に重大度、根拠レベル、安定したID、出典文書が付与されます。

主な機能

  1. 01ピクセル、ポストバック、トラッキングURLの検証
  2. 02コンバージョンAPIペイロードの確認
  3. 03コアおよびベンダールールパックの適用
  4. 04指摘と修正案の構造化出力

活用シーン

  1. 01公開前のトラッキングURL確認
  2. 02CIでのコンバージョンイベント検証
  3. 03エージェントへの実行可能な検証結果提供

MCP 対応

MCPサーバーはstdioで動作し、ルールパック、ベンダーの一覧表示とアーティファクト検証のツールを提供します。結果には構造化された指摘、検出ベンダー、重大度の概要が含まれます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
cargopixellint-mcp0.59.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Pixellint

Rust crates.io npm docs.rs license

Pixellint は、ピクセル、ポストバック、コンバージョン API のペイロード、その他の計測関連データを仕様優先で検証するツールです。ターミナル、CI、エージェントで実行でき、検出結果にはそれぞれ安定した ID、重大度、証拠レベル、およびその結果の取得元ドキュメントが含まれます。

ピクセルの不具合は、アトリビューション、QA の時間、キャンペーン費用の損失につながります。既存のツールは、ベンダー固有のヘルパー、エンタープライズ向けのタグ監査ツール、広告テクノロジーを把握していないスキーマリンターに分断されています。Pixellint は、それらすべてを支えるオープンな検証レイヤーです。

$ pixellint validate url 'https://www.facebook.com/tr?ev=Purchse&[email protected]'
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).

サーバーサイドイベントは、本文内でイベントごとに検証されます。

$ pixellint validate json '{"data":[{"event_name":"Purchase","event_time":1770000000000,
    "action_source":"website","user_data":{"em":"[email protected]"}}]}'
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`.

インストール

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

または、pixellint.org のプレイグラウンドに URL を貼り付けると、同じエンジンをブラウザーで実行できます。テストしたデータは保存される場合があります。プライバシーをご確認ください。ベンダーの契約仕様はpixellint.org/packs/にあります。ピクセル、コンバージョン API、同意に関するガイドはpixellint.org/docs/をご覧ください。

実際に利用されている仕様から始めましょう。

使い方

QA

インラインデータ、@path で指定したファイル、または - で指定した標準入力を検証します。

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

多数の URL をすでに抽出している呼び出し元(Vastlint、HTML アダプターなど)は、それらをドキュメントとして渡します。同一の値は一度だけ検証されます。

pixellint validate-many @extracted.json --json

各広告セッションに属するデータを把握している呼び出し元は、元の 0 始まりの行インデックスを使って、明示的なグループを指定できます。

pixellint validate-sessions @sessions.json --json

初期の IAS UVP プロファイルは、各グループ内で外部 ID の整合性を、グループ間で一意性を検証します。そのレポートには、通常のドキュメント検出結果に加えて、関連性のカバレッジ、元のスパン、来歴が含まれます。グループ化、型付きスキップ、ローカルのリソース制限についてはdocs/SESSION_SCHEMA.mdをご覧ください。

extracted.json はdocs/MULTI_ARTIFACT_SCHEMA.mdに記載されたラッパー、または URL 文字列の JSON 配列です。Pixellint は VAST、HTML、GTM を解析しません。

vast は VAST から抽出された単一のトラッキング URL を意味し、VAST XML ドキュメントを指すものではありません。この指定により、その URL に IAB VAST のマクロ名チェックが適用されます。

完全な HTTP キャプチャには request を使用します。エンドポイント、メソッド、ヘッダー、クエリフィールド、本文を関連付けて、送信先の通信方式とペイロードのルールをまとめて適用できます。

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

キャプチャには、文字列の url と method、および { "name": "...", "value": "..." } エントリーのオブジェクトまたはリストである headers を指定します。テキストには任意の生文字列 body を、キャプチャしたバイナリバイトには body_base64 を使用します。共有エンジンは、明示的に定められたローカル制限の範囲内で、identity と gzip のエンティティをデコードします。例と検証制限についてはdocs/HTTP_REQUEST_SCHEMA.mdをご覧ください。request として渡された URL のみの入力は、従来どおり動作します。

データがまだマクロ未展開のテンプレートである場合は、その旨を指定すると、マクロのルールが調整されます。

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

pixellint validate は、アーティファクトに問題がない場合、または警告のみが出力された場合は 0、エラー重大度の検出結果が1件でもある場合は 1、使用方法または入力に問題がある場合は 2 を終了コードとして返します。

- uses: aleksUIX/[email protected]
  with:
    path: fixtures/conversion-pixel.txt
    kind: url

version は CLI のリリースを選択します(auto はアクション自身の v* タグに従います)。 Linux と macOS のランナーに対応し、アーキテクチャは x86_64 と aarch64 です。Action は GitHub Releases からビルド済みの tarball をダウンロードします。

または、CLI をインストールします。

- name: Validate tracking artifacts
  run: |
    cargo install pixellint
    pixellint validate url @fixtures/conversion-pixel.txt
エージェント
cargo install pixellint-mcp

pixellint-mcp は stdio 経由で MCP を使用し、3つのツールを公開します。アーティファクトは送信されません。また、pixellint.org にホスト型の MCP はありません。pixellint.org のプレイグラウンドのアーティファクトは保存される場合があります。詳しくは pixellint.org/privacy をご覧ください。

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

  • list_rulepacks

  • list_vendors。category でフィルタリングするか、単一の host を指定できます。

  • validate_artifact。artifact_kind、artifact、および省略可能な claimed_vendor、expansion_state、rulepacks、except_rulepacks を受け取ります。

応答には構造化された検出結果、検出されたベンダー、重大度の概要が含まれるため、エージェントは文章を解析せずに結果に応じた処理を行えます。

Node

npm ラッパーには Node.js 18 以降が必要です。ESM エントリーポイントは node:module を使用して、Node 向けの WASM ビルドを読み込みます。ブラウザーに統合する場合は、プレイグラウンドと同様に、pixellint-wasm をブラウザー向けにビルドし、ブラウザーローダーを指定してください。

import { validate, isOk } from "pixellint";

const summary = validate("https://www.facebook.com/tr?ev=Purchase");
isOk(summary); // false, the pixel id is missing
ライブラリ
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());

ルールパック

core は URL のようなすべてのアーティファクトで実行されます。ベンダーパックは、アーティファクトが対象のエンドポイントを指す場合にのみ実行されるため、指定しなくてもベンダー固有のチェックが行われ、認識できないエンドポイントではチェックは実行されません。変換 API の本文には参照できるエンドポイントがないため、ペイロードの形状に基づいて各パックが対象かどうかを判断します。

表には、組み込みパックの一部を示しています。インストール済みビルドの完全な一覧を表示するには、pixellint list-rulepacks --json を実行してください。

Rulepack対象範囲根拠
coreURL の有効性、トランスポート、認証情報、フラグメント、アドテクマクロの処理、IAB 同意シグナル規範仕様
vendor/metafacebook.com/tr ピクセルリクエストベンダー公式
vendor/meta-conversions-apiGraph API events エッジ、URL および JSON イベントペイロードベンダー公式
vendor/google-analyticsGA4 Measurement Protocol、URL および JSON イベントペイロードベンダー公式
vendor/google-analytics-collectブラウザーで Google tag が使用する /g/collect トランスポートエコシステムの参考資料
vendor/google-tag-managergtm.js、gtag/js、ns.html のローダーリクエストベンダー公式
vendor/google-ads-conversionGoogle Ads のコンバージョンおよびビュースルーピクセルベンダー公式
vendor/google-ads-click-conversionsGoogle Ads UploadClickConversions JSONベンダー公式
vendor/floodlightCampaign Manager Floodlight アクティビティタグベンダー公式
vendor/cm360-tracking-adCM360 トラッキング広告、dc_trk_aid および dc_trk_cidベンダー公式
vendor/cm360-vast-eventCM360 VAST イベントピクセル、googlesyndication 上の dc_oeエコシステムの参考資料
vendor/google-ad-managerAd Manager /gampad/ads、iu sz output env gdfp_req correlatorベンダー公式
vendor/adobe-analyticsAdobe Analytics データ収集ビーコンベンダー公式
vendor/pinterestPinterest タグリクエストおよび noscript フォールバックベンダー公式
vendor/pinterest-conversions-apiConversions API イベント、URL および JSON イベントペイロードベンダー公式
vendor/snapchatSnap Conversions API v3、URL および JSON イベントペイロードベンダー公式
vendor/tiktokTikTok Pixel ローダー events.js?sdkid=エコシステムの参考資料
vendor/tiktok-events-apiEvents API のピクセルトラックおよびバッチ、URL および JSON イベントペイロードベンダー公式
vendor/linkedinLinkedIn コンバージョン画像ピクセルエコシステムの参考資料
vendor/linkedin-conversions-apiLinkedIn コンバージョンイベント、単一およびバッチベンダー公式
vendor/microsoft-uetMicrosoft Advertising Universal Event Trackingエコシステムの参考資料
vendor/microsoft-conversions-apiMicrosoft Advertising CAPI、URL および JSON イベントペイロードベンダー公式
vendor/microsoft-clarityMicrosoft Clarity タグローダー、パス内のプロジェクト ID公式テンプレート
vendor/redditReddit Pixel コンバージョンリクエストエコシステムの参考資料
vendor/reddit-conversions-apiConversions API v3 イベント、URL および JSON イベントペイロードベンダー公式
vendor/quora-conversions-api/ads/v0/conversion 上の Quora Conversion API JSONベンダー公式
vendor/nextdoor-conversions-api/v2/api/conversions/track 上の Nextdoor Conversions API JSONベンダー公式
vendor/x-conversions-apiX conversion API の測定イベント、URL および JSON ペイロードベンダー公式
vendor/xanalytics.twitter.com、analytics.x.com、t.co /adsct 上の X website tag 画像ピクセルエコシステムの参考資料
vendor/the-trade-deskinsight.adsrvr.org/track/up 上の The Trade Desk universal pixel iframeベンダー公式
vendor/criteoCriteo OneTag ローダー ld.js?a=ベンダー公式
vendor/criteo-retail-media/delivery/retailmedia 上の Criteo Retail Media Delivery APIベンダー公式
vendor/taboolaTaboola Pixel ローダー、パス内のアカウント IDベンダー公式
vendor/hotjarHotjar トラッキングコード、パス内のサイト ID公式テンプレート
vendor/hubspotHubSpot トラッキングコード、パス内の Hub ID公式テンプレート
vendor/awinAwin フォールバックコンバージョンピクセルおよび S2S 読み取り、商品レベルの bd[n] を含むベンダー公式
vendor/awin-basketAwin 商品レベルの basket.php product_line 行ベンダー公式
vendor/partnerizePartnerize コンバージョン URL、パス内のキャンペーン、clickref、通貨ベンダー公式
vendor/amazon-adsAmazon Ad Tag コンバージョンローダー、パス内の Tag IDエコシステムの参考資料
vendor/amazon-vfwAmazon DSP Firefly DV 測定、/dv/ 上の vstevt および dvparamsエコシステムの参考資料
vendor/doubleverifyDoubleVerify visit.jpg ビーコン、ctx cmp plc sidエコシステムの参考資料
vendor/doubleverify-eventDoubleVerify event.png の四分位イベント、vstevtエコシステムの参考資料
vendor/freewheelFreeWheel GET /ad/g/ 広告リクエスト、nw および csid または ssidベンダー公式
vendor/outbrain/pixel および /unifiedPixel 上の Outbrain コンバージョンピクセルエコシステムの参考資料
vendor/baiduBaidu Tongji collect hm.gif?si=エコシステムの参考資料
vendor/kwais1.kwai.net 上の sdkid を使用する Kwai Pixel ローダーエコシステムの参考資料
vendor/hubspot-pixelHubSpot __ptq.gif 収集ピクセルエコシステムの参考資料
vendor/cjemjcd.com/u 上の CJ Affiliate コンバージョンピクセルベンダー公式
vendor/impactimpact.com Universal Tracking Tag、パス内の UUID公式テンプレート
vendor/rakuten/ep 上の Rakuten Advertising コンバージョンピクセルエコシステムの参考資料
vendor/brevo-jsBrevo JavaScript トラッカー sa.js?key=公式テンプレート
vendor/yahoo-dotYahoo DSP Dot 画像ピクセルベンダー公式
vendor/yandex-metricaYandex Metrica Measurement Protocolベンダー公式
vendor/openaiOpenAI Ads 画像タグベンダー公式
vendor/openai-conversions-apiOpenAI Ads Conversions API、URL および JSON ペイロードベンダー公式
vendor/kochavaKochava S2S イベント、JSON ペイロードベンダー公式
vendor/singularSingular S2S EVENT、クエリパラメーターベンダー公式
vendor/amplitudeAmplitude HTTP V2 イベントアップロードベンダー公式
vendor/mixpanelMixpanel トラック取り込みベンダー公式
vendor/posthogPostHog capture、単一およびバッチベンダー公式
vendor/klaviyoKlaviyo イベント作成ベンダー公式
vendor/brazeBraze user track:イベント、購入、属性ベンダー公式
vendor/brevoBrevo Tracker REST trackEventベンダー公式
vendor/segmentSegment HTTP Tracking API、単一およびバッチベンダー公式
vendor/rudderstackRudderStack HTTP Tracking API および Pixel APIベンダー公式
vendor/adjusts2s.adjust.com 上の Adjust S2S イベントベンダー公式
vendor/appsflyerAppsFlyer S2S アプリ内イベント、URL および JSON ペイロードベンダー公式
vendor/appsflyer-onelink-impressionAppsFlyer OneLink インプレッション URL、テンプレート ID および pidベンダー公式
vendor/branchBranch Events API の標準イベントおよびカスタムイベントベンダー公式
vendor/adform地域ドメイン上の Adform 動画タグおよびクリックタグ、バナー番号 bnベンダー公式
vendor/ispotiSpot OTT インプレッションピクセル、パス内の TC-####-#ベンダー公式
vendor/comscoreComscore Direct collect c1、c2、c7ベンダー公式
vendor/quantcastQuantcast Measure ピクセル、p-code aベンダー公式
vendor/plausiblePlausible Events API JSONベンダー公式
vendor/matomoMatomo Cloud matomo.php、idsite および recベンダー公式
vendor/parselyParse.ly トラッカーローダー、パス内の Site IDベンダー公式
vendor/crazyeggCrazy Egg トラッキングスクリプト、パス内のアカウント ID およびスクリプト ID公式テンプレート
vendor/chartbeatChartbeat ping、サイト ID h およびアカウント UID gベンダー公式
vendor/heapHeap.js 5 設定ローダー、パス内の環境 IDベンダー公式
vendor/heap-trackHeap サーバーサイドイベントトラッキングベンダー公式
vendor/heap-user-propertiesHeap サーバーサイドのユーザープロパティ更新ベンダー公式
vendor/heap-account-propertiesHeap サーバーサイドのアカウントプロパティ更新ベンダー公式
vendor/mouseflowMouseflow プロジェクトスクリプト、パス内のウェブサイト IDベンダー公式
vendor/intercomIntercom Messenger ローダー、パス内のワークスペース IDベンダー公式
ベンダーディレクトリ

96 のベンダーにわたる 189 のベンダールールパックがあります。ベンダーディレクトリはアトリビューションによって追加のホストをカバーしており、149 のベンダー行と 348 のホストを収録しているため、認識されないピクセルにも名前が付与されます。全インベントリについては、docs/STANDARDS.md を参照してください。

パックごとの深度監査には、レビュー済みのソース、実装済みのチェック、残る要件が記録されています。パック数やフィクスチャの合格実績は、ベンダー仕様を完全に網羅していることを証明するものではありません。非公開プロトコル、未対応のリクエスト表現、アカウント設定、リクエスト履歴は、明示的なカバレッジの制限として残ります。

$ pixellint validate url 'https://trc.taboola.com/actions?a=1'
rulepack: directory (vendor: taboola)
  info  directory.no_rulepack_coverage  This endpoint belongs to Taboola (native). No selected endpoint rulepack checked this request. Core checks ran. The directory lists `vendor/taboola` for Taboola. It was not evaluated for this request.

ディレクトリの各エントリーが示すのは、あるホストが特定のベンダーに属するということだけです。パラメーターの契約は含まず、検出結果は常に info となり、アトリビューションが終了コードに影響することもありません。docs/VENDOR_DIRECTORY.md を参照してください。

検証結果には coverage.status も含まれます。値は vendor_checked、recognized_uncontracted、unrecognized のいずれかで、コアチェックが実行されたかどうかと、評価されたエンドポイントパック ID も示されます。検出結果とあわせてカバレッジを確認してください。エラーのないコアチェックのみの結果は、ベンダー検証が行われたことを示すものではありません。

pixellint list-vendors
pixellint list-vendors --json

実行ごとにパックを選択します。

pixellint validate url "$ARTIFACT" --rulepack core
pixellint validate url "$ARTIFACT" --except vendor/meta
pixellint list-rulepacks --json

引用情報付きのルール全インベントリについては、docs/STANDARDS.md を参照してください。

エビデンスレベル

検出結果には根拠の出所が示されます。これに応じて、異なる基準をパックに適用できます。

  • normative:WHATWG URL Standard や RFC などの正式な標準
  • official_vendor:ベンダーが公開しているパラメーターの契約と、その URL
  • official_template:ベンダーが公開しているテンプレートや SDK の動作
  • ecosystem_reference:ベンダー自身の UI では生成される一貫した実際の動作だが、文書化されていないもの
  • heuristic:その旨を明記した Pixellint の判断

マニフェストローダーは、ドキュメントを引用せずに official_vendor を主張するパックのコンパイルを拒否します。

カスタムルールパック

ルールパックはコードではなくデータです。ファーストパーティのベンダーパックは、内部エンドポイント用に作成できるものと同じ JSON 形式で記述されています。

{
  "id": "custom/acme",
  "display_name": "Acme internal pixel",
  "description": "Contract for the internal conversion endpoint.",
  "vendor": "acme",
  "source_level": "heuristic",
  "match": { "hosts": ["px.acme.example"], "path_prefixes": ["/collect"] },
  "params": [
    { "name": "aid", "requirement": "required", "format": { "kind": "integer" } },
    { "name": "ev", "requirement": "required", "format": { "kind": "enum", "values": ["view", "purchase"] } }
  ]
}
pixellint validate url 'https://px.acme.example/collect?ev=purchase' --rulepack-file acme.json

形式については、docs/RULEPACK_SCHEMA.md に記載されています。

パラメーターの契約は必要なく、名前だけが必要な非公開ピクセルは、ディレクトリオーバーレイに追加します。

pixellint validate url 'https://px.acme.example/collect' --directory-file extra.json

オーバーレイでは、組み込みディレクトリと同じエントリー形式を使用します。追加できるのは新しいホストのみで、ファーストパーティのホストを横取りすることはできません。上流にホストを追加する場合は、PR を送ってください:CONTRIBUTING.md。

Pixellint が行わないこと

  • ドキュメントからアーティファクトを抽出することはありません。vast が受け付けるのはトラッキング URL であり、XML ではありません。html、js、gtm は検証種別ではなく、これらを渡すと CLI は 2 で終了します。Vastlint などの呼び出し側が VAST、HTML、GTM コンテナを解析し、検出した URL を Pixellint に渡します。pixellint validate-many は、それらの抽出済み URL をまとめて処理します。ドキュメントの結果モデルについては、docs/MULTI_ARTIFACT_SCHEMA.md を参照してください。
  • リクエストを送信したり、エンドポイントが応答するかを確認したりすることはありません。
  • 自動修正は行いません。検出結果には修正のヒントが含まれますが、適用するかどうかはユーザーに委ねられます。

エビデンス

すべてのルールはテストで裏付けられています。crates/pixellint-core/src/ のユニットテスト、各ルールパックのディレクトリを含む fixtures/ のゴールデンコーパス、実際の CLI バイナリと MCP の標準入出力トランスポートを動かす統合テストがあります。

cargo test --workspace

ベンチマーク

ゴールデンコーパス、D1 形式の合成ピクセル、大規模な validate-many バッチを使った、プロセス内エンジンの速度です。

cargo run -p pixellint-bench --release -- --quick
cargo run -p pixellint-bench --release
cargo run -p pixellint-bench --release -- --mode load --heavy

bench/README.md を参照してください。

ドキュメント

ライセンス

Apache-2.0。Pixellint は、ルールパックに記載されているいかなるベンダーとも提携しておらず、推奨も受けていません。NOTICE を参照してください。

ローカルの HAR 1.2 リクエストキャプチャのインポートとオフライン再生は、pixellint import-har、pixellint validate-har、Rust、npm、WASM から利用できます。ヘッダーポリシー、本文の省略処理、記録されたクロックの検証については、HAR リクエストの再生とキャプチャの利用可否 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。