Skip to main content
Glama
jasoncronje

Arc Browser MCP

by jasoncronje

Arc Browser MCP

Arc Browser MCP is a local stdio MCP server for inspecting and controlling Arc Browser Spaces and tabs on macOS.

It gives MCP clients such as Codex, Claude Code, opencode, and Claude Desktop a structured way to read Arc's local sidebar/history data and perform explicit Arc actions like focusing Spaces, selecting tabs, creating tabs, navigating tabs, reloading tabs, closing tabs, and optionally executing JavaScript.

Why This Exists

I built this because my Arc setup had become a very specific kind of personal knowledge system: lots of tabs, spread across lots of Spaces, quietly standing in for bookmarks, reading lists, project context, and things I was definitely going to deal with later.

That works until it does not. Once the browser becomes both workspace and storage, it gets hard to tell what is still useful, what is duplicated, what belongs in a second brain, and what can finally be closed. Arc Browser MCP makes that state legible to local agents so they can help inspect, search, organize, summarize, save, and clean up tabs with explicit user-controlled actions.

Arc automation is useful for focused browser actions, but it is not the best source for a complete, background-safe inventory of Spaces, folders, pinned and unpinned tabs, and history. In local testing with my Arc profile, reading all tabs through Arc automation could take up to 30 seconds; reading the same state from Arc's local JSON files took less than 10 ms, over 3,000x faster. Mutations use Arc automation because those changes take effect immediately without requiring a browser restart.

Related MCP server: arc-mcp

Tools

The server exposes compact v2 tools grouped by behavior. Read tools inspect local Arc data and do not intentionally change visible browser state. Create, edit, and delete tools automate Arc and can change what is visible in the browser.

Read Tools

Tool

Description

arc_get_overview

Returns a compact inventory of Arc Spaces, tab counts, pinned/unpinned counts, folder counts, missing URL counts, duplicate counts, and source warnings.

arc_query_tabs

Lists, filters, and searches active Arc tabs using the local Arc index. Supports query, space_id, location, folder_id, domain, missing_url, duplicate_key, limit, and cursor.

arc_get_tab

Returns a full normalized tab record for an explicit tab_id, including source metadata and matching history entries. Set include_recovery to include recovery candidates for tabs with missing URLs.

arc_get_sidebar_tree

Returns the Space, pinned, unpinned, and folder hierarchy. Set include_tabs to include compact tab records inside the tree.

arc_search_history

Searches local Arc Chromium history snapshots across profiles. Supports query, domain, profile_id, include_hidden, limit, and cursor.

arc_analyze_tabs

Analyzes tabs for duplicates, missing_url, stale, junk, and missing_url_recovery. Results are informational and include explicit tab IDs for review.

Create Tools

Tool

Description

arc_create_tab

Creates a new tab in an explicit Arc Space. Requires space_id and url, accepts optional window_id, and returns the verified new tab_id. Set select to false to create without selecting when supported by the flow.

Edit And Navigation Tools

Tool

Description

arc_focus_space

Focuses an Arc Space by explicit space_id. This changes visible Arc state.

arc_select_tab

Selects an Arc tab by explicit tab_id. This changes visible Arc state.

arc_open_url

Navigates a specific tab when tab_id is provided, or the active tab when tab_id is intentionally omitted. Prefer passing tab_id for predictable behavior.

arc_reload_tabs

Reloads one or more tabs by explicit tab_ids.

arc_execute_javascript

Executes JavaScript in an explicit tab. Disabled by default and available only when ARC_MCP_ENABLE_JAVASCRIPT=1 is set.

Delete Tools

Tool

Description

arc_close_tabs

Closes one or more tabs by explicit tab_ids. This is marked destructive. Use dry_run: true to preview the close response without closing tabs.

Find duplicate tabs:

{
  "analyses": ["duplicates"],
  "limit": 25,
  "include_evidence": true
}

Search tabs in a Space:

{
  "query": "docs",
  "space_id": "space-id",
  "limit": 20
}

Create a tab in a known Space:

{
  "space_id": "space-id",
  "url": "https://example.com",
  "select": true
}

Preview closing tabs:

{
  "tab_ids": ["tab-id-1", "tab-id-2"],
  "dry_run": true
}

