Perplexity Comet Mcp

io.github.RapierCraftPublished by GitHub account RapierCraftv2.5.0Updated Oct 25, 2026

Bridge Claude Code with Perplexity Comet for autonomous browsing and tab management

The publisher's own server: Alterlab

Overview

AI-generated overview

A local MCP server that bridges Claude Code with the Perplexity Comet browser, letting the assistant drive autonomous browsing, research and tab management.

What you can do
Connect to and launch the Comet browser, with automatic reconnection and health checks, and stop a running task when it goes off track. Send prompts to Comet and poll for progress or the finished response, including agentic browsing of URLs and data extraction. Switch Perplexity modes between search, research, labs and learn. List, switch and close browser tabs, with protection for the last tab. Capture a screenshot of the current browser view. Upload local files into file input elements on web pages.
When to use it
Useful when you want an assistant to research the web or interact with sites in a real, logged-in browser session while you keep coding, including multi-tab workflows and posting or attaching files through web forms.
Requirements
Runs as a local process via npm (Node.js 18 or higher) and needs the Perplexity Comet browser installed and a compatible MCP client such as Claude Code. Optional environment variables COMET_PATH (custom browser executable path) and COMET_PORT (Chrome DevTools Protocol port, default 9223). On WSL, mirrored networking may be needed to reach the Windows localhost port.
Before you install
The server drives a real browser session, so it can act on logged-in accounts, navigate, click, type and submit forms, and upload local files whose paths you provide. It can close tabs, though the last browsing tab is protected. Browsing activity and page content pass through Perplexity's Comet browser and external websites.

Installation

In SourceWeft

  1. Open Perplexity Comet Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Perplexity Comet MCP

[npm version] [License: MIT] [Node.js Version] [TypeScript] [MCP Compatible] [Platform]

A production-grade MCP (Model Context Protocol) server that bridges Claude Code with Perplexity's Comet browser for autonomous web browsing, research, and multi-tab workflow management.


Why Perplexity Comet MCP?

ApproachLimitation
Search APIsStatic text, no interaction, no login support
Browser AutomationSingle-agent model overwhelms context, fragments focus
Perplexity Comet MCPClaude codes while Comet handles browsing autonomously

This is a significantly enhanced fork of hanzili/comet-mcp with Windows support, smart completion detection, robust connection handling, and full tab management.


Features

Core Capabilities

  • Autonomous Web Browsing - Comet navigates, clicks, types, and extracts data while Claude focuses on coding
  • Deep Research Mode - Leverage Perplexity's research capabilities for comprehensive analysis
  • Login Wall Handling - Access authenticated content through real browser sessions
  • Dynamic Content - Full JavaScript rendering and interaction support

Enhanced Features (New in This Fork)

FeatureDescription
Windows/WSL SupportFull compatibility with Windows and WSL environments
Tab ManagementTrack, switch, and close browser tabs with protection
Smart CompletionDetect response completion without fixed timeouts
Auto-ReconnectExponential backoff recovery from connection drops
One-Shot ReliabilityPre-operation health checks for consistent execution
Agentic Auto-TriggerAutomatically triggers browser actions from natural prompts

Comparison with Original

CapabilityOriginalEnhanced
Platform SupportmacOSWindows, WSL, macOS
Available Tools68 (+comet_tabs, +comet_upload)
Completion DetectionFixed timeoutStability-based
Connection RecoveryNoneAuto-reconnect with backoff
Tab ManagementNoneFull registry and control
Health MonitoringNoneCached health checks
Last Tab ProtectionNonePrevents browser crash

Installation

Prerequisites

Install via npm

bash
npm install -g perplexity-comet-mcp

Install from Source

bash
git clone https://github.com/RapierCraft/perplexity-comet-mcp.gitcd perplexity-comet-mcpnpm installnpm run build

Configure Claude Code

Add to your Claude Code MCP settings (~/.claude/settings.json or VS Code settings):

json
{  "mcpServers": {    "comet-bridge": {      "command": "node",      "args": ["/path/to/perplexity-comet-mcp/dist/index.js"]    }  }}

Windows Users: Use the full Windows path:

