Skip to main content
Glama
apexradius

apex-browser-mcp

by apexradius

apex-browser-mcp

Local multi-session browser MCP for real Chrome, Chromium, WebKit, and real Safari, plus attach to an already-running Chrome session without moving the work into a cloud browser.

Release posture: npm package @apexradius/browser-mcp, version 1.0.0 from package.json.

Choose your path

You are...

Start here

Then

Running the daemon or stdio server

docs/start-here.md

Quick start below

Auditing browser routing or attach behavior

docs/architecture.md

src/manager.js

Reviewing the MCP tool surface

src/server.js

src/index.js

Related MCP server: mcp-chromium-cdp

Architecture

flowchart TD
  U[AI operator] --> C[MCP client]
  C --> T[stdio or HTTP transport]
  T --> S[MCP server]
  S --> M[BrowserManager]
  M --> P[SessionPool]
  M --> F[SafariLane]
  P --> B[Chrome Chromium WebKit sessions]
  P --> D[Attached Chrome via CDP]
  F --> R[Real Safari.app session]

Request flow

flowchart TD
  A[Operator opens or attaches a browser session] --> B[Selected MCP tool]
  B --> C{New session or attach?}
  C -- new --> D[BrowserManager creates session]
  C -- attach --> E[Connect to CDP endpoint]
  D --> F[Session stored in pool]
  E --> F
  F --> G[Subsequent navigate snapshot click type evaluate tools]
  G --> H[Return text or screenshot path to MCP client]

Quick start

  1. Install dependencies and browser engines.

npm install
npx playwright install chromium webkit
  1. Start the shared HTTP daemon.

APEX_BROWSER_TRANSPORT=http node src/index.js
  1. Register it in your MCP client.

{
  "mcpServers": {
    "apex-browser": {
      "type": "http",
      "url": "http://127.0.0.1:3010/mcp"
    }
  }
}

Available tools

Tool group

Tools

Purpose

Session lifecycle

browser_new_session, browser_attach, browser_list_sessions, browser_close_session

Open, adopt, inspect, and close sessions

Navigation and state

browser_navigate, browser_snapshot

Load pages and capture indexed interactive refs

Interaction

browser_click, browser_type, browser_evaluate

Drive page interactions and execute page JS

Artifacts

browser_screenshot

Save a PNG and return its path

Runtime proof

Claim

Proof

Package entry point is stable

"apex-browser-mcp": "src/index.js" in package.json

HTTP and stdio transports are both first-class

Transport selection in src/index.js

Session routing is engine-aware

BrowserManager in src/manager.js

Tool registration is centralized

buildServer() in src/server.js

Repo map

Path

Purpose

src/index.js

Process entry point, transport selection, HTTP daemon

src/server.js

MCP tool registration and request handlers

src/manager.js

Unified routing across SessionPool and SafariLane

src/pool.js

Multi-session Playwright and CDP attach backend

src/safari.js

Real Safari.app lane

docs/start-here.md

Setup, env, validation, common failures

docs/architecture.md

Component map and runtime lifecycle

Validation

Check

Command

Core regression suite

npm test

Attached-Chrome concurrency

node test/attach-concurrent.js

README/docs links stay local

rg '\\]\\(([^)]+\\.md)\\)' README.md docs/

License

MIT

Available Tools

10 tools
browser_attachAttach to running ChromeA

Attach to a Chrome already running with --remote-debugging-port. mode: default (adopt your logged-in session — real cookies) | isolated (fresh stealthed context on the same Chrome). Returns a session id usable with all other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNodefault
cdpEndpointNohttp://127.0.0.1:9222

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides important behavioral details about the two modes (adopting logged-in session vs fresh isolated context) and mentions the return value (session id). It does not disclose safety or side effects, but the attach action is inherently non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, using two sentences to convey the purpose, mode options, and return value without extraneous information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional parameters, no output schema), the description covers the essential context: the prerequisite, mode semantics, and the returned session id. The cdpEndpoint parameter is not explained, but its default value and commonality reduce the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the 'mode' parameter with explicit meanings for each enum value, but does not describe the 'cdpEndpoint' parameter beyond its default value. Since schema coverage is 0%, the description partially compensates by clarifying one of two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool attaches to an existing Chrome instance with a specific prerequisite (--remote-debugging-port), and the verb 'attach' combined with the resource 'Chrome' makes the purpose distinct from sibling tools like browser_new_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (Chrome already running with debugging port) and describes mode options (default vs isolated), but does not explicitly state when not to use it or provide alternative tools. However, the context implies the usage boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_clickClickC

