Skip to main content
Glama

agentgo-mcp

The MCP server for AgentGo, the browser your AI agent drives. MIT licensed.

AgentGo is a real Chromium browser for Windows 11, built for agents. This repository is the part your agent talks to: the MCP server, the local control protocol it speaks to the browser, the command registry and the policy types. The browser itself lives in the main repository.

  • Compact pages. browser_open and browser_read return a short outline: headings plus interactive elements as [ref] role "name".

  • Only what changed. browser_act and browser_batch use real mouse and keyboard input, wait for the page to settle, and reply with the diff, not the whole page again.

  • The human stays in charge. Payments and final submissions come back as approval.required; the agent calls browser_wait_human and you approve in the browser.

  • Accounts without tokens. browser_account calls the APIs of accounts you linked, without the agent ever holding a token.

  • Built for single-page apps. Repeated buttons say which row they belong to, a reference that a re-render moved to another item heals or fails loudly instead of clicking the wrong row, browser_act {action: "scroll", until} scrolls a long or virtual list in one call, browser_wait takes named conditions (enabled, gone, text), and any action can say what must happen (expect).

  • GoMini. When the on-device model is on, browser_delegate hands it routine steps.

On 24 BrowserGym MiniWoB++ tasks with the same model, AgentGo solved 22, browser-use 19 and Playwright MCP 18 (method and results). With 0.1.6, on 37 tasks including 14 single-page apps and all four browsers running at the same time: AgentGo with GoMini v6 solved 37, AgentGo 37, browser-use 35 and Playwright MCP 31, with AgentGo using 95-114k input tokens per task against 227-306k (0.1.6 results).

Tools

browser_open, browser_read, browser_act, browser_batch, browser_wait, browser_tabs, browser_screenshot, browser_wait_human, browser_guide, browser_account, browser_call, plus browser_delegate when GoMini is on.

Related MCP server: Ghostlight

Use it

Install AgentGo from the latest release. Its installer connects Claude Code, Codex or Droid for you, using agentgo mcp.

Claude Code plugin: the server and the agent guide in one step.

/plugin install agentgo --marketplace Moha2005269/agentgo-mcp

Claude Desktop: open agentgo-mcp-0.1.6.mcpb to install it as an extension.

MCP Registry: listed as io.github.Moha2005269/agentgo.

To run this server from source instead:

cargo build --release -p agentgo-mcp --bin agentgo-mcp

Then point your MCP client at target/release/agentgo-mcp. It attaches to the newest running AgentGo, or starts agentgo from PATH (set AGENTGO_EXE to use another path).

{ "mcpServers": { "agentgo": { "command": "C:\\path\\to\\agentgo-mcp.exe" } } }

Offline mode

agentgo-mcp-offline builds on any OS and answers initialize and tools/list with the real tool list, with no browser behind it. Tool calls explain where to get AgentGo. It exists so MCP directories can check the server; the Dockerfile builds it.

Data

AgentGo is a browser, so the pages your agent opens and the forms it submits go to those websites, as they would from any browser. Nothing goes to us: no telemetry, no accounts, and your profile (history, cookies, saved sign-ins) stays on your computer. Payments and final submissions wait for your approval. See PRIVACY.md and the browser's network calls.

Layout

Crate

What it is

crates/agentgo-mcp

The stdio MCP server and the protocol client

crates/agentgo-protocol

Message envelopes, framing, versions, typed errors

crates/agentgo-shell-bridge

The registry of browser commands

crates/agentgo-policy

Modes, risk levels, scopes, prompt-injection checks

skills/agentgo

The agent guide served by browser_guide

Tests: cargo test --workspace.

This repository mirrors the same crates in the main AgentGo repository, where they are developed.

License

MIT, see LICENSE. The AgentGo browser itself is under the Business Source License 1.1.

Available Tools

11 tools
browser_accountA

Use the accounts the person linked for you in the Account Center. op=accounts lists them (linked or not); op=apis lists the APIs you can call; op=call sends one API request as the account (connector, method, path, body) without you ever holding a token; op=sign_in has the browser type the saved sign-in into the current page's login form. If an account is not linked you get policy.denied: ask the person to link it, do not work around it.

Inputs: op (required), body, path, tabId, +3 more.

browser_actA