json
{  "mcpServers": {    "comet-bridge": {      "command": "node",      "args": ["C:\\Users\\YourName\\perplexity-comet-mcp\\dist\\index.js"]    }  }}

Tools Reference

comet_connect

Establish connection to Comet browser. Auto-launches if not running.

Parameters: NoneReturns: Connection status message

Example:

> comet_connectComet started with debug port 9223Connected to Perplexity (cleaned 2 old tabs)

comet_ask

Send a prompt to Comet and wait for the complete response. Automatically triggers agentic browsing for URLs and action-oriented requests.

Parameters:  - prompt (required): Question or task for Comet  - newChat (optional): Start fresh conversation (default: false)  - timeout (optional): Max wait time in ms (default: 120000)
Returns: Complete response text

Examples:

# Simple research query> comet_ask "What are the latest features in Python 3.12?"
# Agentic browsing (auto-triggered)> comet_ask "Go to github.com/trending and list top Python repos"
# Site-specific data extraction> comet_ask "Check the price of iPhone 15 on amazon.com"

comet_poll

Check status and progress of ongoing tasks. Returns the response if completed.

Parameters: NoneReturns: Status (IDLE/WORKING/COMPLETED), steps taken, or final response

Example:

> comet_pollStatus: WORKINGBrowsing: https://github.com/trendingCurrent: Scrolling page
Steps:  - Preparing to assist you  - Navigating to github.com  - Clicking on Trending  - Scrolling page

comet_stop

Halt the current agentic task if it goes off track.

Parameters: NoneReturns: Confirmation message

comet_screenshot

Capture a screenshot of the current browser view.

Parameters: NoneReturns: PNG image data

comet_tabs

View and manage browser tabs. Essential for multi-tab workflows.

Parameters:  - action (optional): "list" (default), "switch", or "close"  - domain (optional): Domain to match (e.g., "github.com")  - tabId (optional): Specific tab ID
Returns: Tab listing or action confirmation

Examples:

# List all external tabs> comet_tabs2 browsing tab(s) open:  - AGENT-BROWSING: github.com [ACTIVE]    URL: https://github.com/trending  - AGENT-BROWSING: stackoverflow.com    URL: https://stackoverflow.com/questions
# Switch to a tab> comet_tabs action="switch" domain="stackoverflow.com"Switched to stackoverflow.com (https://stackoverflow.com/questions)
# Close a tab (protected if last tab)> comet_tabs action="close" domain="github.com"Closed github.com

