roo-mcp
Server Quality Checklist
Latest release: v0.1.2
- Disambiguation4/5
The tool set is largely distinct: shortlink CRUD, previews, QR codes, webhooks, and redirect rules each map to separate responsibilities. The main overlap is between roo_make_permanent and roo_update_permanent_settings, since both can enable permanent mode and the latter is also used to disable it.
Naming Consistency4/5Most tools follow a consistent roo_verb_object snake_case pattern such as list_shortlinks, create_shortlink, get_shortlink, and set_webhook. Minor outliers like roo_whoami and roo_make_permanent break the object-noun pattern, but overall the naming is predictable.
Tool Count4/514 tools is a reasonable size for a shortlink platform covering core CRUD, custom domains, QR codes, redirect rules, webhooks, and preview settings. The count is slightly padded by redundant permanent-link control, but no tool feels wildly out of place.
Completeness3/5Core operations are well covered for shortlink creation, retrieval, updating, and listing, plus several add-on features. However, there is no delete/remove shortlink tool, and add-ons like webhooks, QR codes, or redirect rules cannot be explicitly disabled — only replaced.
Average 4.1/5 across 14 of 14 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 8 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries most of the behavioral burden. It clearly discloses patch-like behavior ('only fields you pass are sent') and warns that `permanent` is the only currently verified field, while future fields may also be accepted. It does not mention authentication or failure behavior, but it is transparent about what the endpoint will and won't do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense, front-loaded sentence that states the action first and then adds a relevant caveat. Every clause earns its place, and there is no repeated or redundant wording from the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter patch with complete schema documentation, the description gives enough information to invoke the tool correctly. It does not clarify how this relates to roo_make_permanent or roo_update_shortlink, and there is no output schema, but the core calling context is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to restate id or `permanent`. It adds useful context that only supplied fields are sent and that `permanent` is currently the only verified field, which encourages careful argument construction. This is helpful but not transformative beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb ('Update') and a specific resource ('permanent-mode settings on a shortlink'), then narrows the actual scope to the `permanent` boolean field. It is distinct from a general shortlink update, but it does not explicitly distinguish itself from a sibling like roo_make_permanent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus its alternatives. It names neither roo_make_permanent nor the general roo_update_shortlink, and gives no 'use this when...' or 'do not use for...' condition. The 'only verified field' caveat is a limitation, not a usage criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/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 behavioral burden. 'Fetch' strongly implies a read-only operation with no side effects, but the description does not explicitly state that the tool is non-mutating or describe behavior for invalid or missing ids. This is reasonable guess for a getter, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the main action and scope, then follows with a dash-separated list of meaningful returned fields. No filler or restating of schema content; every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, single-purpose getter with no output schema, the description covers almost everything an agent needs: what it returns, for what id type, and the scope of the operation. The only notable omissions are explicit not-found/error semantics and a fully explicit read-only statement, but those are minor and highly predictable given the verb 'fetch'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description for 'id': 'Shortlink id (as returned by create or list).' This tells the agent the parameter's source and format. The tool description adds no additional detail about the id parameter itself, so the baseline 3 for high-schema coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb ('Fetch') and resource ('one shortlink by id'), then enumerates the concrete details it returns: destination, custom domain, click count, permanence, folder, description, and add-ons. This clearly distinguishes it from siblings like roo_list_shortlinks or roo_get_qr_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by id' implies the agent needs to already know a specific shortlink id, and the 'one shortlink' scope suggests this is not for listing or creating. However, the description never explicitly states when to use this over roo_list_shortlinks or mentions any alternatives or exclusions, leaving the choice somewhat to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/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. It does disclose the mutable behavior and important details like 'switches to url and stays' and 'the tool re-sorts', but it does not mention permissions, side effects, or what exactly happens when thresholds are replaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no fluff. The first sentence gives the verb and resource, the second explains the runtime behavior, and the third addresses ordering. Well-structured and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool with full schema coverage, the description is largely complete and the threshold behavior is clear. It loses the top score because it does not mention operational cautions like permission requirements, previous-threshold replacement semantics, or anything about the response/result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters and their semantics. The description repeats the cumulative-threshold behavior and re-sorting, but adds little beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific mechanism: 'click-count redirect', then explains that cumulative thresholds are attached or replaced on the shortlink. It clearly states the behavioral contract: after click_count clicks, the destination switches to `url` and stays until the next threshold, which distinguishes it from siblings like set_scheduled_redirect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as set_scheduled_redirect or update_shortlink. The use case is implied by the phrase 'click-count redirect' and the threshold semantics, but no exclusion or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose useful behavioral context: most fields are defaulted, and the webhook does not alter the shortlink's redirect destination. However, it does not mention whether setting the webhook replaces an existing one, what permissions are needed, or what confirmation/error behavior to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted wording. The most actionable information is front-loaded, and the clarifying note about the destination not changing is a valuable second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The claim that 'you only need to provide the endpoint' conflicts with the input schema, which requires both id and endpoint. This is misleading for an agent and could lead to an invalid call. With 9 parameters, no annotations, and no output schema, the description leaves too much unsaid about side effects and setup prerequisites despite the rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains every parameter in detail. The description adds only high-level context about defaults (7 fields defaulted) and endpoint semantics, but does not meaningfully improve per-parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('set webhook') and explains exactly what the tool does: fire an HTTP request to an endpoint on every click. The explicit clarification that it does not change the shortlink destination helps distinguish this from redirect-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly identifies the trigger context: use this when you want an HTTP request fired on every click. It also provides a when-not signal by stating that the redirect destination is unchanged, which helps an agent avoid misusing it as a redirect-setting tool. However, no explicit alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It adds genuinely useful context by explaining that 'Roo requires all 6 fields; the tool defaults them all' — meaning optional schema fields are defaulted. But it does not disclose whether existing QR settings are overwritten, whether changes are reversible, or what happens on success beyond the implication that the add-on becomes enabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The opening sentence states the purpose, the second sentence adds a critical behavioral hint about defaults and gives a clear follow-up action. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is reasonably complete given the strong schema and clear sibling workflow, but without annotations or an output schema it leaves some behavioral uncertainty: what the success result looks like, whether existing QR configuration is replaced, and whether there are any side effects. For a mutation-style tool, this missing context prevents a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage of all seven parameters, including defaults, enums, ranges, and patterns. The description adds only the note that all six non-required fields are defaulted by the tool. Since the schema already documents every parameter in detail, the description does not significantly amplify parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Configure and enable the QR code add-on on a shortlink.' It names a specific verb, resource, and outcome, and the phrasing distinguishes it from sibling roo_get_qr_code, which fetches the rendered image rather than configuring it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual guidance by noting that after this tool succeeds, the agent should use roo_get_qr_code to fetch the image. This establishes a workflow. However, it does not explicitly state when to avoid using this tool or what distinguishes it from other update/configure siblings, so it stops short of full alternative-condition guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure load. It clearly describes the special image behavior: a base64 data URI uploads a new image, while a previously-returned image_url retains the current image. It also names the Open Graph fields being modified. It could be even more transparent about what happens when image is omitted or what side effects may occur, but it covers the key functional behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the purpose first at social/chat and the one non-obvious behavior (image handling) explained while. There is no redundant filler and the structure is helpfully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a focused update tool with a simple schema, the description together with the schema is largely complete: an agent can determine the target ID, required fields, and the optional image semantics. The main missing piece is whether omitting image preserves or clears the current image, and where the previously-returned image_url originates from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents 100% of the parameters, so the baseline is 3. The description adds a small amount of extra meaning by placing the fields in the Open Graph context and explaining the image upload/retention distinction, but it mostly restates what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: controlling how a shortlink preview unfurls across social/chat via Open Graph title, description, and image. This is clearly distinguishable from the broader update_shortlink and other set_* siblings because it focuses specifically on preview metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when the goal is to set or adjust a shortlink's social/chat preview appearance, but it never explicitly compares it to alternatives. It does not say things like 'use roo_update_shortlink for general fields' or 'this only changes preview metadata, not redirect behavior'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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, and it handles this well. It explains the switch-point semantics ('at time T the redirect switches to url and stays until the next waypoint'), the fall-through behavior before the first waypoint, and the important limitation about timezone and per-waypoint end fields. It does not cover idempotency, response, or error behavior, but the core operation is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first phrase names the tool type, the next explains the rule/action, and each subsequent sentence adds a distinct, non-redundant behavior or limitation. There is no fluff, ESL padding, or repeated schema text at the top level.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation tool with full schema coverage and no output schema, the description provides the essential operational context: temporal switch behavior, fall-through, and unsupported end/timezone handling. Minor gaps remain, such as whether waypoints replace or merely append to existing scheduled waypoints, and what success/response looks like, but the core invocation criteria are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The top-level description adds interpretive context about what a waypoint means and calls out the missing timezone/end-field semantics, but this mostly restates the embedded waypoint description rather than providing substantial new parameter-level details. This matches the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'attach or replace waypoints on the shortlink', and immediately frames the tool as 'time-based redirect'. This clearly sets it apart from the sibling roo_set_click_count_redirect and other shortlink-manipulation tools. It does more than restate the tool name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Time-based redirect' gives clear context for when this tool applies, and the limitation 'Roo has no timezone or per-waypoint end field' hints at conditions to check. However, it never explicitly states when to prefer an alternative sibling tool, such as roo_set_click_count_redirect or roo_set_preview_link, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden, and it does well: it discloses the atomic attach-in-the-same-call behavior and the inline pre-rendered QR response when add_ons.qr is set. The nested schema descriptions add further transparency (re-sorting of waypoints/thresholds, fallback slug behavior, image reuse). Minor gaps remain, such as duplicate/error handling and exact response shape beyond the QR note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action in sentence one, optional scope in sentence two, the atomic semantics in sentence three, and the QR-specific return behavior in sentence four. Every sentence earns its place, and the most decision-relevant information appears first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex nested-parameter tool with no output schema, all mattering selection/invocation information is present: what it does, what can be configured upfront, and a key response detail (QR image inline). The only real gap is that the generic return shape beyond the QR case is not described since there is no output schema to rely on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already contains rich, self-explanatory detail for every parameter, including the nested add-on objects. The description adds useful context around the add_ons parameter — specifically that passing it combines create + attach into one call — but it does not need to duplicate parameter semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource ('Create a shortlink that redirects to `url`') and immediately scopes the optional behaviors: custom domain, slug, and upfront add-ons. It also distinguishes itself from the sibling roo_set_* tools by emphasizing the single-API-call atomic creation, making the intent clear without needing to inspect the 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when add-ons can be configured (upfront) and the add_ons schema explicitly states the alternative path: 'When absent, you can still add these later via roo_set_* tools.' This is solid when/when-not guidance for the main decision an agent faces with a create tool. It does not explicitly mention roo_update_shortlink for the update case, though that is less of a selection concern here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It communicates read-only intent via 'List', confirms the data source is authoritative/web-app-backed, and describes the output contents. It does not mention pagination, error behavior, or auth expectations, but for an account-level list operation the scope and no-side-effect nature are sufficiently disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, all informative: the core behavior is front-loaded, the authoritative note adds context, and the shortlink-domain distinction prevents a real misuse. No filler or redundancy. The description earns each sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-filter-list tool with only one parameter and no output schema, the description provides enough to call it correctly: behavior, scope, output ingredients, and how it relates to the shortlink-domain concept. It stops short of detailing exact response structure or list ordering, but those are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents status_filter including known values. The description adds marginally by mentioning status and verification details, which helps the agent infer what filtering and output mean, but it does not add parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('custom domains attached to the account'), and states the output payload: status and verification details. It also draws a clear line against the domain a SHORTLINK is on, which distinguishes it from the sibling tool the agent might otherwise confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The first sentence makes the intended use case obvious: query all account-level custom domains. The explicit distinction from the domain a particular SHORTLINK is on is a useful when-not signal, preventing a common misconception, though it does not name the exact sibling tool to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the shortlink stops participating in auto-expiry, that a 90-day plan period applies, and that the action counts against a permanent-shortlink limit. It also reveals reversibility by directing the user to un-make it. It could mention permissions or errors, but the core behavioral impact is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the main action is stated first, followed by key consequences and the reverse path. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool with no output schema, the description is nearly complete: the effect, the plan expiry context, the limit impact, and the way to reverse the operation are all included. A minor omission is whether the operation can fail or be blocked by quota, but this is not required for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the single `id` parameter clearly. The description adds minimal parameter-level detail beyond the schema, but since there is only one simple required parameter and the description restates its purpose, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Mark a shortlink as permanent'. It clearly differentiates this tool from the sibling roo_update_permanent_settings by stating the opposite operation uses that other tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when this tool applies (shortlinks subject to plan auto-expiry) and explicitly points to roo_update_permanent_settings for the reverse operation. It does not exhaustively compare with every sibling, but the key alternative and condition are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It provides useful behavioral context: 'Only fields you pass are sent' reveals PATCH-like partial update semantics and clarifies that unspecified fields remain untouched. It also uses scopes the tool away from add-ons and permanent flag behavior. It does not mention return format or error behavior, but core mutation semantics are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and efficient: it states the operation, scope, partial-update behavior, and sibling-tool routing in a few short sentences. There is no verbosity or redundant repetition of schema information. Every sentence contributes meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, full schema coverage, and nested objects, the description plus schema covers the essential invocation aspects: what it updates, optionality via partial update, and which siblings to use for other concerns. There is no output schema, but a simple 'update' tool can reasonably omit return-value detail. The answer is slightly less complete because it does not describe what is returned or whether id is validated, though these are not critical for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds a general partial-update rule ('Only fields you pass are sent') that affects how all parameters operate, but it does not add per-parameter detail beyond the schema. The mention of 'destination URL and/or the custom-domain binding' reflects the schema's top-level properties without further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update'), names the resource ('a shortlink'), and states the exact scope: 'Change the destination URL and/or the custom-domain binding.' It also distinguishes itself from related tools by explicitly naming roo_set_* tools for add-ons and roo_make_permanent for permanent status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'To change add-ons, use the roo_set_* tools; to make/unmake permanent, use roo_make_permanent.' This tells the agent when not to use this tool. The phrase 'Only fields you pass are sent' also conveys that this tool is for partial updates, not whole-object replacement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it does so reasonably: it discloses what the call returns (email, plan, limits, subscription dates) and implies a non-mutating check via 'verify.' It does not state error behavior for an invalid key (e.g., what response shape is returned), which is the main transparency gap, but for a zero-parameter read-only identity check the essential behavior is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences with zero filler: sentence one states function and return content, sentence two states when to use it. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema and no annotations, the description gives what an agent needs: the operation, the return contents, and the recommended usage context. The only notable omission is the failure mode for an invalid/expired API key and any pagination or detail level of the summary, but the tool still appears callable and interpretable without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description correctly adds no parameter noise; per the baseline for 0-param tools this earns a 4. The description does not need to explain any parameter semantics since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Verify the Roo API key') and a concrete deliverable ('compact account summary (email, plan, limits, subscription dates)'). The title 'Roo — who am I' reinforces the identity/account-check intent. None of the sibling tools (shortlink, QR, webhook, domain, redirect management) perform account verification, so it is clearly distinguishable without inspecting any schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to call it: 'Use to check that Roo access is working before other operations,' positioning it as a smoke test. It does not name alternatives or state when not to use it, but with 13 siblings all doing unrelated shortlink/config/QR operations, no real alternative exists; the guidance is clear though not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and delivers it: default behavior returns an MCP image content block, save_to makes it write bytes to a file, the return value changes, and the failure mode (qr_not_enabled) is named. This is well beyond minimal transparency for a simple read 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: what is fetched, the prerequisite and error, and the default vs. file option. The core mechanism is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple scalar parameters and no output schema, the description explains prerequisites, error behavior, default result, alternative result, and the save_to path rule. An agent has enough information to invoke it correctly and interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id and save_to in detail. The description aligns with the schema but adds no new parameter-level semantics beyond the structured field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Fetch the QR image for a shortlink.' It also clarifies the role relative to the prerequisite sibling tool roo_set_qr_addon, so an agent can immediately understand what this tool gets versus what that tool configures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It is clear when the tool is usable: the shortlink must already have the qrCode add-on configured, and otherwise a qr_not_enabled error is returned. It does not explicitly list alternatives or exclusion cases, but it does reference the condition that decides usefulness through roo_set_qr_addon.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full behavioral burden. It does well by disclosing cursor-based pagination, ordering (most-recent first), and the compact nature of the returned items. It doesn't explicitly state read-only semantics or error behaviors, but for a simple list operation the disclosed behavior is already beyond the typical baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It leads with the main action and immediately includes the key pagination and compactness qualifiers, then points to the detail tool. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list with two optional params, no required args, and no output schema, the description covers what an agent needs: the scope, the pagination behavior, the ordering, the item compactness, and the follow-up tool for full detail. The cursor param is fully explained in the schema, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters already have clear descriptions in the schema. The description adds no extra parameter detail, but it does support the cursor parameter by mentioning pagination and the compact item format. Per the baseline for full schema coverage, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a resource ('shortlinks on the account'), and key scoping details (cursor-paginated, most-recent first). It also distinguishes itself from roo_get_shortlink by noting it returns compact items, making it clear that this is the listing tool rather than the detail tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the alternative for full detail: 'call roo_get_shortlink for full detail on one.' This tells the agent when to use a sibling instead, which is strong guidance. The pagination hint also implies the usage pattern of iterating pages, which is sufficient for this simple list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dzisner/roo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server