Close tabs after review:

{
  "tab_ids": ["tab-id-1", "tab-id-2"],
  "dry_run": false
}

Quick Start

Requirements:

  • macOS

  • Arc installed at /Applications/Arc.app

  • Python 3.12 or newer

  • uv / uvx

  • A local stdio MCP client

  • macOS Automation permission for the MCP client or terminal app when using mutating tools

Run the server directly:

uvx arc-browser-mcp

Run a local prerequisite check:

uvx arc-browser-mcp doctor

Installation

codex mcp add arc-browser -- uvx arc-browser-mcp
claude mcp add --transport stdio --scope user arc-browser -- uvx arc-browser-mcp

Add this server entry to ~/.config/opencode/opencode.json or a project opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "arc_browser": {
      "type": "local",
      "command": ["uvx", "arc-browser-mcp"],
      "enabled": true,
      "timeout": 10000
    }
  }
}

For local development, add this to the Claude Desktop MCP config:

{
  "mcpServers": {
    "arc-browser": {
      "command": "uvx",
      "args": ["arc-browser-mcp"],
      "env": {}
    }
  }
}

For end users, prefer a Claude Desktop Extension / DXT package. This repository includes MCPB packaging metadata for that workflow:

npm install -g @anthropic-ai/mcpb
mcpb pack

From a checkout of this repository:

uv sync
uv run arc-browser-mcp doctor
uv run arc-browser-mcp serve

For a local MCP client config that runs from source, use:

uv run arc-browser-mcp

or:

uv run arc-browser-mcp serve

You can also print client-specific install guidance:

uvx arc-browser-mcp install --client codex
uvx arc-browser-mcp install --client claude-code
uvx arc-browser-mcp install --client opencode
uvx arc-browser-mcp install --client claude-desktop

Safety And Privacy

  • The server is local and communicates with MCP clients over stdio.

  • Read tools may return private browser data to the connected MCP client, including titles, URLs, domains, Space names, folder names, profile IDs, history metadata, and local source paths.

  • The server does not send browser data anywhere by itself. Your MCP client and its model provider receive whatever data they request through tool calls.

  • Mutating tools change visible Arc state, including focused Spaces, selected tabs, newly created tabs, opened URLs, reloaded tabs, and closed tabs.

  • Destructive actions require explicit tab IDs. arc_close_tabs also supports dry_run.

  • arc_create_tab requires an explicit Space ID and verifies the created tab before returning its ID.

  • arc_execute_javascript is disabled unless ARC_MCP_ENABLE_JAVASCRIPT=1 is set in the MCP server environment.

  • The server does not directly edit Arc sidebar, archive, command ranking, or history files. Changes go through Arc automation instead.

Reference

Less common setup, debugging, and development details live here.

arc-browser-mcp serve
arc-browser-mcp doctor
arc-browser-mcp smoke --read-only
arc-browser-mcp install --client codex
arc-browser-mcp install --client claude-code
arc-browser-mcp install --client opencode
arc-browser-mcp install --client claude-desktop

serve runs the MCP server over stdio. Running arc-browser-mcp without a subcommand also starts the server.

doctor checks macOS, osascript, uvx, and the expected Arc app location.

smoke --read-only runs live read-only checks against local Arc state. It does not call mutating tools.

install --client ... prints MCP configuration guidance for a supported client.

Arc Is Not Running

Mutating tools and live Arc reads through AppleScript/JXA require Arc to be running. Open Arc and retry the tool call.

macOS Automation Permission Is Denied

If Arc actions fail with an automation or permissions error, open macOS System Settings and check the Automation and Privacy & Security permissions for the terminal or MCP client that launches this server.

uvx Is Missing

Install uv from the official installer or package manager you use, then rerun:

arc-browser-mcp doctor

JavaScript Execution Is Disabled

arc_execute_javascript intentionally fails unless enabled:

ARC_MCP_ENABLE_JAVASCRIPT=1 uvx arc-browser-mcp

Only enable this in a client configuration where you are comfortable allowing explicit JavaScript execution in browser tabs.

Multiple Arc Windows

Some tools accept window_id. Use arc_get_overview, arc_query_tabs, or a client-visible tab record to identify Space and tab IDs first. When creating a tab and more than one Arc window is open, pass window_id when you need the tab created in a specific window.

