Skip to main content
Glama

linux-computer-use

linux-computer-use is an open source computer use agent for Linux. It is an MCP server that lets an AI agent such as Claude Code or OpenAI Codex drive a real browser, and native Linux applications, on your own Linux machine, with a live view, human takeover, and safety guardrails.

Computer use for AI agents landed first on macOS and Windows, or inside a cloud VM. This project brings the same capability to Linux, self-hosted, running on your machine with your own browser and your own cookies.

Install

curl -fsSL https://raw.githubusercontent.com/Roadmvn/linux-computer-use/main/scripts/install.sh | bash

That is the whole setup. The script is scripts/install.sh in this repository, so you can read it before running it.

Related MCP server: PixelCheck

Connect it to your agent

# Claude Code
claude mcp add --scope user linux-computer-use -- node ~/.linux-computer-use/app/src/index.js
# OpenAI Codex
codex mcp add linux-computer-use -- node ~/.linux-computer-use/app/src/index.js

Restart your client afterwards so it picks the server up.

Quick start

Ask your agent: "Open github.com in a session named research, then tell me what is on the page." Then watch it work:

cd ~/.linux-computer-use/app && npx playwright-cli show

What it does

Capability

What you get

Live view

playwright-cli show streams every session, in a window here or served to another machine.

Human takeover

A lease file freezes the agent mid-run, and only you can release it.

Visible cursor

An overlay draws the agent's pointer in the page, so you see where it acts.

Sessions and profiles

Named isolated sessions, cookies kept between runs when profile is set.

Tabs

List, open, select and close tabs with a single tool.

Two ways to act

Accessibility tree with element refs, the robust default, or raw pixel coordinates.

Guardrails

Fail closed on credentials, account pickers, irreversible actions and unreadable targets.

Native applications

Burp Suite, Wireshark, Ghidra and the rest, in a nested desktop that leaves your pointer alone.

Auto mode

set_mode drops the confirmation before a form is committed. The hard stops still apply.

MCP tools

Tool

What it does

Parameters

open

Open or attach a browser session

url, session, profile, browser, cdp

goto

Navigate to a URL

url

snapshot

Accessibility tree of the page, with element refs

-

screenshot

Image capture of the page

-

click

Click an element by ref

ref, confirm

type

Type text

text

fill

Fill a field by ref

ref, text

press

Press a key

key

mouse

Act at pixel coordinates, vision mode

action (move, click, down, up, wheel), x, y, confirm

tabs

Manage tabs

action (list, new, select, close), index, url

history

Navigate the history

direction (back, forward, reload)

status

Session state and control lease

takeover

set_mode

Switch between normal and auto

mode

desktop_start

Start the agent desktop, or shut it down

width, height, stop

desktop_windows

List the visible windows

-

desktop_focus

Bring a window to the front

id

desktop_screenshot

Capture the desktop, or a single window

window

desktop_click

Move the pointer and click

x, y, button, move_only

desktop_type

Type text into the focused window

text, confirm

desktop_key

Press a key or a combination

key, confirm

desktop_launch

Start an application by name

app, confirm

Requirements

  • Linux, Node.js 20 or newer.

  • A graphical session: DISPLAY or WAYLAND_DISPLAY set for the MCP client. No screen, wrap it in xvfb-run.

  • The system libraries of Chromium. The installer pulls them on apt based systems.

  • Desktop backend only: sudo apt install xserver-xephyr xdotool imagemagick xfwm4. Not needed to drive a browser.

Comparison

Platform

Where it runs

Live view

Human takeover

Guardrails

Open source

linux-computer-use

Linux

Your machine

Yes, playwright-cli show, locally or served

Yes, explicit lease released from your machine

Yes

Yes, MIT

OpenAI Operator / ChatGPT agent

Any, used through ChatGPT

Cloud VM

Yes

Yes

Yes

No

Anthropic Claude for Chrome

Chrome extension

Your browser

Your own browser window

-

Yes

No

Playwright MCP

Cross platform

Your machine

Yes

Yes

-

Yes

A dash means not verified rather than absent. These products move fast, so check their own documentation before relying on a row.

