Skip to main content
Glama
FreelexHo
by FreelexHo

Server Quality Checklist

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

  • Disambiguation5/5

    Every tool focuses on a distinct Power BI operation—auth, dataset info, diagnostics, querying, listing, refreshing, managing refreshes, and local model exploration—with no functional overlaps. Descriptions clearly differentiate each tool's role.

    Naming Consistency4/5

    All tools share a consistent 'pbi_' prefix. Most follow a verb_noun pattern (e.g., pbi_list_datasets, pbi_execute_query), but a few deviate (e.g., pbi_auth is a bare verb, pbi_local_model is adjective_noun, pbi_scheduled_refresh_report is lengthy). Overall pattern is recognizable.

    Tool Count5/5

    11 tools is well-scoped for a Power BI dataset-focused server. It covers authentication, workspace/dataset listing, dataset info, DAX queries, refresh triggering, refresh management, diagnostics, and local source file interaction without bloat.

    Completeness4/5

    The tool surface provides strong coverage for dataset lifecycle: query, refresh, diagnose failures, and inspect local models. Minor gaps exist, such as no direct tool for creating or deleting datasets, but these are often handled outside the server's intended scope.

  • Average 4.2/5 across 11 of 11 tools scored.

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

    • No community issues in the last 6 months
    • 10 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

  • Behavior3/5

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

    Since no annotations are provided, the description bears full responsibility. It correctly indicates a read operation by using the verb 'list,' and describes the return format. However, it does not disclose potential errors, permissions required, or any side effects, which is acceptable for a simple list but could be more thorough.

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

    Conciseness4/5

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

    The description is concise at two sentences plus a usage note, front-loaded with the main purpose. It efficiently conveys the tool's function without unnecessary detail, though a slightly more structured format (e.g., bullet points) could improve scannability.

    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 simplicity (one parameter, list operation), the description is mostly complete, specifying the parameter and return fields. It lacks guidance on where to obtain the workspace_id and error handling, but the presence of an output schema (per context) covers return format details.

    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?

    With only one parameter and 0% schema description coverage, the description adds minimal value: 'workspace_id: The workspace (group) ID.' This clarifies the parameter's purpose but does not elaborate beyond the name, such as format or source.

    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 'List datasets in a Power BI workspace,' specifying the action (list), resource (datasets), and context (workspace). This distinguishes it from sibling tools like pbi_dataset_info (single dataset details) and pbi_list_workspaces (list workspaces).

    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 requires a workspace_id and hints at the return, but it does not explicitly state when to use this tool over alternatives. No mention of prerequisites like obtaining workspace IDs from pbi_list_workspaces or when not to use it.

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

  • 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 return structure but does not disclose behavioral traits like idempotency, authorization needs, or side effects (though likely read-only). For an info tool, this is adequate but not richly transparent.

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

    Conciseness4/5

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

    The description is concise with a clear purpose statement, then Args and Returns sections. It is well-structured and front-loads the key value proposition. Every sentence serves a purpose, though the Args section could be more integrated.

    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 (aggregating multiple sub-objects), the description adequately lists all returned components (dataset, datasources, gateways, schedule, impacted_reports, pbip_locate). With an output schema present, it doesn't need to detail return values. It is complete for diagnostics but lacks mention of prerequisites or error conditions.

    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. The Args section provides one-line definitions ('The workspace (group) ID', 'The dataset ID'), which adds basic meaning but no validation, format, or constraint details beyond the parameter names. This is minimal compensation.

    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 'Aggregate dataset metadata + datasources + bound gateways + refresh schedule + impacted reports.' This specific verb 'Aggregate' and enumeration of resources precisely define what the tool does, distinguishing it from siblings like pbi_list_datasets (which lists datasets) and pbi_refresh_dataset (which refreshes).

    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 says 'Useful for diagnostics and context-gathering' and explains it avoids multiple round-trips, providing clear context for when to use. However, it does not explicitly mention when not to use or compare with alternative tools like pbi_list_datasets for listing vs. detailed info.

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

  • Behavior4/5

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

    No annotations exist, so the description carries full burden. It transparently explains the 5-step pipeline, including automatic selection of the latest failed refresh if no refresh_id is provided. It also mentions classification and PBIP source code hints. However, it does not explicitly state read-only nature, authentication needs, or rate limits.

    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: a one-sentence purpose, a numbered pipeline list, and an Args section. Each part adds value without redundancy. It is concise given the complexity of the diagnostic process.

    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 (5 steps) and the presence of an output schema (implies return structure), the description is complete. It covers the diagnostic workflow, parameter behavior, and return type. Minor omission: no example or additional context on error classification.

    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?

    With 0% schema description coverage, the description adds context: workspace_id and dataset_id are described as 'The workspace (group) ID' and 'The dataset ID'; refresh_id is explained as optional with auto-pick behavior. This is adequate but could include more detail like format or constraints.

    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: 'One-shot diagnostic report for a Power BI dataset refresh failure.' It details a specific pipeline, distinguishing it from sibling tools like pbi_refresh_dataset (triggers refresh) and pbi_dataset_info (general info). The verb 'diagnose' and resource 'refresh failure' are specific.

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

    Usage Guidelines3/5

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

    The description implies usage when diagnosing a refresh failure but lacks explicit when-to-use or when-not-to-use guidance. It does not mention alternatives among siblings or prerequisites, though it notes the optional refresh_id parameter behavior.

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

  • Behavior3/5

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

    With no annotations, the description must fully disclose behavior. It explains it reads local files and returns JSON, implying read-only, but does not explicitly state it does not modify anything or discuss error handling, permissions, 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 bullet points for actions and args. It is concise enough but could be trimmed slightly; however, it remains readable and efficient.

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

    Completeness4/5

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

    The tool has few parameters, an output schema exists, and the description covers purpose, usage, and return format. It is complete for a simple file-reading tool, though missing examples or error handling.

    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% description coverage, so the description adds the meaning. It explains each action's required arguments (e.g., name required for table/measure) and lists possible action values. This compensates well for the schema gap.

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

    Purpose5/5

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

    The description clearly states the tool reads local PBIP semantic model structure from TMDL files without needing Desktop connection. It lists specific actions (overview, table, measure, etc.) and is distinct from sibling tools like pbi_execute_query which query remote datasets.

    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 mentions requirements (pbip_root config) and that no Desktop connection is needed, implying use for offline analysis. However, it does not explicitly compare to alternatives or state when not to use this tool.

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

  • Behavior3/5

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

    The description discloses return format and filter behavior, but lacks annotations, so it must cover more. Authentication requirements and side effects (none) are implied but not explicit.

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

    Conciseness5/5

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

    The description is concise with clean 'Args' and 'Returns' sections, front-loaded purpose, and no superfluous text.

    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 one simple parameter and output schema, the description covers the core functionality and return format well. Minor gap: no mention of dependency on pbi_auth (though implied).

    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 single parameter 'filter' is fully explained in the description as 'case-insensitive substring match,' adding meaning beyond the minimal schema (no description, default only).

    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 'List Power BI workspaces accessible to the authenticated user,' specifying a verb and resource, and distinguishes it from sibling tools like pbi_list_datasets.

    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?

    Usage is implied as the default for listing workspaces, but no explicit when-to-use or alternatives are mentioned. Exclusions or prerequisites (e.g., authentication) are absent.

    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 effectively discloses the authentication behavior: cached token check, refresh attempt, and fallback to device code flow. It also notes potential user action needed.

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

    Conciseness5/5

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

    Three sentences with no waste: purpose, flow, and return value. Each sentence adds 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 no parameters and an output schema, the description covers the return format and essential behavior, though additional details on error states or re-authentication could improve completeness.

    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?

    No parameters exist; the description adds meaning beyond the empty schema by explaining the tool's behavior and return value, which is valuable for an agent.

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

    Purpose5/5

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

    The description clearly states it authenticates to Power BI service and outlines the specific authentication flow, distinguishing it from sibling tools which are data-oriented.

    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 it should be used before other Power BI operations, but lacks explicit when-to-use or when-not-to-use guidance. However, since it is the only auth tool among siblings, context is clear.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It details the fuzzy matching algorithm for dataset names and the optional table reading behavior. It specifies the return JSON structure. It could further clarify that the tool is read-only, but the given detail is substantial.

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

    Conciseness5/5

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

    The description is concise, with clear sections (Args, Returns) and no extraneous information. The purpose is front-loaded, and every sentence adds value. It is structured for quick comprehension.

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

    Completeness5/5

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

    Despite having an output schema, the description still summarizes the return values, enhancing completeness. All necessary context is provided: prerequisites, parameter details, behavior, and output structure. The tool's complexity is low, and the description covers it fully.

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

    Parameters5/5

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

    The input schema provides no parameter descriptions (0% coverage), so the description fully compensates. It explains dataset_name's fuzzy matching rule and table_name's optional nature and effect, adding significant meaning beyond the raw schema.

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

    Purpose5/5

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

    The description clearly states the tool's verb 'Locate PBIP source code' and specifies the optional ability to read a specific table's TMDL and M source. It distinguishes from sibling tools like pbi_list_datasets, which list remote datasets, by focusing on local PBIP source code.

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

    Usage Guidelines3/5

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

    The description lists the prerequisite 'pbip_root' configuration and describes parameter usage, but does not explicitly state when to use this tool versus alternatives or when not to use it. This leaves room for ambiguity about selection criteria.

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

  • Behavior4/5

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

    No annotations provided, so the description carries the full burden. It discloses that cancel is destructive (cancels in-progress Enhanced refresh), and describes behavior differences between Enhanced and standard refreshes. Minor lack of detail on side effects of status/details.

    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?

    Well-structured with sections (Actions, Args, Returns), bullet points, and clear formatting. Every sentence adds value; no fluff. Efficiently conveys all necessary 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 complexity (multiple actions, conditional params, output variations), the description is complete. It explains return types for each action and conditional parameter requirements. Output schema is present but description adds value beyond it.

    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?

    Input schema has 0% description coverage, but the description fully explains each parameter: workspace_id, dataset_id, action (with values), refresh_id (conditional), top (default 5), format (json/table). Adds meaning beyond schema types/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 it manages refresh lifecycle with three distinct actions (status, details, cancel). It differentiates from siblings like pbi_refresh_dataset (trigger refresh) and pbi_scheduled_refresh_report (scheduling).

    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 lists prerequisites (refresh_id for details/cancel) but does not explicitly state when to use this tool vs alternatives (e.g., triggering vs managing refreshes). Some guidance is implicit through action descriptions.

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

  • Behavior4/5

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

    With no annotations, the description thoroughly discloses refresh types, commit modes, retries, timeout, table filtering, and polling behavior. However, it does not mention prerequisites (e.g., workspace/dataset existence) or rate limits.

    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?

    Well-structured with Args and Returns sections, front-loaded purpose. Some detail (e.g., API type explanation) is useful but could be slightly more concise without losing 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?

    Covers all parameters, return format, and polling behavior comprehensively. Given the tool's complexity and absence of output schema in input, the description provides complete guidance for correct invocation.

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

    Parameters5/5

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

    Despite 0% schema description coverage, the description provides detailed explanations for all 10 parameters, including enums for refresh_type and commit_mode, format for timeout, and usage notes for tables. This fully compensates for missing schema 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?

    Clearly states it triggers an Enhanced refresh for a Power BI dataset using the Enhanced Refresh API. Distinguishes itself from siblings like pbi_refresh_manage by specifying the API type and structured return details.

    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 explains the enhanced refresh capability and when polling is beneficial, but does not explicitly compare to alternatives or state when not to use this tool versus other refresh methods.

    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?

    Without annotations, the description fully discloses behavioral traits: it uses the POST executeQueries API, lists enforced limitations (max rows, cell values, payload size, rate limit), and describes the return format. No contradictions with missing annotations.

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

    Conciseness4/5

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

    The description is well-structured with sections and bullet points, front-loading the primary purpose. It is longer than necessary but every sentence provides value. Minor redundancy (e.g., mentioning API in two places) could be trimmed.

    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 has 5 parameters, zero annotations, and an output schema, the description covers all necessary context: operation type, limitations, return format, and parameter semantics. It is sufficient for an agent to decide when and how to invoke the tool correctly.

    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 adds substantial meaning: it defines workspace_id, dataset_id, query with an example, explains impersonated_user and include_nulls defaults, and mentions that null serialization is controllable. This compensates completely for the lack of schema 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 tool executes a DAX query against a Power BI dataset and returns result rows. It distinguishes from siblings by specifying DAX-only support, while siblings like pbi_list_datasets and pbi_refresh_dataset serve different purposes.

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

    Usage Guidelines4/5

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

    It provides specific usage constraints: only DAX queries, one query per call, one table per query, and rate limits. It also explains when impersonated_user is applicable. However, it could explicitly state when not to use this tool (e.g., for MDX or DMV queries) and mention alternatives.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It details scanning all refreshable datasets, checking the past 7 days, fallback behavior (shows most recent scheduled refresh if no refresh on target date), and the current_status snapshot. It also notes the error info source limitation. This is comprehensive and transparent.

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

    Conciseness5/5

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

    The description is well-structured with paragraphs covering overview, fallback behavior, a note on API, and parameter details. It is front-loaded with the main purpose and each sentence adds value. No unnecessary repetition.

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

    Completeness5/5

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

    Given the tool's complexity (scanning multiple datasets, handling fallbacks, providing status snapshots) and the presence of an output schema, the description covers all necessary aspects: what the tool does, its effect (read-only), the return content (records and summary), and a notable limitation. It is complete for an agent to understand and invoke correctly.

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

    Parameters4/5

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

    The input schema has 0% description coverage, so the description must compensate. It does so by explaining the format parameter ('json' or 'table'), the date parameter (optional, 'YYYY-MM-DD' in display timezone, defaults to today), and the workspace_id is implicitly understood. It could provide more explicit guidance on workspace_id format, but overall adds meaningful context beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: 'List scheduled refresh status for every dataset that had scheduled refreshes recently.' It specifies the verb (list), resource (scheduled refresh status), and scope (datasets in a workspace). This distinguishes it from siblings like pbi_refresh_dataset (triggers a refresh) and pbi_refresh_manage (manages schedules).

    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 use cases (viewing scheduled refresh status, checking failures resolved by on-demand refreshes) and mentions a limitation (no Enhanced Refresh Details API for scheduled refreshes). However, it does not explicitly state when not to use this tool or provide direct alternatives, leaving some guidance implicit.

    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

power-bi-mcp MCP server

Copy to your README.md:

Score Badge

power-bi-mcp 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/FreelexHo/power-bi-mcp'

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