Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Validate pixels, postbacks, conversion API payloads, and tracking URLs with spec-backed findings.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
제작자가 레지스트리에 설치 정보를 올리지 않았어요. 아래 제작자의 README를 확인하세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 aleksUIX 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.59.0)은 12일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Rust도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Tethered Trust
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.
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:
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
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
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-name: io.github.aleksUIX/pixellintlist_rulepackslist_vendors, optionally filtered by category or attributing a single hostvalidate_artifact, taking artifact_kind, artifact, and optional claimed_vendor, expansion_state, rulepacks, except_rulepacksResponses include the structured findings, the detected vendors, and a severity summary, so an agent can act on the result without parsing prose.
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
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 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.
| Rulepack | Covers | Evidence |
|---|---|---|
core | URL validity, transport, credentials, fragments, ad-tech macro handling, IAB consent signals | normative |
vendor/meta | facebook.com/tr pixel requests | official vendor |
vendor/meta-conversions-api | Graph API events edge, URL and JSON event payload | official vendor |
vendor/google-analytics | GA4 Measurement Protocol, URL and JSON event payload | official vendor |
vendor/google-analytics-collect | The /g/collect transport the Google tag uses in the browser | ecosystem reference |
vendor/google-tag-manager | gtm.js, gtag/js, and ns.html loader requests | official vendor |
vendor/google-ads-conversion | Google Ads conversion and view-through pixels | official vendor |
vendor/google-ads-click-conversions | Google Ads UploadClickConversions JSON | official vendor |
vendor/floodlight | Campaign Manager Floodlight activity tags | official vendor |
vendor/cm360-tracking-ad | CM360 tracking ads, dc_trk_aid and dc_trk_cid | official vendor |
vendor/cm360-vast-event | CM360 VAST event pixels, dc_oe on googlesyndication | ecosystem reference |
vendor/google-ad-manager | Ad Manager /gampad/ads, iu sz output env gdfp_req correlator | official vendor |
vendor/adobe-analytics | Adobe Analytics data collection beacons | official vendor |
vendor/pinterest | Pinterest tag requests and the noscript fallback | official vendor |
vendor/pinterest-conversions-api | Conversions API events, URL and JSON event payload | official vendor |
vendor/snapchat | Snap Conversions API v3, URL and JSON event payload | official vendor |
vendor/tiktok | TikTok Pixel loader events.js?sdkid= | ecosystem reference |
vendor/tiktok-events-api | Events API pixel track and batch, URL and JSON event payload | official vendor |
vendor/linkedin | LinkedIn conversion image pixels | ecosystem reference |
vendor/linkedin-conversions-api | LinkedIn conversion events, single and batched | official vendor |
vendor/microsoft-uet | Microsoft Advertising Universal Event Tracking | ecosystem reference |
vendor/microsoft-conversions-api | Microsoft Advertising CAPI, URL and JSON event payload | official vendor |
vendor/microsoft-clarity | Microsoft Clarity tag loader, project ID in the path | official template |
vendor/reddit | Reddit Pixel conversion requests | ecosystem reference |
vendor/reddit-conversions-api | Conversions API v3 events, URL and JSON event payload | official vendor |
| vendor/quora-conversions-api | Quora Conversion API J
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요