Set up the local environment:

uv sync

Run tests and linting:

uv run pytest
uv run ruff check .

Run local checks against Arc:

uv run arc-browser-mcp doctor
uv run arc-browser-mcp smoke --read-only

Run the server from source:

uv run arc-browser-mcp serve

Manual live verification steps are documented in docs/manual-verification.md.

The repository includes manifest.json and .mcpbignore for MCPB packaging:

npm install -g @anthropic-ai/mcpb
mcpb pack

License

MIT. See LICENSE.

Available Tools

13 tools
arc_analyze_tabsA
Read-onlyIdempotent

Analyze Arc tabs for duplicates, stale tabs, junk candidates, and missing URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysesYes
limitNo
include_evidenceNo
stale_beforeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. The description adds the types of analysis but does not disclose other behavioral traits (e.g., performance implications, data sources). It provides moderate added value beyond annotations.

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?

A single, concise sentence that front-loads the core purpose and lists key analysis types. No unnecessary words; every part adds value.

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?

Despite having an output schema (not shown), the description does not explain return value format or how to use analysis results. Parameters are largely unexplained. For a tool with 4 params and 0% schema coverage, the description is insufficient for complete understanding.

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%, so the description must compensate. While 'duplicates, stale tabs, etc.' hint at possible values for the 'analyses' parameter, there is no explanation of what each analysis type does, nor descriptions for 'limit', 'include_evidence', or 'stale_before'. The description adds minimal semantic value for 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 verb 'Analyze' and the resource 'Arc tabs', and lists specific analysis types (duplicates, stale tabs, junk candidates, missing URLs), distinguishing it from sibling tools like arc_query_tabs or arc_get_tab which are for retrieval rather than analysis.

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?

No explicit guidance on when to use this tool versus alternatives such as arc_query_tabs or arc_get_overview. The intended use for analysis is implied but not contrasted with other tools, leaving the agent without clear selection criteria.

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

arc_close_tabsA
Destructive

Close one or more Arc tabs by explicit tab id. Use dry_run to preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_idsYes
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

The description indicates the tool is destructive (close) and offers a dry_run option to preview, adding behavioral context beyond the annotations (destructiveHint=true, readOnlyHint=false). It does not elaborate on other behaviors like error handling or undo.

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 with two sentences: the first states the main purpose, the second adds key functionality. No unnecessary 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 the presence of an output schema and simple functionality, the description covers the essential action and preview feature. It could mention edge cases (e.g., invalid IDs) but is adequate for typical use.

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?

With 0% schema description coverage, the description should compensate but only mentions tab_ids generically and dry_run as 'preview'. It does not explain the format of tab_ids or the exact effect of dry_run, leaving ambiguity.

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 (close), the resource (Arc tabs), and the method (by explicit tab id). It also mentions the dry_run feature for preview. This distinguishes it from siblings like arc_create_tab or arc_select_tab.

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 advises using dry_run to preview, which is useful, but it does not provide guidance on when to use this tool versus alternatives (e.g., arc_reload_tabs) or mention any prerequisites or exclusions.

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

arc_create_tabC

Create a new Arc tab in an explicit Space and return its verified tab id.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYes
urlYes
window_idNo
selectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate mutation (readOnlyHint=false) and non-destructive, non-idempotent behavior. The description adds that it returns a verified tab id, but does not disclose other behavioral traits like whether the tab is activated or what 'select' parameter does.

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 sentence with no extraneous words. It is efficient but sacrifices completeness 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 4 parameters, 0% schema coverage, and an output schema, the description is too sparse. It fails to explain parameter semantics, return value structure, or how it differs from similar tools like arc_open_url.

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 coverage is 0%, but the description does not explain any parameters beyond implying space_id and url. The optional parameters window_id and select are not described, leaving the agent without necessary semantic context.

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 creates a new Arc tab in a specific space and returns a verified tab id. It uses a specific verb and resource. However, it does not explicitly differentiate from sibling tools like arc_open_url, which might also create a tab.

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 such as arc_open_url or arc_select_tab. The description lacks any 'when not to use' or context for conditional use.

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

arc_execute_javascriptB