Act on an element by ref with real input, wait for the page to settle, and get back only what changed. action: click, fill (text), press (key), check, uncheck, select (value, or values for a multiple list), hover, scroll (to: top|bottom, or ref; until: a text to scroll to, in the page or ref's list), type (text at focus), upload (paths). Add submit:true to fill to press Enter; expect {gone, shows, enabled, url, changes} must hold after, or it fails. If the reply is approval.required or handoff.required, call browser_wait_human.

Inputs: action (required), to, key, ref, +8 more.

browser_batchA

Run several browser_act steps in order in one call (e.g. fill a whole form and click Save; {action:"wait", ms} pauses). Stops at the first failure. Returns the final change set.

Inputs: steps (required).

browser_callB

Call any other AgentGo protocol method directly (cookies, downloads, PDF, dialogs, network log, workflow.collect ...). browser_call {method:"browser.capabilities"} lists them.

Inputs: method (required), params.

browser_guideA

How to use this browser, when you are unsure. topic=start: the loop, rules that save turns, errors (short). topic=skill: the full guide. topic=commands: find commands: pass query (words, e.g. "selector click") for the matching ones, or group for one section (open, read, act, batch, accounts, person, browser; all = every command, about 25,000 tokens). topic=gomini: GoMini, the optional local model that takes routine steps, and how to phrase subgoals for it.

Inputs: group, query, topic.

browser_openA

Go to a URL (or search Google with plain words), wait for the load, and return the page as a compact outline: headings plus interactive elements as [ref] role "name". Use the refs with browser_act.

Inputs: url (required), view.

browser_readA

Read the current page. view: page (outline with refs, default), text (readable content, text boxes and code included), links, forms, tables, meta. filter keeps matching lines; offset and max count lines.

Inputs: max, view, filter, offset.

browser_screenshotA

Screenshot the page (or one element by ref) and return the image. Costs many tokens: prefer browser_read unless you need to see layout, images or a canvas.

Inputs: ref, fullPage.

browser_tabsC

Manage your tabs. op: list, new (url), switch (tabId), close (tabId), back, forward, reload.

Inputs: op (required), url, tabId.

browser_waitA

Wait until text appears, a selector is visible, a selector or text is gone, the URL contains a string, or ref enabled is usable; returns what changed. ms: just pause. No condition: waits for load.

Inputs: ms, gone, text, enabled, +3 more.

browser_wait_humanB

Wait for the human operator: pass approvalId after approval.required, or nothing after handoff.required (CAPTCHA, login). Never try to solve a CAPTCHA yourself.

Inputs: timeout, approvalId.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 11 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes: reading, acting, waiting, navigation, screenshots, tabs, accounts, and human handoff are separable. Minor overlap exists between browser_act and browser_batch (batch runs multiple acts), between browser_open and browser_tabs op=new (both can open a URL), and browser_call acts as a wildcard that could duplicate any dedicated tool.

    Naming Consistency4/5

    All tool names use a consistent browser_ prefix and snake_case, making the set easy to scan. The only minor inconsistency is that some names are verb-led (browser_read, browser_act) while others are noun-led (browser_tabs, browser_account), but the pattern remains predictable.

    Tool Count5/5

    Eleven tools is well within the typical 3-15 range and each tool covers a meaningful part of browser automation. The set avoids redundancy while still offering specialized tools like batch, wait_human, and account handling.

    Completeness5/5

    The surface covers the full browser lifecycle: open/navigate, read, act, batch actions, wait, screenshot, tab management, accounts, and human handoff. browser_call provides a documented escape hatch for any protocol method not exposed as a dedicated tool, so there are no obvious dead ends.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Agent-native browser control MCP server that enables AI agents to browse and interact with web pages via accessibility tree snapshots and ref ID-based commands.
      15
      2
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      MCP server that lets AI agents drive your real Chromium browser with your existing signed-in sessions, providing visible, local, and inspectable automation for tasks like navigation, clicking, typing, and form filling.
      25
      1
      Apache 2.0
    • F
      license
      Not graded
      quality
      C
      maintenance
      MCP server that wraps agent-browser to let LLMs control a real browser, providing tools for navigation, interaction, reading page content, accessibility snapshots, screenshots, and session management.
      1
      -
    • F
      license
      A
      quality
      B
      maintenance
      An MCP server that enables remote observation and control of a Chromium browser via a WebSocket relay, supporting DOM, CDP, and native OS automation for local or LAN-based AI agents.
      8
      -