Skip to main content
Glama

Server Quality Checklist

75%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.0

  • Disambiguation5/5

    Each tool targets a distinct action or resource: search is separated from preview, save, download, and cart operations, and download_status vs download_wait are clearly one-off vs watcher. Even where arguments overlap, the descriptions draw explicit boundaries.

    Naming Consistency3/5

    Most query tools follow verb_noun (remove_query, search_scenes, list_queries), but cart_* uses noun-verb order (cart_add, cart_list) and auth_status/download_status/download_wait are noun-phrase style. Everything is snake_case and readable, but the naming pattern is mixed rather than uniform.

    Tool Count5/5

    15 tools is within the ideal range, and each tool covers a distinct stage of the archive-to-download/cart workflow. There is no apparent redundancy or padding.

    Completeness4/5

    The set covers discovery, geocoding, search, dry-run preview, saved-query lifecycle, auth status, download execution/monitoring, and cart management. Minor gaps like no in-server edit of saved queries, no active-download listing, and no direct archival request action are workarounds via the portal or CLI.

  • Average 4.6/5 across 15 of 15 tools scored. Lowest: 3.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 38 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • 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.

  • This server has been verified by its author.

  • 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

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden. It does disclose the login requirement and the subtle row-indexing semantics for select, which is useful. However, it is silent on whether slug-mode mutates the saved query, whether removal is reversible, and what happens on invalid select/slug input.

    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 compact, front-loaded with the core purpose, and then adds the necessary mode/auth context. Every sentence contributes meaningful guidance with no 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?

    The description is sufficient for understanding the two addressing modes and the auth dependency. However, with no output schema and no mention of return values, errors, or slug-mode effects on the saved query, an agent may still be uncertain about observable outcomes.

    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 description coverage is 0%, so the description must compensate. It explains the key parameters: slug switches indexing to a saved query's scenes, while select indexes the merged cart when slug is omitted. It also ties since/until/last/filter_by to the cart_list window, though individual formats and allowed values are not specified.

    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 first line states a specific action ('Remove scenes') and resource ('Bhoonidhi cart'), so the core purpose is clear. It does not explicitly distinguish itself from sibling remove_query beyond the word 'scenes' versus 'query,' which prevents a perfect 5.

    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 gives clear operational guidance for the two addressing modes: pass slug to reference a saved query's scenes, or omit it and use select on the merged cart under the same cart_list window. It also notes the login prerequisite, but does not explicitly state when to prefer remove_query or what preconditions each mode requires.

    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 burden of behavioral disclosure. It reveals that no window means today only, that filtering is by state, and that authentication is required. It does not describe output format or failure behavior, but for a basic listing tool this is adequate.

    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 compact and front-loaded with the core purpose. Each additional sentence earns its place by explaining a parameter behavior, a default, or an auth prerequisite. No filler or repetition.

    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?

    The description covers all optional parameters, the default date window, filter states, and authentication. There is no output schema, so return details are not specified, but 'List scenes' conveys the primary result. Minor gaps around ordering or pagination prevent a 5.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, and the description fully compensates by explaining since/until with ISO date examples, last with a relative example, and filter_by with explicit allowed values. Every parameter is given meaningful semantic context beyond the bare schema.

    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 states a specific verb and resource: 'List scenes currently staged in the Bhoonidhi cart.' This clearly identifies the tool's function. It does not explicitly contrast itself with siblings like list_archive, but the name and wording are sufficiently distinct.

    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?

    The description provides clear usage context: default to today only, how to widen with since/until/last, filter_by allowed states, and the login requirement. It does not explicitly mention when to prefer this over search_scenes or list_archive, but the guidance is otherwise solid.

    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 behavioral disclosure burden. It does well by revealing the tool returns vocabulary data with resolution and date coverage, and that results are locally cached unless refresh=True is set. It does not mention authentication requirements or rate limits, but for a simple read-only listing tool this is reasonably 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three short sentences with no filler. It front-loads the action and resource, then adds return-value details and parameter behavior. Every sentence contributes necessary information.

    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?

    For a simple read-only tool with one optional parameter and no output schema, the description is largely complete: it explains what is returned and how to refresh cached data. It could also state whether authentication is required or what the default cache behavior means in practice, but these are minor omissions for this tool.

    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?

    The schema provides only a title and default for the refresh parameter, with 0% description coverage. The description compensates by giving the exact semantic: 'Set refresh=True to bypass the local cache.' This tells the agent how the parameter affects behavior, which is the key information needed.

    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 opens with a specific verb and resource: 'List every satellite and sensor the Bhoonidhi portal supports.' It further clarifies the return value as the vocabulary of valid satellites, sensors, exact search tokens, resolution, and date coverage. This clearly distinguishes it from sibling tools like search_scenes or cart operations.

    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?

    The description explicitly states when to call the tool: 'Call this to discover what can be searched.' It also explains when to set refresh=True to bypass the local cache. However, it does not explicitly contrast this with alternatives or mention when not to use it, though the sibling list makes the distinction fairly clear.

    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 full burden of disclosing side effects. It states that the query is removed from disk, that scenes remain unaffected, and that a not_found status is returned for unknown slugs. This is strong behavioral coverage for a one-parameter destructive 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three tight sentences, no filler. The primary action is front-loaded, followed by necessary sourcing and side-effect details. Every sentence earns its place.

    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 simple tool with one required parameter and no output schema, the description covers the action, the slug source, the side effect, and the error case. Nothing essential is missing for an agent to invoke it correctly.

    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 description coverage is 0%, so the description must add meaning. It does so by explaining that slug comes from save_query or list_queries and that an unmatched slug produces not_found. This gives the parameter semantic context beyond its bare string type.

    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 opens with a specific verb and resource: 'Delete a saved query by slug.' This clearly differentiates it from sibling tools like save_query, list_queries, and show_query, leaving no ambiguity about the operation.

    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 explicitly tells the agent where to obtain the required slug: 'Give the slug from save_query or list_queries.' It also clarifies a non-effect (scenes unaffected), which helps set correct expectations. It does not list explicit when-not-to-use cases, but no sibling tool performs the same deletion role.

    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 the output shape (centroid plus bounding box) and the failure mode (found=False when the place cannot be resolved). It omits potential ambiguity or coordinate system details, but this is adequate for a simple lookup 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is compact and well-structured, leading with the core purpose, then adding an illustrative example, the concrete output format, downstream use, and the failure case. Every sentence adds value.

    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 single-parameter tool with no output schema, this description is complete: it tells the agent what to pass, what will come back, what the failure signal is, and how the result connects to a sibling tool. No critical context is missing.

    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?

    The schema provides only a 'name' string with no description, so the description must compensate. It clarifies that 'name' is a natural-language place name and provides concrete examples. It does not over-specify format, which is appropriate for free-form place names.

    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 opens with a specific verb and resource: resolving a place name to a centroid and bounding box. It gives concrete examples ('Shillong', 'Loktak Lake') and clearly distinguishes this geocoding-style tool from sibling data-management/search 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/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It clearly states the intended downstream usage: the bounding box can be used as the area of interest for search_scenes. This gives an agent strong contextual guidance, though it does not explicitly mention when not to use it or name alternatives.

    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 burden and does so well. It discloses the stateful persistence side effect, that nothing is saved on error, and the exact status shapes returned. This is strong behavioral disclosure for a stateful tool.

    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 longer than a minimal one, but each section adds distinct value: purpose, sibling contrast, invocation timing, return shapes, and error behavior. The core purpose is front-loaded, though some wording around 'shaped saved query' and the bhd CLI could be tightened.

    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?

    For a 14-parameter stateful tool with no annotations and no output schema, the description covers the key operational facts: what is created, what is returned, how the slug is used, and what happens on error. The main gap is that authentication requirements and the exact structure of the 'shaped saved query' are not specified.

    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?

    At 0% schema coverage, the description compensates partially by saying it takes the same arguments as search_scenes plus optional name and description. This is a useful semantic anchor, but it delegates most parameter meaning to another tool and does not explain formats or the roles of satellite, dates, or geometry fields.

    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 opens with a specific verb and resource: 'Persist a search as a saved query and return a reusable slug.' It clearly distinguishes this from the stateless search_scenes sibling by saying what save_query does that search_scenes does not.

    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?

    The description gives explicit when-to-use guidance: call it once the user has confirmed the search returns the desired scenes, then use the slug with download/cart. It also contrasts it against search_scenes, which is stateless and leaves nothing behind, making the alternative condition clear.

    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?

    Because no annotations are provided, the description carries the full behavioral burden. It discloses the return payload—selections, area of interest, date range, shaped scenes with availability—and the not_found status for missing slugs. It doesn't explicitly state read-only semantics or auth prerequisites, but for a retrieval tool this is solid coverage.

    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 compact and front-loaded: purpose in the first line, input source in the second, then return details. Every sentence adds useful information with no filler.

    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 one-parameter read tool with no output schema and no annotations, the description covers purpose, parameter provenance, return shape, and an error case. An agent can confidently call it and interpret the response correctly.

    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 0% and the schema only defines slug as a string. The description compensates by explaining that the slug comes from save_query or list_queries and that an unknown slug returns status='not_found', adding meaning beyond the bare 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 opens with a specific verb and resource: 'Return one saved query by slug, with its scenes.' This clearly identifies the tool as single-query retrieval, distinct from list_queries which lists queries, and from remove_query which deletes them.

    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 gives concrete guidance on where the slug comes from: 'Give the slug from save_query or list_queries.' This helps the agent know this tool is for already-saved queries and how to obtain valid input, though it does not explicitly contrast with alternatives or state 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.

  • Behavior5/5

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

    With no annotations provided, the description fully carries the behavioral disclosure burden. It states that the tool never asks for or returns passwords or tokens, may establish a session using environment credentials, and returns specific shapes (authenticated=True with username, or authenticated=False with guidance). This is rich, honest behavioral context.

    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 longer than a single sentence, but every line earns its place: purpose, security guarantee, credential source, session behavior, return values, and usage timing. It is front-loaded with the core purpose and structured in readable short paragraphs.

    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 zero-parameter status tool with no output schema, the description fully specifies return values, the conditions that produce them, and the follow-up guidance the agent should convey. There are no missing required behaviors.

    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?

    There are zero parameters and schema coverage is 100%, so there is no parameter behavior for the description to clarify. The baseline of 4 applies because nothing further is needed.

    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 opens with a specific verb—report—and a clear resource: whether a Bhoonidhi login is configured for downloads and cart. It distinguishes itself from sibling tools like download_status and cart_list by focusing on authentication readiness, and the closing instruction 'Call this before download or cart actions' makes the tool's role unmistakable.

    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?

    The description explicitly says to call this before download or cart actions to tell the user if a login is needed, and it gives concrete fallback authentication methods ('bhd auth login' or environment variables). It does not enumerate exclusions or explicitly compare against sibling alternatives, but the usage context is clear and actionable.

    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 full burden. It discloses exactly what fields are returned, that results are compact summaries, that full scene lists are omitted, and that availability is summarized in plain English. It does not discuss authentication, pagination, or error behavior, but for a zero-parameter list tool the core behavior 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is front-loaded with the core purpose, then lists return fields, then states the key exclusion and points to the alternative. Every sentence adds value and none are redundant.

    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 no-input list operation with no output schema, the description is complete: it says what is returned, what is not returned, how to get the fuller data, and what the intended use case is. There are no gaps that would prevent an agent from invoking the tool correctly.

    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?

    The tool takes no parameters, so there are no parameter semantics to clarify. The description appropriately focuses on the output shape rather than inputs, satisfying the baseline expected for a zero-parameter tool.

    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 starts with a precise verb and resource: 'List every saved query as compact summaries.' It clearly distinguishes itself from show_query by stating it returns summaries, not full scene lists, and explicitly routes to show_query for scenes.

    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?

    The description explicitly states when to use the tool: 'Use this to find the slug for a query the user saved earlier.' It also names the alternative, show_query, for full scene lists, giving an agent clear routing guidance.

    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 zero annotations, the description carries the full burden and meets it: it discloses the auth requirement, the routing behavior by access type (ready/on-order/priced), the non-obvious limitation that priced scenes still require purchasing on the portal afterward, and the return shape (counts of staged and failed). None of this could be inferred from the name or bare schema.

    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?

    Five short sentences, each carrying distinct information: purpose, slug provenance, routing and select mechanics, login prerequisite, usage guidance with limitation, and return value. The purpose is front-loaded and no sentence is filler.

    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 moderate-complexity tool with no annotations and no output schema, the description covers everything needed to call it correctly: what it does, where the required slug comes from, selection semantics, required auth, workflow caveats, and return format. The only minor ambiguity, whether ready scenes should also be added here, does not block correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, and the description fully compensates: slug is explained as coming from save_query or list_queries, and select is clarified as narrowing to specific scenes via 1-based indices or scene IDs. The bare schema provides only the titles 'Slug' and 'Select', so the description is the sole source of semantic meaning.

    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-resource-destination statement: 'Stage a saved query's scenes to the Bhoonidhi cart,' which names the action, the input resource, and the target. It is immediately distinguishable from siblings like cart_remove, cart_list, and save_query by referencing saved-query scenes and the staging-to-cart behavior.

    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?

    Gives explicit when-to-use context ('Use this for on-order and priced scenes'), a prerequisite ('Needs a login (see auth_status)'), and an input source ('Give the slug from save_query or list_queries'). It stops short of a 5 because it never names alternative tools for exclusion, e.g., what to use for ready scenes or for completing purchases.

    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 full behavioral disclosure burden. It does this well by describing the possible states (running, completed, failed, not_found), key progress fields, and the job lifecycle caveat that jobs exist only while the server runs. It stops short of stating explicit non-mutating behavior, but the status-check semantics make that reasonably 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is compact yet information-dense. The main purpose is front-loaded in the first sentence, and every subsequent sentence contributes meaningful detail about states, usage, alternatives, or lifecycle. No filler or repetition.

    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?

    There is no output schema, so the description correctly takes on the job of explaining return shapes: running fields, completed outcomes, failed error, and not_found. For a simple one-parameter status tool, this covers everything an agent needs to invoke it correctly and interpret its result.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema only provides a bare 'job_id' property with no description (0% coverage), so the description must compensate. It does so directly: 'Give the job_id from download_query' tells the agent exactly where the value comes from, and the not_found behavior clarifies what happens with an invalid id.

    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 opens with a specific action and resource: 'Check a background download started by download_query'. It clearly identifies this as a one-off status check, and the contrast with download_wait distinguishes it from the most similar sibling.

    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 tells the agent when to use this tool: 'Use this for a single progress check.' It also names the alternative, download_wait, and the condition for choosing it: following a job to completion without tying up the conversation via a delegated watcher. It even explains how to obtain the required job_id from download_query.

    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 provided, the description carries the full behavioral burden and discharges it thoroughly. It discloses that the tool returns immediately with a job_id, runs independently of the conversation, writes to a fixed server-configured root the user cannot override, restarts interrupted downloads from scratch with no resume support, and hides file sizes until a transfer begins. These are exactly the operational surprises an agent needs to know before calling.

    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 long (~250 words) but front-loaded with the core purpose and heavily information-dense; nearly every sentence adds operational value, including the async watcher pattern and the large_download handoff. A few parentheticals ('the portal reveals them only then') are slightly redundant, so it is not perfectly tight, but the length is largely justified by the tool's complexity.

    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?

    Given no output schema and no annotations, this description is remarkably complete for a complex async tool. It covers prerequisites, parameter semantics, return value (job_id), the asynchronous lifecycle, failure behavior, exclusions, and alternatives — including the non-obvious advice to delegate a background watcher via download_wait. Nothing an agent needs to invoke and supervise this tool correctly is left unspecified.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/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 fully compensate, and it does. slug is grounded ('Give the slug from save_query or list_queries'), force is explained ('re-downloads files already present'), and select gets richer semantics than the bare schema: '1-based indices or full scene IDs; omit it for the whole query.' Every parameter is given meaning the schema alone cannot convey.

    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 opening sentence, 'Download a saved query's open-access scenes in the background,' states a specific verb (download), a precise resource (a saved query's open-access scenes), and the execution mode (background). It differentiates clearly from siblings: preview_download (previews rather than downloads), download_status/download_wait (monitor rather than initiate), and search_scenes (searches rather than downloads).

    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?

    The description is explicit about when to use this tool: it tells the agent where to get the slug ('from save_query or list_queries'), names a prerequisite ('Needs a login (see auth_status)'), and gives specific exclusions with alternatives ('Priced and on-order scenes are skipped — stage those with cart_add instead'). It also instructs how NOT to use it (never block by sleeping and re-polling) and directs to the watcher/download_wait pattern and large_download for oversized transfers.

    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 fully discloses key behaviors: no login is used, nothing is downloaded, per-scene prediction statuses are enumerated, and important limitations are surfaced (file sizes unknown until download starts, interrupted downloads cannot be resumed). This goes well beyond the minimum expected.

    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 front-loaded with the core purpose and stays organized: scope, argument relationship, status categories, usage recommendation, and caveats. Every sentence contributes meaningful information without redundancy.

    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?

    Despite having no output schema, the description explains the prediction statuses and disclaimers sufficiently for an agent to know what the tool returns and what limitations apply. It also covers login behavior, download behavior, and how this tool fits into the download workflow, making it complete for a 14-parameter tool.

    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 description coverage is 0%, so the description must compensate. It explicitly explains out_dir and force, and references 'same arguments as search_scenes' for the rest, which adds semantic meaning beyond the raw schema. However, individual search parameters like lat, minx, sensor, and product are not described here, relying on the sibling tool's definition.

    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 opens with a clear verb and resource: 'Dry-run a download for a search,' which immediately distinguishes it from the actual download tools. It also clarifies it shares arguments with search_scenes, further disambiguating it from siblings like download_query or search_scenes.

    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?

    It explicitly states when to use it: 'Use this before telling a user to download, so they know how many scenes are actually fetchable.' It also contrasts itself with a real download by noting 'Nothing is downloaded and no login is used,' and references search_scenes for argument compatibility.

    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 burden, and it delivers: it discloses statelessness, no-login requirement, ambiguous-satellite behavior, availability categories (Ready/Archived/OnOrder/Priced), and the non-resumable download limitation. This is far beyond what the schema alone would communicate.

    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 well-structured and front-loaded with the core purpose, then details. It is dense but justifiably so for a 12-parameter tool. Minor redundancy exists: 'stateless' is stated twice and the download-resume note is tangential to searching, so it loses a point.

    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?

    Given no output schema and no annotations, this description covers all essential context: what the tool does, how to specify each kind of input, what the response classes mean, how to handle ambiguity, and exactly which sibling tools to call next. Very little is left for an agent to guess.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description compensates thoroughly: it explains satellite name matching, ISO date format, the bbox vs. point-with-radius area alternatives, and how sensor/product narrow results. It meaningfully clarifies nearly every parameter group 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 opens with a specific verb and resource: 'Search Bhoonidhi scenes for a satellite over an area and date range.' It clearly describes the scope and outputs, and distinguishes itself from downstream persistence/action siblings by explicitly framing the search as stateless.

    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?

    The description gives strong routing guidance: use resolve_location for area input, list_archive for exact sensor/product names, and save_query/download_query/cart_add for acting on results. It also clarifies that search needs no login while downstream actions do, so an agent knows when this tool is the right entry point.

    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 provided, the description carries the full burden. It clearly discloses that the tool blocks server-side, returns on completion/failure/timeout, caps timeout_s at 120s, returns progress when still running, and returns status='not_found' for unknown 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 front-loaded with a one-sentence summary, then expands with precise behavioral details and usage guidance. Every sentence adds value, and there is no filler or redundancy.

    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?

    Despite lacking an output schema and annotations, the description covers all needed operational aspects: blocking behavior, timeout semantics, status values, unknown-id handling, and the recommended loop pattern. An agent can call this tool correctly with the information provided.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description compensates strongly. It identifies job_id as coming from download_query and explains the behavior and cap for timeout_s. This gives the agent meaningful semantics beyond the bare 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 states a specific verb and resource: wait for a background download to finish and report. It also distinguishes itself from sibling tools by referencing download_query for job_id and positioning itself against repeated sleep+download_status calls.

    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 says when to use this tool: in a watcher loop to follow a job efficiently. It also names the alternative pattern it replaces (repeated sleep+download_status) and explains the stopping condition based on status values.

    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

bhoonidhi-mcp MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

bhoonidhi-mcp MCP server – quality and maintenance score on Glama

Copy to your README.md:

Latest Blog Posts

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/geovicco-dev/bhoonidhi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server