Tab Protection:

  • Cannot close the last external browsing tab (prevents Comet crash)
  • Internal tabs (chrome://, Perplexity UI) are automatically filtered

comet_mode

Switch Perplexity search modes for different use cases.

Parameters:  - mode (optional): "search", "research", "labs", or "learn"
Returns: Current mode or confirmation of switch
ModeUse Case
searchQuick web searches
researchDeep, comprehensive analysis
labsData analytics and visualization
learnEducational explanations

comet_upload

Upload files to file input elements on web pages. Essential for posting images to social media, attaching files to forms, or uploading documents.

Parameters:  - filePath (required): Absolute path to the file to upload  - selector (optional): CSS selector for specific file input  - checkOnly (optional): If true, only checks what file inputs exist
Returns: Success message or error with available inputs

Examples:

# Upload an image to the first file input found> comet_upload filePath="/home/user/screenshot.png"File uploaded successfully: /home/user/screenshot.png
# Check what file inputs exist on the page> comet_upload filePath="dummy" checkOnly=trueFound 2 file input(s) on the page:  1. #image-upload  2. input[name="attachment"]
# Upload to a specific input> comet_upload filePath="/home/user/doc.pdf" selector="#attachment-input"File uploaded successfully: /home/user/doc.pdf

Workflow for posting images:

  1. Navigate to the post creation page (e.g., Reddit, Twitter)
  2. Use comet_upload checkOnly=true to find file inputs
  3. Use comet_upload filePath="..." selector="..." to attach the file
  4. Continue with form submission

Architecture

┌─────────────────┐     MCP Protocol      ┌──────────────────┐│   Claude Code   │ ◄──────────────────► │  Perplexity      ││   (Your IDE)    │                       │  Comet MCP       │└─────────────────┘                       └────────┬─────────┘                                                   │                                          Chrome DevTools                                            Protocol                                                   │                                          ┌────────▼─────────┐                                          │  Comet Browser   │                                          │  (Perplexity)    │                                          └──────────────────┘                                                   │                                          ┌────────▼─────────┐                                          │   External       │                                          │   Websites       │                                          └──────────────────┘

Key Components

ComponentPurpose
index.tsMCP server and tool handlers
cdp-client.tsChrome DevTools Protocol client with reconnection logic
comet-ai.tsPerplexity interaction, prompt submission, response extraction
types.tsTypeScript interfaces for tabs, state, and CDP types

Configuration

Environment Variables

VariableDescriptionDefault
COMET_PATHCustom path to Comet executableAuto-detected
COMET_PORTCDP debugging port9223

Custom Comet Path

bash
# Windowsset COMET_PATH=C:\Custom\Path\comet.exe
# macOS/Linuxexport COMET_PATH=/custom/path/to/Comet.app/Contents/MacOS/Comet

Troubleshooting

Connection Issues

Problem: Error: Failed to list targets: ECONNREFUSED

Solutions:

  1. Ensure Comet browser is installed
  2. Close any existing Comet instances
  3. Run comet_connect to auto-start with correct flags

Problem: WebSocket connection closed during long tasks

Solution: This version handles reconnection automatically. If persistent, increase timeout:

comet_ask prompt="..." timeout=180000

Windows-Specific Issues

Problem: ECONNRESET errors on Windows

Solution: This version includes PowerShell-based fetch workarounds. Ensure:

  1. PowerShell is available in PATH
  2. No firewall blocking localhost:9223

Problem: Comet not found on Windows

Solution: Set custom path:

bash
set COMET_PATH=%LOCALAPPDATA%\Perplexity\Comet\Application\comet.exe

WSL-Specific Issues

Problem: WSL cannot connect to Windows localhost:9223

Explanation: WSL2 uses a separate network namespace by default. The MCP uses Chrome DevTools Protocol (CDP) which requires WebSocket connections to Windows localhost.

Solution: Enable WSL mirrored networking:

  1. Create or edit %USERPROFILE%\.wslconfig (e.g., C:\Users\YourName\.wslconfig):
ini
[wsl2]networkingMode=mirrored
  1. Restart WSL:
powershell
wsl --shutdown
  1. Open a new WSL terminal and try again.

Alternative: Run Claude Code from Windows PowerShell instead of WSL.


Problem: UNC paths are not supported warnings

Explanation: This is a benign warning from PowerShell when launched from WSL. The MCP handles this automatically.


Tab Management Issues

Problem: Cannot close - this is the only browsing tab

Explanation: This is intentional protection. Comet requires at least one external tab. Open another tab first, then close the unwanted one.


Development

Build from Source

bash
git clone https://github.com/RapierCraft/perplexity-comet-mcp.gitcd perplexity-comet-mcpnpm installnpm run build

Run in Development

bash
npm run dev

Run Tests

bash
npm test

Project Structure

perplexity-comet-mcp/├── src/│   ├── index.ts        # MCP server entry point│   ├── cdp-client.ts   # CDP connection management│   ├── comet-ai.ts     # AI interaction logic│   └── types.ts        # TypeScript definitions├── dist/               # Compiled JavaScript├── package.json├── tsconfig.json└── README.md

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before submitting a pull request.

Development Guidelines

  1. Maintain TypeScript strict mode compliance
  2. Add tests for new features
  3. Update documentation for API changes
  4. Follow existing code style

Attribution

This project is an enhanced fork of comet-mcp by hanzili.

Key Enhancements by RapierCraft

  • Windows and WSL platform support
  • Tab management system (comet_tabs tool)
  • Smart completion detection
  • Auto-reconnect with exponential backoff
  • Health check caching
  • Agentic prompt auto-transformation
  • Last tab protection
  • Internal tab filtering

License

MIT License - see LICENSE for details.


Links


Built with precision by RapierCraft

Source: README.md at commit c3ce9c4

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v2.5.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Alterlab integrations