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

llm-in-chrome-mcp

v1.0.0

Published

MCP Server for LLM in Chrome - browser automation without exposing individual tools

Readme

LLM in Chrome MCP Server

Give Claude Code a browser agent that handles web tasks autonomously.

Why This Exists

When you need to interact with the web, you have two options:

1. Low-Level Browser Tools (Playwright MCP, browser-use, etc.)

Claude: I'll click the login button
Claude: Now I'll type the username
Claude: Now I'll click submit
Claude: The page changed, let me screenshot
Claude: I see an error, let me try again
... 50 more tool calls ...

Every click, every keystroke, every navigation is a separate tool call. You're doing the browsing yourself.

2. This MCP Server (High-Level Agent)

Claude: browser_start("Log into my account and download the invoice")
Claude: browser_status → { status: "running", step: "Filling login form..." }
Claude: browser_status → { status: "complete", result: "Downloaded invoice.pdf" }

You delegate the entire task. The agent handles all browser interaction.

Tools

| Tool | Description | |------|-------------| | browser_start | Start a new task. Returns session_id for tracking. | | browser_message | Send follow-up instructions to a running task. | | browser_status | Check progress. Works for single task or all tasks. | | browser_stop | Stop a task and get partial results. | | browser_screenshot | Capture current browser state. |

Parallel Execution

Run multiple tasks simultaneously:

session1 = browser_start("Search for flights to Tokyo")
session2 = browser_start("Check hotel prices in Shibuya")
session3 = browser_start("Look up JR Pass costs")

# All three run in parallel
browser_status() → Shows all 3 active sessions

Multi-Turn Interaction

Send follow-up messages to guide the agent:

session = browser_start("Fill out the job application")

# Agent might need clarification
browser_status(session) → { status: "waiting", step: "What's your desired salary?" }

browser_message(session, "Put $150k")

browser_status(session) → { status: "running", step: "Completing remaining fields..." }

Session Continuation

Continue working with completed tasks - the agent retains full memory:

session = browser_start("Go to LinkedIn and find an AI Engineer job in Montreal")

# Wait for completion...
browser_status(session) → { status: "complete", answer: "Found: Applied AI Engineer at Cohere" }

# Continue with the same session - agent remembers everything
browser_message(session, "Click into that job and tell me the requirements")

browser_status(session) → { status: "complete", answer: "Requirements: 3+ years Python..." }

# Keep going
browser_message(session, "Now apply to this job using my profile")

Each session has isolated memory, so parallel tasks don't interfere with each other.

Installation

1. Install the Chrome Extension

The MCP server requires the LLM in Chrome extension to be installed and configured.

2. Install the MCP Server

cd mcp-server
npm install
npm run build

3. Configure Claude Code

Add to your Claude Code MCP config (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "browser": {
      "command": "node",
      "args": ["/path/to/llm-in-chrome/mcp-server/dist/index.js"]
    }
  }
}

Use Cases

Form Filling

browser_start("Apply for the senior engineer position on careers.example.com using my resume info")

Research

browser_start("Find the top 3 competitors for Acme Corp and summarize their pricing")

Data Extraction

browser_start("Go to my bank account and list all transactions from last month")

Multi-Step Workflows

browser_start("Log into Jira, find my open tickets, and summarize what needs attention this week")

How It Works

Claude Code → MCP Server → Native Host → Chrome Extension → Browser
                ↑                              ↓
                └──────── Status Updates ──────┘
  1. Claude Code calls browser_start with a task
  2. MCP server creates a session and sends to native host
  3. Native host relays to Chrome extension
  4. Extension's agent handles all browser interaction
  5. Status updates flow back through the chain
  6. Claude Code monitors via browser_status

Comparison with Other Tools

| Feature | This Server | Playwright MCP | browser-use | |---------|------------|----------------|-------------| | Abstraction | Task-level | Action-level | Action-level | | Tool calls per task | ~3 | ~50+ | ~50+ | | Parallel tasks | ✅ | Manual | Manual | | Multi-turn | ✅ | N/A | N/A | | Setup | Extension | Playwright | Python deps |

License

MIT