MCP Hub
Back to servers

@onestepat4time/asteria

Requires Setup

MCP server for Perplexity Comet browser management

npm90/wk
Stars
2
Updated
Apr 11, 2026
Validated
Apr 13, 2026

Quick Install

npx -y @onestepat4time/asteria

Asteria Banner

version CI license coverage node MCP platform

Give any AI agent direct control over Perplexity Comet via the Model Context Protocol.


How It Works

Asteria is an MCP server that bridges AI assistants with Perplexity Comet — the agentic browser that researches, browses, and answers questions autonomously. Unlike simple search APIs, Comet navigates pages, follows links, and reasons over live web content. Asteria exposes all of that through 13 MCP tools via Chrome DevTools Protocol (CDP), with no Puppeteer or Playwright dependencies.

graph LR
  A["AI Agent\n(Claude / GPT / Gemini)"] -->|"MCP stdio"| B["Asteria\nMCP Server"]
  B -->|"CDP WebSocket"| C["Perplexity\nComet Browser"]
  C -->|"HTTP requests"| D["Web Pages\n& Sources"]
  D -->|"Response + Sources"| C
  C -->|"Research results"| B
  B -->|"Formatted response"| A

The agent sends a prompt through MCP. Asteria connects to Comet over CDP, submits the query, monitors Comet's agentic research cycle, and returns the full response with cited sources.


Features

FeatureDescription
🔌13 MCP toolsConnect, ask, poll, wait, stop, screenshot, mode switch, tab management, source extraction, conversation history, page content
Non-blocking pollingSubmit a prompt and poll for completion — the agent keeps working while Comet researches
Blocking waitcomet_wait blocks until Comet finishes, ideal when comet_ask times out mid-response
🔍Auto-detect CometFinds Comet on Windows, macOS, and Linux; launches it with the correct debug port
🔄Auto-reconnectExponential backoff with health checks — survives Comet restarts without dropping the session
🧠Version-aware selectorsAuto-detects Comet's Chrome version and routes to the correct CSS selectors
📑Tab categorizationTracks main, sidecar, agent-browsing, and overlay tabs separately
🚫Zero browser dependenciesNo Puppeteer or Playwright — uses CDP directly via chrome-remote-interface
🛠️CLI includedasteria detect to check installation, asteria snapshot to capture DOM structure

Requirements

  • Node.js >= 18
  • Perplexity Comet installed and running
  • Windows, macOS, or Linux (Linux requires setting COMET_PATH)

Installation

npm install -g @onestepat4time/asteria

Quick Start

1. Add to your MCP client config

Claude Code (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "asteria": {
      "type": "stdio",
      "command": "asteria",
      "args": ["start"]
    }
  }
}

Cursor (~/.cursor/mcp.json) — same format.

2. Make sure Comet is running

Open Perplexity Comet on your machine. Asteria auto-detects the running instance.

3. Use in your agent

> Ask Perplexity what the latest AI research papers are this week

Asteria connects to Comet, sends the query, waits for the full research response, and returns it with cited sources to your assistant.


Tools

ToolDescriptionDocs
comet_connectConnect to or launch Perplexity CometReference
comet_askSend a prompt and start an agentic searchReference
comet_pollCheck current agent status, steps, and response contentReference
comet_waitBlock until the agent finishes responding; use after comet_ask times outReference
comet_stopStop the currently running agentReference
comet_screenshotCapture a screenshot of the active tabReference
comet_modeGet or switch the search mode (standard, deep-research, model-council, etc.)Reference
comet_list_tabsList all open tabs by category (main, sidecar, agent-browsing, overlay)Reference
comet_switch_tabSwitch focus to a specific tab by ID or titleReference
comet_get_sourcesExtract cited sources from the current responseReference
comet_list_conversationsList recent conversation links visible on the pageReference
comet_open_conversationNavigate to a specific conversation URLReference
comet_get_page_contentExtract full text from the active pageReference

CLI

asteria start      # Start MCP stdio server
asteria detect     # Detect Comet installation path and debug port
asteria --version  # Print version
asteria --help     # Print help

Configuration

All settings can be overridden via environment variables:

VariableDefaultDescription
ASTERIA_PORT9222CDP debug port
COMET_PATHauto-detectPath to Comet executable
ASTERIA_LOG_LEVELinfoLog level: debug / info / warn / error
ASTERIA_TIMEOUT30000Comet launch timeout (ms)
ASTERIA_RESPONSE_TIMEOUT180000Max wait for response (ms)
ASTERIA_POLL_INTERVAL1000Status poll interval (ms)
ASTERIA_SCREENSHOT_FORMATpngScreenshot format: png / jpeg
ASTERIA_MAX_RECONNECT5Max reconnection attempts
ASTERIA_RECONNECT_DELAY5000Max reconnection backoff delay (ms)

See Configuration for the full reference.


Guides

GuideDescription
Tool ReferenceAll 13 tools with parameters, return values, and examples
Integration GuideSet up with Claude Code, Cursor, or custom MCP clients
ConfigurationEnvironment variables and config files
TroubleshootingCommon issues and error codes
ArchitectureHow Asteria works internally

Architecture

graph TD
  subgraph MCP["MCP Protocol Layer"]
    T1[comet_connect] & T2[comet_ask] & T3[comet_poll]
    T4[comet_wait] & T5[comet_stop] & T6[comet_screenshot]
    T7[comet_mode] & T8[comet_list_tabs] & T9[comet_switch_tab]
    T10[comet_get_sources] & T11[comet_list_conversations]
    T12[comet_open_conversation] & T13[comet_get_page_content]
  end

  subgraph UI["UI Automation"]
    S[Selector Strategies]
    I[Prompt Input]
    ST[Status Detection]
    EX[Content Extraction]
  end

  subgraph CDP["CDP Transport"]
    BR[Browser Launcher]
    CO[WebSocket Connection]
    TA[Tab Management]
    RC[Auto-Reconnect]
  end

  T2 --> I
  T3 --> ST
  T4 --> ST
  T10 & T13 --> EX
  T6 & T8 --> TA
  I & ST & EX --> S
  CO --> BR
  TA & RC --> CO
  CO --> Comet[Perplexity Comet]

Roadmap

  • Streaming responses — stream Comet responses token-by-token instead of polling
  • MCP Resources — expose Perplexity pages as MCP resources for direct reading
  • Multi-Comet sessions — control multiple Comet instances simultaneously
  • HTTP/SSE transport — support N8N and REST clients in addition to stdio
  • Browser extension — package as a browser extension for tighter integration

Contributing

Contributions are welcome. Open an issue before submitting large PRs.

git clone https://github.com/OneStepAt4time/asteria.git
cd asteria
npm install
npm run build
npm test

See Contributing for code style, adding Comet versions, and commit conventions.


Support the Project

If Asteria saves you time, consider sponsoring:

GitHub Sponsors   Ko-fi


License

MIT © 2026 OneStepAt4time

Reviews

No reviews yet

Sign in to write a review