FAQ

Can AI control a browser on Linux?

Yes. Install this MCP server, register it with Claude Code, OpenAI Codex, or any MCP client, and the agent drives Chromium, Chrome, or Firefox on your Linux machine while you watch.

What is the Linux alternative to OpenAI Operator?

linux-computer-use. Operator runs a browser in a cloud VM you reach through ChatGPT. This runs on your own Linux machine, with your browser and your profile, and it is open source under MIT.

How do I give Claude Code browser access?

Run the installer, then claude mcp add --scope user linux-computer-use -- node ~/.linux-computer-use/app/src/index.js, and ask Claude Code to open a page. The 21 tools show up in its tool list.

Can it use my existing cookies and logins?

Yes, in two ways: pass profile with a directory path, or start your own browser with a debugging port and attach with cdp, see docs/usage.md. Without either, the profile is in memory and disappears with the browser.

Will it log into my accounts on its own?

No. It stops on an empty login form, and it asks you when several accounts are offered. It also asks before an action it judges irreversible.

Documentation

  • docs/usage.md - first run, your own browser, native applications, guardrails, environment variables, audit trail, more FAQ.

  • docs/design.md - architecture, and the reasoning behind each choice.

Roadmap

  • AT-SPI integration, the Linux accessibility bus, to give the desktop backend the equivalent of the browser's accessibility snapshot, and with it real guardrails by element name. Planned, not available yet.

Contributing

Issues and pull requests are welcome on GitHub. Architecture notes live in docs/design.md.

License

MIT. See LICENSE.

Available Tools

13 tools
clickA

Click an element by its ref from snapshot. Blocked when the element looks irreversible unless confirm is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesElement ref from snapshot, e.g. e42. A CSS or role selector also works.
confirmNoSet true only after a human approved an action flagged as irreversible.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It explicitly reveals a key safety guard: 'Blocked when the element looks irreversible unless confirm is true.' This goes beyond a generic 'click' description and warns about potential destructive actions, though it does not detail other side effects like navigation.

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 exceptionally concise: two sentences, front-loaded with the action verb, and every word adds value. There is no redundancy or fluff.

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?

For a simple click tool with a fully documented input schema, the description plus schema is sufficient to invoke the tool correctly. It covers purpose, input mechanism, and the important irreversible-action guard. Minor details like error behavior when the element is not found are absent but not critical for basic use.

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 input schema already provides 100% parameter coverage, describing 'ref' as an element ref or selector and 'confirm' as a flag for human approval. The description merely restates part of this ('ref from snapshot') and adds no new semantic detail beyond the schema.

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 uses a specific verb ('Click') and resource ('an element by its ref from snapshot'), making the tool's action unmistakable. It also differentiates from sibling tools like 'press' and 'mouse' by clarifying the mechanism (snapshot ref).

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 phrase 'by its ref from snapshot' clearly indicates the intended input source and when this tool should be used. It does not explicitly mention when not to use it or alternatives, but the context is clear enough for a competent agent.

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

fillB

Fill a field identified by its ref. Refused on credential fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
textYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose that the tool is 'Refused on credential fields', which is a useful behavioral constraint. However, it does not mention side effects, success/failure behavior, or any other important behavioral traits, so transparency is minimal.

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 consists of two short sentences with no wasted words. The main action is front-loaded, and the additional note about credential fields is placed logically. It is concise and well-structured.

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?

The tool is simple with only 2 parameters and no output schema, but the description omits critical context such as whether filling triggers events, what happens on success or failure, and how 'ref' relates to the broader tool ecosystem. It is minimally sufficient but leaves gaps for an agent making selections.

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%, so the description must compensate. It explains 'ref' as the field identifier, but 'text' is left entirely to inference from its name. No format, validation, or additional semantics are provided, leaving a gap in parameter understanding.

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 states 'Fill a field identified by its ref', which clearly identifies the action (fill) and the target (a field by ref). However, it does not differentiate this from the sibling tool 'type', which could also be used to populate fields, so it's clear but lacks explicit sibling differentiation.

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?

