Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.5.3

  • Disambiguation3/5

    Most tools have distinct purposes, but there are overlapping pairs: compare_conditions vs. find_markers both perform differential expression, and analyze_spatial_statistics vs. find_spatial_genes both address spatial patterns. annotate_cell_types and deconvolve_data could also confuse agents since both assign cell types, though at different resolutions.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., load_data, compute_embeddings, analyze_cell_communication). The use of prefixes like 'analyze_' and 'find_' is consistent and predictable across the tool set.

    Tool Count3/5

    With 20 tools, the server sits in the 16-25 range, which feels heavy for a single server even though the domain is complex. The count is appropriate for the breadth of spatial transcriptomics analyses, but it is on the upper end and could be streamlined.

    Completeness5/5

    The tool set covers the full spatial transcriptomics workflow: data loading and preprocessing, embeddings, clustering, annotation, differential expression, trajectory and velocity, integration, spatial domains, deconvolution, cell communication, enrichment, CNV, and export/reload. No significant gaps are evident for the stated purpose.

  • Average 3.3/5 across 20 of 20 tools scored. Lowest: 2.3/5.

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

    • 4 of 4 community issues answered or closed in the last 6 months
    • 69 commits in the last 12 weeks
    • Last stable release on
    • 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.json to 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

  • Behavior2/5

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

    Annotations indicate destructiveHint and idempotentHint, but the description does not elaborate on potential side effects, whether the analysis modifies data, or any performance implications. No additional context is provided beyond the annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

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

    The description is extremely concise (one sentence) but lacks necessary structure or detail for a complex tool with many parameters. It is minimal without being helpful.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (large parameter set, multiple methods), the description is woefully incomplete. It does not mention output types, method options, or any contextual information that would help an agent decide to use it.

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

    Parameters1/5

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

    The description does not explain any parameters. The schema contains many parameters with individual descriptions, but the tool description itself adds no param-level semantics. Since schema coverage in the description is 0% and the description fails to compensate, this scores low.

    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 clearly states the tool analyzes cell-cell communication and ligand-receptor interactions, which distinguishes it from sibling tools like analyze_spatial_statistics or analyze_enrichment. However, it lacks specificity about the analytical methods or outputs.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines1/5

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

    The description provides no guidance on when to use this tool versus alternatives, no mention of prerequisites, or scenarios where it is appropriate. It only gives a generic purpose.

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

  • Behavior2/5

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

    Annotations indicate destructiveHint=true, but the description does not disclose what side effects occur, such as modifying datasets, overwriting existing spatial keys, or requiring GPU resources. The return value mentions a 'registered spatial key' but does not explain whether it alters the input data. Since destructive behavior is likely, the description should clarify the nature of these changes, but it remains silent.

    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 concise and uses a clear structured format with Args and Returns sections. It avoids unnecessary verbiage and conveys the core purpose in two lines. It could be slightly more informative, but the structure is efficient and scannable, earning a high score.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (nested parameters, two algorithms with distinct behaviors) and destructive hint, the description is incomplete. It does not mention prerequisites like loaded data, differences between method options ('paste' vs 'stalign'), or potential side effects. While an output schema exists, the description still needs to provide usage context and behavioral expectations, which it largely omits.

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

    Parameters2/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, but it provides only minimal information: source_id, target_id, and a vague 'params: Registration parameters (method, alignment settings, etc.)'. Source and target IDs are self-explanatory, but the nested params object contains many fields (method, stalign_a, paste_alpha, etc.) with detailed schema descriptions that are not reflected in the tool description. The agent gets insufficient guidance on parameter selection or meaning beyond the raw 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 clearly states the tool's function: 'Register/align spatial transcriptomics data across sections.' This specifies a verb (register/align), resource (spatial transcriptomics data), and scope (across sections), which helps distinguish it from generic analysis tools. However, it does not explicitly differentiate from sibling tools like integrate_samples, so it falls slightly short of a perfect score.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    The description provides no explicit guidance on when to use this tool versus alternatives. It only describes the action and parameters, with no mention of prerequisites, exclusions, or when registration is appropriate. Usage must be inferred entirely from the tool name and general context, leaving the agent without clear direction.

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

  • Behavior2/5

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

    Annotations include destructiveHint=true and idempotentHint=true, but the description provides no additional behavioral context. It does not mention potential side effects, modifications to the dataset, or any safety considerations. While it doesn't contradict annotations, it adds no value beyond what the annotations already convey, leaving the agent uninformed about the tool's actual behavior on data.

    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 extremely concise: a single sentence and two argument placeholders. It avoids redundancy and gets straight to the point. Every word earns its place, though it may be too sparse for a complex tool. However, for conciseness, it is exemplary—no fluff, no filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having an output schema, the description is minimal and does not explain the overall context of use. It fails to mention the type of data expected, the output interpretation, or any preconditions (e.g., data must be loaded and preprocessed). It also does not relate to the analysis pipeline or when to apply this analysis. For a tool with many configurable parameters and complex behavior, this is incomplete and leaves the agent without sufficient guidance.

    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?

    The schema provides detailed descriptions for most parameters (e.g., method, species, max_genes), and the description adds only a note that species must be specified and points to EnrichmentParameters for details. Given high schema coverage, the description adds marginal value. However, it does highlight the required nature of species, which is helpful, but does not explain semantics beyond that. Baseline of 3 is appropriate as the description slightly supplements the schema but does not compensate for deeper meaning.

    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 the tool 'Performs gene set enrichment analysis' which is a specific verb and resource. It clearly distinguishes from generic analysis tools but doesn't explicitly differentiate from sibling tools like analyze_spatial_statistics or deconvolve_data, though the enrichment focus is evident. It lacks a clear scope or mention of input/output context, but the core purpose is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    The description gives only a minimal usage hint: 'Required - species must be specified.' It does not explain when to use this tool over alternatives, what scenarios it suits, or when not to use it. There is no reference to the relevant analysis workflow or comparison with sibling tools like find_markers or compute_embeddings. This guidance is insufficient for an agent to make an informed selection.

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

  • Behavior2/5

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

    Annotations indicate destructiveHint=true, but the description adds no behavioral context, such as whether analysis results are written back to the dataset or if certain analyses require cluster_key and may fail otherwise. It doesn't explain side effects, performance implications, or what changes the tool makes beyond the generic verb 'analyze'.

    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 concise and front-loaded with a clear purpose statement, followed by a compact Args list. No unnecessary words, but it could have been slightly more informative without becoming verbose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    This is a highly complex tool with 13 analysis types, a nested params schema, and an output schema, yet the description offers no overview of the analysis categories, prerequisites (e.g., cluster_key for group-based analyses), or typical use cases. It relies entirely on the schema for details, which is insufficient for an agent to select and invoke it confidently.

    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?

    The Args section gives brief meanings for data_id and params, mentioning analysis_type, cluster_key, and genes. However, with schema description coverage at 0% for top-level parameters, the description only partially compensates by naming a few fields and pointing to the full schema. It doesn't explain the distinction between gene-based and group-based analyses or the many other parameters.

    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 clearly states the tool analyzes 'spatial statistics and autocorrelation patterns', giving a specific verb and resource. However, it doesn't distinguish itself from sibling tools like find_spatial_genes or identify_spatial_domains, which could also involve spatial statistics.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or suggest other tools for different scenarios. The only pointer is to 'See SpatialStatisticsParameters for all types', which is parameter documentation, not usage direction.

    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?

    Annotations already communicate readOnlyHint=false and destructiveHint=true, so the risk profile is known. The description adds no side-effect context, such as whether trajectory results overwrite existing data or require prior preprocessing, but it does not contradict the annotations.

    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 short, front-loaded, and free of fluff. The args lines add minimal value because the schema already defines the parameters, but overall this is a compact, readable description.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    This is a complex trajectory-analysis tool with multiple methods, method-specific parameters, and a destructive hint, but the description only provides a one-line purpose. Important selection context—such as method-specific data requirements and expected inputs—is buried in the nested schema rather than presented in the description.

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

    Parameters2/5

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

    The description only lists 'method, root_cell, spatial_weight, etc.' in passing and does not provide meaningful parameter semantics. It also uses 'root_cell' while the schema defines the field as 'root_cells'. The actual parameter understanding relies on the rich nested schema descriptions, not the tool description.

    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 sentence 'Infer cellular trajectories and pseudotime ordering' names a specific analysis task with a clear action and object. It is distinct from most sibling tools, though it does not explicitly contrast with related tools like analyze_velocity_data.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    No when-to-use guidance is provided: there are no hints about velocity prerequisites, when to choose palantir/dpt over cellrank, or when another analysis tool would be more appropriate. Some guidance exists only in the nested schema description, not in the tool description.

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

  • Behavior2/5

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

    The description adds no behavioral details beyond what annotations already specify. It does not mention potential side effects, required permissions, or impact on data, despite annotations indicating destructive and non-idempotent behavior.

    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 concise with only one sentence of purpose and a brief parameter list. It is not bloated, but the 'Args' section is redundant with the schema and could be streamlined.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (nested params, multiple optional settings), the description lacks context about prerequisites, return values (though output schema exists), or typical use cases. The output schema is present, so return values are covered, but other contextual information is missing.

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

    Parameters2/5

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

    The description's 'Args' section vaguely lists a few parameters but adds no explanatory value beyond what the schema already provides. Since schema_description_coverage is 0%, the description fails to compensate for the lack of parameter detail, leaving the agent to rely solely on 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 clearly states the tool's purpose: 'Find differentially expressed genes between groups.' This is a specific and unambiguous action, distinguishing it from sibling tools like compare_conditions or compute_embeddings.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, prerequisites, or typical scenarios. It only states the action without context, leaving the agent to infer usage from the parameter names.

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

  • Behavior2/5

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

    Annotations already indicate destructiveHint: true and idempotentHint: true, but the description adds no behavioral detail such as side effects (e.g., modifying the dataset, storing results), runtime implications, or auth requirements. It merely states the action without any disclosure beyond the annotations.

    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 extremely concise with no wasted words, and the Args section provides a clear structure. However, it is almost too terse, borderline under-specified. It earns a high score for lack of fluff but loses a point for being overly minimalist.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having an output schema, the description is incomplete for a tool with 18 parameters and destructive behavior. It does not mention expected outputs, potential runtime (e.g., SpatialDE slow), or side effects. Given the complexity, the description is far from sufficient for an agent to fully understand when and how to use it effectively.

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

    Parameters2/5

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

    Schema description coverage is 0% because the description only mentions 'params' generically with examples like 'method, n_top_genes, etc.' It does not clarify parameter formats, defaults, or relationships. The schema itself has rich descriptions, but the description fails to add high-level guidance or summary beyond listing a couple of examples.

    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 clearly states the verb 'Identify' and the resource 'spatially variable genes', which is specific and distinguishable from siblings like find_markers and analyze_spatial_statistics. It concisely captures the tool's primary function.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. It does not mention conditions like needing spatial transcriptomics data, nor does it differentiate from related analysis tools. The description lacks any contextual hints for selection.

    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?

    Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description itself adds no new behavioral context, such as what data is modified or whether results are stored back to the dataset. It does not contradict the annotations, but also does not supplement them.

    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 concise and front-loaded with the purpose statement. The 'Args' section is brief but somewhat redundant with the schema. No wasted words, but it could be slightly more informative without losing conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    This is a complex tool with many methods and nested parameters, plus a destructive annotation. The description is too sparse, lacking an overview of supported algorithms, expected runtime, or side effects. The rich schema covers parameter details, but the high-level context is missing for an agent to fully anticipate behavior.

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

    Parameters2/5

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

    The description lists only 'data_id: Dataset ID' and 'params: Spatial domain parameters (method, n_domains, resolution, etc.)'. It gives minimal meaning and does not explain required status, defaults, or method selection. With top-level schema description coverage at 0%, the description barely compensates, though the nested schema is detailed.

    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 'Identify spatial domains and tissue architecture,' which is a specific verb+resource. It clearly distinguishes from siblings such as analyze_spatial_statistics or find_spatial_genes, which target different analyses. However, 'tissue architecture' is a broad term, and the description could more explicitly define the tool's output or scope.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It lacks any mention of prerequisites, recommended scenarios, or how it compares to related spatial-analysis sibling tools. No exclusions or alternative tool references are given.

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

  • Behavior2/5

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

    Annotations already declare destructiveHint=true, so there is no contradiction. However, the description adds no behavioral context beyond the annotation—it does not mention overwriting existing results, storing outputs in the dataset, or dependencies like UMAP requiring neighbors.

    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?

    Two concise sentences with the core operations front-loaded. No filler or redundant content.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the complex nested params object and destructive behavior, the description is only a brief headline. It omits parameter dependencies, side effects, and usage context, leaving the agent under-informed for such a configurable tool.

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

    Parameters2/5

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

    Top-level schema coverage is 0%, and the description only provides one-line glosses for data_id and params. The rich descriptions live inside the nested EmbeddingParameters schema, which the description does not surface or summarize effectively.

    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 'Compute dimensionality reduction (PCA, UMAP), clustering, and neighbor graphs,' which uses a specific verb and names concrete resources. It clearly distinguishes this from sibling tools focused on trajectory or spatial analysis.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus siblings like analyze_trajectory_data or preprocess_data. The description lists operations but does not mention prerequisites, typical use cases, or exclusions.

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

  • Behavior2/5

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

    Annotations flag destructiveHint=true and readOnlyHint=false, so this tool may have side effects, but the description only mentions visualization and parameters. It does not disclose overwriting behavior, file side effects, or any other consequences. This is not a direct contradiction, but the description misses important 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.

    Conciseness4/5

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

    The description is short and front-loaded with the purpose, followed by a pointer to the schema. The Args block is mostly redundant with the schema but remains concise and does not significantly bloat the description.

    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?

    Given the very large VisualizationParameters schema, the pointer to that schema is helpful, and the output schema covers return values. However, the description lacks workflow context, side-effect awareness, and guidance on how visualization relates to upstream analysis steps. It is minimally viable but has clear gaps.

    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?

    The schema itself is highly detailed with property descriptions, so the description does not need to duplicate that information. It usefully highlights plot_type and subtype as primary controls and points to the VisualizationParameters schema. However, the example 'genes' does not exactly match the schema property 'feature', adding slight ambiguity.

    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 begins with a specific verb and resource: 'Visualize spatial transcriptomics data.' This clearly distinguishes it from sibling tools like load_data, preprocess_data, and find_markers. The added instruction to set plot_type and subtype further scopes the tool's functionality.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

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

    The description tells users to set plot_type and subtype and reference the schema, but it does not explain when to use this tool versus alternatives, prerequisites, or when not to use it. No exclusions or alternative tool references are provided.

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

  • Behavior2/5

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

    The annotations already include destructiveHint=true and readOnlyHint=false, but the description adds no additional behavioral context such as what data might be modified, whether results are stored, or any side effects. The only extra information is the data prerequisite (spliced/unspliced layers), which is more about applicability than behavior. Thus, it contributes minimal value beyond the annotations.

    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 concise and front-loaded, stating the main purpose in the first sentence. It then lists the arguments in a simple format. It avoids unnecessary fluff but could be slightly more structured, e.g., by using a numbered list or table for the args. Overall, it earns a 4 for economy of words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having an output schema and annotations, the description is incomplete for a tool with this complexity. It only names two parameters, while the params parameter contains a large nested object with a dozen fields. There is no guidance on how to choose between methods (scvelo vs velovi), what the output contains, or what happens if certain layers are missing. A more complete description would help an agent correctly configure and invoke the tool.

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

    Parameters2/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 provides only terse definitions: 'data_id: Dataset ID' and 'params: Velocity parameters (method, scvelo_mode, etc.)'. While it gives examples of sub-parameters, it does not explain the many nested parameters or how they affect the analysis. The params object is a complex nested model with a dozen properties, and the description adds little meaning beyond what the schema already shows.

    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 clearly states the tool's purpose: 'Analyze RNA velocity to understand cellular dynamics.' This includes a specific verb ('analyze'), a specific resource ('RNA velocity'), and biological context. It distinguishes itself from sibling tools like analyze_trajectory_data by focusing specifically on RNA velocity, and it mentions the technical prerequisite of needing 'spliced' and 'unspliced' layers.

    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 gives a clear context for when the tool is applicable by specifying the requirement for 'spliced' and 'unspliced' layers, which is a key prerequisite. However, it does not mention alternative tools or explicitly state when not to use this tool, so it does not fully meet the 'explicit alternatives' 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?

    Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a write operation. The description adds the preprocessing prerequisite for reference methods, which is useful context, but doesn't describe what data gets modified (e.g., adding cell type labels) or other side effects.

    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 appropriately short and front-loaded with the main action. The Args section is minimal and the note is useful. It would benefit from a bit more structure, but it's concise and readable.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    This is a complex tool with many methods and parameters, an output schema, and a destructive flag. The description only covers the basic purpose and one prerequisite. It doesn't explain method-specific requirements (cellassign needs marker_genes, singler uses celldex), parameter interactions, or the expected outcome. Given the complexity, this is insufficient for correct invocation.

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

    Parameters2/5

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

    Schema description coverage is 0% per context, so the description must compensate. It only lists example parameter names (method, reference_data_id, cell_type_key) without explaining their meaning or constraints. The nested params schema has many fields, but the description barely scratches the surface, leaving the agent to infer semantics from field 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 clearly states the tool's action and resource: 'Annotate cell types in spatial transcriptomics data.' This is a specific verb+resource combination that distinguishes it from sibling tools like analyze_cnv or find_spatial_genes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

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

    The description provides a usage prerequisite: reference methods (tangram, scanvi) require reference_data_id to be preprocessed. However, it doesn't explicitly state when to use this tool versus alternatives or when not to use it, so guidance is only partial.

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

  • Behavior2/5

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

    The annotation destructiveHint: true signals the operation may alter or destroy data, but the description adds no context about what gets destroyed (e.g., whether original samples are modified, whether integration is reversible). While there's no annotation contradiction, the description misses the opportunity to disclose side effects, GPU/resource usage, or runtime expectations, which are especially important given the destructive hint.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

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

    The description is reasonably concise but wastes space on an 'Args:' block that largely duplicates schema information. A more streamlined version could have eliminated the redundant parameter list and focused on the tool's outcome, edge cases, or side effects. Still, it's not overly verbose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the destructiveHint and complex parameter set, the description is incomplete. It doesn't explain output format (or if there is one), failure modes (e.g., what if data_ids has duplicates or incompatible datasets), or the impact of integration (e.g., does it return a new object, modify in place, or write to disk?). The presence of an output schema reduces the need to describe return values but doesn't excuse the lack of side-effect disclosure.

    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?

    The description mentions 'method, batch_key, n_pcs' which are already well-documented in the schema with defaults and descriptions. The description adds marginal value by signaling these are the key parameters but doesn't explain their semantics or interaction. With 50% schema coverage (data_ids and params), the description partially compensates but doesn't fully close the gap.

    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 uniquely identifies the tool's purpose with a specific verb and resource: 'Integrate multiple spatial transcriptomics samples into a unified dataset.' It clearly differentiates from sibling tools focused on loading, preprocessing, or visualization since none of them imply data merging/integration at scale.

    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 context that this tool is for integrating multiple samples, implying it's for batch processing scenarios. However, it doesn't explicitly state alternatives or exclusion criteria like 'for a single sample, use load_data.' The need for 2+ samples is implied by the schema's minItems but not spelled out in prose.

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

  • Behavior2/5

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

    Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is externally known. However, the description adds no behavioral transparency beyond the basic operation—it does not mention overwriting previous results, requiring pre-loaded reference data, compute time, or other runtime effects.

    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: one sentence of purpose, one sentence of parameter pointers. It is front-loaded with the core purpose and avoids unnecessary elaboration, making every sentence earn its place.

    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?

    Given the tool's high complexity (8 deconvolution methods and many method-specific parameters), the description is minimal but not fatally incomplete because the schema and annotations carry substantial detail. Still, it lacks guidance on method selection, data prerequisites, or expected outcomes, leaving the agent to rely heavily on structured fields.

    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?

    The description compensates for the 0% schema coverage by explicitly naming the effectively required trio: method, cell_type_key, and reference_data_id. This goes beyond the schema, which only marks cell_type_key as required. However, it does not explain the meaning of each parameter or how to choose methods, deferring entirely to DeconvolutionParameters.

    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 the specific action verb 'Deconvolve' on 'spatial spots' and clearly states the outcome: 'estimate cell type proportions.' This uniquely distinguishes the tool from siblings like analyze_spatial_statistics or identify_spatial_domains, which have different analytical goals.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

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

    The description implies usage when cell type proportion estimates are needed, but it provides no explicit when-to-use/when-not-to-use guidance or alternatives among sibling tools. The only additional guidance is a list of required parameters, which is more about invocation than usage context.

    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?

    Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=true, covering the safety profile. The description does not contradict these, but it also adds no behavioral context beyond 'analyze', such as what data may be modified or whether results are persisted. Thus a baseline score with annotations is appropriate.

    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 brief and front-loaded, stating the purpose in the first sentence and then summarizing key arguments. It contains no superfluous filler, though the Args block is slightly redundant with the schema's property names.

    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?

    Given the complexity of the nested params object and the destructive annotation, the description is sparse but not entirely inadequate: the schema and annotations fill in many details, and an output schema exists. Still, it lacks high-level context about prerequisites, method implications, and side effects, so it is only minimally complete.

    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?

    The description highlights that params must include reference_key and reference_categories and mentions optional method/thresholds, which is helpful because the top-level schema provides no descriptions for data_id and params. However, it remains vague about specific thresholds and does not fully compensate for the low schema coverage; the nested schema carries most parameter detail.

    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 clearly states it analyzes copy number variations (CNVs) in spatial transcriptomics data, using a specific verb and resource. This distinguishes it from sibling tools like analyze_velocity_data or analyze_trajectory_data, which target different biological analyses.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

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

    The description implies usage by naming 'spatial transcriptomics data' and specifying CNV analysis, but it provides no explicit guidance on when to use this over alternatives or when not to use it. There are no exclusions or alternative tool mentions.

    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?

    Annotations indicate readOnlyHint=false and destructiveHint=true, so the safety profile is declared. The description adds context by specifying DESeq2 and pseudobulk aggregation, and the schema mentions 'Requires 2+ samples per condition.' However, it does not explain what destructive side effects may occur or what state changes are involved, leaving a transparency gap despite annotations.

    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 short and front-loaded with the core purpose, followed by a concise Args block. The 'etc.' and redundant parameter list slightly reduce precision, but there is no filler or unnecessary elaboration.

    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?

    Given the complexity of the tool, the rich input schema and output schema carry most of the burden. The nested schema includes thresholds, defaults, and usage differentiation. The top-level description is minimal but sufficient for basic selection; a bit more context about prerequisites or side effects would make it more complete.

    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?

    The description lists required parameter names (condition_key, condition1, condition2, sample_key) but adds no semantics beyond the names. The input schema provides rich descriptions for every parameter, so the description adds minimal value beyond what the schema already covers.

    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 clearly states the tool's purpose: 'Compare experimental conditions using pseudobulk differential expression (DESeq2).' This provides a specific verb, resource, and method. It does not explicitly name sibling tools, but the scope ('conditions' vs 'cell types') distinguishes it from tools like find_markers.

    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 top-level description lacks usage guidance, but the input schema's nested ConditionComparisonParameters description explicitly contrasts compare_conditions with find_markers ('compares conditions ACROSS samples' vs 'cell types/clusters WITHIN a dataset'). This is useful but limited to one alternative and does not provide exclusions or other sibling comparisons.

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

  • Behavior2/5

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

    Annotations indicate destructiveHint=true, but the description does not elaborate on what is destroyed or modified (e.g., whether it overwrites existing data, irreversibility, or side effects). The only behavioral note is a negative scope (not computing embeddings), which is more purpose-related than a behavioral disclosure. With a destructive hint, the description should warn about data overwrite or similar consequences.

    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 concise and well-structured: it opens with the primary purpose, then clarifies scope limits, and ends with a compact Args section. Every sentence adds value without redundancy, making it easy for an agent to quickly grasp the tool's core function.

    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?

    Given the tool's complexity (many parameters, destructive behavior) and the lack of output schema details, the description is somewhat minimal. It covers purpose and the boundary with compute_embeddings, but it omits prerequisites (e.g., data must already be loaded), side effects of the destructive operation, and what the function returns. This is adequate but with clear gaps.

    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?

    The input schema itself provides detailed descriptions for each parameter, so the baseline is 3. The description adds only minimal value by saying 'all have sensible defaults,' which helps convey that params can be omitted, but it does not explain any parameter semantics beyond that. The schema carries the heavy lifting for parameter understanding.

    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 clearly states the tool's function with a specific verb and resource: 'Run QC, filtering, normalization, and highly variable gene selection.' It also explicitly differentiates itself from a sibling tool by stating it does not compute PCA, UMAP, clustering, or neighbor graphs, and directs users to compute_embeddings() when those artifacts are needed.

    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 context by stating that compute_embeddings() should be run afterward when downstream tools require those artifacts. This implies the tool's role in the analysis pipeline, but it does not explicitly mention when not to use this tool or list alternative preprocessors, so there is room for improvement.

    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?

    Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is clear. The description adds that loading returns a SpatialDataset with cell/gene counts and metadata profiles, but does not disclose additional side effects or external access behavior beyond what annotations imply.

    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 well-structured with Args and Returns sections, providing all necessary information in a compact and easily scannable format. No redundant or filler content.

    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?

    Given the output schema and annotations, the description covers the essential aspects: loading data, supported data types, and return type. It doesn't address edge cases like error handling or file format details, but it is sufficient for a data loading 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 description's Args block explains all three parameters, including allowed values for data_type, which compensates for the schema's empty parameter descriptions (0% coverage). This adds meaningful context beyond the raw 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 uses a specific verb ('Load') and names the resource ('spatial transcriptomics data'), making it clear what the tool does. It is distinct from sibling tools like reload_data and preprocess_data, and the Args section further specifies data types and behaviors.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

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

    The description implies this is the entry point for loading spatial data but does not explicitly state when to use it over reload_data or other alternatives. The data_type enum provides some context, but there is no when-to-use/when-not-to-use guidance or exclusions.

    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?

    Annotations already provide readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the agent knows it's a non-read-only, possibly destructive, idempotent operation. The description adds value by specifying the default export path and the return value (absolute path). However, it does not elaborate on what 'destructive' means (e.g., overwriting existing files), which would enhance transparency.

    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 concise and well-structured: a one-sentence summary, followed by an Args list and Returns line. Every line is informative, with no filler words or redundant 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 export tool with two parameters, the description covers the purpose, parameters, default path, and return format. The output schema is present, so return value details are not fully required in the description. It is complete enough for an agent to use the tool, though it could mention overwrite behavior given the destructive hint.

    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 has no descriptions beyond titles, so the description carries the full burden of explaining parameters. The Args section explains both 'data_id' as the dataset ID and 'path' as the custom path with a default, which adds meaningful semantic context beyond 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 starts with 'Export dataset to disk for external script access', which uses a specific verb (export) and resource (dataset), and clearly states the purpose. It naturally distinguishes itself from sibling tools that analyze, visualize, or preprocess data, as this is the only export 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/5

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

    The description clearly states the use case: 'for external script access', which implies when to use it. It does not explicitly mention when not to use it or provide alternatives, but given the distinct purpose among siblings, the context is clear enough.

    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?

    Annotations already declare destructive and idempotent hints; description adds prerequisite (must exist in MCP memory) and default path behavior. No contradiction; adds useful 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?

    Compact with Args/Returns sections; every sentence provides necessary detail, no redundancy.

    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?

    Covers purpose, parameters, return, and prerequisite. With output schema and annotations present, description is sufficient, though it could explicitly state the destructive overwrite behavior.

    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 has no descriptions (0% coverage); description explains both data_id (must exist in memory) and path (custom path with default), fully compensating.

    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?

    Clearly states 'Reload dataset from disk after external script modifications' - a specific verb, resource, and context. Distinguishes from load_data by emphasizing reloading after modifications.

    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?

    Implies usage after external script modifications, which is a clear context, but doesn't explicitly name alternatives or exclusions. Provides enough to know when to apply.

    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

ChatSpatial MCP server

Copy to your README.md:

Score Badge

ChatSpatial MCP server

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/cafferychen777/ChatSpatial'

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