Googlebot Simulator MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Googlebot Simulator MCPSimulate Googlebot on https://example.com and capture events with 'page_viewed'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Googlebot Simulator MCP
An MCP server that simulates Googlebot crawling pages and captures analytics events. Use this to verify your site's bot detection and analytics tracking work correctly.
Features
Authentic Googlebot User-Agents: Uses real Googlebot desktop and mobile user-agent strings
Idle Detection Simulation: Mimics Googlebot's
requestIdleCallback-based idle detectionEvent Interception: Captures analytics/tracking requests matching your pattern
Detailed Reporting: Returns timing info, captured payloads, and screenshots
Related MCP server: gsc-mcp
Installation
Add to Claude Code
claude mcp add googlebot-sim -- npx googlebot-simulator-mcpOr add to .claude.json
{
"mcpServers": {
"googlebot-sim": {
"type": "stdio",
"command": "npx",
"args": ["googlebot-simulator-mcp"]
}
}
}From source
git clone https://github.com/RichardDillman/googlebot-simulator-mcp.git
cd googlebot-simulator-mcp
npm install
npm run buildUsage
Once added to Claude, you can use natural language:
"Test https://example.com/jobs as Googlebot, watching for requests containing 'page_viewed'"
Or be more specific:
"Simulate mobile Googlebot on https://talent.com/jobs, capture events to **/serp-event-producer/send"
Tool: simulate_googlebot
Input
{
// Required: URL(s) to test
urls: string | string[];
// Required: Pattern to match analytics events
eventPattern: {
urlPattern?: string; // e.g., "**/analytics/**"
bodyContains?: string; // e.g., "page_viewed"
};
// Optional configuration
options?: {
userAgent?: "desktop" | "mobile"; // Default: "desktop"
idleTimeout?: number; // Default: 5000ms
maxWaitTime?: number; // Default: 10000ms
captureScreenshot?: boolean; // Default: true
screenshotDir?: string; // Default: cwd
};
}Output
{
results: Array<{
url: string;
success: boolean; // true if matching event was captured
eventsFired: Array<{
timestamp: number;
url: string;
method: string;
payload: object;
matchedPattern: boolean;
responseStatus?: number;
}>;
timing: {
navigationStart: number;
domContentLoaded: number;
idleDetected: number;
totalTime: number;
firstIdleCallback?: number;
};
screenshot?: string; // Path to screenshot file
errors: string[];
idleCallbacksObserved: number;
}>;
summary: {
totalUrls: number;
passed: number;
failed: number;
totalEventsCaptured: number;
};
}Example Output
{
"results": [
{
"url": "https://talent.com/jobs",
"success": true,
"eventsFired": [
{
"timestamp": 1704825600000,
"url": "https://events.talent.com/serp-event-producer/send",
"method": "POST",
"payload": {
"event_type": "page_viewed_bot",
"bot_type": "google",
"page_name": "serp"
},
"matchedPattern": true,
"responseStatus": 200
}
],
"timing": {
"navigationStart": 1704825595000,
"domContentLoaded": 1704825596500,
"idleDetected": 1704825600000,
"totalTime": 5000,
"firstIdleCallback": 3200
},
"screenshot": "/tmp/googlebot_desktop_jobs_1704825600000.png",
"errors": [],
"idleCallbacksObserved": 3
}
],
"summary": {
"totalUrls": 1,
"passed": 1,
"failed": 0,
"totalEventsCaptured": 1
}
}How It Works
Launches headless Chromium with Googlebot user-agent and viewport settings
Injects tracking script to monitor
requestIdleCallbackusageSets up network interception to capture matching requests
Navigates to URL and waits for page to reach idle state
Captures screenshot at the "idle" moment (what Googlebot sees)
Returns detailed report with all captured events and timing
Use Cases
Verify bot detection: Ensure your analytics correctly identifies Googlebot
Test event timing: Confirm events fire before Googlebot's idle timeout
Debug rendering: See what content is visible when Googlebot considers the page "done"
Compare desktop vs mobile: Test both Googlebot variants
License
MIT
Available Tools
1 toolsimulate_googlebotA
Simulate Googlebot crawling a page and capture analytics events.
This tool:
Uses authentic Googlebot user-agent strings
Simulates Googlebot's idle detection behavior (requestIdleCallback)
Intercepts and captures network requests matching your pattern
Returns detailed timing, events captured, and optional screenshots
Use this to verify:
Analytics pageview events fire correctly for bots
Bot detection is working (e.g., page_viewed vs page_viewed_bot)
Content is rendered correctly at the "idle" state
Timing of event firing relative to page load
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | URL(s) to simulate Googlebot crawling | |
| options | No | Optional configuration for the simulation | |
| eventPattern | Yes | Pattern to identify analytics/tracking events. At least one of urlPattern or bodyContains required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description fully carries the transparency burden. It discloses key behaviors: authentic user-agent, requestIdleCallback simulation, network interception, and capture of timing/events/screenshots. It doesn't mention limits or error handling, but the transparency is high.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, a bulleted list of features, and a bulleted list of use cases. Every sentence is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters (one nested), no output schema, and no annotations, the description covers the tool's purpose, behavior, and use cases adequately. It mentions return values (timing, events, screenshots) but lacks details on output format. Still, it is complete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters well. The description adds context about the tool's purpose (e.g., capturing analytics events) that complements the eventPattern parameter, but it does not provide new parameter-level details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Simulate Googlebot crawling a page and capture analytics events.' It provides a specific verb and resource, and lists detailed behaviors and use cases. Without sibling tools, it effectively distinguishes itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists four verification scenarios ('Use this to verify:...'), providing clear usage context. It lacks explicit alternatives or when-not-to-use statements, but the absence of sibling tools reduces the need for exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.0- First observed
simulate_googlebot
TDQS
With only one tool, there is no possibility of confusion between tools. The tool's purpose is clearly distinct by default.
The single tool name 'simulate_googlebot' follows a clear verb_noun pattern and is descriptive. With only one tool, there are no naming inconsistencies.
One tool is on the low end, but it is well-scoped to a specific use case (simulating Googlebot). It feels slightly thin but not inappropriate for its narrow domain.
The tool covers the main aspects of simulating Googlebot crawling (user-agent, idle detection, event capture, timing, screenshots). No obvious gaps for its stated purpose, though it is a single tool.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Crawl, scrape, search the web, and automate browsers at scale with anti-bot bypass.
Validate HTML/CSS, audit SEO and JSON-LD, check links, and capture responsive screenshots.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides Google search capabilities, web content extraction, and screenshot functionality with advanced bot detection avoidance through the MCP protocol.276-
- AlicenseAqualityAmaintenanceMCP server for Google Search Console, URL Inspection & Indexing API — search analytics, sitemap management, and batch indexing132037MIT
- AlicenseAqualityCmaintenanceAnalyze and generate robots.txt files with AI crawler awareness. Fetch any site's robots.txt, detect which AI bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) are blocked or allowed, and generate optimized robots.txt with toggle controls for 20+ AI crawlers.51MIT
- AlicenseAqualityAmaintenanceAI-powered exploratory QA agent. Explores web apps like a real user — 18 MCP tools for clicking, filling forms, and navigating. Automatically verifies that actions persist (fake deletes, failed edits). Runs 16 detection types including dead links, SEO, accessibility, and performance checks.292MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RichardDillman/googlebot-simulator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server