There is no explicit guidance on when to use this tool versus alternatives like 'type' or 'click'. The description implies use for filling fields and notes a restriction on credential fields, but does not provide context for selection among siblings or mention prerequisites.

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

gotoC

Navigate the current tab to a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

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 the full burden of behavioral disclosure, but it only restates the action itself. It does not mention whether navigation waits for page load, whether it preserves browsing history, or potential errors for invalid URLs, leaving significant behavioral traits unstated.

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, front-loaded sentence that conveys the essential information without any redundant words. It is appropriately sized for the tool's simplicity.

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?

For a simple one-parameter tool, the description is nearly complete, but it lacks context about post-navigation behavior (e.g., return values or waiting state) and does not address how 'goto' differs from the sibling 'open'. Given no output schema and no annotations, this omission leaves minor gaps in overall completeness.

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?

The parameter 'url' has no schema description (0% coverage), and the description merely repeats the word 'URL' without specifying format, scheme requirements, or accepted variants (e.g., relative vs absolute). The description adds minimal meaning beyond the parameter name itself.

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 'Navigate the current tab to a URL' clearly states the action (navigate), the resource (current tab), and the destination (URL). It is specific enough to define the tool's core behavior, though it does not explicitly distinguish from the sibling tool 'open', which may serve a similar purpose.

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 provides no guidance on when to use this tool versus alternatives like 'open' or 'click'. There is no mention of prerequisites, exclusions, or preferred contexts, leaving the agent without direction for tool selection.

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

historyC

Go back, go forward or reload.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYes

TDQS

C2.8/5.0
Behavior2/5

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

There are no annotations, so the description must carry the full burden of behavioral disclosure. It only restates the enum values (back, forward, reload) without explaining side effects, state changes, or the meaning of 'reload'. For example, it does not mention whether reload discards form data or requires user confirmation, which is critical for a navigation tool.

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 short and front-loaded, making it easy to parse. However, it lacks structural elements like prerequisites or examples. It earns points for its compactness but is arguably under-specified rather than genuinely concise, as it omits helpful usage context.

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?

For a simple tool with one enum parameter and no output schema, the description is minimally adequate. It tells the agent the basic operations but lacks contextual completeness regarding when to use it, what the reload action entails, or any interaction with browser state. The lack of annotations also limits the agent's ability to predict side effects.

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?

The schema has 0% description coverage, and the description merely echoes the enum values without adding new meaning. 'Go back, go forward or reload' adds little beyond the parameter name and enums. The enum values are self-explanatory, but the description fails to clarify edge cases or expected behavior for each direction.

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 tool's purpose: navigating history via back, forward, or reload. It is specific to history operations and uses a clear verb structure. However, it does not explicitly distinguish itself from sibling tools like 'goto', though the history-specific actions make the distinction implicit.

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 'goto' or 'tabs'. The description simply lists actions without suggesting typical use cases or exclusions. This leaves the agent without enough context to choose between related navigation tools.

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

mouseA

Coordinate based mouse control for canvas, maps and custom widgets that have no accessible element. Take a screenshot first to read the coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
actionYes
confirmNoSet true only after a human approved an action flagged as irreversible.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the coordinate-based approach and the screenshot prerequisite, but omits details about coordinate system (screen vs viewport), potential side effects of mouse actions, or any irreversibility/safety notes beyond what the schema's confirm parameter implies.

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 two sentences, front-loaded with purpose and usage, with no wasted words. Every clause adds meaningful context.

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?

The tool has 4 parameters, no output schema, and no annotations. The description provides basic purpose and a key prerequisite but lacks comprehensive information on coordinate system, action semantics, error handling, or safety flags. It feels incomplete for a tool with this complexity.

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 only 25% (only 'confirm' has a description). The description adds context that x/y are based on screenshot coordinates, but it does not explain the 'action' enum values or the 'confirm' parameter beyond what the schema provides. It partially compensates but leaves gaps.

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 it performs coordinate-based mouse control for non-accessible elements, using a specific verb and target context. It distinguishes itself from sibling tools like click and press by focusing on unaccessible surfaces.

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?