Execute JavaScript in an Arc tab. Disabled unless ARC_MCP_ENABLE_JAVASCRIPT=1.

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_idYes
javascriptYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds no further behavioral context, such as potential side effects or permissions needed. The bar is lower due to annotations, but the description could be improved.

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 sentence that directly states the purpose and a key prerequisite. It is concise and front-loaded, but it omits important parameter details.

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 complexity of executing JavaScript (with potential side effects, error handling, and output) and the existence of an output schema, the description is too minimal. It does not explain return values, error conditions, or how to use parameters effectively.

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 provides no information about the two parameters (tab_id and javascript) beyond what the schema already shows. No meaning or usage hints are added.

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 verb 'Execute' and the resource 'JavaScript in an Arc tab'. It is specific and distinct from sibling tools like arc_open_url or arc_analyze_tabs.

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 mentions that the tool is disabled unless ARC_MCP_ENABLE_JAVASCRIPT=1, which is a prerequisite but does not provide guidance on when to use this tool versus alternatives 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.

arc_focus_spaceB

Focus an Arc Space by explicit id. This changes visible Arc state.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Discloses that it changes visible state, which adds context beyond annotations. No mention of prerequisites, side effects, or error conditions.

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, no fluff, front-loaded with the main purpose.

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?

Minimal description for a tool with one parameter and output schema. Lacks details on how to obtain space_id or what the output represents.

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?

Does not explain the 'space_id' parameter at all. With 0% schema description coverage, the description should compensate but does not.

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?

Clearly states action (focus), resource (space), and method (by explicit id). Distinct from sibling tools which deal with tabs or overview.

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?

Provides no guidance on when to use this tool versus alternatives. However, the purpose is straightforward, so it's minimally adequate.

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

arc_get_overviewA
Read-onlyIdempotent

Get compact Arc inventory, counts, source health, and live context when available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. Description adds minimal context (e.g., 'when available' for live context) but does not contradict annotations.

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?

Single sentence with no wasted words. Front-loaded with key purpose, highly concise.

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

Completeness5/5

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

With zero parameters and an output schema present, the description fully specifies the tool's purpose and output. No gaps in coverage.

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?

No parameters exist, so baseline is 4. Description adds value by outlining what the output contains (inventory, counts, etc.), going beyond schema requirements.

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?

Description explicitly states 'Get compact Arc inventory, counts, source health, and live context', providing a specific verb and resource. It clearly distinguishes from sibling tools which focus on tabs or other actions.

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?

No explicit when-to-use or alternatives are provided. The description implies it's for a quick, read-only overview, but lacks guidance on when not to use it versus other tools.

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

arc_get_sidebar_treeA
Read-onlyIdempotent

Get Arc Space, pinned, unpinned, and folder hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNo
include_tabsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds context about hierarchy components (pinned, unpinned, folders), which is useful beyond annotations. No contradictions.

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?

Single sentence, no fluff, effectively communicates the tool's purpose.

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?

Adequate for a read-only tool with output schema, but could be improved by noting the hierarchical nature of the return value or parameter defaults.

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?

Description provides no information about the two parameters (space_id, include_tabs) beyond the input schema. With 0% schema coverage, the description fails to compensate.

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?

Clearly states verb 'Get' and resource 'Arc Space, pinned, unpinned, and folder hierarchy', distinguishing it from sibling tools like arc_analyze_tabs or arc_get_overview.

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?

Implies usage when needing sidebar hierarchy, but no explicit when-to-use, when-not-to-use, or alternative tools guidance.

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

arc_get_tabA
Read-onlyIdempotent

Get a full normalized Arc tab record by explicit tab id.

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_idYes
include_recoveryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare the tool as readOnly, destructive=false, idempotent=true. The description adds that the record is 'full normalized,' indicating comprehensive data. It does not contradict annotations and adds context beyond the structured fields.

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 that efficiently conveys the tool's purpose. Every word is meaningful and there is no redundancy or filler.

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 low complexity (2 params, output schema present), the description is minimally adequate. However, it does not explain what 'full normalized' entails or clarify when to use 'include_recovery'. The output schema exists, which helps, but the description could be more helpful.

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 only indirectly covers the 'tab_id' parameter by mentioning 'by explicit tab id'. The 'include_recovery' parameter (default false) is not explained at all. The description does not sufficiently compensate for the lack of schema descriptions.

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 ('Get') and the resource ('full normalized Arc tab record') with a specific retrieval method ('by explicit tab id'). It distinguishes from sibling tools like arc_query_tabs (searching) and arc_select_tab (selecting) by focusing on a single tab via ID.

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 use when a specific tab ID is known, but it does not explicitly state when to use this tool over alternatives (e.g., arc_query_tabs for filtering or arc_get_overview for summary). No guidance on prerequisites or exclusions is provided.

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