Click an element by ref from the latest snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
sessionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full transparency burden. It only states 'click an element' without disclosing potential side effects (e.g., navigation, page changes), error conditions (e.g., invalid ref), or whether the session must be active.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. It could be slightly expanded for clarity, but it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two required parameters, no output schema, and no annotations, the description is minimal. It lacks details on return values, waiting behavior, frame handling, and error scenarios, making it incomplete for a click action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description adds meaning for the 'ref' parameter (by stating it refers to an element from the latest snapshot) but does not explain the 'session' parameter beyond its existence. This partially compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Click an element by ref from the latest snapshot,' which specifies the action (click) and the resource/context (element identified by ref from a snapshot). It distinguishes from siblings like browser_type (typing) and browser_navigate (navigation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor when not to use it. The description implies a prerequisite (latest snapshot) but does not explicitly state that a snapshot must be taken first via browser_snapshot.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_close_sessionClose sessionC

Close and free a session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates that the session will be closed and freed, implying irreversible termination. However, without annotations, it does not specify side effects like resource cleanup or impact on pending operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single phrase. It avoids redundancy, but could be slightly more structured to include parameter hints without losing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, readOperation is false), the description is minimally adequate but lacks details about the parameter's origin, session state requirements, or return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'session' with no description, and the tool description does not elaborate on its meaning, expected format, or valid values. With 0% schema description coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Close and free a session') with a specific verb and resource. It distinguishes itself from sibling tools like browser_new_session (create) and browser_list_sessions (list) by focusing on termination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as browser_attach or browser_new_session. There is no mention of prerequisite conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_evaluateEvaluateC

Run a JS expression in the page, return the result.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYes
expressionYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is straightforward but lacks details on side effects, security implications, or limitations. With no annotations, it carries full burden, but the tool's purpose is simple enough that agents can infer basic behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, a single sentence. It could be slightly more detailed without losing brevity, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description only says 'return the result' without specifying the format or potential errors. The tool is simple but the description lacks completeness for an agent to fully understand behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the meaning or format of 'session' or 'expression'. The agent must rely on parameter names alone, which may be insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs a JavaScript expression and returns the result. It is specific and distinguishes from sibling tools like click or navigate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites or context provided. The agent has no hints about appropriate scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_list_sessionsList sessionsA

List all open sessions with engine and current URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only lists what it does without mentioning behavioral traits like read-only, destructive nature, rate limits, or side effects. The minimal description leaves the agent uninformed about any potential constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action, and contains no unnecessary words. Every part is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters and no output schema, so the description is minimal but covers the essential purpose. However, it does not mention output format, pagination, or session lifecycle context. For a simple list tool, this is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema description coverage is 100%. There is no need for parameter details, and the description adds no value beyond the schema, which is acceptable. Baseline 4 is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and resource (open sessions) with specific output fields (engine and current URL). It distinguishes from sibling tools which are all actions like click, navigate, etc., making it obvious this is a read-only listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied as it is the only listing tool among siblings, but there is no explicit guidance on when to use versus other tools, nor any prerequisites or exclusions. The description does not mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_navigateNavigateC

Go to a URL in a session.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
sessionYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It fails to mention page load behavior, timeouts, error handling, or post-navigation state. The minimal description is insufficient for an AI agent to understand side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, but it lacks necessary details. Conciseness is appropriate for a simple tool, but the content is too sparse to earn a higher score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 2 undocumented parameters, and no output schema, the description leaves significant gaps. It fails to answer basic questions like valid URL formats, session lifecycles, or return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning to parameters. It does not explain what 'session' refers to, URL format requirements, or any constraints beyond the schema's type declarations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Go to a URL in a session' clearly states the verb (navigate) and the resource (URL in a session). It distinguishes from siblings like browser_click or browser_evaluate, which are different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like browser_evaluate for programmatic navigation or browser_click for links. The description lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_new_sessionNew sessionA

Open an isolated browser session. engine: chrome (real Chrome) | chromium | webkit (Safari engine, multi) | safari (real Safari.app, single-session). Returns a session id.

ParametersJSON Schema
NameRequiredDescriptionDefault
engineNochromium

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'isolated browser session' and 'returns a session id', but does not disclose behavioral traits such as whether the session is headless, destructive effects (e.g., closing existing sessions), authentication needs, rate limits, or whether it opens a visible browser window. The notes on engine options (e.g., 'real Chrome', 'single-session') add some context but are insufficient for a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no filler. The first sentence states the core purpose, the second lists engine options with brief annotations. Every word adds value, and the most critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter, no output schema, and no annotations, the description provides the essential purpose and parameter details. However, it lacks details on the return format (just 'session id' without type or structure), implications of 'isolated', and any error conditions. It is adequate but leaves some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter 'engine' with enum values but 0% schema description coverage. The description adds significant meaning by explaining each engine option: 'chrome (real Chrome)', 'chromium', 'webkit (Safari engine, multi)', 'safari (real Safari.app, single-session)'. This goes beyond the raw enum values and helps the agent choose appropriately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Open an isolated browser session' with the verb 'open' and resource 'isolated browser session'. It also lists engine options and mentions 'Returns a session id', which distinguishes it from sibling tools like browser_attach (attaches to existing session) and browser_list_sessions (lists sessions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. It lists engine options but provides no guidance on which to choose or scenarios where this tool is appropriate. There is no mention of prerequisites, required context, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_screenshotScreenshotC