It explicitly indicates when to use the tool (for canvas, maps, custom widgets with no accessible element) and instructs to take a screenshot first. It doesn't explicitly name alternative tools, but the 'no accessible element' condition implies when other tools would be unsuitable.

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

openA

Open a browser session, or attach to a browser already running with a CDP endpoint. Call this first.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdpNoAttach to a browser already running with --remote-debugging-port instead of launching one, e.g. http://127.0.0.1:9222
urlNoURL to load once the browser is up.
browserNochromium (default, the bundled build), chrome, firefox, webkit or msedge. Ignored when cdp is set.
profileNoPath to a persistent profile directory, to keep logins between runs. Ignored when cdp is set, since the running browser already has its own.
sessionNoSession name. Sessions have separate cookies and tabs. Defaults to "default".

TDQS

A4.2/5.0
Behavior3/5

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

Without annotations, the description carries the burden of disclosure. It states the core behavior (open/attach) and ordering, but does not mention side effects, idempotency, or error behavior. This is adequate but not rich.

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?

Two sentences, front-loaded with the essential purpose. No wasted words.

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?

For a simple entry-point tool with 5 optional params, the description covers the main purpose and sequencing. It doesn't describe return values, but there is no output schema, and sibling tools like status may cover that need.

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 100%, so the baseline is 3. The description adds context by explaining the CDP attach mode as an alternative to launching, but it does not add new meaning beyond what the parameter descriptions already provide.

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's action: 'Open a browser session, or attach to a browser already running with a CDP endpoint.' It distinguishes itself from sibling tools by being the initialization step, while siblings like goto and click are subsequent actions.

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

Usage Guidelines5/5

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

'Call this first' explicitly tells the agent when to use this tool relative to others. It also contrasts launching a new browser vs attaching via CDP, giving clear context for choosing this tool.

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

pressB

Press a key, for example Enter, Tab or ArrowDown.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

B3.1/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 responsibility. It only says 'Press a key' without disclosing side effects, required focus, or whether key combinations/modifiers are supported. Minimal behavioral context is provided.

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 concise sentence that front-loads the action and quickly provides illustrative examples. Every word is relevant and there is no redundancy.

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?

For a simple tool with one parameter and no output schema, the description covers the core purpose but omits details about allowed key names and behavior. It is adequate but has clear gaps that could affect correct invocation.

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 input schema has no description for 'key', and the description provides examples (Enter, Tab, ArrowDown) that give some meaning. However, it doesn't specify the full set of accepted values, case sensitivity, or modifier support, so compensation for the schema gap is partial.

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 ('Press') and the resource ('a key'), with specific examples (Enter, Tab, ArrowDown) that distinguish it from sibling tools like type, click, and fill. It does not explicitly name alternatives, which prevents a score of 5.

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?

There is no guidance on when to use this tool versus alternatives such as type or click. The description only states what it does, not the context or prerequisites for using it.

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

screenshotA

Image of the page. Use it to read visual content, verify a result, or work out coordinates for the mouse tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.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 full burden for behavioral disclosure. However, it only says 'Image of the page' and gives usage context. It does not disclose important traits such as whether the image is a viewport or full-page capture, how the image is returned (path, data URL), or any timing/loading behavior. This lack of detail makes it hard for an agent to anticipate the actual output.

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 two short sentences, with the core definition ('Image of the page') front-loaded. Every word earns its place, and the usage scenarios are packed into a single follow-up sentence without redundancy.

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 low complexity (no parameters, no output schema), the description provides adequate usage context but omits return-value semantics and capture scope. Since there is no output schema, the description should explain what the agent will receive (e.g., an image path or base64 string). This gap is significant but not fatal for such a simple tool.

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 tool has zero parameters, so the schema is complete and there is nothing for the description to add about parameters. Per the baseline rule for 0-parameter tools, a score of 4 is appropriate since no compensation is needed.

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 produces an image of the page. It further distinguishes itself by specifying use cases—reading visual content, verifying results, and computing coordinates for the mouse tool—which differentiates it from text-based siblings like snapshot or action tools like click/type.

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 explicitly lists when to use the tool: to read visual content, verify a result, or work out coordinates for the mouse tool. It does not mention alternatives or when not to use it, but the listed use cases provide clear context and imply contrast with text-based tools.

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

