Skip to main content
Glama

Add extension

add_extension
DestructiveIdempotent

Track the user's own extension from its Chrome Web Store and/or Firefox Add-ons URL. Resolve a name with search_catalog first; pass the selected result's url. Do not guess between ambiguous listings or start tracking research results without the user's request.

Supply both URLs in one call only when they are the same product: they share one extension_id and consume one plan slot. Repeating an existing URL is a no-op, including at the cap. If one URL matches existing tracking, its missing store is attached and existing keywords are adopted. Conflicting listings are refused, never replaced or merged.

Free allows 1 tracked extension; Premium allows 10. The response includes current usage and limits. A plan_limit_reached error is not retryable unchanged: explain it, offer the pricing link, or ask which existing extension the user wants removed with remove_extension. Never delete tracking automatically to free a slot.

Cached metrics may be available immediately; fresh metrics run in the background. Use get_extension and list_scrape_runs to check progress; do not promise a completion time.

Needs an ExtensionDash account: sign in from your app, e.g. claude mcp login extensions-dashboard or codex mcp login extensions-dashboard.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "add_extension"
  }
}

Input Schema

NameRequiredDescriptionDefault
chrome_urlNoHTTPS Chrome Web Store listing URL; at least one store URL is required.
firefox_urlNoHTTPS Firefox Add-ons listing URL, optionally paired with the same product's Chrome URL.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses idempotency specifics (repeating an existing URL is a no-op, even at the cap), merge semantics (a matched URL attaches the missing store and adopts existing keywords), refusal of conflicting listings, plan caps (1 free / 10 Premium, shared slot), and that fresh metrics run asynchronously with unknown completion time. The authentication requirement is stated with concrete login commands, and the explicit 'never delete tracking automatically' rule adds safety context.

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?

Front-loads the verb and resource, then layers constraints in short, scannable lines with no filler. It is long, but nearly every sentence carries an operational rule; the auth note at the end is the only element that could arguably be trimmed or moved elsewhere.

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?

For a two-parameter write tool with no output schema, the description covers everything an agent needs: prerequisites, conflict handling, plan limits, non-retryable error handling, async metrics behavior, and even what the response contains ('current usage and limits') plus which tools to poll for progress.

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?

Schema coverage is 100%, so both URL parameters are already documented in the schema, but the description adds real meaning: the two URLs may be supplied together only when they are the same product, and doing so consumes one extension_id and one plan slot. That pairing constraint and its consequence are not derivable from the schema 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?

Opens with a specific verb and resource: 'Track the user's own extension from its Chrome Web Store and/or Firefox Add-ons URL', and immediately distinguishes itself from siblings by routing name resolution to search_catalog. An agent can tell this apart from add_competitor or search_catalog without opening a schema.

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 states prerequisites (resolve the name via search_catalog, pass the selected result's url), prohibitions (do not guess between ambiguous listings, do not start tracking research results without the user's request), and the fallback path on failure (explain plan_limit_reached, offer pricing link, or ask which extension to remove with remove_extension). Alternatives are named rather than implied.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources