Enhanced Puppeteer MCP server with specialized digital marketing analytics capabilities. This builds upon the official @modelcontextprotocol/server-puppeteer with tools for analyzing marketing technologies, analytics platforms, tag managers, and SEO.
This server demonstrates moderate definition quality with significant gaps. All 10 tools have visible descriptions and input schemas with type definitions. However, many descriptions are minimal (10-25 chars), parameter descriptions lack actionable detail (no format constraints, ranges, or dependency documentation), and output schemas are entirely absent from the code. Tools follow a consistent naming pattern with action verbs (puppeteer_*, find-*, analyze-*, detect-*, scan-*, parse-*, audit-*, check-*, evaluate-*) but several names are ambiguous or overlap in responsibility. For example, 'find-marketing-technologies', 'analyze-analytics-platforms', 'detect-ad-pixels', and 'scan-marketing-stack' all appear to analyze the same page for different aspects of marketing tech, the distinction is unclear from names alone and could confuse LLM tool selection. Parameter descriptions are sparse (e.g., 'URL to navigate to' is generic; no mention of timeout handling, retry behavior, or supported protocols). No error recovery guidance visible. Output structures are not documented, forcing LLMs to guess what fields will be returned.
Deep dive into analytics platforms (GA4, UA, Adobe Analytics, etc.) on a webpage
Analyze SEO metadata and structure on a webpage
Analyze meta tags, titles, and descriptions on a webpage
Focus on advertising platforms (Facebook, TikTok, etc.) on a webpage
Analyze URL structure, headings hierarchy, and page organization
Get a high-level overview of all marketing technologies on a webpage
Capture and parse Adobe Analytics and Experience Platform beacons on a webpage
Overlapping tool responsibilities without clear naming distinctions. Tools 'find-marketing-technologies', 'analyze-analytics-platforms', 'detect-ad-pixels', and 'scan-marketing-stack' all analyze a single URL for marketing tech but differ in focus. Names do not clearly convey the distinction, risking LLM confusion during tool selection.
All tool descriptions are extremely short (10-30 chars). Descriptions like 'Get a high-level overview of all marketing technologies on a webpage' lack guidance on when to use this tool vs. similar tools, what data is returned, and any prerequisites or side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Navigate to a URL
Take a screenshot of the current page or a specific element
Comprehensive analysis of all marketing and analytics technologies on a webpage
No output schemas documented in code or visible in tool definitions. LLMs cannot predict what fields will be returned, what type they are, or how to chain downstream tools. The parse-analytics-beacons implementation shows detailed result structures in code (pageLoad, summary, groupedBeacons, adobeAnalyticsVariables) but these are not exposed as formal schema.
Parameter descriptions lack actionable detail. The 'url' parameter appears in 8 tools but is always described as 'The URL of the webpage to analyze' with no mention of timeout behavior, supported protocols (http vs https), or what happens if the URL is unreachable. The 'waitTime' parameter is described as 'Additional time to wait in milliseconds' or 'Time to wait for beacons to fire (milliseconds)' with no min/max bounds (e.g., is 1ms valid? 1 year?).
No error recovery guidance. Visible code in parse-analytics-beacons shows error handling (e.g., 'Failed to find or click element') but these are wrapped in generic objects and not exposed as actionable recovery guidance to the LLM (e.g., 'Try verify the selector is valid' or 'Call another tool to find the correct selector').
No output pagination or result limiting documented. Tools like 'scan-marketing-stack' and 'find-marketing-technologies' likely return arrays of detected technologies. No mention of pagination, limits, or total counts in descriptions.
Parameter 'allowDangerous' in puppeteer_navigate is poorly documented. Description says 'Allow dangerous LaunchOptions that reduce security' but does not explain what risks are created, why an agent would ever set this to true, or what security guarantees are lost. This is a footgun parameter that invites misuse.
No idempotency guidance. Tools like puppeteer_navigate and puppeteer_screenshot have side effects (browser state, file I/O) but do not document whether repeated calls with identical inputs produce identical results. Agents may retry on ambiguous failures, non-idempotent tools risk duplicate side effects.