arc_open_urlB

Navigate a specific Arc tab, or the active tab when explicitly omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
tab_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, aligning with the navigational modification. The description adds the behavior of falling back to the active tab when tab_id is omitted, but doesn't disclose potential side effects like page load behavior or error handling for invalid tab IDs.

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 of 12 words. Every word is necessary; no redundancy or verbosity.

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 presence of an output schema and sibling tools, the description covers the basic action but lacks details on navigation semantics (e.g., whether it changes the current page URL, any loading behavior). It is adequate but not comprehensive.

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 parameter descriptions are missing from the schema (0% coverage). The description clarifies that tab_id defaults to the active tab, which adds meaning. However, it does not specify URL format or constraints (e.g., must be valid URL).

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 navigates an Arc tab to a URL, specifying the active tab as fallback. It distinguishes from siblings like arc_create_tab (which likely creates a new tab) but could be more explicit about differentiating creation vs 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 explicit guidance on when to use this tool versus alternatives. The description implies it is for navigating existing tabs, but fails to mention that arc_create_tab should be used for new tabs.

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

arc_query_tabsB
Read-onlyIdempotent

List, filter, and search Arc tabs using the fast local Arc index.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
space_idNo
locationNo
folder_idNo
domainNo
missing_urlNo
duplicate_keyNo
limitNo
cursorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, and idempotent behavior. The description adds 'fast local Arc index' hinting at performance but does not disclose pagination, result limits, or other behavioral traits beyond what annotations provide.

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, clear sentence that front-loads the key action and resource. It is appropriately concise, though it could be slightly more 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?

Given 9 optional parameters and a complex output schema, the description lacks essential context about how to use the filters, what the return data looks like, and any default behavior (e.g., limit of 50). It is insufficient for an agent to understand the tool's full capability.

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%, so the description must explain parameter meanings. It only says 'list, filter, and search' without mentioning any of the 9 parameters (query, space_id, location, etc.), leaving the agent with no semantic clues.

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 specifies the action (list, filter, search), the resource (Arc tabs), and distinguishes from siblings like arc_get_tab which retrieves a single tab. It also notes the use of a fast local index.

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 over alternatives such as arc_get_tab or arc_search_history. The description does not mention context or exclusions.

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

arc_reload_tabsA

