Public leaderboard

Public assessment

auspy/supasidebar-mcp (supasidebar-mcp)

supasidebar-mcp · v0.2.0 · scanned

What changed in the harness

Selection accuracy 100→100, token cost up 13%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

20.7 / 30

20.7 out of 30
03Economics

17.0 / 20

17.0 out of 20
04Discoverability

13.0 / 20

13.0 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

28 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
guide
no_return_description
Get a complete guide to SupaSidebar's MCP capabilities. Returns a summary of all available tools and what they do, common user requests mapped to the tool calls that handle them, setting categories, and feature presets. Call this first when you're unsure which tool to use.
list_spaces
name_restates_behavior no_return_description
Return the top-level collections in SupaSidebar that organize your saved links. Each space entry includes its ID, which you pass to list_links, list_folders, and switch_space. Call this first when you need to browse links inside a particular space or switch workspaces.
search
name_restates_behavior no_return_description
Find saved links across all of SupaSidebar by matching their name, URL, notes, or tags, using fuzzy matching so partial or approximate matches still hit. Returns the matching links and their details. Use this when the user wants to locate a link they remember rather than drilling through folders.
list_folders
name_restates_behavior no_return_description
Return the folders inside a specific space that organize links hierarchically. Each folder entry includes its ID, which you can pass as folderId to list_links to filter results. Get the spaceId from list_spaces.
list_tags
name_restates_behavior no_return_description
Return every tag currently used across your stored links, sorted by how many links use each tag. Use this to see what topics your links cover or to learn tag names for filtering and querying.
get_live_tabs
no_return_description
Return the browser tabs currently open on this machine, optionally filtered to a single browser (Arc, Chrome, Safari, Firefox, Edge, Brave, etc.). Each tab entry includes identifying details such as title and URL. Omit browser to see tabs across all supported browsers.
list_recent
no_return_description
Return links opened recently, ordered from most recent to oldest, with their names, URLs, and open times. Support pagination with limit (default 50, max 1000) and offset, and date filtering with day, since, and until. If a link isn't in the first page, raise limit before concluding it's missing, and prefer day='YYYY-MM-DD' to find what was opened on a specific day.
get_visibility
no_return_description
Return whether the SupaSidebar sidebar and command panel are currently visible, without toggling or otherwise changing their state. Use this instead of a toggle just to check status.
launch_sidebar
name_restates_behavior no_return_description
Start the SupaSidebar app if it is not already running, using the macOS 'open -a' command, and return confirmation of the launch. Use this to ensure the app is available before controlling it.
toggle_command_panel
no_return_description
Toggle the SupaSidebar command panel (search/command palette): it opens if currently closed and closes if currently open. Returns the resulting state of the panel.
switch_space
no_return_description
Switch SupaSidebar to a different space, making that space's links and folders active, and return confirmation of the space now in use. Get the spaceId from list_spaces; spaces are separate workspaces for your links.
open_preferences
no_return_description
Open the SupaSidebar Preferences window so the user can view or adjust settings visually, optionally jumping straight to a specific tab (general, sidebar, mouseTriggers, shortcuts, spaces, liveTabs, voice, aiTags, importExport, commandPanel, airTrafficControl, refer, about). Returns nothing; the window opens in the app.
update_setting
no_return_description
Change a SupaSidebar setting and return the updated setting with its new value. Pass key (e.g. 'isCompactMode') and value (boolean for toggles, string for mode selections, number for numeric settings). Run get_settings first to see available keys and current values.
enable_feature
no_return_description
Enable a named feature preset that configures multiple settings at once, then return confirmation of the preset applied. Presets: 'Smart Attach' (auto-show with browser), 'Independent Mode' (always visible), 'Space Isolation' (separate tabs per space), 'Minimal Sidebar' (compact and clean), 'Full Featured' (everything on). Accepts exact names or aliases; see get_settings for all presets.
get_shortcuts
no_return_description
Return all configurable keyboard shortcuts with their current key bindings. Each entry includes the shortcut name (used for updates), display string, title, and description.
update_shortcut
no_return_description
Change a keyboard shortcut binding and return confirmation of the new binding. Requires at least one modifier key. Provide the shortcut name (from get_shortcuts), the key to bind (e.g. 'space', 's', 'k', 'f1'), and at least one modifier from 'command', 'shift', 'option', 'control' (aliases 'cmd', 'ctrl', 'opt', 'alt' accepted).
clear_shortcut
no_return_description
Remove a keyboard shortcut's key combination so the action no longer has a binding assigned, and return confirmation that it was cleared. Provide the shortcut name (e.g. 'toggleSidebar') from get_shortcuts.
web_search
no_return_description
Search the web via a built-in engine (Google, Bing, DuckDuckGo, Yahoo, Perplexity, Brave, Kagi) or a custom site shortcut, and return the results by opening them in the browser (use browser to override the default). Use engine for a keyword like 'perplexity' or a shortcut like 'yo' (YouTube) or 'reddit'; see list_search_shortcuts for all.
list_search_shortcuts
no_return_description
Return all available search engines and custom website search shortcuts. Each entry shows built-in engines (Google, Bing, etc.) and user-created shortcuts (YouTube, Reddit, etc.) with their keywords, so you know what to pass as engine to web_search.
remove_search_shortcut
name_restates_behavior no_return_description
Delete a custom website search shortcut by its keyword (e.g. 'yo', 'reddit') or its UUID, and return confirmation that it was removed. Use this to stop a site shortcut from being usable with web_search.
create_space
name_restates_behavior no_return_description
Create a top-level workspace collection that organizes your links. Use when you need a new space to group related links (e.g. 'Work' vs 'Side Projects'). Returns the newly created space, including its ID, so you can reference it when adding folders or links.
create_folder
no_return_description
Create a folder (optionally nested) inside a space to group links. Use list_spaces to get the space ID and list_folders for a parent folder ID; omit parentFolderId for a root-level folder. Returns the created folder, including its ID.
add_link
no_return_description
Save a link to a space, optionally into a folder, so it appears in SupaSidebar. Use list_spaces for the space ID and list_folders for a folder ID; if name is omitted, the page title is fetched automatically. Returns the saved link, including its ID.
move_link
no_return_description
Relocate an existing link to a different space or folder. Get the link ID from list_links or search; pass targetFolderId as null to move to unfiled root, or omit fields you don't want to change. Returns the updated link.
list_atc_rules
no_return_description
List all Air Traffic Control (ATC) rules, which automatically route URLs: save rules send links to specific spaces, and open rules open URLs in specific browsers/profiles. Rules are evaluated top-to-bottom, first match wins. Returns the current rules in priority order, including their IDs for use with update/delete/reorder.
add_atc_rule
no_return_description
Create an ATC rule that automatically routes URLs: save rules send saved links to a specific space, and open rules open matching URLs in a specific browser/profile. Use list_browser_profiles for profile IDs and list_spaces for space IDs. Returns the created rule, including its ID.
delete_atc_rule
no_return_description
Remove an ATC rule so URLs matching it stop being routed automatically. Get the rule ID from list_atc_rules. Returns confirmation of the deletion.
list_browser_profiles
no_return_description
List the browser profiles discovered by SupaSidebar so you can obtain profile IDs for ATC open rules that route URLs to a specific browser profile (e.g. 'Safari Work profile'). Returns the discovered profiles and their IDs.

Selection evidence

Confusable tool pairs.

6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
search web_search high A task like 'search for X' is genuinely ambiguous: search matches saved links/notes/tags inside SupaSidebar, while web_search queries the web. Without more context the agent could pick either.
list_browser_profiles list_installed_browsers medium Both return browser-related lists and users blur 'browsers' vs 'profiles'. A task like 'which browsers do I have?' could instead need installed-browser info, or the reverse when profiles are meant.
add_link move_link medium 'Put this link in my Work space' is ambiguous between saving a new link and relocating an existing one; choosing requires knowing whether the link already exists, which the shortlists don't reveal.
toggle_sidebar launch_sidebar medium 'Open the sidebar' could mean showing/hiding it via toggle_sidebar or launching the not-running app via launch_sidebar; the two are easily conflated in casual phrasing.
create_space create_folder medium Users use 'folder' and 'space' loosely; a task like 'create a new folder for my projects' could be routed to create_space since spaces are top-level collections and folders nest inside spaces.
get_settings get_shortcuts medium A vague request like 'show me my current keyboard settings/configuration' can land on either: get_settings exposes settings by key/category, get_shortcuts lists key bindings, and neither description cleanly resolves 'settings' vs 'shortcuts'.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard