Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation3/5

    There is significant overlap between pipeline activity tools (add_copy_activity_to_pipeline, add_notebook_activity_to_pipeline, add_dataflow_activity_to_pipeline, add_activity_to_pipeline) where the generic tool can perform the same functions as the specific ones, causing potential confusion. However, descriptions help clarify the distinctions, and other tools like list_items vs list_workspaces or get_job_status vs get_job_status_by_url have clear boundaries.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern (e.g., add_activity_to_pipeline, delete_activity_from_pipeline, list_items, get_job_status). There are minor deviations like livy_run_statement (prefix instead of verb_noun) and execute_dax_query (verb_noun but with a different verb style), but overall the naming is predictable and readable.

    Tool Count2/5

    With 37 tools, the count is excessive for a single server, making it heavy and potentially overwhelming for agents. While the domain (Microsoft Fabric) is broad, the toolset includes many specialized tools (e.g., multiple Livy session management tools) that could be consolidated or scoped more narrowly.

    Completeness4/5

    The toolset provides comprehensive coverage for Fabric operations, including CRUD for pipelines, notebooks, semantic models, and jobs, with lifecycle management (create, update, delete, execute, monitor). Minor gaps exist, such as limited update operations for items beyond pipelines (e.g., no update_notebook), but agents can work around these with existing tools.

  • Average 4/5 across 37 of 37 tools scored. Lowest: 2.6/5.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read operation ('Get'), but doesn't specify permissions, rate limits, error handling, or what 'definition parts' entails (e.g., schema, metadata, or content). For a tool with 5 parameters and no annotation coverage, this is a significant gap in transparency.

    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 a single, efficient sentence with no wasted words, making it easy to parse. However, it's front-loaded with the core action but lacks elaboration needed for clarity, leaning toward under-specification rather than optimal conciseness.

    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 has 5 parameters, no annotations, and an output schema exists (which reduces the need to describe return values), the description is incomplete. It doesn't adequately cover parameter meanings, behavioral traits, or usage context. While the output schema helps, the description falls short for a tool of this complexity, making it minimally viable but with clear gaps.

    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%, meaning none of the 5 parameters are documented in the schema. The description only mentions 'requested format,' which loosely relates to the 'format' parameter but doesn't explain the others (workspace_name, semantic_model_name, semantic_model_id, decode_model_bim). It adds minimal value beyond the schema, failing to compensate for the coverage gap.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose3/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states the tool retrieves 'semantic model definition parts in the requested format,' which indicates a read operation on semantic models. However, it's vague about what 'definition parts' includes and doesn't differentiate from sibling tools like 'get_semantic_model_details' or 'execute_dax_query' that also interact with semantic models. The purpose is understandable but lacks specificity.

    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. With siblings like 'get_semantic_model_details' available, the description doesn't clarify if this tool is for metadata, structure, or other aspects of semantic models. There's no mention of prerequisites, exclusions, or comparative contexts, leaving usage ambiguous.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an 'Add' operation (implying mutation) but doesn't mention permissions needed, whether changes are reversible, rate limits, or what happens if measures already exist. For a mutation tool with 5 parameters and no annotation coverage, this is a significant gap in 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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for the tool's complexity and front-loads the essential information.

    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 this is a mutation tool with 5 parameters (3 required), 0% schema description coverage, no annotations, but with an output schema, the description is inadequate. While the output schema may help with return values, the description fails to explain parameter meanings, usage context, or behavioral implications, leaving critical gaps for the agent.

    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 schema description coverage is 0%, meaning none of the 5 parameters have descriptions in the schema. The tool description provides no additional information about what 'workspace_name', 'table_name', 'measures', 'semantic_model_name', or 'semantic_model_id' mean or how they should be used. This leaves all parameters completely undocumented.

    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 action ('Add measures') and target ('to a table in an existing semantic model'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'add_relationship_to_semantic_model' or 'add_table_to_semantic_model', which would require a 5.

    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 like 'create_semantic_model' or 'delete_measures_from_semantic_model'. It mentions 'existing semantic model' but doesn't clarify prerequisites or exclusions, leaving the agent with minimal context for decision-making.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions 'wait for completion' (implying synchronous operation), it doesn't address critical aspects: what permissions are required, whether this is a destructive operation (could overwrite data), potential rate limits, error conditions, or what happens if the refresh fails. For a mutation tool with zero annotation coverage, this is insufficient.

    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 - just 7 words in a single sentence. It's front-loaded with the core action and includes the important 'wait for completion' detail. There's zero wasted language or redundancy.

    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 complexity (mutation operation with 5 parameters, 0% schema coverage, no annotations) and the existence of an output schema, the description is incomplete. While the output schema might document return values, the description fails to explain parameter usage, behavioral constraints, or operational context needed for safe and effective use of this tool.

    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?

    Schema description coverage is 0% (none of the 5 parameters have descriptions in the schema), and the tool description provides absolutely no information about any parameters. The agent must guess what 'workspace_name', 'semantic_model_name', 'semantic_model_id', 'refresh_type', and 'objects' mean and how to use them. This is a critical gap for a tool with multiple 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 action ('Refresh') and target ('semantic model'), and specifies that it 'waits for completion' which adds important behavioral context. However, it doesn't differentiate this tool from potential alternatives or siblings like 'get_semantic_model_details' or 'get_job_status' that might provide status information without performing the refresh.

    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. With many sibling tools available (like 'get_semantic_model_details', 'create_semantic_model', 'add_measures_to_semantic_model'), there's no indication of when refresh is appropriate versus other operations on semantic models, nor any prerequisites or constraints mentioned.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Add a relationship' which implies a write/mutation operation, but doesn't describe permissions needed, whether changes are reversible, error conditions, or what the output contains. The description lacks critical behavioral context for a mutation 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 a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information.

    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?

    For a 9-parameter mutation tool with no annotations and 0% schema description coverage, the description is insufficient. While an output schema exists (which helps with return values), the description lacks critical context about behavioral traits, parameter meanings, and usage guidelines needed for proper tool 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?

    With 0% schema description coverage for all 9 parameters, the description provides no parameter semantics beyond what's implied by parameter names. It mentions 'relationship between two tables' which hints at from_table/to_table parameters, but doesn't explain workspace_name, semantic_model_name, cardinality, cross_filter_direction, or is_active 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 action ('Add a relationship') and target resource ('between two tables in an existing semantic model'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'add_table_to_semantic_model' or 'add_measures_to_semantic_model', which target different aspects of semantic models.

    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 (e.g., existing tables/semantic model), or exclusions. It mentions 'existing semantic model' but doesn't clarify if this is a requirement or just context.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the destructive action ('Delete') but doesn't mention permissions required, whether deletion is permanent/reversible, rate limits, error conditions, or what happens to dependent objects. For a destructive operation with zero annotation coverage, this is inadequate 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 a single, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it immediately understandable. Every word earns its place in conveying the essential purpose.

    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?

    For a destructive mutation tool with 5 parameters (0% schema coverage), no annotations, and complex sibling relationships, the description is incomplete. It doesn't address behavioral risks, parameter meanings, or usage context. While an output schema exists (which helps with return values), the description lacks crucial information for safe and correct tool 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%, so the description must compensate but adds no parameter information. It doesn't explain what 'workspace_name', 'table_name', 'measure_names', or the optional semantic model identifiers mean, their formats, or relationships. With 5 parameters completely undocumented in schema, the description fails to provide needed semantic context.

    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 action ('Delete measures') and target ('from a table in an existing semantic model'), providing a specific verb+resource combination. It distinguishes from sibling tools like 'add_measures_to_semantic_model' by specifying deletion rather than addition, though it doesn't explicitly contrast with other deletion tools like 'delete_item'.

    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 doesn't mention prerequisites (e.g., semantic model must exist), exclusions, or comparisons to sibling tools like 'delete_item' which might handle similar deletions. Usage context is implied but not explicit.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a write operation ('Add') but does not specify permissions required, whether the addition is reversible, potential side effects on the semantic model, or any rate limits. This leaves significant gaps in understanding the tool's behavior and safety.

    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 a single, direct sentence that efficiently conveys the core action without unnecessary words. It is front-loaded with the main purpose, making it easy to grasp quickly, and every part of the sentence serves to clarify the tool's 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 (5 required parameters, no annotations, 0% schema coverage) and the presence of an output schema, the description is minimally adequate. It states what the tool does but lacks details on behavior, parameter meanings, and usage context, which are crucial for a mutation tool with multiple inputs. The output schema helps, but the description itself is incomplete.

    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 schema provides no parameter descriptions. The description mentions 'table from a lakehouse' and 'existing semantic model,' hinting at some parameters, but it does not explain the purpose of 'workspace_name,' 'columns,' or the structure of 'SemanticModelColumn.' This fails to compensate for the lack of schema documentation, leaving key parameters unclear.

    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 action ('Add a table') and the target resources ('from a lakehouse to an existing semantic model'), which is specific and understandable. However, it does not explicitly differentiate from sibling tools like 'add_measures_to_semantic_model' or 'add_relationship_to_semantic_model', which handle different aspects of semantic models, so it misses full sibling differentiation.

    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, such as 'create_semantic_model' for initial setup or other 'add_' tools for different model components. It lacks context on prerequisites, exclusions, or typical scenarios, offering only a basic statement of function without usage 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?

    No annotations are provided, so the description carries full burden. It mentions executing a query and returning a raw response, but lacks critical behavioral details: whether this is read-only or mutating, authentication requirements, rate limits, error handling, or what 'raw Power BI response' entails (e.g., format, size limits). This is inadequate for a tool with potential data access implications.

    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 a single, efficient sentence that front-loads the core action and outcome with zero wasted words. It's appropriately sized for a straightforward tool, though its brevity contributes to gaps in other dimensions.

    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 4 parameters with 0% schema coverage, no annotations, and an output schema (which mitigates need to describe return values), the description is incomplete. It covers the basic purpose but misses parameter semantics, behavioral context, and usage guidelines. It's minimally viable but has clear gaps for a tool that interacts with data systems.

    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 adds no information about parameters beyond what the schema names imply. For example, it doesn't explain what 'workspace_name' refers to, the format of the 'query' (DAX syntax), or when to use 'semantic_model_name' vs 'semantic_model_id'. This leaves key usage details undocumented.

    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 action ('Execute a DAX query') and the outcome ('return the raw Power BI response'), which is specific and unambiguous. It distinguishes this as a query execution tool rather than data manipulation or management, though it doesn't explicitly differentiate from potential query-related siblings (none are listed).

    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 doesn't mention prerequisites (e.g., needing a workspace or semantic model), exclusions, or comparisons to other tools like 'get_semantic_model_definition' for metadata queries. Usage is implied only by the tool name and parameters.

    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?

    With no annotations provided, the description carries full burden but only states the action ('Create') without disclosing behavioral traits. It doesn't mention permissions required, whether the creation is idempotent, potential side effects, or response format, which are critical for a creation 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 a single, efficient sentence with no wasted words, front-loading the key action. It's appropriately sized for the tool's complexity, earning full marks for conciseness.

    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 has an output schema (which handles return values) but no annotations and 0% schema coverage, the description is incomplete. It lacks behavioral context and parameter semantics, making it adequate only because the output schema mitigates some gaps, but it doesn't fully compensate for the missing information.

    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?

    Schema description coverage is 0%, so the description must compensate, but it adds no parameter information. It doesn't explain what 'workspace_name' or 'semantic_model_name' represent, their formats, or constraints. Baseline is 3 due to 0% coverage, but the description fails to enhance understanding 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 clearly states the verb ('Create') and resource ('empty Fabric semantic model'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'add_table_to_semantic_model' or 'add_measures_to_semantic_model', which modify existing models rather than creating new ones, so it misses full sibling differentiation.

    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. For instance, it doesn't mention prerequisites (e.g., needing an existing workspace) or compare to tools like 'get_semantic_model_definition' for retrieval, leaving the agent without context for 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a read operation ('Get'), implying safety, but doesn't cover permissions, rate limits, error handling, or what metadata includes. This leaves significant gaps for a tool with 3 parameters and an output 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?

    The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and includes key parameter hints, making it appropriately sized for its content.

    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 3 parameters with 0% schema coverage and an output schema, the description is minimally adequate. It covers the basic purpose but lacks details on usage, behavior, and parameter nuances. The output schema helps, but without annotations, more context on permissions or errors would improve completeness.

    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?

    Schema description coverage is 0%, so the description must compensate. It mentions retrieval by 'name or ID', which hints at 'semantic_model_name' and 'semantic_model_id', but doesn't explain 'workspace_name' or clarify that at least one of name/ID is needed. This adds some meaning but doesn't fully cover the 3 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 verb ('Get') and resource ('semantic model metadata'), specifying it can be retrieved by name or ID. It distinguishes this tool from siblings like 'get_semantic_model_definition' by focusing on metadata rather than definition details, though it doesn't explicitly mention this distinction.

    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 like 'get_semantic_model_definition' or 'list_items'. It mentions the parameters (name or ID) but doesn't explain prerequisites, context, or exclusions for usage.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool deletes items but doesn't mention critical behavioral aspects like whether deletion is permanent, requires specific permissions, has confirmation prompts, or affects dependencies. The example shows a basic call but lacks context about consequences or error handling.

    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 with clear sections (purpose, parameters, returns, example) and uses bullet points for readability. While somewhat verbose, each sentence adds value. The example is helpful but could be more concise.

    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?

    For a destructive mutation tool with no annotations, the description is moderately complete. It explains parameters and return format, and an output schema exists. However, it lacks crucial behavioral context about deletion consequences, permissions, and error conditions that would be essential for safe usage.

    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?

    With 0% schema description coverage, the description compensates well by explaining all three parameters: workspace_name, item_display_name, and item_type. It provides examples of item types and lists supported values, adding meaningful context beyond the bare schema. However, it doesn't specify format constraints or validation rules.

    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 specific action ('Delete') and resource ('item from a Fabric workspace'), distinguishing it from sibling tools like 'list_items' or 'create_semantic_model'. It explicitly mentions the item is identified by display name and type, providing clear differentiation.

    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. While sibling tools like 'delete_activity_from_pipeline' or 'delete_measures_from_semantic_model' exist for specific item types, the description doesn't mention these alternatives or provide context for choosing between them.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden. It discloses that the tool retrieves session details (IDs, states, configuration) and returns a dictionary with a sessions list, which adds behavioral context beyond basic listing. However, it doesn't cover important traits like whether this is a read-only operation, potential rate limits, authentication needs, or error handling. The description doesn't contradict any annotations (none exist).

    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 sized and front-loaded with the core purpose in the first sentence. It efficiently explains parameters and returns in separate sections, and includes a relevant example. Some minor redundancy exists (e.g., repeating 'List all Livy sessions' and 'Retrieves all active Livy sessions'), but overall it's structured and concise with no wasted sentences.

    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 tool's moderate complexity (listing sessions with 2 parameters), no annotations, and an output schema present, the description is fairly complete. It covers purpose, parameters, return structure, and includes an example. However, it could improve by addressing behavioral aspects like read-only nature or error cases, but the output schema likely handles return value details, making this adequate.

    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 explicitly lists and describes both parameters (workspace_id and lakehouse_id) with clear semantics, adding meaning beyond the input schema which has 0% description coverage. It specifies these as 'Fabric workspace ID' and 'Fabric lakehouse ID,' providing context that the schema lacks. Since there are only 2 parameters and the description covers them fully, it compensates well for the low schema coverage.

    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: 'List all Livy sessions in a workspace/lakehouse' and 'Retrieves all active Livy sessions...' with specific resources (Livy sessions) and scope (workspace/lakehouse). It distinguishes from siblings like livy_create_session or livy_close_session by focusing on listing rather than creating/managing sessions. However, it doesn't explicitly differentiate from other list tools like list_items or list_notebook_executions.

    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 context by specifying 'for the specified workspace and lakehouse' and mentions retrieving 'active Livy sessions,' suggesting it's for monitoring current sessions. However, it lacks explicit guidance on when to use this versus alternatives (e.g., livy_get_session_status for specific session details) or prerequisites. No when-not-to-use or comparison with sibling tools is 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?

    With no annotations provided, the description carries full burden but only partially discloses behavior. It explains what the tool does (removing dependency edges) and the conditional logic with from_activity_name, but misses critical details like whether this requires specific permissions, if changes are reversible, potential side effects on pipeline execution, or error handling. For a mutation tool with zero annotation coverage, this is insufficient.

    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 efficiently structured with a clear purpose statement, parameter explanations, and return value summary in separate logical sections. Every sentence adds value without redundancy, and it's appropriately sized for the tool's complexity.

    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 tool's moderate complexity (4 parameters, mutation operation), no annotations, but with an output schema (returns dictionary with specific fields), the description is reasonably complete. It covers purpose, parameters, and return structure, though it could better address behavioral aspects like permissions or side effects to fully compensate for the lack of annotations.

    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%, but the description compensates well by explaining all 4 parameters in plain language, clarifying their roles (e.g., workspace_name as 'display name', pipeline_name for 'existing pipeline to update', activity_name as 'being depended on', and from_activity_name's optional filtering effect). It adds meaningful context beyond the bare schema, though it doesn't specify format constraints or 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 specific action ('Remove dependsOn references') and target resource ('to a target activity'), distinguishing it from sibling tools like delete_activity_from_pipeline (which removes the activity itself) and add_activity_to_pipeline (which adds dependencies). The verb 'remove' is precise and the scope is well-defined.

    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 context through the parameter explanation (e.g., 'If from_activity_name is provided, only removes edges from that activity'), but lacks explicit guidance on when to use this tool versus alternatives like delete_activity_from_pipeline or when dependencies should be removed. No clear exclusions or prerequisites are stated.

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

  • Behavior3/5

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

    With no annotations provided, the description carries full burden. It discloses key behavioral traits: the job runs asynchronously, returns a dictionary with specific fields, and provides example usage. However, it doesn't mention authentication requirements, rate limits, error conditions, or what happens if the job fails. The description doesn't contradict any annotations since none exist.

    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 with purpose statement, common job types, behavioral note, parameter explanations, return value description, and example. Every section adds value. It could be slightly more concise by integrating the example more tightly, but overall it's appropriately sized and front-loaded with essential 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?

    Given 5 parameters with 0% schema coverage, no annotations, but with output schema (implied by 'Returns' section), the description does well. It covers purpose, usage, parameters, returns, and provides an example. The main gap is lack of error handling or permission information. The output schema existence reduces the need to fully document return values, but the description still provides useful context about what fields mean.

    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?

    With 0% schema description coverage for 5 parameters, the description must compensate. It provides meaningful explanations for all parameters: workspace_name as 'display name', item_name as 'Name of the item', item_type with examples, job_type with common types, and execution_data as 'Optional execution data payload'. This adds substantial value beyond the bare schema, though it doesn't specify format constraints or validation rules.

    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: 'Run an on-demand job for a Fabric item' with the verb 'executes' and resource 'job for the specified item'. It distinguishes from siblings by focusing on job execution rather than creation, deletion, or status checking. However, it doesn't explicitly differentiate from all 30+ siblings, just the two status-checking tools mentioned later.

    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 about when to use this tool: for running jobs asynchronously. It explicitly mentions alternatives for checking progress: 'Use get_job_status or get_job_status_by_url to check the job's progress and result.' It doesn't specify when NOT to use it or compare with other job-related siblings like livy_run_statement.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It adequately describes the read-only nature ('Retrieves') and output format ('dictionary matching the Jupyter notebook format'), but lacks details on error handling, permissions required, rate limits, or whether the operation is idempotent. The example adds some context but doesn't fully compensate for missing behavioral traits.

    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 with clear sections (purpose, parameters, returns, example) and uses bullet points effectively. It is appropriately sized but includes some redundancy (e.g., repeating 'notebook definition' concepts). Every sentence adds value, though minor trimming could improve conciseness.

    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 tool's moderate complexity, no annotations, and the presence of an output schema, the description provides sufficient context. It covers purpose, parameters, return structure, and includes a practical example. The output schema handles return value details, so the description doesn't need to explain those extensively, making it reasonably complete for agent use.

    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 lists both parameters ('workspace_name', 'notebook_display_name') and provides an example with concrete values, adding meaningful context beyond the bare schema. However, it doesn't explain parameter constraints (e.g., format of 'notebook_display_name') or dependencies, leaving minor gaps.

    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 with specific verbs ('Get', 'Retrieves') and resources ('notebook content and definition', 'full notebook definition including all cells, metadata, and configuration'). It distinguishes from sibling tools like 'get_notebook_execution_details' or 'get_notebook_driver_logs' by focusing on content retrieval rather than execution status or logs.

    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 context ('from a Fabric workspace') but does not explicitly state when to use this tool versus alternatives. No guidance is provided on prerequisites, exclusions, or comparisons with sibling tools like 'get_semantic_model_definition' or 'list_items', leaving the agent to infer appropriate usage scenarios.

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

  • Behavior3/5

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

    With no annotations provided, the description carries full burden. It discloses the upload action and format requirements, but doesn't mention authentication needs, rate limits, error handling, or what happens if the workspace doesn't exist. It states the return format but lacks details about failure modes or 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 well-structured with clear sections: purpose statement, parameter explanations, return format, and example. While comprehensive, some sentences could be more concise (e.g., 'The notebook file must be in .ipynb format' could be merged with the first sentence).

    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 4 parameters with 0% schema coverage and no annotations, the description does an excellent job explaining parameter semantics and providing an example. The output schema exists, so return values don't need explanation. However, for a mutation tool with no annotations, it could better address behavioral aspects like error conditions or side effects.

    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. It provides clear explanations for all 4 parameters: workspace_name (target workspace, case-sensitive), notebook_display_name (desired name with folder structure), local_notebook_path (file path), and description (optional). The example further clarifies usage with concrete values.

    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 specific action ('Upload a local .ipynb'), target resource ('into a Microsoft Fabric workspace'), and format constraints ('.ipynb format'). It distinguishes itself from sibling tools by focusing on notebook import rather than pipeline activities, semantic model operations, or workspace/item listing.

    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 context (uploading local notebooks to Fabric) but doesn't explicitly state when to use this tool versus alternatives like 'get_notebook_content' or 'list_items'. It mentions format requirements but doesn't provide guidance on prerequisites or error conditions.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it terminates the session, releases resources, and cancels any running statements. However, it lacks details on permissions, error handling, or side effects (e.g., irreversible termination). This is adequate but leaves gaps for a destructive operation.

    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 with a clear opening sentence, bullet points for parameters and returns, and an example. It is appropriately sized, though the example could be slightly trimmed. Every sentence adds value, but minor redundancy exists in the example's parameter listing.

    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 tool's complexity (destructive operation with 3 parameters), no annotations, and an output schema present, the description is fairly complete. It covers purpose, parameters, returns, and includes an example. However, it could improve by mentioning authentication needs or error scenarios, given the lack of annotations.

    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 schema description coverage is 0%, so the description must compensate. It explicitly lists all three parameters (workspace_id, lakehouse_id, session_id) with clear semantics: workspace_id as 'Fabric workspace ID', lakehouse_id as 'Fabric lakehouse ID', and session_id as 'Livy session ID to close'. This adds essential 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 clearly states the specific action ('Close (terminate)') and resource ('a Livy session'), distinguishing it from sibling tools like livy_create_session, livy_list_sessions, and livy_get_session_status. The verb 'terminates' and the clarification about releasing resources and cancelling statements make the purpose unambiguous.

    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 implies usage context by specifying that it terminates a session and cancels running statements, suggesting it should be used to clean up resources. However, it does not explicitly state when to use it versus alternatives (e.g., livy_cancel_statement for specific statements) or any prerequisites, such as needing an active session.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It discloses that it returns a list of workspaces with specific fields and mentions authentication ('authenticated user'), but lacks details on rate limits, pagination, or error handling. This is adequate but has gaps for a read operation.

    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, followed by return details and an example. Every sentence adds value: the first defines the action, the second specifies return fields, and the third provides a usage example, with no redundant information.

    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 the tool's low complexity (0 parameters), no annotations, and the presence of an output schema (implied by 'Returns' details), the description is complete. It covers purpose, return structure, and usage, leaving no significant gaps for this simple list operation.

    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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description explicitly states 'Parameters: None', which adds clarity beyond the schema, justifying a score above the baseline of 3.

    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 specific action ('List all accessible Fabric workspaces') and resource ('Fabric workspaces'), distinguishing it from siblings like 'list_items' which lists items rather than workspaces. It explicitly defines the scope as all accessible workspaces for the authenticated user.

    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 for when to use this tool: to retrieve all accessible workspaces. However, it does not explicitly mention when not to use it or name alternatives (e.g., 'list_items' for other item types), which prevents a score of 5.

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

  • Behavior3/5

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

    With no annotations provided, the description carries full burden. It explains the tool's behavior ('Retrieves an existing pipeline, adds a Notebook Activity to it, and updates the pipeline definition') and mentions default values for some parameters. However, it doesn't disclose important behavioral aspects like error handling, permission requirements, rate limits, or whether the operation is idempotent, which are significant gaps for a mutation 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 well-structured with clear sections: purpose statement, usage guidelines, parameter list, and return value. Every sentence adds value, with no redundancy. The parameter explanations are terse but informative, and the 'Use this tool when:' section is front-loaded for quick decision-making.

    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 tool's complexity (11 parameters, mutation operation) and no annotations, the description does a good job explaining purpose, usage, parameters, and return values. The output schema exists, so the description doesn't need to detail return values. However, for a mutation tool with no annotations, it could better address behavioral aspects like error conditions or side effects.

    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?

    With 0% schema description coverage, the description provides substantial parameter information beyond the bare schema. It lists all 11 parameters with brief explanations of their purpose, including which are optional and default values for timeout, retry, and retry_interval_seconds. While it doesn't provide exhaustive details like format constraints, it compensates well for the schema's lack of descriptions.

    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 specific action ('Add a Notebook Activity'), target resource ('to an existing Fabric pipeline'), and mechanism ('appended to any existing activities'). It distinguishes from sibling tools like 'add_copy_activity_to_pipeline' by specifying the activity type (Notebook) rather than generic or other activity types.

    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 includes an explicit 'Use this tool when:' section with three bullet points that clearly outline appropriate scenarios: when you have an existing pipeline, are building complex pipelines, or want incremental pipeline building. This provides clear guidance on when to select this tool over alternatives.

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

  • Behavior3/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It clearly indicates this is a creation/mutation operation and mentions the pipeline starts with 'an empty activities array.' However, it doesn't disclose important behavioral aspects like required permissions, whether the operation is idempotent, error conditions, or rate limits that would be crucial for a creation 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 well-structured with clear sections (purpose, parameters, returns, example) and front-loads the core functionality. The example is helpful but lengthy; some sentences could be more concise. Overall, most content earns its place by providing necessary guidance.

    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 this is a creation tool with no annotations but with output schema (returns dictionary with specific fields), the description provides good context. It explains the purpose, parameters, return structure, and usage sequence. The main gap is lack of behavioral details like permissions or error handling that would be important for a creation operation.

    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?

    With 0% schema description coverage, the description fully compensates by providing detailed parameter documentation. It explains workspace_name as 'display name of the workspace,' pipeline_name as 'must be unique in workspace,' and description as 'optional description for the pipeline.' This adds substantial meaning beyond what the bare schema provides.

    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 specific action ('Create a blank Fabric pipeline with no activities') and resource ('Data Pipeline in the specified workspace'), distinguishing it from sibling tools like add_copy_activity_to_pipeline by emphasizing it creates an empty pipeline ready for later population. This provides explicit differentiation from related tools.

    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 this tool ('ready to be populated with activities later using the add_copy_activity_to_pipeline tool') and provides a clear alternative workflow. The example further reinforces this guidance by showing the sequence of create_blank_pipeline followed by add_copy_activity_to_pipeline.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It describes the tool's behavior as retrieving status and mentions the return structure, but lacks details on error handling, rate limits, authentication needs, or side effects. For a tool with no annotations, this leaves gaps in behavioral understanding.

    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 and front-loaded with the core purpose, followed by parameter and return explanations, and an example. Every sentence adds value without redundancy, making it efficient and easy to parse.

    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 tool has an output schema (so return values are documented elsewhere) and low complexity, the description covers purpose, usage, parameters, and returns adequately. However, with no annotations, it could benefit from more behavioral details like error cases or performance hints to be fully complete.

    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%, but the description compensates by explaining that 'location_url' is 'The location URL returned from job creation' and ties it to run_on_demand_job. This adds meaningful context beyond the bare schema, though it doesn't detail format or validation rules. With 1 parameter, this is sufficient for a high score.

    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 specific action ('Get job status') and resource ('using the location URL from run_on_demand_job'), distinguishing it from sibling tools like get_job_status. It explicitly explains this tool is for when you have the location URL but not other identifiers, making the purpose distinct and well-defined.

    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 provides explicit guidance on when to use this tool ('when you have the location URL but not the individual workspace/item/job identifiers') and references the alternative ('same structure as get_job_status'), clearly differentiating it from the sibling tool get_job_status. The example further illustrates the usage context.

    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 full burden and does well by disclosing key behavioral traits: it retrieves current status and details, lists possible job states, and describes the return structure including flags like 'is_terminal'. It does not mention rate limits, authentication needs, or error handling, leaving some gaps.

    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 sized and front-loaded with the core purpose, followed by details and an example. Some sentences could be more concise (e.g., the parameter list is verbose), but overall it's well-structured with no wasted content.

    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 the tool's moderate complexity, no annotations, 0% schema coverage, but with an output schema (implied by 'Returns' section), the description is complete. It covers purpose, parameters, return values, and includes an example, providing all necessary context for an agent to use the tool effectively.

    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 compensate fully. It does so by listing all 4 parameters with clear explanations (e.g., 'ID of the job instance to check') and providing an example that demonstrates usage. This adds significant 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 clearly states the tool's purpose with specific verb ('Get status') and resource ('job instance'), and distinguishes it from siblings like 'get_job_status_by_url' by specifying it retrieves status for a specific job instance. The title and name align perfectly with the described functionality.

    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 for when to use this tool ('to check' a job instance), but does not explicitly mention when not to use it or name alternatives like 'get_job_status_by_url' from the sibling list. The example implies usage for monitoring job completion, which is helpful but not exhaustive.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. It effectively describes the tool's behavior: it retrieves results for long-running operations, explains where operation IDs come from (x-ms-operation-id headers), and provides a clear example of how to handle the response. It doesn't mention rate limits, authentication needs, or error conditions, but covers the core behavioral context well.

    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 and appropriately sized. It starts with a clear purpose statement, provides usage context, documents the parameter, describes returns, and includes a practical code example. Every sentence adds value with zero wasted content, making it easy to scan and understand.

    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 the tool's moderate complexity (1 parameter, no annotations, but with output schema), the description is complete enough. It explains the purpose, usage context, parameter semantics, and includes an example showing how to handle the response. The existence of an output schema means the description doesn't need to exhaustively document return values, and it provides all necessary contextual information for effective use.

    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 0% description coverage for its single parameter, but the description compensates by explaining that 'operation_id' comes from the x-ms-operation-id header of API calls returning 202 Accepted responses. This adds crucial semantic context beyond the bare schema, though it doesn't specify format constraints like UUID requirements.

    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: 'Get the result of a long-running operation' and specifies it retrieves results for asynchronous operations using operation IDs. It distinguishes from sibling tools like 'get_job_status' by focusing on operation results rather than job status, providing specific verb+resource differentiation.

    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 for when to use this tool: for retrieving results of asynchronous operations where operation IDs are returned in x-ms-operation-id headers from API calls with 202 Accepted responses. However, it doesn't explicitly state when NOT to use it or mention alternatives like 'get_job_status' for job-related status checks.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. It discloses behavioral traits such as returning all items by default, supporting optional filtering, listing supported types, and detailing the return structure. It does not mention rate limits, authentication needs, or pagination, but covers core behavior adequately for a read operation.

    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 with clear sections (purpose, parameters, returns, example) and uses bullet points for types. It is appropriately sized but includes some redundancy (e.g., repeating 'Returns all items' after the opening sentence). Every sentence adds value, though minor trimming could improve efficiency.

    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 the tool's low complexity (read-only list operation), no annotations, 0% schema coverage, but with an output schema implied in the description, the description is complete. It covers purpose, parameters, return values, and examples, providing all necessary context for an agent to invoke the tool correctly without gaps.

    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 schema description coverage is 0%, so the description must compensate fully. It clearly explains both parameters: workspace_name as 'the display name of the workspace' and item_type as an optional filter with examples and default behavior. This adds significant meaning beyond the bare schema, fully documenting parameter usage.

    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 ('List') and resource ('all items in a Fabric workspace'), specifies optional filtering by type, and distinguishes from siblings like list_workspaces (which lists workspaces, not items within them). It provides specific examples of item types, making the purpose unambiguous.

    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 implies usage context by stating it returns items 'in the specified workspace' and mentions filtering by item_type. However, it does not explicitly state when to use this tool versus alternatives like list_notebook_executions or get_semantic_model_details, which might overlap for specific item types. The guidance is clear but lacks explicit sibling differentiation.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the creation process ('can take 6+ minutes on first startup'), the recommendation to use 'with_wait=True' for readiness, and the return format ('Dictionary with session details'). It also implies this is a write operation (creating a session) and mentions timeouts. However, it lacks details on error handling, permissions, or rate limits, which are important for a creation 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 well-structured with clear sections: purpose, behavioral notes, parameters, returns, and an example. It is appropriately sized for a complex tool with 7 parameters. However, some sentences could be more concise (e.g., the parameter explanations are detailed but slightly verbose), and the example is lengthy, though it adds practical value. Overall, it is efficient but not perfectly minimal.

    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 the complexity (7 parameters, no annotations, schema coverage 0%), the description is highly complete. It covers purpose, behavioral traits (like startup time and waiting), detailed parameter semantics, return values, and includes a practical example. With an output schema present, it doesn't need to explain return values in depth, but it still provides a summary. This makes it sufficient for an agent to understand and use the tool effectively.

    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 compensate fully. It provides detailed semantics for all 7 parameters: explains what each parameter represents (e.g., 'workspace_id: Fabric workspace ID'), gives usage tips (e.g., 'use list_workspaces tool to find by name'), lists options (e.g., 'kind: Session kind - 'pyspark' (default), 'scala', or 'sparkr''), and includes examples (e.g., 'conf: Optional Spark configuration as key-value pairs'). This adds significant value 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 clearly states the tool's purpose: 'Create a new Livy session for Spark code execution' and 'Creates a Spark session for executing PySpark, Scala, or SparkR code.' It specifies the exact action (create), resource (Livy/Spark session), and distinguishes it from sibling tools like livy_list_sessions, livy_close_session, etc., by focusing on creation rather than listing or closing.

    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 on when to use this tool: for creating a session to execute Spark code. It mentions that 'Session creation can take 6+ minutes on first startup' and recommends 'with_wait=True to ensure the session is ready before use,' offering practical guidance. However, it does not explicitly state when not to use it or name alternatives (e.g., using existing sessions vs. creating new ones), which prevents a score of 5.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: it's a read operation (implied by 'Fetch'), supports incremental reads with paging, and specifies log scope (driver-only). It lacks details on permissions, rate limits, or error handling, but covers essential operational traits beyond basic purpose.

    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 with sections for purpose, use cases, notes, parameters, returns, and an example. It is appropriately sized and front-loaded with key information, though the example is detailed and could be slightly condensed without losing 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?

    Given the tool's complexity (5 parameters, no annotations, but with output schema), the description is complete: it covers purpose, usage, parameters, return format, and includes an example. The output schema exists, so the description need not explain return values in depth, and it adequately addresses all necessary context for a logging tool.

    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 compensate fully. It adds significant meaning by explaining all 5 parameters: workspace_id, lakehouse_id, and session_id as identifiers, and start/size for paging with defaults and usage context. This goes beyond the bare schema, providing practical guidance for each parameter.

    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 specific action ('Fetch incremental Livy driver logs') and resource ('for a session'), distinguishing it from sibling tools like 'get_notebook_driver_logs' or 'get_notebook_execution_details' by specifying it's for Livy sessions. The purpose is precise and avoids tautology.

    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 explicit use cases (e.g., debugging session startup, troubleshooting failed statements) and notes that it returns driver-side logs only, not executor logs, offering clear context. However, it does not specify when not to use it or name direct alternatives among siblings, such as 'get_notebook_driver_logs' for non-Livy contexts.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it cancels statements, transitions them through states ('cancelling' then 'cancelled'), and leaves the session intact. However, it doesn't mention potential side effects, error conditions, or rate limits, leaving some behavioral aspects uncovered.

    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 and front-loaded with the core purpose. Every sentence adds value: the first states the action, the second explains state transitions, the third notes session preservation, the fourth provides a critical usage note, and subsequent sections clearly document parameters, returns, and an example without 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?

    Given the tool's moderate complexity (4 parameters, no annotations, but with an output schema), the description is largely complete. It covers purpose, usage, behavior, parameters, and returns. The output schema exists, so detailed return value explanation isn't needed. However, it lacks error handling or permission context, which could be useful for a cancellation 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 lists all four parameters with brief explanations (e.g., 'Fabric workspace ID'), adding meaningful context beyond the bare schema. However, it doesn't provide format details (e.g., UUID format) or constraints, leaving some semantic gaps.

    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 specific action ('Cancel a running Livy statement') and resource ('Livy statement'), distinguishing it from sibling tools like livy_close_session (which kills the session) and livy_run_statement (which runs statements). It explicitly notes the session remains available, which differentiates it from session-terminating alternatives.

    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 provides explicit guidance on when to use this tool: 'Only works on statements in 'waiting' or 'running' state.' It also implicitly suggests when not to use it (for statements not in those states) and distinguishes it from livy_close_session by noting 'without killing the session.'

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (retrieves session details), includes a comprehensive list of possible session states with explanations, and provides an example showing how to interpret the results. However, it lacks details on error handling, rate limits, or authentication requirements, which are common behavioral traits for API tools.

    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 and appropriately sized. It starts with a clear purpose statement, follows with usage guidance, provides a detailed state reference, lists parameters with semantics, describes returns, and includes a practical code example. Every section adds value without redundancy, and information is front-loaded for quick understanding.

    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 the tool's moderate complexity (3 parameters, no annotations, but with output schema), the description is complete. It covers purpose, usage, parameters, return values (including state details), and provides an example. The output schema existence means the description doesn't need to exhaustively document return structure, and it adequately supplements with key return insights like state interpretation.

    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. It explicitly lists all three parameters (workspace_id, lakehouse_id, session_id) with clear semantic explanations ('Fabric workspace ID', 'Fabric lakehouse ID', 'Livy session ID to check'), adding essential context beyond the bare schema. The example further illustrates parameter usage with realistic values.

    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 with specific verbs ('Get', 'Retrieves') and resources ('current status and details of a Livy session', 'detailed information about a session'). It distinguishes itself from siblings like 'livy_list_sessions' (which lists sessions) and 'livy_get_session_log' (which retrieves logs specifically) by focusing on comprehensive session status and health checking.

    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 for when to use this tool: 'Use this to check session health and readiness.' It implies usage scenarios (e.g., monitoring session state) but does not explicitly state when NOT to use it or name specific alternatives like 'livy_list_sessions' for broader session overviews, which prevents a perfect score.

    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 full burden and does well by explaining the tool's behavior: it 'retrieves an existing pipeline, adds an activity... and updates the pipeline definition.' It also details the JSON requirements and return structure. However, it lacks information on error handling, permissions needed, or idempotency, leaving some behavioral aspects unclear.

    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 with clear sections (purpose, usage guidelines, requirements, parameters, returns, examples) and front-loads key information. However, the lengthy code examples (while helpful) make it somewhat verbose, and some sentences could be tightened (e.g., 'This is a more general-purpose tool...' is slightly 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?

    Given the tool's complexity (mutation operation, JSON-heavy input, sibling alternatives) and lack of annotations, the description provides comprehensive context: purpose, usage guidelines, parameter details, return values, and extensive examples. The output schema exists, so return values need not be explained in depth, and the description covers all critical aspects for effective use.

    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 compensate fully. It provides detailed semantics for all three parameters: 'workspace_name' and 'pipeline_name' are clearly explained, and 'activity_json' gets extensive documentation including required fields, examples, and validation rules. This adds significant value 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 clearly states the verb ('Add'), resource ('generic activity'), and target ('existing Fabric pipeline') with specific differentiation from sibling tools. It explicitly contrasts with 'add_copy_activity_to_pipeline' as a 'more general-purpose tool' for 'any type of Fabric pipeline activity,' making the purpose distinct and unambiguous.

    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 includes a dedicated 'Use this tool when:' section with four explicit scenarios, including when to use alternatives ('beyond Copy'), prerequisites ('custom activity JSON template'), and context ('full control over activity definition,' 'complex activity configurations'). This provides clear, actionable guidance for tool selection.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: it retrieves and updates an existing pipeline, appends activities, includes default values for parameters, and describes return values. However, it lacks details on permissions, error handling, or rate limits, which are important for a mutation 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 well-structured with a clear purpose statement, usage guidelines, parameter details, return values, and examples, but it is lengthy due to the extensive parameter list and examples. Every section adds value, but it could be more front-loaded; the examples are helpful but contribute to verbosity.

    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 the complexity (17 parameters, mutation tool, no annotations) and the presence of an output schema, the description is highly complete. It covers purpose, usage, parameters, returns, and provides practical examples, making it sufficient for an agent to understand and use the tool effectively without gaps.

    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?

    Given 0% schema description coverage, the description compensates fully by listing all 17 parameters with clear explanations, examples, and default values, adding significant meaning beyond the bare schema. It clarifies parameter roles, options, and practical usage, which is essential for the agent to invoke the tool correctly.

    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 with specific verbs ('Add a Copy Activity to an existing Fabric pipeline') and distinguishes it from siblings by specifying it's for 'Copy Activity' operations, unlike other pipeline tools like 'add_dataflow_activity_to_pipeline' or 'add_notebook_activity_to_pipeline'.

    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 provides explicit usage guidelines with a bulleted list ('Use this tool when:') that includes specific scenarios (e.g., adding to existing pipelines, building complex pipelines, incremental building) and distinguishes it from alternatives by focusing on Copy Activities, though it doesn't explicitly name when not to use it or list all sibling alternatives.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden and effectively discloses key behavioral traits: it's a destructive operation ('Removes'), has a failure condition ('fail if any other activity depends on it'), and specifies a prerequisite action. It doesn't cover aspects like authentication needs or rate limits, but provides sufficient context for safe use.

    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, followed by critical behavioral notes and parameter/return sections. Every sentence adds value—no redundancy or fluff—and it's structured for quick scanning with clear headings.

    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 the tool's complexity (destructive operation with dependencies), no annotations, and an output schema that covers return values, the description is complete enough. It explains the action, failure conditions, prerequisites, parameters, and return structure, leaving no critical gaps 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 compensate. It lists all three parameters with brief explanations (e.g., 'display name of the workspace', 'existing pipeline to update'), adding meaningful context beyond the bare schema. However, it doesn't detail format constraints or examples, leaving some 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 clearly states the specific action ('Delete an activity from an existing Fabric pipeline') with the resource specified ('activity', 'pipeline'), and distinguishes it from siblings like 'remove_activity_dependency' by mentioning that tool as a prerequisite for handling dependencies.

    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 this tool ('Delete an activity from an existing Fabric pipeline') and when not to use it ('This will fail if any other activity depends on it'), with a clear alternative named ('Use remove_activity_dependency to remove dependencies first'), providing comprehensive guidance.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (retrieves execution history), what information it provides (job instance IDs, states, timing), and includes a detailed return structure. However, it doesn't mention potential limitations like pagination, rate limits, or authentication requirements, which would be helpful for a production 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 well-structured with clear sections: purpose statement, usage guidelines, parameters, returns, and example. Every sentence earns its place by providing essential information. The front-loaded purpose statement immediately tells users what the tool does, followed by progressively detailed information.

    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 the tool's moderate complexity (3 parameters, no annotations, but has output schema), the description is remarkably complete. It covers purpose, usage guidelines, parameter semantics, and includes a detailed return structure with example. The output schema existence means the description doesn't need to explain return values in detail, but it still provides a comprehensive overview that would help an agent use 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?

    Schema description coverage is 0%, so the description must compensate. It provides clear explanations for all three parameters: workspace_name ('display name of the workspace'), notebook_name ('Name of the notebook'), and limit ('Optional maximum number of sessions to return'). This adds significant value beyond the bare schema, though it doesn't specify format constraints or examples for workspace/notebook 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 specific verb ('List all Livy sessions') and resource ('for a notebook'), with additional context about execution history. It distinguishes this tool from siblings like 'get_notebook_execution_details' (which likely provides details for a single execution) and 'livy_list_sessions' (which appears to list all Livy sessions without notebook filtering).

    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 includes an explicit 'Use this tool when:' section with three specific scenarios: seeing execution history, finding job instance IDs, and analyzing execution patterns. This provides clear guidance on when to use this tool versus alternatives like 'get_notebook_execution_details' for detailed information about a specific execution.

    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?

    Since no annotations are provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: retrieving an existing pipeline, adding a Dataflow Activity, updating the pipeline definition, and appending to existing activities. It also mentions default values for parameters like timeout and retry settings. However, it doesn't cover potential side effects, error conditions, or authentication requirements.

    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 clear sections: purpose statement, behavioral explanation, usage guidelines, parameter details, and return values. Every sentence adds value - the first paragraph explains what the tool does, the bullet points provide usage context, and the parameter section adds crucial information missing from the schema.

    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 the complexity of a 9-parameter mutation tool with no annotations and 0% schema description coverage, the description provides comprehensive coverage. It explains the tool's purpose, when to use it, detailed parameter semantics, and includes return value information. With an output schema present, the description appropriately focuses on the tool's behavior and inputs rather than output details.

    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?

    With 0% schema description coverage, the description fully compensates by providing detailed explanations for all 9 parameters. It clarifies optional vs. required parameters, explains what each parameter represents (e.g., 'display name of the workspace,' 'name of the existing pipeline'), and provides default values for optional parameters like timeout and retry settings.

    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 specific action ('Add a Dataflow Activity to an existing Fabric pipeline') and distinguishes it from sibling tools like 'add_copy_activity_to_pipeline' and 'add_notebook_activity_to_pipeline' by specifying it's for Dataflow Activities. It explicitly mentions the resource ('existing Fabric pipeline') and the verb ('add').

    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 includes an explicit 'Use this tool when:' section with three bullet points that clearly define the appropriate contexts for using this tool, such as when you have an existing pipeline, are building complex pipelines, or want incremental pipeline building. This provides clear guidance on when to select this tool over alternatives.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it 'Updates the notebook definition' (indicating a mutation), explains the outcome ('lakehouse will be automatically mounted when the notebook runs'), and mentions the benefit ('seamless access without additional configuration'). However, it lacks details on permissions, error handling, or side effects, which would be needed for a perfect score.

    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 and front-loaded: the first sentence states the purpose, followed by elaboration, usage guidelines, parameter details, return values, and examples. Each section adds value without redundancy, and the example code is directly illustrative of the tool's use. No sentences are wasted.

    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 mutation tool with 4 parameters, 0% schema coverage, no annotations, and an output schema present, the description is complete. It covers purpose, usage, parameters, return values (though the output schema handles details), and includes practical examples. The presence of an output schema means the description doesn't need to detail return structure, and it adequately addresses the complexity of the tool.

    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?

    Given 0% schema description coverage, the description fully compensates by providing clear parameter explanations. It defines all four parameters, specifies which are required, explains the optional nature of 'lakehouse_workspace_name' with its default behavior ('If not provided, uses the same workspace as the notebook'), and includes examples that illustrate usage with and without the optional parameter.

    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 specific action ('Attach a default lakehouse to a notebook'), the resource involved ('notebook in Microsoft Fabric'), and distinguishes this from sibling tools like 'import_notebook_to_fabric' or 'get_notebook_content' by focusing on configuration rather than creation or retrieval. It goes beyond the title by explaining the functional outcome ('automatically mounted when the notebook runs, providing seamless access').

    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 includes an explicit 'Use this tool when:' section with three specific scenarios: setting up a new notebook, changing an existing notebook's default lakehouse, and ensuring code access to lakehouse tables. This provides clear guidance on when to use this tool versus alternatives like 'import_notebook_to_fabric' for creation or 'get_notebook_content' for reading, though it doesn't explicitly name exclusions.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it retrieves metadata from the Fabric Notebook Livy Sessions API, provides timing/resource usage/state information, and clarifies limitations about cell-level outputs. It doesn't mention error handling, rate limits, or authentication requirements, but covers the core behavioral aspects well.

    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 clear sections (purpose, usage guidelines, notes, parameters, returns, example). Every sentence adds value: the opening explains what the tool does, the usage guidelines provide context, the note clarifies limitations, and the parameters/returns sections document essential information. The example is relevant and demonstrates practical usage.

    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 the tool's complexity (execution details retrieval), no annotations, and an output schema present, the description provides excellent completeness. It explains the tool's purpose, when to use it, behavioral characteristics, parameter meanings, and includes a comprehensive example. The output schema handles return value documentation, so the description appropriately focuses on usage context.

    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. It provides clear semantic explanations for all three parameters: 'workspace_name' as 'display name of the workspace containing the notebook', 'notebook_name' as 'Name of the notebook', and 'job_instance_id' as 'The job instance ID from execute_notebook or run_on_demand_job result'. This adds significant value 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 clearly states the tool's purpose with specific verbs ('Get detailed execution information', 'Retrieves execution metadata') and identifies the resource ('notebook run by job instance ID'). It distinguishes from siblings like 'get_notebook_content' or 'get_job_status' by focusing on execution metadata rather than content or generic job status.

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

    Usage Guidelines5/5

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

    The description explicitly provides usage guidelines with a dedicated 'Use this tool when:' section listing three specific scenarios (check status/timing, verify resource allocation, analyze performance). It also includes a 'Note:' section explaining limitations (cell outputs not available for completed sessions) and alternatives (using mssparkutils.notebook.exit() for cell outputs).

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior by listing all possible statement states (waiting, running, available, error, cancelling, cancelled) and explaining what the output field contains when state is 'available'. However, it doesn't mention error handling, rate limits, or authentication needs, leaving some behavioral aspects uncovered.

    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 and appropriately sized. It front-loads the core purpose, follows with usage guidelines, provides a detailed state enumeration, documents parameters, describes returns, and includes a practical example. Every section adds value 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?

    Given the tool's complexity (checking statement execution status), no annotations, and an output schema (which handles return values), the description is complete. It covers purpose, usage, behavioral details (states), parameters, and includes an example that demonstrates how to interpret results. No significant gaps remain for effective tool use.

    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?

    With 0% schema description coverage, the description fully compensates by providing clear parameter documentation. It lists all four parameters with brief explanations (e.g., 'Fabric workspace ID', 'Statement ID to check'), adding essential semantic meaning beyond the bare schema. The example further clarifies parameter usage with concrete values.

    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 with specific verbs ('get', 'retrieves') and resources ('Livy statement status and output'), distinguishing it from siblings like livy_cancel_statement or livy_run_statement. It explicitly mentions retrieving status, output, and execution details, making the purpose unambiguous.

    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 provides explicit usage guidance: 'Use this for manual status checking without auto-polling.' This clearly indicates when to use this tool versus automated alternatives, and it distinguishes it from other Livy tools like livy_run_statement (which executes) or livy_cancel_statement (which cancels).

    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 of behavioral disclosure and excels at this. It explains critical behavioral details: that Python exceptions appear in stdout (not stderr), that stderr contains Spark/system logs, how max_lines works (returns last N lines), and what the return dictionary contains. This provides comprehensive context beyond basic functionality.

    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 clear sections (purpose, important notes, usage guidelines, parameters, returns, example) and every sentence earns its place. The information is front-loaded with the core purpose first, followed by critical behavioral details. No wasted words while maintaining excellent clarity.

    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 tool with 5 parameters, 0% schema coverage, no annotations, but with an output schema, the description provides exceptional completeness. It covers all parameters thoroughly, explains behavioral nuances, provides usage scenarios, documents the return structure, and includes a practical example. The output schema existence means the description doesn't need to explain return values in detail, but it still provides helpful context about what information is returned.

    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?

    With 0% schema description coverage, the description fully compensates by providing detailed semantic explanations for all 5 parameters. Each parameter gets clear guidance: workspace_name and notebook_name identify the resource, job_instance_id specifies which execution, log_type explains the stdout/stderr distinction with usage advice, and max_lines describes the truncation behavior and default.

    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 specific action ('Get Spark driver logs') and resource ('for a notebook execution'), distinguishing it from siblings like get_notebook_content or get_notebook_execution_details. It explicitly identifies the logs as driver logs from completed notebook runs, which is precise and avoids confusion with other log-related tools.

    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 includes an explicit 'Use this tool when:' section that lists three specific scenarios (notebook execution failed, debugging notebook issues, analyzing Spark driver behavior). It also provides important notes on when to use stdout vs. stderr, offering clear guidance on alternatives within the tool itself.

    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 of behavioral disclosure. It effectively describes key behaviors: the tool executes code asynchronously (with_wait parameter controls waiting), requires session state validation, returns a dictionary with statement details, and includes practical warnings about DataFrame inspection and Fabric-specific column names. This covers execution patterns, output structure, and domain-specific pitfalls.

    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 and front-loaded with the core purpose, followed by important notes, parameter explanations, return details, and a comprehensive example. Every section earns its place by providing essential guidance without redundancy. The use of bullet points and code blocks enhances readability while maintaining brevity.

    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 complex tool with 7 parameters, 0% schema coverage, no annotations, but an output schema, the description is exceptionally complete. It covers prerequisites (session state), parameter semantics, execution behavior (synchronous vs. asynchronous), return value interpretation, and practical examples with error handling. The output schema likely defines the dictionary structure, so the description appropriately focuses on usage context rather than repeating schema details.

    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?

    Given 0% schema description coverage, the description fully compensates by explaining all 7 parameters in detail. It clarifies each parameter's purpose (e.g., workspace_id as 'Fabric workspace ID', session_id 'must be in idle state'), default values (kind defaults to 'pyspark', with_wait defaults to true), and behavioral implications (timeout_seconds 'from config' if null). This adds significant 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 clearly states the specific action ('Execute code in a Livy session') and resource ('existing Livy session'), distinguishing it from siblings like livy_create_session or livy_cancel_statement. It specifies the supported languages (PySpark, Scala, SparkR) and the required session state ('idle'), making the purpose highly specific and differentiated.

    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 provides explicit guidance on when to use this tool (e.g., 'session must be in idle state'), when not to use it (e.g., 'Avoid direct Row attribute access without schema verification'), and alternatives (e.g., 'check status separately' when with_wait=False). It also includes important notes for correct usage, such as handling SHOW TABLES in Fabric and DataFrame inspection.

    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

ms-fabric-mcp-server MCP server

Copy to your README.md:

Score Badge

ms-fabric-mcp-server 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/bablulawrence/ms-fabric-mcp-server'

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