Skip to main content
Glama

BrowserLemon 🍋

An open-source browser bridge that lets AI control your local Chrome's current logged-in session via MCP. It focuses on social media draft creation and publish flows after user approval.

Early MVP: Do not publish to production accounts without direct review. Element refs may become invalid as site UIs change.

Features

  • MCP standard input/output (stdio) server

  • Uses already-logged-in Chrome tabs: cookies and passwords are never copied to the MCP server

  • Page summary, tab list, navigation, click, input

  • draft_social_post and publish_social_post which requires explicit confirmed=true

  • Localhost-only WebSocket and publish domain allowlist

  • MIT license

Related MCP server: Tabryn

Installation

npm install
npm run build

In Chrome, go to chrome://extensions → Developer mode → Load unpacked → select the extension folder in this repository.

MCP client configuration example:

{
  "mcpServers": {
    "browserlemon": {
      "command": "node",
      "args": ["/absolute/path/to/browserlemon/dist/index.js"]
    }
  }
}

After restarting the MCP client, click the BrowserLemon icon in the Chrome toolbar. When the badge shows ON, you are connected.

  1. Check the connection with browser_status

  2. Use list_tabs and read_page to confirm the target and composer ref

  3. Enter text with draft_social_post

  4. The user reviews the content in the browser

  5. Only call publish_social_post(confirmed=true) when the user has explicitly approved

Security Model

The extension runs with the user's browser permissions, so it is powerful. Run the server only from a trusted local MCP client. The bridge binds only to 127.0.0.1, and password input values are excluded from page snapshots. However, page bodies may contain personal information, so you should also review the data policy of the AI service you connect to.

Supported publish domains: X/Twitter, LinkedIn, Facebook, Instagram, Threads, Bluesky, Mastodon.social. Reading and draft input work on general http(s) pages as well.

Contributing

Bug reports and PRs are welcome. Next priorities are per-site adapters, image upload, scheduled publishing, audit logs, and finer-grained extension permissions.

Available Tools

8 tools
browser_statusA

Check whether the local Chrome extension is connected.

Inputs: no named parameters.

clickA

Click a visible element identified by the ref returned from read_page.

Inputs: ref (required), tabId.

draft_social_postB

Fill a social-media composer without publishing. Call read_page first and pass its composer ref.

Inputs: text (required), composerRef (required), tabId.

list_tabsA

List normal Chrome tabs. URLs are returned only to the local MCP client.

Inputs: no named parameters.

open_urlA

Open an http(s) URL in the active tab or a new tab.

Inputs: url (required), newTab.

publish_social_postC

Click a publish button on an allowlisted social site. Requires confirmed=true after the user has reviewed the draft.

Inputs: confirmed (required), publishButtonRef (required), tabId.

read_pageA

Read a compact accessibility-oriented snapshot of the active tab. Sensitive input values are omitted.

Inputs: tabId, maxChars.

type_textA

Type into a visible editable element. Existing text is replaced by default.

Inputs: ref (required), text (required), tabId, append.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 8 tools

    Disambiguation4/5

    Each tool has a generally distinct purpose: status, tab listing, page reading, navigation, typing, clicking, and social composing/publishing. There is mild overlap between type_text and draft_social_post, and click could theoretically be used in place of publish_social_post, but the descriptions clarify the intended specialized use.

    Naming Consistency3/5

    Most tools follow a verb_noun snake_case pattern (list_tabs, read_page, open_url, type_text, draft_social_post, publish_social_post), but browser_status is a noun phrase and click is a bare verb. The naming is readable and consistently lowercase, but the pattern is not uniform.

    Tool Count5/5

    Eight tools is well-scoped for a browser automation assistant. Each tool has a clear role with no obvious filler or redundant duplicates, making the count appropriate for the server's purpose.

    Completeness3/5

    The set covers core browsing actions like open, read, type, click, plus a guarded social-posting workflow. However, it lacks standard browser controls such as switching or closing tabs, scrolling, refreshing, and waiting for page conditions, which are notable gaps for browser automation.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Connects AI agents to your Chrome browser via MCP, enabling real-time control of existing tabs, sessions, and application state for development workflows.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables any MCP-compatible AI agent to drive your own Chrome browser with your existing login state, filling forms, clicking elements, fetching data, and handling captchas without API keys or re-authentication.
      1,119 npm
      587
      MIT