Check whether a page's Meta Pixel works, read reports and step-by-step fix guides.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: "Bearer ipw_…" with an API key from your IsPixelWorking account, for your plan's limits and monitored pages
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check whether a web page's Meta, TikTok and OpenAI pixels work (the Meta Pixel is the former Facebook Pixel), with a grade for each: cookie consent, duplicate events, event IDs, the ad click IDs (e.g. fbclid -> _fbc) and signs of server-side tracking. A browser in the EU visits the page twice. Reuses a result from the last 24 hours unless recheck is true. Waits for the result up to wait_seconds (a check takes 20 to 60 seconds); if it is still running, call get_report later.
The page to check, usually the landing page the ads point to, e.g. https://example.com/landing
Start a fresh check instead of reusing a recent result (allowed once the last check is an hour old). Use after a fix was deployed.
How long to wait for the result, 0 to 45 seconds (default 40).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Check whether a web page's Meta, TikTok and OpenAI pixels work (the Meta Pixel is the former Facebook Pixel), with a grade for each: cookie consent, duplicate events, event IDs, the ad click IDs (e.g. fbclid -> _fbc) and signs of server-side tracking. A browser in the EU visits the page twice. Reuses a result from the last 24 hours unless recheck is true. Waits for the result up to wait_seconds (a check takes 20 to 60 seconds); if it is still running, call get_report later.
| Argument | Type | Description |
|---|---|---|
| url* | string | The page to check, usually the landing page the ads point to, e.g. https://example.com/landing |
| recheck | boolean | Start a fresh check instead of reusing a recent result (allowed once the last check is an hour old). Use after a fix was deployed. |
| wait_seconds | integer | How long to wait for the result, 0 to 45 seconds (default 40). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 3,
"description": "The page to check, usually the landing page the ads point to, e.g. https://example.com/landing"
},
"recheck": {
"type": "boolean",
"description": "Start a fresh check instead of reusing a recent result (allowed once the last check is an hour old). Use after a fix was deployed."
},
"wait_seconds": {
"type": "integer",
"maximum": 45,
"minimum": 0,
"description": "How long to wait for the result, 0 to 45 seconds (default 40)."
}
}
}Step-by-step guide (Markdown) for fixing a problem the check found, for the site's platform when one exists (otherwise the general version). With consent_tool, returns the guide for wiring the Meta Pixel to that consent tool instead. Guides exist for: meta.fires_before_consent, meta.not_firing_after_consent, meta.duplicate_pixel, meta.missing_event_id, meta.fbc_not_set, and general.server_side_not_detected (setting up the Conversions API).
| Argument | Type | Description |
|---|---|---|
| issue_id | string | Problem id from a report, e.g. meta.fires_before_consent |
| platform | string | Site platform from the report, e.g. framer, shopify, webflow, wordpress |
| consent_tool | string | Consent tool guide: complianz (Complianz), cookiebot (Cookiebot), cookieyes (CookieYes), onetrust (OneTrust), usercentrics (Usercentrics) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"issue_id": {
"type": "string",
"maxLength": 80,
"description": "Problem id from a report, e.g. meta.fires_before_consent"
},
"platform": {
"type": "string",
"maxLength": 40,
"description": "Site platform from the report, e.g. framer, shopify, webflow, wordpress"
},
"consent_tool": {
"enum": [
"complianz",
"cookiebot",
"cookieyes",
"onetrust",
"usercentrics"
],
"type": "string",
"description": "Consent tool guide: complianz (Complianz), cookiebot (Cookiebot), cookieyes (CookieYes), onetrust (OneTrust), usercentrics (Usercentrics)"
}
}
}Read the result of a check by its report id or report link (https://ispixelworking.com/r/<id>): status, a grade for each pixel found (Meta, TikTok and OpenAI), problems with explanations and fix guide links, checklist. Reports are kept for 90 days.
| Argument | Type | Description |
|---|---|---|
| report* | string | Report id (e.g. Ab3dE5fG7hJ9kL2m) or report link |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"report"
],
"properties": {
"report": {
"type": "string",
"maxLength": 200,
"minLength": 8,
"description": "Report id (e.g. Ab3dE5fG7hJ9kL2m) or report link"
}
}
}Every problem (finding) the check can report, with id, severity, title, explanation and whether a fix guide exists.
No arguments.
{
"type": "object",
"properties": {}
}