Skip to main content
Glama
DB-25

arc-control-mcp

Sidebar Tree

sidebar_tree
Read-onlyIdempotent

Reads Arc's sidebar data file to list spaces, pinned items, folders, and unpinned tabs with last-active times, providing tab IDs for other tools without driving Arc.

Instructions

Read Arc's sidebar from its own data file: every space with its pinned items (folders nested) and unpinned tabs, plus the top-app favourites. Gives what list_tabs cannot (pinned versus unpinned, folders, when each tab was last active) in milliseconds, without driving Arc. Each tab's id is the tab_id list_tabs reports, so it can be passed to other tools. Arc writes the file periodically, so recent changes may be missing: see asOf. Pass match_live to check each tab against Arc's open tabs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
spaceNoOnly this space, by id or title from list_spaces
max_itemsNoMaximum tabs to return. Capped at 2000.
match_liveNoAlso ask Arc which tabs are open and mark each one live: true or false. Costs an Apple Events call and needs Arc running.
include_urlsNoInclude each tab's url. Turn off for a smaller, less sensitive result.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), and the description adds real context beyond that: reads a periodically-written file so results may be stale, points to asOf, and notes match_live costs an Apple Events call and requires Arc running. This is exactly the kind of extra behavioral detail the annotations cannot express.

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?

Dense but front-loaded, with the core purpose first and secondary facts (id pass-through, staleness, match_live) following in tight order. Every sentence carries information an agent needs.

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?

There is no output schema, so the description carries the return-shape burden, and it does name the key fields (spaces, pinned/unpinned, folders, favourites, tab ids, asOf) plus the cross-tool id correspondence. Minor omissions remain (ordering, favourites structure) but the agent has enough to call it correctly.

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 description coverage is 100%, so all four parameters are already documented in the schema, which sets the baseline at 3. The description adds only marginal meaning (that match_live checks each tab against Arc's open tabs, and that asOf reflects staleness) and repeats intent already in 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 gives a specific verb and resource ('Read Arc's sidebar from its own data file') and enumerates exactly what is returned: spaces, pinned items with nested folders, unpinned tabs, and top-app favourites. It explicitly distinguishes itself from list_tabs, so an agent can tell the two apart without opening either schema.

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 states the comparative advantage over the sibling ('Gives what list_tabs cannot: pinned versus unpinned, folders, when each tab was last active') and tells when to add match_live. It never spells out an explicit when-not condition, so the routing is clear but not fully prescriptive.

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