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 🙏

© 2026 – Pkg Stats / Ryan Hefner

ira-researcher

v2.0.0

Published

The most powerful browser automation MCP server — 40 tools, ghost effects, stealth mode, DevTools access. Powered by Neural Nexus Tech (https://neuralnexustech.com/)

Downloads

1,233

Readme

🔬 IRA-RESEARCHER — Browser Automation MCP Server

MCP browser server for Claude, Cursor, Copilot, OpenCode, and any MCP-compatible AI tool. 40 tools, ghost panel, stealth mode, full DevTools access. No API keys needed.

Powered by Neural Nexus Tech

Tags: mcp server mcp browser browser automation puppeteer mcp claude browser cursor mcp ai agent browser mcp tools headless browser web scraping mcp devtools mcp ghost panel

✨ What is this?

IRA-RESEARCHER is an MCP (Model Context Protocol) server that gives AI assistants full control of a Chrome browser. It works with Claude Desktop, Claude Code, Cursor, VS Code Copilot, OpenCode, Windsurf, Aider, Cline, and any tool that supports MCP.

  • 40 tools — navigate, click, type, screenshot, read pages, inspect elements, run JavaScript, intercept requests, and more
  • 👻 Ghost panel — real-time overlay showing every action in the browser
  • 🛡️ Stealth mode — anti-detection evasions to avoid bot blocks
  • 🔧 Full DevTools — console, network, performance, storage, accessibility audit
  • 🏃 Auto browser launch — opens Chrome automatically, no extension needed
  • 🔑 Zero API keys — runs locally, no cloud dependency

📋 Quick Start (2 steps)

Option A: Run from npm (easiest)

npm install -g ira-researcher

Then add to your MCP config:

{
  "mcpServers": {
    "ira-researcher": {
      "command": "ira-researcher",
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

Option B: Run from source

git clone https://github.com/neuralnexustech/IRA-RESEARCHER.git
cd IRA-RESEARCHER
npm install
npx puppeteer browsers install chrome

Then add to your MCP config (replace path):

{
  "mcpServers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

Add to Any MCP Client

.cursor/mcp.json — add to the mcpServers object:

{
  "mcpServers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

Run in terminal:

claude mcp add ira-researcher node C:\path\to\IRA-RESEARCHER\src\index.js --env IRA_HEADLESS=false --env IRA_WINDOW=maximize --env IRA_GHOST=true

Or manually edit ~/.claude/mcp.json:

{
  "mcpServers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

Project root opencode.json:

{
  "mcp": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

.vscode/mcp.json:

{
  "servers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

VS Code Settings → Extensions → Cline → MCP Servers → Add:

{
  "ira-researcher": {
    "command": "node",
    "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
    "env": {
      "IRA_HEADLESS": "false",
      "IRA_WINDOW": "maximize",
      "IRA_GHOST": "true"
    }
  }
}

.windsurfrules or MCP settings:

{
  "mcpServers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

.aider.conf.yml:

mcp-servers:
  ira-researcher:
    command: node
    args:
      - "C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"
    env:
      IRA_HEADLESS: "false"
      IRA_WINDOW: "maximize"
      IRA_GHOST: "true"

Or via CLI:

aider --mcp-server ira-researcher node C:\path\to\IRA-RESEARCHER\src\index.js

~/.config/zed/settings.json → add to context_servers:

{
  "context_servers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

Any MCP-compatible tool uses this JSON:

{
  "mcpServers": {
    "ira-researcher": {
      "command": "node",
      "args": ["C:\\path\\to\\IRA-RESEARCHER\\src\\index.js"],
      "env": {
        "IRA_HEADLESS": "false",
        "IRA_WINDOW": "maximize",
        "IRA_GHOST": "true"
      }
    }
  }
}

3. Use

The 43 tools appear automatically: ira_navigate, ira_click, ira_screenshot, etc.

🧰 Tools (43)

| Category | Tools | |---|---| | Navigation | ira_navigate, ira_go_back, ira_go_forward, ira_reload | | Interaction | ira_click, ira_type, ira_hover, ira_drag, ira_upload, ira_select, ira_keyboard | | Vision & Reading | ira_screenshot, ira_element_screenshot, ira_extract_images, ira_get_state, ira_read_page, ira_find, ira_extract_text, ira_extract_table, ira_get_html | | Tabs | ira_tabs, ira_switch_tab, ira_close_tab, ira_new_tab | | Debug & DevTools | ira_console, ira_network, ira_javascript, ira_inspect_element, ira_get_styles, ira_performance, ira_storage, ira_network_timing, ira_audit_accessibility | | Utility | ira_wait, ira_scroll, ira_set_viewport, ira_cookies, ira_pdf, ira_intercept | | Instance Management | ira_shutdown, ira_instances, ira_kill_instance, ira_kill_all | | Health & Status | ira_health |

⚙️ Environment Variables

| Variable | Default | Description | |---|---|---| | IRA_HEADLESS | false | Run browser in headless mode | | IRA_WINDOW | auto | Window sizing: maximize, auto (detect screen), or WxH like 1280x800 | | IRA_GHOST | true | Enable ghost overlay UI | | IRA_STEALTH | true | Enable anti-detection measures | | IRA_PROXY | `` | Proxy URL or comma-separated pool | | IRA_PROXY_ROTATE | false | Auto-rotate proxies randomly | | IRA_DEBUG | false | Enable verbose debug logging |

Window visibility: Set IRA_HEADLESS=false + IRA_WINDOW=maximize to open a maximized, focused Chrome window on Windows. The browser auto-detects your screen work area and uses --start-maximized to bypass OS focus-steal blocks.

👻 Ghost Effects

When enabled, a floating panel appears on the right side of the browser showing all actions in real-time:

  • ▶️ Action (green) — navigation, clicks
  • 💭 Thought (orange) — reasoning
  • ✅ Success (green) — completed actions
  • ❌ Error (red) — failures
  • 🟠 Click ripples — orange expanding circles at click points
  • 🟢 Typing glow — green glow on active input fields
  • 🔴 Drag arrows — animated SVG path from start to end
  • 📸 Screenshot flash — brief white flash

Toggle panel: Ctrl+Shift+I

📁 Project Structure

IRA-RESEARCHER/
├── src/
│   ├── index.js              ← Entry point (43 tools, auto-recovery)
│   ├── pipeline.js           ← Middleware: logging, timing, error wrapping
│   ├── browser.js            ← Single Chrome instance + reuse + registry
│   ├── utils.js              ← Shared helpers (textResult, ghost effects)
│   ├── tools/                ← 43 tools (10 files)
│   │   ├── navigation.js     ← 4 tools
│   │   ├── interaction.js    ← 7 tools
│   │   ├── vision.js         ← 3 tools
│   │   ├── reading.js        ← 6 tools
│   │   ├── tabs.js           ← 4 tools
│   │   ├── debug.js          ← 3 tools
│   │   ├── devtools.js       ← 6 tools
│   │   ├── utility.js        ← 7 tools (wait, scroll, set_viewport, cookies, pdf, intercept, shutdown)
│   │   ├── selectors.js      ← Shared element selectors
│   │   └── status.js         ← 1 tool (ira_health)
│   └── ghost/index.js        ← Ghost effects
├── package.json
└── README.md