Reload one or more Arc tabs by explicit tab id.

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations are present but neutral (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description does not add behavioral details beyond the word 'reload', such as whether it clears cache or loses unsaved form data. For a simple action, minimal disclosure is acceptable but not excellent.

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 extraneous words. It is efficiently structured, but could slightly expand on usage without losing conciseness.

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 required parameter and an output schema (not detailed), the description is minimally adequate. However, given the context of 13 sibling tools, a bit more guidance on where to find tab IDs or expected behavior would improve 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?

Schema description coverage is 0%, so the description carries the full burden. It only says 'by explicit tab id', which adds minimal meaning over the schema's property name 'tab_ids'. Agents are left to infer the format or source of tab IDs without guidance.

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 verb 'reload', the resource 'Arc tabs', and the method 'by explicit tab id'. It distinguishes this tool from siblings like arc_close_tabs and arc_create_tab, making its purpose unambiguous.

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 provides no explicit guidance on when to use this tool versus alternatives like arc_open_url or arc_execute_javascript. While the purpose is clear, the lack of context for selecting this tool among siblings is a gap.

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

arc_search_historyC
Read-onlyIdempotent

Search Arc Chromium history snapshots across local profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
domainNo
profile_idNo
include_hiddenNo
limitNo
cursorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds that it searches 'across local profiles,' which is useful but does not elaborate on additional behavioral traits like pagination (cursor) or handling of hidden history. No contradiction with annotations.

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?

A single sentence is concise but overly minimal. It front-loads the core action but omits any structure for parameter details, which should be included or referenced given the schema lacks descriptions.

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?

Despite having an output schema, the description fails to cover six parameters with no schema descriptions. The agent lacks information on how to use filtering, pagination, or hidden results, making the tool insufficiently documented for effective selection and 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?

With 0% schema description coverage, the description must explain parameters but only mentions 'profiles' implicitly. Parameters like query, domain, cursor, include_hidden, and limit remain entirely unexplained, forcing the agent to rely on defaults and guesswork.

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 searches 'Arc Chromium history snapshots across local profiles,' specifying both the resource (history snapshots) and scope. This distinguishes it from sibling tools like arc_query_tabs which operate on tabs.

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 others, such as arc_query_tabs or arc_focus_space. There is no mention of prerequisites, limitations, or alternatives, leaving the agent without context for appropriate invocation.

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

arc_select_tabB

Select an Arc tab by explicit id. This changes visible Arc state.

ParametersJSON Schema
NameRequiredDescriptionDefault
tab_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate non-read-only (readOnlyHint=false), and the description adds that it changes visible Arc state, which aligns. However, it does not disclose behavior on invalid IDs or other side effects. With annotations present, the description provides minimal extra value.

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 with no wasted words. The primary purpose is front-loaded: 'Select an Arc tab by explicit id.' The behavioral effect is succinctly appended. Ideal for quick comprehension.

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 simplicity (1 required param, no enums, output schema exists), the description covers the basic purpose and effect. However, it lacks usage context, such as when to choose this over arc_focus_space, and does not describe the output. Thus, minimally adequate.

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 lone parameter tab_id has 0% schema description coverage. The description mentions 'by explicit id' but does not explain what constitutes an id, its format, or how to obtain one. This leaves the agent underinformed about the parameter.

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 selects an Arc tab by explicit id and that it changes visible state. This precisely defines the action and differentiates it from sibling tools like arc_analyze_tabs or arc_query_tabs.

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 vs alternatives (e.g., arc_focus_space, arc_get_tab). It doesn't mention prerequisites, conditions, or when not to use it, leaving the agent without decision context.

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

Tool Schema Changelog

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

  1. 13 tool updatesv0.1.0
    • First observedarc_analyze_tabs
    • First observedarc_close_tabs
    • First observedarc_create_tab
    • First observedarc_execute_javascript
    • First observedarc_focus_space
    • First observedarc_get_overview
    • First observedarc_get_sidebar_tree
    • First observedarc_get_tab
    • First observedarc_open_url
    • First observedarc_query_tabs
    • First observedarc_reload_tabs
    • First observedarc_search_history
    • First observedarc_select_tab

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct operation: analyze, close, create, execute JS, focus space, get overview, get sidebar tree, get tab, open URL, query tabs, reload tabs, search history, select tab. No overlapping purposes; an agent can clearly differentiate based on names and descriptions.

Naming Consistency5/5

All tools follow the consistent pattern `arc_verb_noun` with snake_case. Verbs are appropriately chosen (e.g., create, close, query, select) and nouns match the resource (tab, tabs, space, url). Singular/plural variations are logically applied.

Tool Count5/5

13 tools is well-scoped for a browser automation server. Each tool serves a clear purpose without redundancy, covering tab lifecycle, space navigation, and basic utility like history search and JavaScript execution.

Completeness4/5

The tool set covers core tab and space operations (CRUD, navigation, analysis, history). Missing features like bookmark management or space creation are minor gaps, but the surface is sufficient for typical automation tasks.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server for the Arc browser that enables programmatic management of spaces and tabs. It supports actions like listing, creating, and deleting spaces and tabs, as well as focusing spaces and opening URLs via AppleScript.
    9
    9 npm
    6
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables semantic browser automation for the Arc browser, allowing users to perform web tasks like searching, shopping, and data extraction through natural language commands.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Access and organize your open browser tabs, bookmarks, and recently visited links across every macOS browser from your AI client. Powered by the free tier of SupaSidebar(https://supasidebar.com) app.
    36
    99 npm
    5
    MIT