We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/simplicianokelly52/comet_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
memory.jsonl•8.12 kB
{"type":"_aim","source":"mcp-knowledge-graph"}
{"type":"entity","name":"comet-mcp","entityType":"project","observations":["MCP server connecting Claude Code to Perplexity Comet browser via Chrome DevTools Protocol (CDP)","Version 2.3.0, MIT license, authored by hanzili","Enables agentic web browsing, deep research, and real-time monitoring","Multi-agent approach: Claude delegates web tasks to Perplexity Comet instead of controlling browser directly","Supports macOS, Windows, and WSL2 platforms","Dependencies: @modelcontextprotocol/sdk ^1.0.0, chrome-remote-interface ^0.33.2","Node.js 18+ required","v3.0.0 uses dedicated MCP Comet instance on port 9223 (isolated from personal browser)","Separate data directory: ~/.comet-mcp (macOS/Linux), %LOCALAPPDATA%/comet-mcp (Windows)","Fixed text truncation: now collects ALL prose elements, 50KB limit (up from 8KB)","Added login detection on first connect","Visual indicator: [MCP] badge in browser title and page corner","Now has 8 tools (added comet_folders and comet_library)"]}
{"type":"entity","name":"CometCDPClient","entityType":"class","observations":["Located in src/cdp-client.ts (lines 163-729)","Manages Chrome DevTools Protocol connection to Comet browser","Properties: client, cometProcess, state, lastTargetId, reconnectAttempts, maxReconnectAttempts, isReconnecting","Key methods: connect, disconnect, reconnect, startComet, killComet, evaluate, safeEvaluate, navigate, screenshot","Handles auto-reconnection with withAutoReconnect wrapper","Can list tabs categorized (listTabsCategorized) for agent browsing detection","Supports Windows and WSL via getCometPath, isWSL, isWindows helpers"]}
{"type":"entity","name":"CometAI","entityType":"class","observations":["Located in src/comet-ai.ts (lines 14-342)","High-level interface for interacting with Perplexity AI in Comet browser","Key methods: sendPrompt, submitPrompt, getAgentStatus, stopAgent, findInputElement","Uses INPUT_SELECTORS to find input elements: contenteditable, textarea, input[type=text]","getAgentStatus extracts response by taking LAST prose element (newest in conversation)","Filters out UI text (Library, Discover, etc.) and questions ending with ?","Detects working status via stop button, loading spinner, and working patterns","Returns status: idle | working | completed with steps, currentStep, response, hasStopButton, agentBrowsingUrl"]}
{"type":"entity","name":"comet_connect","entityType":"mcp_tool","observations":["Defined in src/index.ts","Connects to Comet browser (auto-starts if needed)","No required parameters","Entry point for establishing CDP connection"]}
{"type":"entity","name":"comet_ask","entityType":"mcp_tool","observations":["Defined in src/index.ts","Sends a prompt to Comet/Perplexity and waits for complete response (blocking)","Parameters: prompt (required), newChat (optional, starts fresh conversation), timeout (optional, default 15000ms)","Ideal for tasks requiring real browser interaction or deep research","Follow-up detection: captures old prose count/text before sending, waits for NEW response"]}
{"type":"entity","name":"comet_poll","entityType":"mcp_tool","observations":["Defined in src/index.ts","Checks agent status and progress","Call repeatedly to monitor agentic tasks","No required parameters","Used for long-running tasks that exceed timeout"]}
{"type":"entity","name":"comet_stop","entityType":"mcp_tool","observations":["Defined in src/index.ts","Stops the current agent task if it's going off track","No required parameters","Clicks stop button in browser"]}
{"type":"entity","name":"comet_screenshot","entityType":"mcp_tool","observations":["Defined in src/index.ts","Captures a screenshot of current page","No required parameters","Returns base64 encoded image"]}
{"type":"entity","name":"comet_mode","entityType":"mcp_tool","observations":["Defined in src/index.ts","Switches Perplexity search mode","Modes: search (basic), research (deep research), labs (analytics/visualization), learn (educational)","Call without mode parameter to see current mode"]}
{"type":"entity","name":"architecture","entityType":"concept","observations":["Flow: Claude Code → MCP Server (index.ts) → CometAI (comet-ai.ts) → CDP Client (cdp-client.ts) → Comet Browser","Uses Chrome DevTools Protocol (CDP) for browser communication","Port 9222 used for CDP remote debugging","Multi-agent delegation pattern: Claude reasons, Comet browses"]}
{"type":"entity","name":"edge_cases","entityType":"documentation","observations":["Prompt not submitted: If response shows 0 steps + COMPLETED, prompt may not have been submitted - retry or use newChat","Stale poll response: If poll returns unrelated response, the previous prompt failed - send again","Research mode: Takes longer than search mode, may need multiple polls","Prompt normalization: Strips bullet points, collapses newlines to spaces","newChat after agentic: newChat=true resets CDP state after browser control tasks"]}
{"type":"entity","name":"src/index.ts","entityType":"file","observations":["Main MCP server entry point","Defines 6 MCP tools: comet_connect, comet_ask, comet_poll, comet_stop, comet_screenshot, comet_mode","Creates MCP Server instance with capabilities","Handles tool request routing and response formatting","Follow-up detection logic: captures old prose before sending, waits for NEW response"]}
{"type":"entity","name":"src/comet-ai.ts","entityType":"file","observations":["Contains CometAI class (lines 14-342) and INPUT_SELECTORS constant","CometAI singleton exported as cometAI","Handles prompt submission, status checking, response extraction","DOM scraping via CDP Runtime.evaluate for status detection"]}
{"type":"entity","name":"src/cdp-client.ts","entityType":"file","observations":["Contains CometCDPClient class (lines 163-729)","Platform detection helpers: isWSL(), IS_WINDOWS, getCometPath()","CDP connection management with auto-reconnect","Comet process lifecycle: startComet, killComet, isCometProcessRunning","Tab management: newTab, closeTab, listTabsCategorized"]}
{"type":"entity","name":"comet_folders","entityType":"mcp_tool","observations":["New tool added in v3.0","Actions: list, create, save","Navigates to Perplexity library for folder operations","Defined in src/index.ts"]}
{"type":"entity","name":"comet_library","entityType":"mcp_tool","observations":["New tool added in v3.0","Searches existing research in Perplexity library","Returns past research threads matching query","Defined in src/index.ts"]}
{"type":"relation","from":"comet-mcp","to":"architecture","relationType":"has_architecture"}
{"type":"relation","from":"comet-mcp","to":"edge_cases","relationType":"documents"}
{"type":"relation","from":"comet-mcp","to":"CometCDPClient","relationType":"contains"}
{"type":"relation","from":"comet-mcp","to":"CometAI","relationType":"contains"}
{"type":"relation","from":"comet-mcp","to":"comet_connect","relationType":"provides_tool"}
{"type":"relation","from":"comet-mcp","to":"comet_ask","relationType":"provides_tool"}
{"type":"relation","from":"comet-mcp","to":"comet_poll","relationType":"provides_tool"}
{"type":"relation","from":"comet-mcp","to":"comet_stop","relationType":"provides_tool"}
{"type":"relation","from":"comet-mcp","to":"comet_screenshot","relationType":"provides_tool"}
{"type":"relation","from":"comet-mcp","to":"comet_mode","relationType":"provides_tool"}
{"type":"relation","from":"CometAI","to":"CometCDPClient","relationType":"uses"}
{"type":"relation","from":"src/index.ts","to":"CometAI","relationType":"imports"}
{"type":"relation","from":"src/comet-ai.ts","to":"CometAI","relationType":"defines"}
{"type":"relation","from":"src/cdp-client.ts","to":"CometCDPClient","relationType":"defines"}
{"type":"relation","from":"comet_ask","to":"CometAI","relationType":"uses"}
{"type":"relation","from":"comet_poll","to":"CometAI","relationType":"uses"}
{"type":"relation","from":"comet_stop","to":"CometAI","relationType":"uses"}
{"type":"relation","from":"comet_connect","to":"CometCDPClient","relationType":"uses"}
{"type":"relation","from":"comet_screenshot","to":"CometCDPClient","relationType":"uses"}