set_modeA

normal asks before sensitive actions. auto runs a complete objective end to end, stopping only for an empty login, an account choice, or an irreversible action.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains what each mode does and the stopping conditions for auto mode. This is good transparency, though it doesn't mention any side effects of switching modes or what happens if the mode is already set.

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 two concise sentences, each dedicated to one mode. There is no redundancy or filler, making it easy to parse and understand.

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?

For a simple tool with one parameter and no annotations or output schema, the description sufficiently covers the core behavior. It doesn't address edge cases like switching to the current mode or what constitutes a 'sensitive action', but these are likely context-specific and not critical for basic invocation.

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 no descriptions for the 'mode' parameter, but the description defines both enum values ('normal' and 'auto') with specific behaviors. This adds significant meaning beyond the schema, which has 0% coverage, and helps the agent choose the correct parameter value.

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 explains what each mode does, but it doesn't explicitly state 'sets the mode to...'. The name 'set_mode' makes the purpose obvious, and the description elaborates on the behavior of each mode, distinguishing it from sibling tools by describing the interaction behavior.

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?

The description implies when to use each mode by contrasting their behaviors (normal asks before sensitive actions, auto runs end-to-end with specific stops). However, it doesn't explicitly state 'use normal for...' or 'use auto for...', nor does it compare against alternatives. The usage context is implied rather than directly guided.

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

snapshotA

Accessibility tree of the page with a ref for each element. Use these refs with click and fill. Prefer this over screenshot for acting: it is exact and cheap.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden and discloses the output as an accessibility tree with element refs, plus behavior traits (exact, cheap). It doesn't detail limitations or return structure, but is sufficiently transparent for a simple read-only tool.

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?

Three concise sentences, front-loaded with the core definition, followed by usage and preference over screenshot. No wasted words.

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 no parameters and no output schema, the description is largely complete: it explains what the tool returns (accessibility tree with refs) and how to use it. It could slightly elaborate on the exact format of refs, but sibling context and clarity make it adequate.

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 tool has zero parameters, so the baseline is 4. No parameter semantics are needed, and the description does not attempt to explain nonexistent 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 produces an accessibility tree of the page with refs for each element. It also clarifies its intended role in acting via refs with click and fill, distinguishing it from screenshot.

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

Usage Guidelines5/5

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

Explicitly recommends using this over screenshot for acting, calling it exact and cheap, and specifies how refs should be used with click and fill. This provides clear when-to-use guidance and names the alternative.

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

statusA

Report the session, the mode and who holds the control lease. Pass takeover: true to hand control to the human before they act in the dashboard. Control comes back only when the human releases it on their machine, never through this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
takeoverNotrue to hand control to the human. There is no value that takes it back.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that takeover hands control to the human and that control cannot be reclaimed through this tool, only by human release. It clearly implies the default operation is read-only ('Report'), covering the main behavioral traits.

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?

Three short sentences, front-loaded with the primary purpose. Every sentence adds essential information: what is reported, when to use takeover, and the critical limitation. No filler or redundancy.

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?

For a simple read-only status tool with one optional parameter and no output schema, the description lists exactly what is reported (session, mode, control lease) and covers the only behavioral nuance (takeover). It could be slightly clearer about what 'session' refers to, but overall it is complete enough for an agent to use correctly.

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 already describes the takeover parameter with 100% coverage. The description adds practical context by explaining when to pass true ('before they act in the dashboard') and reinforces the irreversible nature. This goes beyond the schema's bare definition.

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 uses a specific verb ('Report') and names three concrete resources: session, mode, and control lease. This clearly distinguishes it from sibling tools like set_mode or click, which perform actions rather than report state.

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 gives clear context for when to pass takeover: true ('before they act in the dashboard'). It also states a key limitation ('Control comes back only when the human releases it'), which helps the agent avoid misusing the option. It does not explicitly name alternatives, but none directly compete with this status-reporting role.

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

tabsB

