npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@rapidsd/thirdeye

v0.1.4

Published

Chrome extension and MCP server for faster AI-assisted development

Downloads

13

Readme

ThirdEye Browser Tools

AI-powered Chrome extension and MCP server for webpage manipulation. Allows AI agents like Cursor to take screenshots and refresh webpages remotely.

SSE-based MCP server - connects via URL like Linear MCP, with real-time streaming for large images and progress updates.

Features

  • 📸 Screenshot Capture: Take screenshots via AI agent commands with real-time streaming
  • 🔄 Page Refresh: Refresh or navigate to pages programmatically
  • SSE-based MCP: Server-Sent Events for instant responses and progress streaming
  • 🌐 Chrome Extension: Browser extension with real-time communication
  • 🚀 Simple Setup: One server handles MCP + extension + installation
  • 📊 Progress Updates: See screenshot progress in real-time ("Taking screenshot...", "Processing...")

Quick Start

1. Start the Server

# Install and run (no global installation needed)
npx @rapidsd/thirdeye@latest

# Or install globally
npm install -g @rapidsd/thirdeye
thirdeye

One server provides all functionality:

  • 🔌 MCP SSE endpoint: http://localhost:7654/sse (for AI agents)
  • 📱 Extension API: Real-time communication with Chrome extension
  • 🌐 Installation page: http://localhost:7654/install (setup instructions)
  • ❤️ Health check: http://localhost:7654/health

2. Install Chrome Extension

  1. Visit http://localhost:7654/install for detailed instructions
  2. Or manually:
    • Open chrome://extensions/
    • Enable "Developer mode"
    • Click "Load unpacked"
    • Select the extension/ folder from this package

3. Configure Cursor (or other MCP-compatible AI tool)

Add to your Cursor MCP settings (like Linear):

{
  "mcpServers": {
    "@rapidsd/thirdeye": {
      "url": "http://localhost:7654/sse"
    }
  }
}

That's it! No command-line spawning - just a clean URL connection like Linear MCP.

Usage

Once configured, you can use these commands in Cursor:

  • "Take a screenshot of the current page"
  • "Refresh the current webpage"
  • "Navigate to https://example.com and take a screenshot"

Architecture

AI Agent (Cursor) → POST /sse → HTTP Server → SSE Events → Chrome Extension → Webpage
                 ← SSE Stream ←             ← HTTP Response ←

Real-time flow:

  1. Cursor sends tool call via POST /sse
  2. Server streams progress updates via SSE
  3. Extension receives request via SSE events
  4. Extension captures screenshot and responds
  5. Server streams final result back to Cursor

Development

Build from Source

git clone <repository>
cd thirdeye
npm install
npm run build

# Start the server:
npm start

Project Structure

thirdeye/
├── server/
│   └── index.ts              # Unified server (SSE MCP + Extension API + Installation)
├── dist/                     # Compiled JavaScript output
│   └── index.js             # Main executable
├── extension/
│   ├── manifest.json         # Chrome extension manifest
│   ├── background.js         # Service worker
│   ├── content.js           # Content script
│   ├── popup.html           # Extension popup UI
│   ├── popup.js             # Popup functionality
│   └── icons/               # Extension icons
└── package.json              # Minimal dependencies

API Reference

MCP SSE Endpoint

POST /sse

Main MCP endpoint for all tool calls with streaming responses.

Request format:

{
  "method": "tools/call",
  "params": {
    "name": "take_screenshot",
    "arguments": {}
  }
}

Response format (SSE stream):

event: progress
data: {"status":"requesting_screenshot","message":"Requesting screenshot from extension..."}

event: result  
data: {"content":[{"type":"image","data":"iVBORw0KG...","mimeType":"image/png"}]}

event: complete
data: {"done":true}

MCP Tools

take_screenshot

Takes a screenshot of the current active webpage with streaming progress.

Parameters: None (always uses active tab, always PNG format)

Returns: PNG image data with progress updates

refresh_page

Refreshes the current active webpage or navigates to a new URL.

Parameters:

  • url (optional): Navigate to this URL (if not provided, just refreshes current page)

Returns: Success confirmation

Other HTTP Endpoints

GET /api/extension-events

SSE endpoint for Chrome extension real-time communication.

GET /install

Installation page with setup instructions.

GET /health

Health check endpoint.

Troubleshooting

Server Won't Start

  • Ensure port 7654 is available
  • Check Node.js version (requires ≥18.0.0)

Extension Not Working

  • Verify server is running (http://localhost:7654/health)
  • Check Chrome extension permissions
  • Look for errors in extension console

MCP Integration Issues

  • Verify Cursor configuration points to http://localhost:7654/sse
  • Test SSE endpoint: curl -X POST http://localhost:7654/sse -H "Content-Type: application/json" -d '{"method":"tools/list","params":{}}'
  • Check Cursor's MCP server logs
  • Ensure ThirdEye server is running on port 7654

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

Business Source License 1.1 (BSL-1.1) - see LICENSE file for details.

Commercial use requires a separate license. The software will automatically become Apache 2.0 licensed on 2028-01-01.