Save a PNG of the current view, return its path.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states the tool saves a PNG and returns a path, but does not mention side effects (e.g., file creation, disk usage), permissions needed, or behavior on invalid session. The description is too minimal for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—a single sentence that covers the core action and output. Every word is meaningful, and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, no annotations, and a sibling tool that may overlap, the description should provide more context about return value details, side effects, or usage tips. The current description is complete for a trivial tool but insufficient for decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no detail about the 'session' parameter beyond its name. While the parameter is simple, the description should at least clarify its purpose (e.g., which browser session to capture). It fails to add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Save a PNG of the current view' and the result 'return its path'. It specifies the file format and action, making the purpose clear. However, it does not differentiate from the sibling tool 'browser_snapshot', which might capture the same view in a different format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'browser_snapshot' or other screenshot methods. There is no indication of prerequisites, context, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_snapshotSnapshotC

Title, URL, and indexed interactive elements (ref=e1,e2,...). Use a ref with click/type.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, side effects, or state changes. It fails to clarify that this is a read operation (likely safe) and offers no insight into potential pitfalls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short at two sentences, but the first sentence is a fragment and the second is an instruction. It is not structured to clearly convey purpose and usage; it sacrifices clarity for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema), the description is incomplete. It does not specify the output format (e.g., a list of elements with refs), how refs are derived, or how to use the snapshot with click/type tools. More detail is needed for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has a single 'session' parameter with no description in the schema (schema coverage 0%). The tool description does not explain this parameter at all, leaving the agent to infer its meaning from sibling tools. It fails to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mentions 'Title, URL, and indexed interactive elements' which gives a sense of what is returned, but the verb 'snapshot' is ambiguous (could be interpreted as a screenshot or a page summary). It implies the tool provides references for interaction but does not clearly state its core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings like browser_screenshot or browser_click. The phrase 'Use a ref with click/type' hints at its role but does not provide a clear decision rule or context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_typeTypeC

Fill text into an element by ref; submit:true presses Enter.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
textYes
submitNo
sessionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. Only one behavioral trait is disclosed: submit:true presses Enter. Missing: what happens if element not found, if text is long, or if the element is not input; no mention of side effects or auth needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the main action. No unnecessary words. Could benefit from structured param explanation, but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is too sparse. It does not cover return value, error handling, or prerequisites (e.g., session must be active). Needs more detail to be fully actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% coverage, so description must compensate. It explains 'text' and 'submit' partially, but 'ref' is left undefined and 'session' is not mentioned. Provides some meaning but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action: 'Fill text into an element by ref'. The specific verb 'Fill' and resource 'element' make the purpose clear. It also mentions a special submission behavior. It distinguishes from siblings like browser_click and browser_navigate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., session must exist) or exclusions. The description lacks context for decision-making among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation5/5

Each tool has a distinct, non-overlapping purpose: session management, navigation, interaction, evaluation, and page capture. No two tools could be easily confused.

Naming Consistency5/5

All tools use the consistent pattern 'browser_<action>' with snake_case, making them predictable and easy to understand.

Tool Count5/5

10 tools is well-scoped for browser automation, covering the essential operations without being excessive or insufficient.

Completeness4/5

The set covers core actions (session creation, navigation, interaction, page inspection), though a few operations like back/forward or tab management are missing, but the surface is mostly adequate.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects to your browser to capture screenshots, inspect console logs, network requests, and more via Chrome DevTools Protocol.
    6
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for controlling Chromium/Chrome via Chrome DevTools Protocol. Supports cross-platform automation, auto-launch, and automatic reconnection.
    25
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for QA and test automation that provides runtime switching between multiple browser profiles (Chromium, Firefox, WebKit) without restart, enabling cross-browser regression testing, multi-account testing, localization QA, and more.
    18
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server that drives Safari on a physically attached iPhone via Apple's safaridriver, enabling navigation, screenshots, DOM snapshots, console logs, network timings, and tap/type/scroll actions on the real device. No Xcode, Appium, or WebDriverAgent required.
    16
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/apexradius/browser-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server