@rapidsd/thirdeye
v0.1.4
Published
Chrome extension and MCP server for faster AI-assisted development
Downloads
13
Maintainers
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
thirdeyeOne 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
- Visit
http://localhost:7654/installfor detailed instructions - Or manually:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
extension/folder from this package
- Open
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:
- Cursor sends tool call via
POST /sse - Server streams progress updates via SSE
- Extension receives request via SSE events
- Extension captures screenshot and responds
- 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 startProject 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 dependenciesAPI 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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- 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.