List, open, select or close tabs.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL for new.
indexNoTab index for select and close.
actionYes

TDQS

B3.4/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 responsibility for behavioral disclosure. It lists actions (list, new, select, close) but does not describe side effects, what 'select' or 'close' does to the current tab, whether actions are reversible, or what the output for 'list' looks like.

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, concise sentence that is front-loaded with all key actions. It is efficient with no wasted words.

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?

The tool has four distinct actions and three parameters, yet the description is minimal. It does not specify return values (e.g., what 'list' returns), prerequisites, or behavior nuances like whether 'new' opens a foreground/background tab. Given the lack of output schema and annotations, this is insufficient for an agent to use the tool correctly without additional guessing.

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 67% with action having an enum and url/index having brief descriptions. The description adds no further parameter meaning, such as which combinations of action and parameters are valid. It provides a baseline but does not compensate for the missing 33%.

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's function: 'List, open, select or close tabs.' It uses specific verbs and identifies the resource (tabs), making the purpose unambiguous and distinct from sibling tools like 'goto' or 'open'.

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?

The description implies usage for tab management but does not explicitly state when to prefer this tool over siblings or provide exclusions. For example, it does not clarify whether 'open' should be used for URLs instead of the 'open' sibling tool.

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

typeA

Type text into the focused element. Refused when a password field has focus.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It reveals that the tool requires focus and refuses to type into password fields, which are meaningful behavioral traits not conveyed by the schema. However, it does not describe other aspects like whether text is appended or replaces existing content, or if it triggers input events, so it's not a full disclosure.

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: a single sentence that states the action and an additional clause that highlights an important limitation. Every word earns its place, with no superfluous information.

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?

The tool is simple (one string parameter, no output schema), and the description covers its core purpose and a key behavioral constraint. It lacks details on error handling or exact insertion behavior, but for this simplicity, the description is reasonably complete.

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?

The input schema has a single 'text' parameter with no description, and the description adds no extra semantic value beyond restating that it types text. With 0% schema description coverage, the description should clarify parameter nuances (e.g., newline handling, special characters), but it does not, leaving the parameter to rely on its name alone.

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's function: 'Type text into the focused element.' It identifies the resource (focused element), the verb (type), and adds a distinguishing restriction about password fields, which helps differentiate it from sibling tools like fill or press.

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?

The description implies usage for typing into the currently focused element and provides an explicit exclusion (refused when password field has focus), but it does not mention alternative tools or explicit guidance on when to choose this over siblings like fill or press.

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

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have clearly distinct purposes: goto for navigation, snapshot for accessibility tree, screenshot for visual capture, click/type/fill/press for input. The overlaps between click and mouse (ref vs coordinates) and type vs fill (focused vs by ref) are clarified by descriptions, making misselection unlikely.

Naming Consistency3/5

Tool names are all lowercase and mostly single words, but they mix verb forms (goto, click, type, fill, press, open) with noun forms (snapshot, screenshot, mouse, tabs, history, status). The only underscore in set_mode breaks the otherwise uniform style, creating a minor inconsistency.

Tool Count5/5

13 tools is well within the ideal range for a browser automation server. Each tool covers a distinct aspect of interaction, from session management and navigation to reading state and performing actions, without feeling bloated or sparse.

Completeness4/5

The toolset covers the core lifecycle: open, navigate, inspect (snapshot/screenshot), interact (click/type/fill/press/mouse), manage tabs/history, and control session mode. Minor gaps like an explicit wait or scroll tool are workable because snapshot can serve as a synchronization point and mouse can handle scrolling.

Maintenance

ActivityMaintained
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
    B
    maintenance
    MCP server that enables AI tools to control local browser sessions for ChatGPT, Claude, and other AI services, supporting querying, navigation, file uploads, and artifact management.
    44
    546
    Mozilla Public 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Security-hardened MCP server that gives AI assistants full control over your real browser session, supporting 36 tools for navigation, data extraction, monitoring, and more.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects AI agents to browser DevTools via CDP, enabling real-time access to console logs, network requests, and page state.

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/Roadmvn/linux-computer-use'

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