Perplexity Comet Mcp

io.github.RapierCraft由 GitHub 账号 RapierCraft 发布v2.5.0更新于 Oct 25, 2026

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

发布方自己的服务:Alterlab

概览

AI 生成的概览

一个本地 MCP 服务器,将 Claude Code 与 Perplexity Comet 浏览器连接,让助手执行自主浏览、研究和标签页管理。

可以做什么
连接并启动 Comet 浏览器,支持自动重连和健康检查,并可在任务偏离时停止任务。向 Comet 发送提示并轮询进度或最终回复,包括对网址的自主浏览和数据提取。在 search、research、labs 和 learn 之间切换 Perplexity 模式。列出、切换和关闭浏览器标签页,并保护最后一个标签页。截取当前浏览器视图的屏幕截图。将本地文件上传到网页的文件输入元素。
适用场景
适合希望助手在真实且已登录的浏览器会话中研究网络或操作网站、同时自己继续写代码的场景,包括多标签页工作流以及通过网页表单发布或附加文件。
运行要求
以本地进程方式通过 npm 运行(需要 Node.js 18 或更高版本),并需要安装 Perplexity Comet 浏览器以及兼容的 MCP 客户端(如 Claude Code)。可选环境变量 COMET_PATH(自定义浏览器可执行文件路径)和 COMET_PORT(Chrome DevTools Protocol 端口,默认 9223)。在 WSL 下可能需要镜像网络才能访问 Windows 的 localhost 端口。
安装前请注意
该服务器操作真实浏览器会话,因此可能作用于已登录账户,进行导航、点击、输入和提交表单,并上传你提供路径的本地文件。它可以关闭标签页,但最后一个浏览标签页受保护。浏览活动和页面内容会经过 Perplexity 的 Comet 浏览器和外部网站。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Perplexity Comet Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 c3ce9c4

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v2.5.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Alterlab 集成