Atlas / MCP servers / rapiercraft / Perplexity Comet

Perplexity CometBLOCK

mcp/rapiercraft/perplexity-comet

MCP server connecting Claude Code to Perplexity Comet browser. Autonomous web browsing, agentic research, multi-tab management. Windows/WSL/macOS support. Smart completion detection, auto-reconnect, tab protection. Enhanced fork with 7 tools including comet_tabs.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
8 5r · 3w · 0d
Transport
stdio
License
MIT
Stars
51
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/perplexity-comet-mcp) [](https://opensource.org/licenses/MIT) [](https://nodejs.org) [](https://www.typescriptlang.org/) [](https://modelcontextprotocol.io/) []()

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?

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)

Read from source at commit 21356ef0c107OBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add perplexity-comet-mcp -- npx -y [email protected]
03

Exposed tools (8)

5 read · 3 write · 0 destructive.

ToolRiskDescription
comet_askwriteSend a prompt and get response
comet_connectreadConnect to Comet browser
comet_modereadSwitch Perplexity mode
comet_pollreadCheck agent status
comet_screenshotreadCapture screenshot
comet_stopwriteStop current task
comet_tabsreadManage browser tabs
comet_uploadwriteUpload a file to a file input on the current page
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (8 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (21)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/upload-validator.ts:103
resolvePath(home, ".netrc"),
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/upload-validator.ts:105
resolvePath(home, ".git-credentials"),
Why it matters. touches a credential store
MEDIUMFilesystem / path · fs.system_paths · CWE-22, CWE-59
src/upload-validator.ts:114
"/etc/shadow",
MEDIUMFilesystem / path · fs.system_paths · CWE-22, CWE-59
src/upload-validator.ts:115
"/etc/sudoers",
MEDIUMFilesystem / path · fs.system_paths · CWE-22, CWE-59
src/upload-validator.ts:116
"/etc/passwd",
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/cdp-client.ts:390
`--remote-allow-origins=http://127.0.0.1`,
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/cdp-client.ts:1141
`http://127.0.0.1:${port}/json/version`,
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/cdp-client.ts:1205
`http://127.0.0.1:${port}/json/version`,
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/cdp-client.ts:1331
`http://127.0.0.1:${port}/json/version`,
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/cdp-client.ts:1360
`http://127.0.0.1:${port}/json/version`,
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
tests/unit/upload-validator.test.ts:100
it("blocks ~/.ssh/id_rsa", () => {
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
tests/unit/upload-validator.test.ts:101
mockFile("/home/testuser/.ssh/id_rsa");
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
tests/unit/upload-validator.test.ts:102
expect(() => validateUploadPath("~/.ssh/id_rsa")).toThrow(/sensitive path/);
Why it matters. touches a credential store
LOWFilesystem / path · fs.system_paths · CWE-22, CWE-59
tests/unit/upload-validator.test.ts:113
mockFile("/etc/shadow");
LOWFilesystem / path · fs.system_paths · CWE-22, CWE-59
tests/unit/upload-validator.test.ts:114
expect(() => validateUploadPath("/etc/shadow")).toThrow(/sensitive path/);
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/unit/cdp-client.lifecycle.test.ts:5
} from "../../src/cdp-client.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/unit/cdp-client.screenshot.test.ts:2
import { captureScreenshotWithFallback } from "../../src/cdp-client.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/unit/comet-ai.test.ts:2
import { CometAI } from "../../src/comet-ai.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/unit/fakes/fake-cdp-client.ts:6
import type { CometAIClient } from "../../../src/comet-ai.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/unit/fakes/fake-cdp-client.ts:7
import type { CDPTarget, EvaluateResult } from "../../../src/types.js";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, chrome-remote-interface, @types/chrome-remote-interface, @types/jsdom, @types/node, jsdom, typescript, vitest
Why it matters. 8 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 21356ef0c107full audit observations/trust-audit/mcp-server/rapiercraft__perplexity-comet.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-0821356ef0c107BLOCKD69first audit
06

Questions

What is the Perplexity Comet MCP server?

MCP server connecting Claude Code to Perplexity Comet browser. Autonomous web browsing, agentic research, multi-tab management. Windows/WSL/macOS support. Smart completion detection, auto-reconnect, tab protection. Enhanced fork with 7 tools including comet_tabs.

What tools does Perplexity Comet expose?

8 in total: 5 read-only, 3 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Perplexity Comet safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does Perplexity Comet need?

It reads COMET_BRIDGE_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Perplexity Comet run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as perplexity-comet-mcp at 2.6.2.

How current is this page?

The grade is for one exact copy of the source (21356ef0c107), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement