Skip to main content
Glama
HorizunGroup

Horizun PBI MCP

Official
by HorizunGroup

Horizun PBI MCP

CI PyPI Python License

Build and fix Power BI reports by describing what you want. Ask in plain language; the server runs the DAX, edits the model, writes the report pages — and checks its own work afterwards.

How it works

v2.1.0 · 139 tools · Windows · Python 3.10+ · Claude Code, Codex, any MCP client

New to the project? Start with what this Power BI MCP is, when to use it, and what it deliberately does not do.

Install

No repository clone, manual DLL download or .mcp.json editing is required. Pick the line that matches you.

Claude Code

claude plugin marketplace add HorizunGroup/horizun-pbi-mcp
claude plugin install horizun-pbi-mcp@horizun

Codex

codex plugin marketplace add HorizunGroup/horizun-pbi-mcp

Then open /plugins, pick the Horizun marketplace and install horizun-pbi-mcp.

Or just ask the agent — easiest of all

Paste this into Claude Code or Codex and let it install itself:

Install Horizun PBI MCP from HorizunGroup/horizun-pbi-mcp. Complete the runtime setup, watch pbi_install_status until it reports ready, restart the session, and confirm the 139 pbi_* tools are available.

A brand-new Windows PC

One paste in PowerShell installs the prerequisites first — version-pinned and SHA-256 verified, no administrator rights. See docs/INSTALL.md.

Finishing up

The first setup downloads the runtime and takes a few minutes. Run pbi_install_status until it says ready, then restart your client once so the tools load. If anything looks stuck, docs/INSTALL.md covers repair and offline installs.

Related MCP server: Semantic Model MCP Server

Your first minute

  1. Open Power BI Desktop with any report.

  2. Ask: "List the Power BI models that are open and connect to the first one."

  3. Ask: "Run a read-only DAX query that returns revenue by month for this year."

If step 2 answers, everything works.

Things worth asking for

Audit this PBIP project and explain the highest-risk issues before changing anything.
This measure returns blank for December. Find out why.
Create a report page from this specification, validate it, and show me the layout.
Document every measure in the model and export it to Excel.

What it provides

Area

Capabilities

Live model

Discover Desktop sessions, run DAX, inspect metadata, refresh, and manage measures through TOM

Semantic model

Read and edit TMDL tables, columns, measures, relationships, roles and calculation groups

Report authoring

Create pages and visuals, clone templates, arrange layouts, apply themes, bookmarks and interactions

Conversion

Convert .pbix to .pbip, migrate supported structures and validate the result

Quality

Audit models and reports, document schemas, detect broken references and normalize report structures

Delivery

Export verified PDF, Word, Excel and PowerPoint artifacts; ingest SharePoint data read-only

See the tool catalog for all 139 tools and their risk classifications.

Why it is safe to point at real work

  • Local-first: Power BI Desktop communication stays on localhost.

  • No telemetry, and the MCP server needs no account.

  • Project writes stay inside the active project directory.

  • Every project write makes a backup and is re-read to confirm it landed.

  • Destructive tools require confirm=true.

  • JSON writes are atomic; invalid JSON is never written over good JSON.

  • Downloaded runtime components are version-pinned and SHA-256 verified.

  • Logs go to stderr or files, so stdout stays a clean JSON-RPC channel.

Full guarantees and failure behavior: security model and recovery guide. Report vulnerabilities privately as described in SECURITY.md.

Requirements

  • Windows 10 or 11.

  • Python 3.10 or newer.

  • Power BI Desktop — only for the live layer (DAX, refresh, capture, render checks).

  • A .pbip project with PBIR enabled, for report-file authoring.

  • Node.js 20+ only for the optional Microsoft PBIR validator.

Claude Code, Codex and Power BI Desktop are external programs; this project does not install them. Without Desktop the .pbip tools still work — the live tools do not.

Known limits

  • Power BI does not expose pages or visuals through its live local endpoint, so those are edited in PBIR files while Desktop is safely closed.

  • mode="both" is disabled for dual live/disk writes: Desktop being open and a PBIP project being safe to edit are mutually exclusive states.

  • The server does not publish to or refresh the Power BI Service.

  • Three PBIR schemas referenced by Power BI are not published by Microsoft; affected writes fail closed instead of guessing.

Documentation

Document

Purpose

Installation

Setup, repair, offline installation and MCP client registration

Tutorial

First connection through report authoring

Power BI MCP overview

Use cases, boundaries, safety and first workflow

Tool catalog

All tools, grouped by capability and risk

Architecture

Components, boundaries and invariants

Security

Threat model and operational guarantees

Validation

TMDL/PBIR validation layers and known limits

Migration guide

Breaking changes from 1.x to 2.0

Contributing

Development workflow and pull-request requirements

Development

git clone https://github.com/HorizunGroup/horizun-pbi-mcp.git
cd horizun-pbi-mcp
python -m pip install -e .
python scripts/fetch_libs.py
python scripts/fetch_pbir_schemas.py
python scripts/doctor.py

Before opening a pull request:

python -m pytest -q
python scripts/doctor.py
python -m tests.contract_utils

The MCP contract is frozen and checked against tests/golden/tools_v1.json. Real .pbix, .pbip, credentials, DLLs, outputs and backups are never committed. See AGENTS.md for the repository invariants.

License

Apache License 2.0. See LICENSE and NOTICE.

MCP Registry

This package is the one published under the server name below. The registry reads this line from the README of the PyPI package to confirm that whoever publishes the metadata also owns the package, so it has to live here rather than in .mcp/server.json alone.

mcp-name: io.github.HorizunGroup/horizun-pbi-mcp

Available Tools

139 tools
pbi_add_custom_visualA

Registra un custom visual de AppSource en el informe (publicCustomVisuals).

Sin argumentos registra "HTML Content" (renderiza HTML/SVG desde una medida DAX). Power BI Desktop lo descarga de AppSource al abrir el informe.

ParametersJSON Schema
NameRequiredDescriptionDefault
visual_idNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (which are all false), the description discloses that the report's publicCustomVisuals are modified and that Power BI Desktop downloads the visual from AppSource when opening the report. This adds useful behavioral context, though it does not mention permissions or network 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 two sentences: the first states the core action and target, the second covers the default behavior and download-side effect. Every sentence earns its place with no filler.

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

Completeness3/5

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

The tool has no required parameters and an output schema, so basic invocation is covered, but the missing parameter semantics and lack of alternative-tool guidance leave gaps. It is adequate for the simple no-argument use case but not fully complete for selecting other AppSource visuals.

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 schema description coverage at 0%, the description carries the full burden but only explains the no-argument case. It does not explain what visual_id values are expected or the purpose of request_id, leaving the agent guessing about both parameters.

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

Purpose5/5

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

The description opens with 'Registra un custom visual de AppSource en el informe (publicCustomVisuals)', a specific verb plus the resource (AppSource custom visual) and target (report). It also clarifies the no-argument default to 'HTML Content', distinguishing it from generic visual creation tools like pbi_create_visual or pbi_add_image_resource.

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

Usage Guidelines3/5

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

The description implies usage by stating that without arguments it registers 'HTML Content', which tells the agent when no visual_id is needed. However, it does not explicitly state when to use this tool over siblings such as pbi_create_visual or pbi_create_html_visual, nor does it mention any exclusions.

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

pbi_add_image_resourceA

Incrusta una imagen en el informe y la deja lista para usar.

La copia a StaticResources y la declara en report.json: sin las dos cosas Power BI no la encuentra y el visual sale vacio sin dar ningun error. Devuelve item_name, que es lo que se le pasa al visual de tipo 'image' en options.resource.

path: archivo local (.png .jpg .gif .bmp .svg).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathYes
overwriteNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate a non-read-only action, and the description adds valuable behavioral details: the file is copied to StaticResources, report.json is modified, and a missing declaration causes a blank visual with no error. It also explains the return value. This goes beyond the structured metadata and enhances transparency.

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

Conciseness5/5

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

The description is concise and well-structured: it front-loads the purpose, explains the mechanism and failure mode, then describes the return value and the only parameter it documents. Every sentence contributes essential information with no redundancy.

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

Completeness3/5

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

The description covers the core purpose, the critical mechanism, the failure mode, and the return value, making it usable for the primary workflow. However, given that schema coverage is 0%, the lack of explanation for `name`, `overwrite`, and `request_id` is a notable gap. The tool is simple enough to be used despite this, but completeness is only average.

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

Parameters2/5

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

The input schema has no parameter descriptions (0% coverage), so the description must compensate. It only explicitly documents `path` (with allowed extensions .png .jpg .gif .bmp .svg). It indirectly mentions the return `item_name`, which may relate to `name`, but `name`, `overwrite`, and `request_id` remain unexplained, leaving ambiguity for the 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 the tool's purpose: 'Incrusta una imagen en el informe' (embeds an image in the report). It specifies the exact mechanism (copy to StaticResources, declare in report.json) and the return value (item_name), making it distinct from sibling tools like pbi_add_custom_visual. This is a specific verb+resource+outcome, not a 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 clear context for when to use the tool: when you need to embed an image resource into a Power BI report. It also warns about the silent failure if both steps are not performed, which is helpful. However, it does not explicitly mention alternatives or when-not-to-use, but the purpose is narrow enough that this is not a major gap.

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

pbi_add_table_from_fileA

Carga un archivo al modelo como lo haria una persona: abrir, transformar, cargar.

El mismo recorrido de Power Query —Obtener datos, promover encabezados, cambiar tipos, Cargar— pero escrito directo en el proyecto. Los pasos de la consulta se llaman como los pone Power BI ('Origen', 'Encabezados promovidos', 'Tipo cambiado'), asi que se puede abrir y editar en el editor sin que desentone.

Admite .csv, .txt, .tsv, .xlsx, .xlsm, .json, .html/.htm y '.xls'. Sin dependencias nuevas: el .xlsx se lee como lo que es, un zip con XML, y el HTML con html.parser de la biblioteca estandar.

Un '.xls' NO se toma por la extension: se mira la firma real del archivo. En la practica, casi ningun '.xls' que exportan los ERPs es el binario OLE2 que la extension promete -- es una tabla HTML con esa extension porque Excel la abre igual. Si de verdad es OLE2 (Excel 97-2003), se rechaza con un mensaje claro en vez de leerlo mal; si es un .xlsx renombrado, se lee como .xlsx.

Para HTML: si el archivo trae varias <table>, se elige la mas grande y se avisa (usa table_id para elegir una en concreto, el id HTML de la tabla). Los encabezados solo se promueven si la tabla usa <th>; un reporte sin esa marca (el caso normal en un reporte de ERP, donde la fila 1 es el titulo del reporte, no un encabezado) carga con columnas 'Column1', 'Column2'...

La cultura se deduce del archivo, mirando como escribe los decimales, y se emite SIEMPRE explicita en la consulta. Asumir la del modelo es lo que convierte 10527.52 en diez millones sin que nada falle: un informe que abre, pinta y miente. culture permite forzarla.

Lo escrito se valida antes de darlo por bueno: si el TMDL generado no pasara pbi_validate_tmdl, se aborta en vez de dejar un proyecto que no abre.

Filas de basura antes del encabezado: es el patron de export mas comun de un ERP -fila 1 con el titulo del reporte y el resto de la fila vacia, encabezado real en la fila 2-. Por defecto se AUTODETECTA la primera fila que pueda ser encabezado (sin huecos y sin nombres repetidos) y se dice cual se eligio en warnings. skip_rows fuerza cuantas saltar cuando la deteccion no acierta; skip_rows=0 obliga a usar la fila 1 tal cual. Aplica a csv y xlsx.

dry_run=true devuelve el TMDL y la M sin escribir nada. sheet: hoja del libro; si se omite, la primera. Solo aplica a xlsx.

Escribe en TMDL: requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
sheetNo
cultureNo
dry_runNo
table_idNo
overwriteNo
skip_rowsNo
request_idNo
table_nameNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses rich behavioral details beyond annotations: Power Query step naming, real-file-signature detection for .xls, HTML table selection, culture inference, header-row autodetection, TMDL validation before commit, and the closed-project requirement. This goes far beyond the sparse 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 long but appropriately structured, starting with the main purpose and then covering edge cases using clear labels and bold emphasis. Each paragraph adds meaningful operational detail, though it could be tightened by moving less common edge cases into optional notes.

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

Completeness4/5

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

The description is highly complete for a tool with complex file-handling behavior, covering formats, errors, validation, and dry-run output. It does not explain the overwrite parameter or table naming/description semantics, and it relies on the output schema for return-value details, which is acceptable but leaves minor gaps.

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 carries the burden for parameter meaning. It effectively explains path, sheet, culture, dry_run, table_id, skip_rows, and format-related parameters. However, overwrite, table_name, description, and request_id are not described, leaving 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 loads a file into the model with a specific verb and resource: 'Carga un archivo al modelo'. It distinguishes itself from sibling pbi_add_table_from_source by emphasizing file input support (.csv, .xlsx, .json, etc.) and the Power Query-like pipeline.

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

Usage Guidelines4/5

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

It gives clear usage context: supported file types, required closed project, dry-run mode, and special handling for .xls/HTML files. It does not explicitly name alternatives like pbi_add_table_from_source, but the scope is well-defined enough to avoid confusion.

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

pbi_add_table_from_sourceA

Crea una tabla apuntando a una BASE DE DATOS o API externa.

source: sqlserver | postgresql | odata | web_json.

  • sqlserver/postgresql: server + database + (schema/source_table o, solo en sqlserver, native_query con plegado activado).

  • odata: url del ENTITY SET (…/odata/Presupuestos), no la raiz.

  • web_json: url que devuelve un array de objetos; json_path desciende hasta el (["data","rows"]). Tipado con cultura en-US fija: JSON escribe numeros sin cultura, y la del sistema es el bug del 10527.52 que se vuelve diez millones.

columns ([{name, type}]) es OBLIGATORIO: sin credenciales no se puede leer el esquema de la fuente, y las columnas no se inventan.

La verdad de las credenciales, por delante: la consulta queda escrita y validada, pero el PRIMER refresh lo completa una persona en Desktop —pedira credenciales y nivel de privacidad, que viven en Desktop, no en el .pbip—. Hasta entonces la tabla existe sin datos y este servidor no puede verificar la conexion. Prometer otra cosa seria mentir.

Escribe TMDL: requiere el proyecto CERRADO en Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
schemaNodbo
serverNo
sourceYes
columnsYes
dry_runNo
databaseNo
json_pathNo
overwriteNo
request_idNo
table_nameYes
descriptionNo
native_queryNo
source_tableNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

This description goes far beyond the annotations (all false) by disclosing critical behavioral details: the credential workflow (first refresh must be completed by a human in Desktop), the fact that the table exists without data until then, that the server cannot verify the connection, and that TMDL requires a closed project. The transparency is exceptional and directly manages user expectations.

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: a one-line purpose, bullet-like breakdown by source type, a bolded key requirement, and a clear warning about credentials. It is compact for the complexity involved, uses formatting (backticks, bold) to aid scanning, and every section earns its place without fluff.

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 14 parameters and no schema descriptions, this description is remarkably complete. It covers the main source types, parameter relationships, required fields, the credential caveat, and the TMDL dependency. Since an output schema exists, the lack of return-value explanation is acceptable. Only minor parameters like dry_run and overwrite are left undocumented, but the core behavior is fully covered.

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?

Despite the input schema having 0% description coverage, this description explains the meaning and constraints of many parameters: source values, server/database/schema/source_table/native_query for sql/postgres, odata URL pointing to entity set, web_json URL plus json_path, and the required columns array with its rationale. It does not cover dry_run, overwrite, request_id, or description, but the most operationally significant parameters are well documented.

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

Purpose5/5

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

The description opens with a clear, specific statement: 'Crea una tabla apuntando a una BASE DE DATOS o API externa.' It names the action (create table) and the resource (external database or API), and then details supported source types, distinguishing it from sibling tools like pbi_add_table_from_file.

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 the tool: when adding a table from a database or API. It also gives important usage prerequisites, such as 'columns is mandatory' and the TMDL requirement that the project be closed in Desktop. It doesn't explicitly name alternative tools or when not to use it, but the source-specific breakdown effectively communicates the intended use cases.

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

pbi_align_visualsB

Alinea varios visuales por un borde.

edge: left | right | top | bottom | center_h | center_v. Determinista: la misma entrada produce siempre la misma salida.

ParametersJSON Schema
NameRequiredDescriptionDefault
edgeNoleft
pageYes
request_idNo
visual_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The description adds the deterministic property (same input yields same output), which is not in annotations. However, it does not disclose side effects, whether the operation modifies the report, or any permission requirements. Annotations are sparse but not contradicted.

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 very short and front-loaded with the main purpose in the first line. The additional notes on edge values and determinism are useful, but the brevity omits necessary parameter context.

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 4 params, no enums, no effective annotations, and 0% schema coverage, this description is under-specified. It does not explain the relationship with sibling layout tools, what happens to visual positions, or any operational context like return values or error behavior.

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

Parameters2/5

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

Schema coverage is 0%, so the description must explain parameters, but it only documents `edge` with valid values. `page`, `visual_ids`, and `request_id` are left unexplained, relying on inference from the tool name.

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 aligns multiple visuals by an edge, listing specific edge options (left, right, top, bottom, center_h, center_v). This distinguishes it from sibling tools like distribute or arrange, which have different alignment logic.

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 for edge-based alignment but provides no explicit guidance on when to choose this over pbi_arrange_visuals, pbi_distribute_visuals, or pbi_normalize_page_layout. No alternative tools are mentioned or exclusions provided.

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

pbi_analyze_model_qualityC
Read-only

Detecta problemas tipicos del modelo (calidad).

Revisa medidas sin carpeta, DAX muy largo, relaciones bidireccionales/ inactivas, columnas calculadas, IDs visibles, ausencia de calendario, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds a list of concrete quality checks, which provides useful context. However, it does not disclose additional behavioral traits such as how results are returned, model loading requirements, or performance 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 concise and front-loaded: the first sentence summarizes the core purpose, and the second sentence is a compact list of checks. Every sentence earns its place with no redundant phrasing.

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

Completeness3/5

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

The output schema exists, so return value details are not necessary. The description provides a solid list of checks, but it omits parameter semantics and usage context, and it does not clarify how this tool relates to similar audit/diagnostic siblings. Given the tool's complexity, this is a moderate gap.

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 single parameter 'source' has a default 'live' but no schema description, and the tool description does not mention or explain it. With 0% schema description coverage, the description fails to compensate or add any meaning to the parameter, leaving agents guessing about valid values or behavior.

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 detects typical model quality problems ('Detecta problemas tipicos del modelo (calidad)') and lists specific checks (measures without folder, long DAX, bidirectional/inactive relationships, calculated columns, visible IDs, missing calendar). This is a specific verb+resource and gives concrete scope, though it does not explicitly differentiate from overlapping siblings like pbi_audit_model.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. With many sibling tools for auditing (pbi_audit_model, pbi_health_check, pbi_diagnose_data), the description only states what it checks, not when to choose it over others or what prerequisites exist.

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

pbi_apply_audit_fixesA
Destructive

Aplica las acciones devueltas por pbi_plan_audit_fixes.

Requiere confirm=true. Cada accion se aplica por su propia via segura (transaccion, verificacion y rollback); si una falla, se reporta sin detener las demas y sin ocultarlo.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionsYes
confirmNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Beyond annotations (destructiveHint=true), the description provides meaningful behavioral context: each action uses transaction/verification/rollback, failures are reported without stopping others or hiding them, and confirm=true is required—all useful for safe invocation.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the main action and a critical prerequisite; no filler.

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?

With output schema present and annotations covering destructive/read-only, the description adds essential failure-handling behavior and a guard condition. Missing request_id semantics and action structure detail, but overall adequate for a complex destructive operation.

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 coverage is 0%; the description gives semantic weight to the 'actions' parameter by sourcing it from pbi_plan_audit_fixes and to 'confirm' by making it a mandatory gate, but request_id is never explained and the open-ended action objects are not detailed.

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

Purpose5/5

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

The description states 'Aplica las acciones devueltas por pbi_plan_audit_fixes' (Applies the actions returned by the plan tool), clearly identifying a verb (applies), a resource (actions), and the source, distinguishing it from sibling pbi_plan_audit_fixes and other tools.

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

Usage Guidelines4/5

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

It specifies a prerequisite 'Requiere confirm=true' and implicitly situates the tool after pbi_plan_audit_fixes, but doesn't explicitly name alternatives or when-not-to-use.

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

pbi_apply_design_systemA

Aplica el sistema al informe y devuelve su rejilla.

Escribe el tema y lo declara en report.json. Devuelve el lienzo, la rejilla (columnas, margen y medianil) y la escala tipografica, para que lo que se coloque a mano despues use las mismas guias que pbi_compose_page.

Escribe en el informe (PBIR): conviene tener el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
systemYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint=false), and the description reinforces this by stating 'Escribe el tema' (writes the theme) and 'Escribe en el informe (PBIR)' (writes to the PBIR report). It goes beyond annotations by specifying the exact side effects: modifying report.json, returning canvas/grid/typographic scale, and the recommendation to close the project. This gives the agent useful behavioral context about what changes and what to expect.

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

Conciseness5/5

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

The description is well-structured in three short paragraphs: the first gives the main action and output, the second details the write and return values, the third offers a practical warning. Every sentence adds value, there is no redundant or filler content, and the key information is front-loaded. It is concise without sacrificing necessary detail.

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 presence of an output schema means the description doesn't need to detail return types, but it still mentions the return values (canvas, grid, typographic scale) as added context. It covers the side effect (writing report.json) and a critical prerequisite (closing the project in Power BI Desktop). It does not mention error scenarios, prerequisites beyond the closed project, or how to obtain a valid system value, but given the tool complexity and schema richness, the description is reasonably complete.

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

Parameters3/5

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

The input schema has only two parameters (system, request_id) with zero descriptions, so the description must compensate. The name and description together make it clear that 'system' refers to the design system to apply, but the description does not define the expected format, where to obtain valid values, or any default behavior. It indirectly points to the existence of design systems (sibling pbi_list_design_systems), but this is not explicit. The semantics are inferable but not fully specified, meriting a mid-range 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 action: 'Aplica el sistema al informe' (applies the system to the report) and immediately mentions the output: 'devuelve su rejilla' (returns its grid). It also mentions writing the theme and declaring it in report.json, and it distinguishes itself from the similar sibling pbi_compose_page by noting that manually placed items should use the same guides. This is a specific verb+resource+output, fully differentiated from siblings.

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

Usage Guidelines4/5

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

The description gives practical context: it should be used before manually placing items, as it ensures consistency with pbi_compose_page. It also provides a concrete operational guideline: 'conviene tener el proyecto CERRADO en Power BI Desktop' (it is advisable to have the project closed in Power BI Desktop). While it doesn't explicitly say 'do not use when...', the reference to pbi_compose_page and the manual placement workflow imply the intended moment of use, making the guidance clear but not exhaustive.

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

pbi_apply_page_specA

Materializa el spec como una pagina PBIR, en UNA transaccion.

Cuatro desenlaces explicitos: create (no existe), update (existe y el spec cambia algo), no_change (ya coincide) y conflict (el nombre no identifica una sola pagina).

page: id o nombre visible de la pagina a actualizar. Si se omite, se usa el nombre del spec. Al actualizar se CONSERVAN el id de la pagina y el de cada visual que siga representando lo mismo.

sync_mode: merge (por defecto) anade y actualiza pero no borra lo que el spec no menciona; replace ademas elimina los visuales ausentes. El defecto es conservador para que un spec parcial no pueda vaciar una pagina por omision.

interactions: que le hace un visual a otro al seleccionar en el. Cada visual del spec se puede senalar por su POSICION en visuals (0, 1, 2...), por el id que se le ponga en el spec, o por su titulo; no hace falta conocer los ids finales, que se generan aqui. Tipos: Default, DataFilter, HighlightFilter, NoFilter (tambien valen filter, highlight y none).

dry_run=true devuelve un plan con plan_token y no escribe nada; aplicalo despues con pbi_apply_plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
seedNo
specYes
dry_runNo
sync_modeNomerge
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior1/5

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

The description contradicts the annotations: destructiveHint=false, yet sync_mode=replace 'ademas elimina los visuales ausentes' (deletes absent visuals). This is a direct conflict, forcing a score of 1 per the contradiction rule, despite otherwise rich disclosure of outcomes, id preservation, and dry_run semantics.

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: core purpose first, then outcomes, then per-parameter explanations. Each sentence adds necessary information; the formatting with backticks and line breaks improves readability without bloat.

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

Completeness4/5

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

For a complex tool, the description covers outcomes, parameter behaviors, interaction referencing/types, and dry_run. It omits seed and request_id, and the spec object's schema is not detailed, but the presence of an output schema reduces the burden for return-value explanations. Overall strong, with minor gaps.

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 schema description coverage at 0%, the description compensates by explaining page (id/name, defaults), sync_mode (merge vs replace, conservative default), interactions (referencing by position/id/title, types), and dry_run (plan_token, no write). However, seed and request_id are not mentioned, and spec's full structure is only partially addressed.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Materializa el spec como una pagina PBIR, en UNA transaccion.' It clearly distinguishes the tool's role as the writer (apply) versus preview/validate siblings, and enumerates four explicit outcomes (create, update, no_change, conflict).

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

Usage Guidelines4/5

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

The description gives clear context: it applies a page spec transactionally, with dry_run as a safe planning mode, and explicitly mentions pbi_apply_plan as a follow-up. It does not explicitly exclude alternatives or state when not to use, but the usage context is well-defined.

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

pbi_apply_planA
Destructive

Aplica un plan calculado con pbi_plan_change o con un dry_run.

Verifica que el proyecto siga en el estado sobre el que se planifico; si cambio, rechaza el plan en vez de aplicar algo distinto de lo aprobado.

expected_operation es opcional: si lo indicas, el plan solo se aplica si fue generado para esa operacion (plan_operation_mismatch si no).

Exige confirm=true. Hasta 2.0.0 el default era True, o sea que omitir el parametro APLICABA: un gate que viene abierto no es un gate, y ademas rompia la simetria con las otras ocho tools con confirm, que es justo la inconsistencia que hace que un agente generalice mal.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
plan_tokenYes
request_idNo
expected_operationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description adds critical behavioral details: it verifies project state before applying, rejects changes if state differs, requires confirm=true, and explains the historical default change. This adds significant value beyond 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 moderately long but well-structured: it opens with the main purpose, then safety checks, then param clarification, then confirmation requirement with rationale. Every sentence adds value 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 output schema exists and annotations cover destructive nature, the description sufficiently covers the safety mechanism, the optional parameter, and the confirmation gate. It could elaborate on error scenarios beyond plan_operation_mismatch, but overall it's complete for its complexity.

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 explains expected_operation and confirm explicitly, but plan_token and request_id are not described. plan_token is inferable as the plan identifier, but request_id remains undocumented. Partial 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 the tool applies a plan calculated with pbi_plan_change or a dry_run. It distinguishes itself from sibling tools by specifying the source of the plan and the additional verification step, making its purpose distinct.

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

Usage Guidelines4/5

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

It implies usage after plan generation and emphasizes the need for confirm=true. It does not explicitly name alternatives, but the context (plan_change vs apply) is clear. The expected_operation parameter is explained as a safety mechanism.

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

pbi_apply_themeA

Aplica un tema de colores al informe .pbip activo.

Escribe el JSON del tema en StaticResources/RegisteredResources y lo declara en report.json (themeCollection + resourcePackages). Sin las tres cosas Power BI Desktop lo ignora en silencio.

preset: ver pbi_list_themes. data_colors: sustituye la paleta de series por la tuya (#RRGGBB); ojo, entonces el orden deja de estar verificado contra daltonismo. name: nombre visible del tema.

theme_json: un tema COMPLETO tuyo (el objeto JSON), que se escribe tal cual — para tipografia corporativa o formatos que los presets no cubren, sin tener que sobrescribir el archivo a mano despues. Cuando lo pasas, preset no se usa; data_colors y fonts se aplican encima.

fonts: {'title'|'body'|'callout': 'Familia'} fija las fuentes via textClasses, sobre el preset o sobre tu theme_json.

patch: cambios PARCIALES sobre el tema que el informe YA tiene, sin reenviar el tema completo (p.ej. {"visualStyles": {...}} para retocar un estilo). Los dicts se fusionan en profundidad; las listas se reemplazan enteras. Con patch, el resto de parametros no se usa y hace falta que el informe ya tenga un tema propio.

Si el informe ya tenia un tema con contenido DISTINTO (p.ej. editado a mano), se reemplaza avisandolo en warnings; la version anterior queda recuperable en el backup de la transaccion.

Requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
fontsNo
patchNo
presetNocontrol_room
request_idNo
theme_jsonNo
data_colorsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With all annotations false, the description carries the full burden and excels. It reveals file writes to StaticResources/RegisteredResources and report.json, the silent-ignore failure mode, deep-merge semantics for patch, loss of color-blind ordering when using data_colors, requirement for the project to be closed, and backup/replacement behavior. This is far beyond typical descriptions.

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

Conciseness5/5

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

The description is front-loaded with a one-sentence purpose, then organized by parameter with clear, dense explanations. Every sentence adds value, covering file paths, failure modes, merge semantics, and prerequisites, without wastefulness or repetition.

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

Completeness5/5

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

Given seven parameters, no required fields, and complex file-modifying behavior, the description covers all critical context: file operations, prerequisites, parameter interactions, replacement warnings, and backup recovery. An output schema exists, so return values are not needed. The only minor gap is the unexplained request_id, but it does not hinder 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 coverage is 0%, so the description must compensate. It thoroughly explains preset, data_colors, name, theme_json, fonts, and patch, including precedence and interaction (e.g., theme_json overrides preset; fonts and data_colors apply on top). The only omission is request_id, but that is a minor, likely common parameter, and the overall compensation is outstanding.

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 first line explicitly states the tool's core function: 'Aplica un tema de colores al informe .pbip activo' (Applies a color theme to the active .pbip report). It clearly names the resource type (.pbip report) and the action (apply theme), distinguishing it from sibling tools like pbi_list_themes and pbi_apply_design_system.

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

Usage Guidelines4/5

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

The description gives extensive guidance on parameter selection: use preset for presets, theme_json for full custom themes, fonts for typography, and patch for partial changes. However, it does not explicitly contrast with alternative tools such as pbi_apply_design_system, so it misses clear 'when to use this vs. that' tool-level guidance.

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

pbi_arrange_visualsA

Reorganiza los visuales de una pagina.

layout: grid | dashboard | executive_summary | custom. visual_ids: subconjunto opcional (por defecto todos). custom: mapa visual_id -> {x,y,width,height} para layout 'custom'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
canvasNo
customNo
layoutNogrid
spacingNo
request_idNo
visual_idsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations provide no safety hints (all false), so the description carries the burden. It discloses a default behavior (visual_ids defaults to all) and the structure of custom positioning, but it does not mention reversibility, side effects, or required permissions. This is partial transparency 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 highly concise: two sentences plus a compact parameter reference. It front-loads the main action and uses a clear, structured format for parameter details. No unnecessary words or redundancy.

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

Completeness3/5

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

The description conveys the core action and main parameters, but it does not explain the meaning of 'dashboard' or 'executive_summary' layouts, the 'canvas' and 'spacing' parameters, or potential side effects. Since the output schema exists, return values need not be described, but the missing parameter context leaves the description partially incomplete for a 7-parameter mutation tool.

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

Parameters3/5

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

The description adds valuable semantics for 'layout' (enumerating grid, dashboard, executive_summary, custom) and 'visual_ids' (optional subset, defaults to all) and 'custom' (map format). However, with 7 parameters and schema coverage at 0%, it fails to explain 'page', 'canvas', 'spacing', and 'request_id', leaving significant gaps.

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

Purpose4/5

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

The description clearly states the tool's function: 'Reorganiza los visuales de una pagina' (reorganizes the visuals of a page). It specifies the resource (visuals on a page) and the action (reorganize), and lists layout options. However, it does not explicitly differentiate from sibling tools like pbi_align_visuals or pbi_distribute_visuals, so it misses full distinction.

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

Usage Guidelines3/5

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

The description implies usage by explaining layout options and the optional visual_ids subset, but it provides no explicit guidance on when to use this tool versus alternatives (e.g., align, distribute, normalize). There are no stated prerequisites or exclusions, so guidance remains implicit rather than explicit.

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

pbi_audit_modelA
Read-only

Audita el modelo semantico con reglas de identificador estable.

Cada hallazgo trae rule, severity, object, evidence, recommendation y auto_fix_available. Ninguna heuristica se presenta como certeza: la evidencia acompana siempre al hallazgo. rules: subconjunto de reglas (ver pbi_list_audit_rules). min_severity: info | warning | error.

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesNo
sourceNolive
min_severityNoinfo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

The description discloses that each finding includes specific fields and that evidence always accompanies findings, meaning heuristics are not presented as certainty. This goes beyond the readOnlyHint annotation by explaining the epistemic behavior of results.

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 cover purpose, output shape, and core parameters with no filler. Front-loaded with the primary action.

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

Completeness3/5

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

The output schema is present and the description covers the main result structure, but the `source` parameter is unexplained and no sibling differentiation is given. For a 3-parameter tool with zero schema descriptions, this leaves some ambiguity.

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

Parameters3/5

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

The description explains the meaning of `rules` and `min_severity`, including the accepted values for min_severity. The `source` parameter is left undocumented, and with 0% schema coverage, this is a gap.

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

Purpose4/5

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

The description states 'Audita el modelo semantico' with a specific verb and resource, clearly identifying the tool's function. However, it does not differentiate from sibling audit tools like pbi_audit_project or pbi_audit_report_only.

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 references pbi_list_audit_rules for the rules parameter, providing a path to discover valid rules. It does not state when to use this over pbi_audit_project or pbi_audit_report_only, so usage guidance is only implicit.

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

pbi_audit_projectA

Auditoria integral: modelo semantico + informe + layout.

Devuelve puntaje global y por dominio, resumen ejecutivo, hallazgos priorizados con evidencia y recomendacion, y que reglas tienen correccion automatica.

formats: ['markdown','html'] escribe tambien esos informes en outputs/ y devuelve sus rutas. rules y min_severity acotan.

compact=true devuelve la MISMA auditoria sin repetir texto: cada hallazgo lleva un finding_id, priority pasa a ser la lista de esos identificadores en orden en vez de copias completas, y groups agrupa las repeticiones por regla con su recuento y una muestra. Los puntajes y recuentos por dominio no cambian. Los informes de formats se escriben siempre completos.

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesNo
compactNo
formatsNo
min_severityNoinfo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations are sparse, but the description discloses a real side effect: when `formats` is provided, it 'escribe tambien esos informes en outputs/ y devuelve sus rutas'. It also explains compact mode's structural changes and confirms that written reports are always complete. This goes beyond the annotations and gives the agent a clear behavior model.

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 tightly packed with useful information: outcome summary, file side effects, filtering, and compact-mode semantics. It is front-loaded and every sentence earns its place, though the compact-mode explanation is dense and could benefit from light structuring.

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

Completeness4/5

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

For a 4-parameter optional tool with an output schema, the description covers the main return content, file outputs, filtering, and compact behavior. It is complete enough for an agent to call it effectively; the missing severity levels and explicit sibling routing are the only gaps.

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 carries the burden. It explains `formats` with allowed values, `compact` in detail, and says `rules` and `min_severity` acotan (narrow) the audit. The only real gap is that it doesn't list the allowed severity values for `min_severity`, so the parameter semantics are strong but not complete.

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

Purpose5/5

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

The description starts with 'Auditoria integral: modelo semantico + informe + layout', which clearly names the verb, resource, and scope. It also differentiates itself from sibling pbi_audit_report_only by emphasizing the full project audit including layout, not just the report.

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 phrase 'Auditoria integral' establishes that this is the complete audit tool, and the notes about automatic correction rules and compact mode give practical filtering context. However, it never explicitly says 'use this instead of X' or names alternative tools like pbi_audit_model or pbi_audit_report_only, so the routing is clear but not explicit.

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

pbi_audit_report_onlyA
Read-only

Audita solo el informe PBIR (sin las reglas del modelo semantico).

Cubre paginas vacias, visuales sin titulo, campos rotos, duplicados, tamanos de lienzo inconsistentes y la geometria de cada pagina.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds the specific audit categories, giving the agent a clear picture of what will be inspected without contradicting the read-only hint.

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 two sentences: the first establishes the tool's narrow purpose, the second lists the exact audit areas. No filler or 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 zero parameters and a read-only annotation, the description sufficiently covers the tool's behavior and scope. The output schema (present) handles return value details, so the description need not elaborate further.

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

Parameters4/5

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

The tool accepts no parameters, so the description inherently covers all input needs; no parameter semantics are required.

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

Purpose5/5

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

The description states it audits only the PBIR report, excluding semantic model rules, and lists specific audit checks (empty pages, visuals without title, broken fields, duplicates, canvas sizes, page geometry). This clearly distinguishes it from siblings like pbi_audit_model.

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

Usage Guidelines4/5

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

It explicitly says 'solo el informe PBIR (sin las reglas del modelo semantico)' indicating the tool is scoped to report-only audits, providing clear context for when to use it. It doesn't name alternative tools but its scope exclusion is evident.

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

pbi_backup_pbip_projectA

Crea un backup con timestamp del proyecto .pbip activo.

mode: folder | zip. scope: report | model | both. Devuelve la ruta.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNofolder
scopeNoboth
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds that backups are timestamped and returns the path. It does not disclose where backups are stored, whether they overwrite, or if an active project must be open, leaving 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?

Two sentences: first states purpose, second lists options and return value. Front-loaded, no fluff, and appropriately sized.

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

Completeness3/5

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

The output schema likely covers the return path, and the core action is clear. However, missing context about backup location, project prerequisites, and interaction between mode and scope reduces completeness for safe and effective 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, the description must explain parameters. It merely lists mode values (folder|zip) and scope values (report|model|both) without defining them, and request_id is completely undocumented. This is insufficient for correct parameter use.

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: creates a timestamped backup of the active .pbip project. It uses a specific verb ('Crea') and resource, distinguishing it from sibling tools like pbi_convert_pbix_to_pbip or pbi_purge_backups.

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 (backing up a project) but does not explicitly state when to use it or mention alternatives. It gives no 'when not to use' guidance, though the self-explanatory backup context provides some implicit direction.

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

pbi_build_dashboardA

Construye un dashboard completo desde un objetivo, no desde primitivas.

Analiza el modelo, compone el spec segun el preset, calcula el layout, genera preview, aplica en una transaccion y verifica el resultado. dry_run=true (por defecto) se detiene tras el preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
seedNo
presetNoexecutive
dry_runNo
categoryNo
measuresYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

The description outlines the multi-step process (analyze, compose spec, calculate layout, preview, apply transaction, verify) and explains the dry_run default behavior. Annotations are all false and add little, so the description carries the burden and does so effectively, though it could detail failure handling or what 'applies' entials.

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: three sentences with a clear opening purpose, a workflow overview, and a critical default behavior note. Every sentence earns its place with no fluff or repetition.

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 (multi-step dashboard building), the description provides a high-level workflow but omits what 'objetivo' maps to in parameters, preconditions, or expected output. The presence of an output schema mitigates the need for return value details, but more guidance on how to phrase the objective would improve completeness.

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 explicitly explains dry_run and references preset, but leaves name, measures, seed, category, and request_id undefined. The phrase 'desde un objetivo' vaguely implies name/measures define the goal, but this is not concrete enough for reliable parameter understanding.

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

Purpose5/5

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

The description clearly states it builds a complete dashboard from an objective, not from primitives. This distinguishes it from sibling tools like pbi_create_visual and pbi_compose_page, which are lower-level. The verb 'Construye' and resource 'dashboard completo' are specific 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 Guidelines4/5

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

The description implies usage for high-level dashboard creation when there is a defined objective, contrasting with primitive operations. It does not explicitly name alternative tools or exclusions, but the 'no desde primitivas' phrase provides clear context for when this tool is appropriate.

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

pbi_build_evm_pageA

Pagina EVM (Earned Value Management).

Espera medidas del tipo PV, EV, AC, CPI y SPI; si no las reconoce, lo avisa en vez de generar una pagina que no significa nada.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEVM
seedNo
dry_runNo
categoryNo
measuresYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations provide no meaningful behavioral hints (all false), so the description must carry the burden. It usefully discloses that the tool validates measures and will warn instead of generating a nonsense page. However, it does not mention the behavior of the dry_run parameter, whether the tool modifies an existing report/page, or other side effects, leaving gaps.

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 two short sentences in Spanish, front-loaded with the page type and immediately followed by key validation behavior. Every sentence adds value and there is no filler.

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

Completeness2/5

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

Despite having an output schema, the tool has 6 parameters with no schema descriptions and no explanation of prerequisites or how parameters like `dry_run`, `seed`, or `category` affect the result. The description covers only the `measures` parameter and validation behavior, which is not enough for reliable invocation in a large sibling-tool context.

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 for 6 undocumented parameters. It clarifies the `measures` parameter by listing expected types, but it leaves `name`, `seed`, `dry_run`, `category`, and `request_id` completely unexplained. This is insufficient for an agent to correctly set all parameters, especially the critical `dry_run` flag.

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 identifies the tool as generating an EVM page and specifies the expected measure types (PV, EV, AC, CPI, SPI). The phrase 'generar una página' explicitly states the action, and the EVM-specific scope distinguishes it from sibling tools like pbi_build_executive_page.

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

Usage Guidelines4/5

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

The description gives clear context for use: it should be used when EVM measures are present, and it warns if it cannot recognize them rather than producing a meaningless page. It does not name alternative tools or explicitly state when not to use it, but the usage context is evident.

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

pbi_build_executive_pageC

Pagina de resumen ejecutivo: fila de KPIs y grafico protagonista.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoResumen ejecutivo
seedNo
dry_runNo
categoryNo
measuresYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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

The annotations show readOnlyHint=false, but the description does not clarify what side effects building a page has (e.g., whether it creates a new page, overwrites an existing one, or requires specific model state). No behavioral traits beyond the annotation are disclosed.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than conciseness. It lacks essential information about the tool's behavior and parameters, so the single sentence does not earn its place as an adequate description.

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

Completeness1/5

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

Given the complexity of a build tool with 6 parameters and no schema coverage, the description is severely incomplete. It does not explain what the page building entails, how parameters affect the output, or any dependencies, making it insufficient for an agent to invoke the tool correctly.

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?

With 0% schema description coverage and 6 parameters, the description fails to explain any of them. It mentions 'fila de KPIs' and 'grafico protagonista' but does not connect these to the 'measures' or 'category' parameters, leaving the agent unable to infer parameter meanings.

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 'Pagina de resumen ejecutivo: fila de KPIs y grafico protagonista' gives a vague idea that the tool produces an executive summary page with a KPI row and a featured chart, but it uses a noun phrase rather than a clear verb, so it doesn't explicitly state what the tool does. It implies building, but doesn't distinguish from sibling tools like pbi_build_dashboard or pbi_compose_page.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool compared to alternatives. No context, prerequisites, or exclusions are provided, leaving the agent without direction on selecting it over similar page-building tools.

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

pbi_capabilitiesA
Read-only

Que puede hacerse AHORA MISMO, y que no, con el motivo.

Un agente deberia consultarla antes de planificar: dice si la capa en vivo esta disponible, si se puede escribir en el .pbip, y que capacidades dependen de la version del motor.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds valuable behavioral context by detailing what information the tool reveals (live layer status, write permissions, engine version constraints) and that it provides reasons for unavailable capabilities, which goes beyond the structured metadata.

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

Conciseness5/5

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

The description is concise and front-loaded: first sentence states the core purpose, second elaborates on specifics. Every sentence carries useful information with no redundancy or filler.

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 (no params) and the presence of an output schema, the description adequately covers its purpose and key behavioral facets. It could mention what happens when the live layer is unavailable, but the output schema likely covers such details.

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

Parameters4/5

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

The tool has zero parameters and the schema coverage is 100%, so there is nothing to explain. With no parameters, the baseline is 4, and the description appropriately focuses on the tool's output rather than input semantics.

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

Purpose5/5

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

The description clearly states the tool's function: to report what capabilities are currently available and what are not, with reasons. It specifies concrete aspects (live layer availability, .pbip writability, engine-version-dependent capabilities), distinguishing it from sibling tools like pbi_report_capabilities which likely focus on report-specific capabilities.

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?

Explicitly says an agent should consult this tool before planning, giving a clear when-to-use directive. It does not mention when not to use it or name alternative tools, but the context is strong enough to guide appropriate usage.

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

pbi_check_contractA
Read-only

Valida contra el contrato del puerto: un archivo entrante o el modelo.

Con source_path (+ dataset): el export de Revit/Navisworks/Project ANTES de cargarlo — columnas que faltan, tipos incompatibles, llave ausente. Chequeo ESTRUCTURAL y honesto: unicidad y huerfanas de la llave exigen los datos completos, y eso es pbi_diagnose_data con la tabla ya cargada; la respuesta lo dice en not_checked.

Sin source_path: el MODELO activo contra el contrato entero, y el circulo que cierra todo: suggested_critical_fields — las llaves del puerto listas para pbi_define_brief, de modo que el diagnostico las trate como criticas del dueño sin teclearlas dos veces.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetNo
request_idNo
source_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, and the description adds context: it is a structural and honest check, explicitly stating that key uniqueness/orphans are not checked when data are incomplete, and that the response communicates this via `not_checked`. It also reveals the output field `suggested_critical_fields`, providing behavior beyond the annotation.

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 structured into two clear mode-based paragraphs, with the main purpose front-loaded. It is somewhat dense but every sentence contributes meaning, referencing related tools and limitations without fluff.

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 two-mode complexity and the existence of an output schema, the description covers the main use cases, limitations, and integration with pbi_diagnose_data and pbi_define_brief. It does not explain `request_id`, which is a minor completeness gap, but overall it provides sufficient context for an agent to invoke the tool correctly.

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 coverage is 0%, so the description must explain parameters. It clarifies `source_path` as the mode selector and `dataset` as an add-on to `source_path`, but it does not mention `request_id` at all. This leaves one of three parameters undocumented, a notable 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 it validates against the port contract, either an incoming file or the active model. It distinguishes itself from pbi_diagnose_data by explaining the different scope (pre-load structural checks vs. full data checks). The verb 'Valida' is specific and the resource 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 Guidelines5/5

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

It gives explicit usage conditions: with `source_path` (+ `dataset`) for pre-load file validation, without `source_path` for model validation. It also names an alternative (pbi_diagnose_data) for key uniqueness/orphans and the follow-up tool pbi_define_brief, forming a clear workflow.

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

pbi_close_desktopA
Destructive

Cierra la instancia de Power BI Desktop que sirve ESE proyecto.

Es la salida que faltaba del ciclo editar-abrir-mirar-editar: escribir el TMDL exige Desktop cerrado, y no habia forma de cerrarlo desde aqui -tocaba matar el proceso a mano en PowerShell-.

Cierra SOLO la instancia con ese archivo abierto, verificando la identidad del proceso (nombre + hora de arranque, nunca el PID a secas). Al final re-comprueba que el archivo ya no este abierto y lo dice en verified_closed.

DESTRUCTIVA: los cambios SIN GUARDAR de esa ventana se pierden -y en un .pbip eso incluye los datos refrescados de la sesion-. Por eso exige confirm=true. Si el archivo no estaba abierto, no hace nada y lo dice (was_open: false).

path (o pbip_path) se puede omitir: se cierra el proyecto activo, que es el que el servidor ya conoce.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
confirmNo
pbip_pathNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description details the destructive consequences (unsaved changes lost, including refreshed data in .pbip), the required confirm=true, the verification of process identity, and the behavior when the file isn't open (does nothing, reports was_open: false). This adds substantial behavioral context that the annotation alone doesn't provide.

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 efficient and well-structured: starts with the core purpose, then provides context, behavior, and parameter nuances. Each sentence adds value without redundancy, making it both concise and informative.

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 that an output schema exists (not shown but indicated), the description covers all necessary aspects: purpose, usage context, destructive behavior, parameter meaning, and expected outcomes (verified_closed, was_open). It is complete for a tool of this complexity.

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 by explaining the key parameters: path/pbip_path can be omitted to target the active project, and confirm must be true for destructive operation. It doesn't mention request_id, but that may be a generic parameter. The most critical parameters are well-documented.

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

Purpose5/5

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

The description clearly states the tool's function: closing the Power BI Desktop instance serving a specific project. It uses a specific verb ('Cierra') and resource ('instancia de Power BI Desktop que sirve ESE proyecto'), and distinguishes itself from sibling tools like pbi_open_in_desktop by focusing on the closing action.

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 strong contextual guidance: it explains that writing TMDL requires Desktop closed and that this tool fills the gap. It also mentions that the path can be omitted to close the active project. However, it does not explicitly name alternative tools or state when not to use it, though the context is clear enough.

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

pbi_column_dependenciesA
Read-only

Que usa una columna: medidas, columnas calculadas, relaciones y jerarquias.

Util antes de ocultar o eliminar una columna: dice si algo se rompe.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
columnYes
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates a safe read operation, so the description's added context—listing dependency types and the 'tells if something breaks' behavior—provides meaningful transparency beyond the annotation. No contradictions found.

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 two concise sentences, front-loaded with the core purpose and followed by a practical use case. Every word earns its place without fluff.

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

Completeness4/5

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

The description covers the essential use case and dependency types, and an output schema likely documents return values. It lacks details like interpretation of results or limitations, but given the schema and annotations, it is sufficiently complete for the tool's complexity.

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, the description must explain parameters, but it only indirectly references 'column' and 'table' without detailing them. The 'source' parameter is not mentioned at all, leaving ambiguity about its purpose (e.g., live vs. other sources).

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 identifies what uses a column—measures, calculated columns, relationships, and hierarchies—which is a specific verb+resource. It also distinguishes itself from sibling tools like pbi_measure_dependencies by focusing on column dependencies rather than measure dependencies.

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

Usage Guidelines4/5

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

The description explicitly says to use it before hiding or deleting a column to check if anything breaks, providing a clear when-to-use scenario. It doesn't mention when not to use it or name alternatives, but the context is specific enough for agents to select it appropriately.

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

pbi_compare_live_to_pbipA
Read-only

Compara el modelo EN VIVO con el TMDL del disco.

Util para saber si hay cambios en memoria sin guardar: lista tablas y medidas que solo estan en un lado, y medidas cuyo DAX difiere.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

readOnlyHint=true already signals a safe read operation, and the description adds behavioral detail by specifying that it lists tables and measures that exist only on one side and measures whose DAX differs. No contradictions with annotations; the description enriches the safety profile with specific comparison behavior.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the core action, and the second explains the use case and what it outputs. There is no redundant or filler 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 has no parameters, an output schema, and read-only annotations, the description covers the essential aspects: what is compared, what is listed, and when to use it. It is complete for its relatively simple scope and leaves no significant ambiguity about its behavior.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description does not need to provide parameter semantics, and the schema covers 100% of parameters (none), making this adequate.

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 compares the live model with the TMDL on disk, which is a specific verb+resource+comparison. It distinguishes itself from siblings by focusing on unsaved changes in memory versus the disk state, and explicitly mentions what it lists (tables, measures, DAX differences).

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

Usage Guidelines4/5

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

The description gives a clear use case: 'Util para saber si hay cambios en memoria sin guardar' (useful for knowing if there are unsaved changes in memory). It does not explicitly name alternatives or exclusion criteria, but the context of comparing live vs. disk is clear and sufficient.

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

pbi_compose_pageA

Compone una pagina entera sobre la rejilla del sistema de diseno.

Se describe la INTENCION y el servidor decide la geometria:

  • title / subtitle: banda de cabecera, con el tamano y el color del sistema y la altura minima que el texto necesita para no cortarse.

  • kpis: lista de campos ("[Medida]" o {"field":..., "title":...}). Se reparten la fila entera sin dejar huecos.

  • hero: el grafico protagonista. {"type":"lineChart", "category":"T[C]", "values":["[M]"], "title":...}.

  • supports: los que van apilados a su derecha, mismo formato.

  • detail: tabla al pie. {"values": [...], "title": ...}.

La composicion es siempre la misma de arriba abajo, a proposito: la coherencia entre paginas sale de que ninguna pueda inventarse su propio orden. Si algo no cabe se dice con la cuenta hecha, en vez de encogerlo hasta que no se lea.

El COLOR del texto sale del tema que el informe tiene puesto, no del sistema: un informe solo admite un tema, y escribir el color del sistema pintaba el titulo casi invisible en cuanto los dos no coincidian. La geometria si es de la pagina. Si no cuadran se avisa.

dry_run=true devuelve el spec con todas las posiciones y no escribe. Aplica el mismo camino que pbi_apply_page_spec, asi que pasa por la misma validacion y la misma transaccion.

ParametersJSON Schema
NameRequiredDescriptionDefault
heroNo
kpisNo
titleYes
detailNo
systemYes
dry_runNo
subtitleNo
supportsNo
page_nameNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses that the tool writes (unless dry_run=true), that the server decides geometry, that text color comes from the report theme (not the system), that the composition order is fixed for coherence, and that it warns if content doesn't fit. It also explains the dry_run behavior and that it follows the same validation/transaction as pbi_apply_page_spec. This goes far beyond the minimal annotations, which provide no read-only or idempotency guarantees.

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-organized with a clear introductory sentence, bullet-style explanations of each parameter, and a short rationale for design decisions. It is moderately long but every section adds value. The structure aids readability and front-loads the main purpose before diving into details.

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 (10 parameters) and the presence of an output schema, the description sufficiently covers the core behaviors and parameter semantics. It explains dry_run's return value and the fixed composition order, but doesn't describe the non-dry-run response in detail. However, the output schema likely fills that gap.

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 the 0% schema description coverage, the description thoroughly explains the meaning and expected structure of key parameters: title/subtitle, kpis, hero, supports, and detail, providing example JSON formats. It also describes dry_run's purpose. The only parameters not explicitly described are system, page_name, and request_id, but these are likely straightforward or auxiliary.

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 'Compone una pagina entera sobre la rejilla del sistema de diseno' (composes an entire page on the design system grid) and explains the intention-driven approach. This distinguishes it from sibling tools like pbi_apply_page_spec (which applies an explicit spec) and pbi_create_page_from_spec (which creates from a specific spec), as it focuses on high-level page composition with automatic geometry.

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 conveys when to use this tool: when you want to compose a page by describing intention and letting the server decide geometry. It mentions dry_run for preview without writing and references pbi_apply_page_spec for validation/transaction path, but does not explicitly compare to alternatives or state when not to use it.

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

pbi_convert_pbix_to_pbipA

Convierte uno o varios .pbix en proyectos .pbip (PBIR + TMDL).

El informe sale del propio archivo: si el .pbix ya guarda PBIR se copia tal cual, y si trae el formato heredado se traduce pagina a pagina.

El modelo NO se puede leer del archivo (es un backup comprimido del motor), asi que se ABRE EL .pbix EN POWER BI DESKTOP y se serializa a TMDL desde ahi. Cuenta con eso: cada archivo tarda lo que tarde Desktop en cargarlo. Si el informe ya esta abierto se reutiliza esa sesion; si lo abre esta tool, lo cierra al terminar (close_desktop). El .pbix original nunca se modifica.

path: un .pbix o una CARPETA (recursive incluye subcarpetas). out_dir: carpeta donde crear el proyecto; se crea una subcarpeta por informe. include_model=false genera solo la mitad del informe, sin tocar Desktop. dataset_connection_string es obligatorio para informes con conexion en vivo (los que no llevan modelo propio).

Devuelve, por archivo, que se escribio y —lo importante— los avisos y lo que se quedo por el camino (dropped), como los marcadores.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
out_dirYes
overwriteNo
recursiveNo
request_idNo
project_nameNo
close_desktopNo
include_modelNo
desktop_timeoutNo
dataset_connection_stringNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the sparse annotations (readOnlyHint=false, destructiveHint=false), the description discloses significant behavioral traits: it opens .pbix files in Power BI Desktop, may reuse an open session, closes Desktop if it opened it, never modifies the original file, and reports dropped items. This directly addresses side effects and performance implications, providing rich context beyond what the annotations convey.

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 long but every sentence serves a purpose: purpose, process, warnings, parameters, and output. It is well-structured into paragraphs and uses inline code for parameter names. It front-loads the main function and then details caveats and specifics without redundant filler.

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

Completeness4/5

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

The description is quite complete for a complex tool: it explains the conversion process, the necessity of opening Desktop, behavior with open sessions, original-file preservation, required parameter conditions, and the output (warnings/dropped items). An output schema exists, so return values need not be spelled out. However, it does not cover all parameters (e.g., overwrite, desktop_timeout), which are relevant for a full understanding, leaving minor gaps.

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

Parameters3/5

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

With schema description coverage at 0%, the description must compensate for parameter meanings. It explains key parameters like path (file or folder, recursive), out_dir (subfolder per report), include_model (skip Desktop), dataset_connection_string (required for live connections), and close_desktop (implicitly). However, it omits semantics for overwrite, project_name, request_id, and desktop_timeout, which are not self-explanatory despite their titles. The partial coverage leaves 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 opens with a specific verb and resource: 'Convierte uno o varios .pbix en proyectos .pbip (PBIR + TMDL).' It clearly defines the tool's purpose and differentiates it from sibling tools like pbi_create_pbip_project (which creates projects from scratch) and pbi_inspect_pbix (which inspects files).

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 the tool: when you need to convert .pbix files into .pbip projects. It also notes conditional usage (e.g., include_model=false to skip Desktop processing, dataset_connection_string required for live connections). However, it does not explicitly mention alternatives or exclusions, such as when to prefer pbi_create_pbip_project over this tool.

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

pbi_copy_visual_formatA

Copia el formato de un visual a otros DEL MISMO TIPO.

Se copia el formato pero no el texto del titulo, que es contenido. Copiar entre tipos distintos se rechaza: la estructura de formato no es intercambiable y Power BI podria rechazar el informe.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idNo
source_pageYes
target_pageYes
source_visualYes
target_visualsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Las anotaciones no aportan información porque todos los hints son false. La descripción añade detalles cruciales: no se copia el texto del título (contenido) y el cruce de tipos es rechazado. Esto va más allá de simplemente decir 'copia' y ofrece contexto sobre límites y riesgos.

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?

La descripción es breve y bien estructurada: una frase principal, una aclaración sobre el título y una restricción con justificación. No hay relleno ni redundancia; cada frase aporta información útil.

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?

Describe la acción principal, el matiz del título y la restricción de tipo, pero no aclara si el copiado puede ser entre páginas distintas, a pesar de que los parámetros source_page y target_page lo sugieren. Tampoco menciona el comportamiento ante errores. Dado que existe un esquema de salida, la falta de descripción del retorno es aceptable.

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?

La cobertura del esquema es 0% y la descripción no menciona ningún parámetro concreto. No explica cómo identificar source_page, source_visual, target_page o target_visuals ni qué formato deben tener los identificadores, dejando al agente sin información adicional.

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?

La descripción comienza con 'Copia el formato de un visual a otros DEL MISMO TIPO', usando el verbo específico 'copia' y el recurso 'formato de un visual'. La restricción 'DEL MISMO TIPO' distingue claramente la herramienta de otras como pbi_duplicate_visual o pbi_set_visual_title.

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?

Se indica explícitamente cuándo no usar: 'Copiar entre tipos distintos se rechaza', lo que delimita el contexto de uso. No se nombra una alternativa directa, pero la advertencia de que Power BI podría rechazar el informe aclara los riesgos.

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

pbi_create_bookmarkA

Crea un marcador: un estado del informe al que volver con un boton.

Escribe el archivo del marcador Y lo mete en el indice: sin el indice Power BI no lo muestra aunque el archivo exista.

page: id o titulo de la pagina que activara. filters: filtros a guardar, con la misma forma que en un page spec. target_visuals limita a que visuales afecta. Devuelve usage, listo para pasarselo a un boton con action='bookmark'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageYes
filtersNo
overwriteNo
request_idNo
display_nameYes
suppress_dataNo
target_visualsNo
suppress_displayNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Description discloses that the tool writes the bookmark file and updates the index, warns that Power BI won't show the bookmark without the index, and mentions the return value ('usage'). This adds behavioral context beyond the annotations, which already indicate a non-read-only operation. No contradiction with annotations.

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 compact paragraph that front-loads the purpose, then explains side effects, param hints, and return value. Every sentence adds value with no redundancy or fluff.

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 9 parameters and a mutation operation, the description covers the core purpose and key side-effects but omits several parameter semantics (e.g., overwrite, suppress_data). The output schema likely documents the return value, but parameter gaps reduce 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?

The schema has 0% description coverage, so the description carries the burden. It explains `page`, `filters`, and `target_visuals` with useful detail, but leaves `display_name` (required), `overwrite`, `name`, `request_id`, `suppress_data`, and `suppress_display` unexplained. This is a partial compensation, not complete.

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 creates a bookmark ('Crea un marcador') and defines what a bookmark is (a report state to return to via a button). It distinguishes from siblings like pbi_list_bookmarks and pbi_delete_bookmark by describing the creation and index-writing behavior.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool by explaining the creation workflow and the dependency on the index, but it does not explicitly name alternatives or exclusions. The context is sufficient to infer this is the creation tool among bookmark-related siblings.

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

pbi_create_calculated_columnB

Crea una columna calculada (DAX) en una tabla del modelo .pbip.

data_type: string | int64 | double | decimal | boolean | dateTime. summarize_by: como se agrega por defecto; 'none' para clasificaciones y textos, que es lo que casi siempre se quiere.

Escribe en TMDL: requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
tableYes
data_typeNostring
is_hiddenNo
overwriteNo
expressionYes
request_idNo
descriptionNo
summarize_byNonone
format_stringNo
display_folderNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The annotations are all false, so they provide no safety hints. The description adds important behavioral context by disclosing that the tool writes to TMDL and requires the project to be closed in Power BI Desktop. However, it does not disclose other behavioral traits such as whether overwriting is destructive or what side effects occur beyond the TMDL write.

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

Conciseness4/5

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

The description is concise and structured across three short sentences. The first sentence gives the purpose, and the subsequent sentences clarify key parameters and a critical prerequisite. It is not overly verbose, though it could benefit from clearer separation of parameter details.

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

Completeness2/5

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

Given the tool's complexity (11 parameters, no schema descriptions, no annotation hints), the description is incomplete. It covers the core purpose and two parameter semantics, plus a prerequisite, but does not explain the return value/output, the remaining parameters, or the broader model modification implications. This is insufficient for an agent to fully understand the tool's capabilities and side effects.

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 schema description coverage at 0%, the description must compensate. It explains two parameters (data_type and summarize_by) with meaningful detail, but there are 11 parameters total. It does not describe the required parameters table, name, and expression in detail, nor the optional ones like overwrite, is_hidden, format_string, and display_folder. This leaves many parameters without adequate semantic guidance.

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 creates a calculated column (DAX) in a table of the .pbip model, using a specific verb and resource. It distinguishes from sibling tools like pbi_create_measure and pbi_create_calculated_table by specifying 'column' and the model context.

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 does not explicitly mention when to use this tool versus alternatives like pbi_create_measure or pbi_create_calculated_table. It does provide a key usage constraint—the project must be closed in Power BI Desktop—which gives some guidance on prerequisites, but lacks explicit when-to-use or when-not-to-use instructions.

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

pbi_create_calculated_tableA

Crea una tabla calculada (DAX) en el modelo .pbip.

Resuelve el caso tipico de tener diez metricas guardadas en diez COLUMNAS en vez de en filas: con una tabla calculada que las dinamice se obtiene una matriz de verdad, en lugar de escribir una medida por columna.

TMDL exige declarar las columnas y no se pueden adivinar leyendo el DAX: si no pasas columns, se deducen EJECUTANDO la expresion contra el modelo abierto en Power BI Desktop y leyendo el esquema que devuelve el motor. Para eso hace falta el modelo abierto Y seleccionado.

Escribe en TMDL: requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
columnsNo
overwriteNo
expressionYes
request_idNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description goes beyond the minimal annotations by disclosing that column inference executes the DAX against the open model and that the tool writes TMDL requiring a closed project. This adds meaningful operational context. However, it does not explain behavior of the 'overwrite' parameter or potential side effects of executing the expression.

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 but information-dense, with each sentence adding value: use case, technical mechanism, and prerequisite. No fluff or repetition, and key details are front-loaded.

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, the description covers essential operational constraints (model state, project state) and the core behavior. It does not describe return values, but an output schema exists. Missing details about overwrite semantics and error conditions are gaps, but overall it is fairly complete for a knowledgeable agent.

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 carries full burden. It explains the 'columns' parameter well (inferred by executing DAX if not provided), but leaves 'overwrite', 'description', and 'request_id' unexplained. With 6 parameters and only one meaningfully detailed, compensation is incomplete.

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

Purpose5/5

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

The description starts with a specific verb+resource: 'Crea una tabla calculada (DAX) en el modelo .pbip.' This clearly distinguishes it from siblings like pbi_create_calculated_column or pbi_create_measure. The use-case explanation (unpivoting columns to rows) further clarifies its unique role.

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 a concrete use case ('diez metricas guardadas en diez COLUMNAS en vez de en filas') and explicit operational requirements (model open/selected for column inference, project closed for TMDL write). While it doesn't name alternative tools, the context makes appropriate usage clear.

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

pbi_create_hierarchyA

Crea una jerarquia sobre columnas de la misma tabla.

levels: nombres de columna de MAYOR a MENOR granularidad (p.ej. ['Anio','Mes','Dia']). El orden es el de profundizacion y se respeta tal cual: no se ordena ni se deduplica porque es informacion.

Escribe en TMDL: requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
tableYes
levelsYes
overwriteNo
request_idNo
descriptionNo
display_folderNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

With all annotations set to false, the description carries the burden of behavioral disclosure. It reveals that the operation writes TMDL, requires a closed project, and deliberately preserves the order of levels without sorting or deduplication. Missing overwrite behavior and error handling, but the disclosed traits are meaningful and non-obvious.

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 compact and front-loaded: a purpose sentence, a focused parameter note, and a prerequisite. It has no wasted sentences, though the phrase 'porque es informacion' is slightly awkward and could be tightened. Overall, it is concise and well structured.

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

Completeness3/5

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

The description captures the core invocation requirements: same-table columns, correct level order, and a closed Power BI project. However, with seven parameters and zero schema descriptions, it leaves overwrite semantics and optional fields under-specified. An output schema exists but does not compensate for these parameter knowledge 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%, so the description must compensate by explaining parameter meanings. It does this only for `levels`, which is richly explained with ordering and preservation semantics. The remaining six parameters—`table`, `name`, `overwrite`, `request_id`, `description`, and `display_folder`—are left to name-based inference, which is insufficient at this coverage level.

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 opens with 'Crea una jerarquia sobre columnas de la misma tabla', which clearly identifies the verb (create) and resource (hierarchy on columns of a table). It does not explicitly distinguish itself from sibling creation tools, but the hierarchy object type is unambiguous enough to avoid confusion with measure or column creation.

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

Usage Guidelines4/5

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

The description gives a concrete prerequisite: 'requiere el proyecto CERRADO en Power BI Desktop' and specifies the required ordering of levels from high to low granularity. It does not mention when to choose an alternative tool, but the closed-project requirement and ordering semantics are useful usage guidance.

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

pbi_create_html_visualA

Crea un visual "HTML Content" que renderiza el HTML/SVG devuelto por una medida.

html_measure: medida cuyo resultado es HTML (p.ej. "[HTML Panel EVM]"). Registra el custom visual en el informe si aun no esta. La medida se crea aparte con pbi_create_measure (el HTML se arma en DAX, tipicamente con VARs y CONCATENATEX sobre los datos del modelo).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
titleNo
positionYes
request_idNo
html_measureYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations are present (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds behavioral context beyond them: it states that the custom visual is registered in the report if not already present, and clarifies that the HTML is built in DAX (typically with VARs and CONCATENATEX). This is useful side-effect disclosure, though it doesn't cover all failure modes or behavior on existing visuals.

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: two short paragraphs, with the primary purpose front-loaded. The parameter detail is inline and could be better formatted as a list, but it's efficient and free of fluff.

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 params, nested position object, output schema present), the description provides key workflow context: the measure is pre-created via pbi_create_measure, the visual registers itself, and the HTML is constructed in DAX. It does not explain page/position details, but for a Power BI-focused audience these are familiar. The output schema likely covers return values, so the description needn't.

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

Parameters2/5

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

The input schema has 5 parameters with 0% schema description coverage, so the description must compensate. It only explains html_measure, giving an example, but leaves page, position, title, and request_id undocumented. This is insufficient for a tool where the user must supply page and position 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 opens with a specific verb and resource: 'Crea un visual "HTML Content"' (creates an HTML Content visual) and explains its function: renders HTML/SVG from a measure. This clearly distinguishes it from generic siblings like pbi_create_visual or pbi_add_custom_visual by naming the exact visual type.

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

Usage Guidelines4/5

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

It explicitly instructs that the measure must be created separately with pbi_create_measure, providing a direct cross-reference to a sibling tool. It also gives an example measure name ('[HTML Panel EVM]'). This gives clear context for when this tool is appropriate, though it does not state explicit 'when-not-to-use' scenarios.

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

pbi_create_measureA

Crea (o reemplaza con overwrite=true) una medida DAX.

Valida que la tabla exista y que la medida no exista salvo overwrite. data_category: opcional, p.ej. "ImageUrl" para medidas que devuelven un data-URI SVG (Power BI las renderiza como imagen en tablas/matrices). Devuelve el diff antes/despues.

mode='both' esta temporalmente deshabilitado bajo la politica estricta: 'live' necesita Power BI Desktop abierto y 'pbip' lo necesita cerrado, asi que una sola llamada aplicaria solo uno de los dos destinos. Elige 'live' o 'pbip', o usa 'auto' y se mira el estado para elegir. Si estas construyendo desde cero, 'auto' o 'pbip': el defecto es 'live' y exige Desktop abierto.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
nameYes
tableYes
overwriteNo
expressionYes
request_idNo
descriptionNo
data_categoryNo
format_stringNo
display_folderNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only indicate non-read-only and non-idempotent. The description adds rich behavioral details: validation that the table exists and the measure doesn't (unless overwrite), the diff return, and the detailed constraints around mode ('both' disabled, Desktop open/closed requirements). This goes well beyond the annotation information.

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 main purpose. Each sentence adds value: validation, mode guidance, data_category example, and diff return. No filler or redundant 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?

Covers preconditions, mode selection, and return behavior, and the output schema handles structure. However, the incomplete explanation of several optional parameters creates some gaps for a 10-parameter tool.

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 coverage is 0%, so the description must compensate. It explains 'mode', 'data_category' with a concrete example, and 'overwrite' semantics. Required parameters (table, name, expression) are self-evident, but optional ones like format_string, display_folder, description, and request_id are not elaborated, leaving partial 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 'Crea (o reemplaza con overwrite=true) una medida DAX', with a specific verb, resource, and the overwrite behavior. This distinguishes it from sibling tools like pbi_update_measure and pbi_create_calculated_column.

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?

Provides clear context on selecting mode ('live', 'pbip', 'auto') and when each is appropriate, including the 'construyendo desde cero' hint. However, it does not explicitly mention alternative tools or exclusions, so it stops short of full when/when-not guidance.

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

pbi_create_page_from_specA

Crea una hoja (pagina) PBIR completa a partir de un spec.

spec: {page_name, canvas?, layout?(grid|dashboard|executive_summary), visuals:[{type,title,fields:{rol:refs},position?}]}. Clona visuales existentes del mismo tipo como plantilla. Hace backup. Omite 'position' en un visual para que se auto-acomode con 'layout'.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The description adds useful behavioral context beyond annotations: it clones existing visuals as templates, makes a backup, and auto-arranges visuals when 'position' is omitted. However, it does not disclose what happens if the page already exists or how existing content is affected, leaving some ambiguity.

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

Conciseness5/5

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

The description is compact and well-structured, with the main purpose in the first sentence and a clear code block for the spec schema. Every sentence adds value, and there is no redundant or vague content.

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

Completeness4/5

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

Given the nested spec object and zero schema coverage, the description covers most necessary aspects: spec structure, cloning, backup, and layout behavior. It falls short only in explaining the 'rol:refs' field notation and how this tool relates to sibling spec-validation/preview tools, but it remains quite complete for its complexity.

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 is opaque for the 'spec' object (additionalProperties true, 0% description coverage), but the description fully documents its internal structure: page_name, canvas, layout enum, and visuals with type/title/fields/position. It also explains the behavioral meaning of omitting 'position', which is essential for correct use.

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 creates a complete PBIR page from a spec, using a specific verb and resource. It distinguishes itself by mentioning spec-driven creation and cloning existing visuals, but it does not explicitly differentiate from sibling tools like pbi_apply_page_spec or pbi_compose_page.

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 pbi_apply_page_spec or pbi_generate_report_page. It only describes the spec format without any exclusions, prerequisites, or alternative recommendations.

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

pbi_create_pbip_projectA

Crea un proyecto .pbip vacio pero valido, y lo deja activo.

Es el punto de partida para armar un tablero solo con rutas de archivos: crear el proyecto, cargarle los datos con pbi_add_table_from_file y componer las paginas, sin abrir Power BI Desktop hasta el final.

Escribe el minimo que Power BI acepta —informe y modelo semantico apuntandose entre si— con la referencia en ruta RELATIVA: una absoluta ataria el proyecto a esta maquina. Incluye una pagina, porque un informe sin ninguna no abre.

No declara sourceQueryCulture a proposito: la cultura se fija en cada consulta, que es lo unico que no obliga a suponer como escribe los decimales cada origen.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
widthNo
heightNo
cultureNoes-ES
out_dirYes
overwriteNo
page_nameNoPagina 1
request_idNo
open_projectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

The description discloses key behaviors beyond annotations: it 'deja activo' the project, uses relative paths to avoid machine-specific coupling, includes one page because a report without one won't open, and intentionally omits `sourceQueryCulture` with reasoning. These are meaningful behavioral details that the annotations (all false) do not cover.

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 organized into short paragraphs, each serving a purpose: purpose, workflow, technical rationale, and culture note. It is more detailed than strictly necessary but every sentence earns its place, with no filler or repetition.

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

Completeness3/5

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

The description provides rich rationale for design decisions, but with 9 parameters and zero schema coverage, the missing parameter semantics create a gap. An output schema exists, so return values are covered, but the description should do more to explain how input parameters affect the created project.

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%, yet the description doesn't explain most parameters. It only hints at the culture parameter through the `sourceQueryCulture` discussion, but out_dir, name, width, height, overwrite, page_name, request_id, and open_project remain semantically unexplained. The description adds some context but doesn't compensate for the high parameter count.

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 creates an empty but valid .pbip project: 'Crea un proyecto .pbip vacio pero valido, y lo deja activo.' It also distinguishes this from siblings by framing it as the starting point for a file-path-based workflow, mentioning pbi_add_table_from_file as the next step — a specific verb+resource with clear scope.

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

Usage Guidelines4/5

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

It gives clear when-to-use context: 'Es el punto de partida para armar un tablero solo con rutas de archivos' and outlines the intended workflow (create project, load data, compose pages). While it doesn't explicitly state when not to use it (e.g., converting an existing .pbix), the workflow guidance effectively implies its place among alternatives.

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

pbi_create_relationshipA

Crea una relacion entre dos columnas del modelo .pbip.

Por defecto muchos-a-uno con filtro en un sentido: es lo que crea Power BI y lo unico que no introduce ambiguedad. cross_filtering 'bothDirections' resuelve casos concretos y complica el modelo entero, asi que conviene justificarlo.

Escribe en TMDL: requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
to_tableYes
is_activeNo
overwriteNo
to_columnYes
from_tableYes
request_idNo
from_columnYes
to_cardinalityNoone
cross_filteringNooneDirection
from_cardinalityNomany

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations are all false (no readOnly/opensWorld hints), so the description carries the full burden. It discloses that the tool writes to TMDL ('Escribe en TMDL'), requires the project closed, and explains the ambiguity implications of cross-filtering directions. This adds valuable behavioral context beyond the schema, such as the default safe behavior and the need to justify complex filtering scenarios. It does not discuss side effects like overwriting (though an 'overwrite' parameter exists), but the key behavioral traits are covered.

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

Conciseness5/5

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

The description is three concise sentences, each adding distinct value: purpose, default behavior/guidance, and a key requirement. It is front-loaded with the action and avoids filler or repetition. No word is wasted.

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

Completeness2/5

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

Despite having an output schema, the tool is complex (11 parameters, mutating operation, TMDL writing). The description covers the default cardinality and cross-filtering warning, plus the closed-project prerequisite, but leaves most parameters unexplained and does not describe return values or error scenarios. Given the zero schema coverage, this is not complete enough for an agent to confidently invoke the tool with correct parameters.

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% for all 11 parameters. The description only adds semantics for 'cross_filtering' (explains the default 'oneDirection' and warns about 'bothDirections') and implicitly for cardinalities (default many-to-one). It does not explain 'from_table', 'to_column', 'is_active', 'overwrite', 'name', 'request_id', or other parameters. This is insufficient for a tool with 11 parameters and zero schema-level documentation.

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

Purpose5/5

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

The description clearly states the tool's action: 'Crea una relacion entre dos columnas del modelo .pbip' (creates a relationship between two columns). This specific verb+resource combination distinguishes it from siblings like pbi_set_relationship_direction (which changes direction) and pbi_list_relationships (which lists relationships). The scope (.pbip model) is also explicit.

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 guidance on default cardinality and filtering ('muchos-a-uno con filtro en un sentido... lo unico que no introduce ambiguedad') and warns against using 'bothDirections' unless justified. It also states a critical prerequisite: the project must be CLOSED in Power BI Desktop when writing TMDL. However, it does not explicitly name sibling alternatives, so it lacks a direct when-to-use vs. alternative comparison.

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

pbi_create_visualA

Crea un visual PBIR en una pagina.

visual_type acepta: actionButton, areaChart, barChart, button, card, cardVisual, clusteredBarChart, clusteredColumnChart, columnChart, donut, donutChart, funnel, gauge, htmlContent, htmlContent443BE3AD55E043BF878BED274D3A6855, image, kpi, lineChart, matrix, multiRowCard, navigation, pageNavigator, pieChart, pivotTable, rectangle, ribbonChart, scatterChart, shape, slicer, table, tableEx, text, textbox, treemap, waterfall y waterfallChart.

Para visuales con datos, valida antes de escribir los roles obligatorios, la cardinalidad maxima de cada rol y el tipo de campo admitido: dimension (Grouping), medida (Measure) o cualquiera de ambos (GroupingOrMeasure). Los elementos decorativos (texto, forma, imagen, navegador y boton) rechazan fields porque no llevan consulta.

fields: rol -> campos, p.ej. {"category":"Tabla[Col]", "values":["[Medida]"], "legend":"Tabla[Col]"}.

El rol se reconoce escrito como sea: el logico (values), el nombre que usa PBIR y que devuelve pbi_list_visuals (Values, Y, Category, Data) o un sinonimo (measure, axis). Cada campo puede ser "Tabla[Campo]" o el objeto que devuelve pbi_list_visuals, para poder leer una pagina y rehacerla sin traducir nada.

Un rol que ese tipo de visual no tiene se RECHAZA con la lista de los validos. Antes se descartaba en silencio y el visual salia sin datos.

options: formato adicional. Llaves reconocidas (una clave no reconocida se ignora, no se rechaza; ver pbi_get_visual para comprobar que quedo escrito):

  • background_color, border_color ('#RRGGBB'), background_transparency (0-100), border_radius (px): el marco de CUALQUIER visual (panel General > Efectos de Desktop). Sin background_color/border_color no se toca el marco.

  • card/cardVisual: show_category_label, value_font_size, bold_value, value_color.

  • shape: fill, transparency, text, font_size, text_color.

  • textbox: text, font_size, color, bold, font, align. El texto va en options.text, NO en fields ni en la raiz: {"type": "textbox", "options": {"text": "Resumen", "font_size": 20}}.

  • image: resource (ItemName ya registrado con pbi_add_image_resource), name, scaling.

  • pageNavigator: show_hidden, show_current.

  • actionButton: action, icon, target_page, text.

  • format: formato del VISUAL, no del contenedor. mode (segmentador: Dropdown, List, Between...), header (bool: el encabezado del campo del segmentador; false lo oculta), dataLabels (bool), legend (bool), legendPosition (Top, Bottom, Left, Right...). Una clave desconocida aqui SE RECHAZA con la lista de las validas: un formato que se pide y no se aplica deja el informe distinto de lo que se penso sin decir por que.

position: {x, y, width, height} (z opcional). Clona un visual del mismo tipo como plantilla si existe. Hace backup.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
titleNo
fieldsYes
optionsNo
positionYes
request_idNo
visual_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses significant behavioral details beyond the annotations: validation of roles, rejection of unknown roles and format keys, silent ignoring of unrecognized option keys, backup creation, and template cloning. It also explains how field type constraints are enforced, giving the agent a clear mental model of 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.

Conciseness5/5

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

The description is long but well-organized into sections (visual_type, fields, options, position, behavior). It starts with a clear purpose, front-loads the essential information, and each section adds necessary detail without redundancy. The length is justified by the tool's complexity and the need to disambiguate behaviors.

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 7 parameters, nested objects, and an output schema, the description covers parameter semantics, validation rules, side effects (backup), and references related tools. It is complete enough for an agent to select and invoke the tool correctly, even without seeing the output schema.

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

Parameters5/5

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

Schema description coverage is 0%, and the description completely compensates by explaining every parameter: visual_type enumerate, fields mapping format, options keys per visual type, position structure, and the role of title/request_id. It includes examples and clarifies the difference between ignored and rejected options.

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

Purpose5/5

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

The description opens with 'Crea un visual PBIR en una pagina', clearly stating the action and resource. It details the supported visual types and distinguishes itself from related sibling tools by focusing on creation with validation and options.

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 clear context for when to use this tool (creating a visual) and references sibling tools like pbi_list_visuals and pbi_get_visual for related tasks. However, it does not explicitly state when to use alternatives such as pbi_duplicate_visual or pbi_delete_visual, so exclusions are implied rather than explicit.

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

pbi_define_briefA

Escribe el BRIEF DE INTENCION del tablero: para que existe.

Es la pieza que gobierna a las demas: la propuesta de paginas, el sistema de diseño y las auditorias leen este artefacto para servir a un proposito en vez de deducirlo todo del modelo.

Las respuestas son del HUMANO, no tuyas. Antes de llamar, pregunta en conversacion: ¿para que quieres este tablero? ¿quien lo va a mirar? ¿que decisiones debe sostener? ¿como se va a ver (sala, escritorio, PDF, movil)? Un brief inventado por el agente es peor que ninguno: fija en un archivo con autoridad lo que nadie dijo.

delivery: pantalla_sala | escritorio | lectura_pdf | movil — decide el sistema de diseño recomendado (legibilidad fisica, no estetica). critical_fields: [{field, why, min?, max?}] — que campos son criticos y sus umbrales; los usara el diagnostico de datos.

Se guarda como pbi-brief.json JUNTO al .pbip (fuera de .Report/ .SemanticModel, que Desktop reescribe al guardar): versionado con el proyecto y editable en cualquier momento. Reescribirlo es normal: los tableros cambian de proposito.

ParametersJSON Schema
NameRequiredDescriptionDefault
purposeYes
audienceYes
deliveryNo
decisionsNo
non_goalsNo
request_idNo
key_questionsNo
update_cadenceNo
critical_fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description clearly discloses that the tool writes a file (`pbi-brief.json`) next to the .pbip, outside .Report/.SemanticModel, and that overwriting is normal because dashboards change purpose. It also explains that the agent must not fabricate answers. This adds meaningful behavioral context beyond the sparse annotations and does not contradict them.

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

Conciseness4/5

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

The description is long but purposeful. It front-loads the main verb and resource, uses a bolded warning for the most important behavioral rule, and packs useful details about parameter semantics and file storage. While not as terse as possible, every sentence adds relevant context.

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

Completeness4/5

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

For a tool that writes a brief file, the description is fairly complete: it explains the file location, why it is stored there, the human-interaction requirement, and key parameters like delivery and critical_fields. The presence of an output schema reduces the need to describe return values. Some parameter descriptions are missing, but the overall context is sufficient for effective use.

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

Parameters3/5

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

The input schema has 0% description coverage, so the description carries a heavy burden. It does explain `delivery` (with enum values and meaning) and `critical_fields` (structure and purpose), and indirectly covers `purpose` and `audience`. However, several other parameters like `decisions`, `non_goals`, `request_id`, `key_questions`, and `update_cadence` are not described, leaving 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 opens with a specific verb and resource: 'Escribe el BRIEF DE INTENCION del tablero' (Write the intent brief of the dashboard). It clearly defines the artifact's role as governing other pieces and distinguishes it from sibling tools like pbi_get_brief by focusing on creation and intent capture rather than retrieval.

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

Usage Guidelines4/5

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

The description gives strong usage guidance: it explicitly says to ask the human before calling, lists specific questions to ask, and warns that an agent-invented brief is worse than none. It does not explicitly name alternative tools, but effectively communicates when not to use it by emphasizing that answers must come from the human.

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

pbi_define_port_contractA

Escribe el CONTRATO del puerto del ecosistema (pbi-port-contract.json).

El puerto NO es un bus de APIs entre Revit/Navisworks/Project —eso es fragil sin arreglo—: es un contrato de datos. Cada herramienta EMITE un dataset normalizado con una llave compartida, y este MCP lo valida y lo consume.

datasets: [{name, key, columns: [{name, type, required?}], emitted_by?, description?}]. La llave es obligatoria: es lo que permite cruzar los datasets entre si (p.ej. HRZ_COD_PRES entre el modelo BIM, el presupuesto y el cronograma).

Vive versionado junto al .pbip, como el brief. Se valida con pbi_check_contract: archivos entrantes antes de cargar, y el modelo activo despues.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
datasetsYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations only provide negative hints (readOnlyHint=false, etc.), placing the burden on the description. The description does add context about the contract structure, the mandatory shared key, and its role in validation. However, it does not disclose whether writing overwrites an existing file, what side effects occur (e.g., creating/updating the file), or any permission requirements. This is moderate transparency—useful context but not full behavioral disclosure.

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 moderately lengthy but each sentence serves a purpose: it states the action, corrects a common misconception, gives the dataset schema, explains the key's importance, and notes the validation workflow. It is well-structured and front-loads the main verb. It could be slightly condensed, but it earns its length by preventing misuse.

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 an output schema (not shown), so return values need no explanation. The description covers the main action, the conceptual background, the dataset shape, and the relationship to validation tools. It does not explain optional parameters (name, request_id) or overwrite behavior, but for a definition/write tool with a well-defined primary parameter, it is reasonably 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?

With schema description coverage at 0%, the description must compensate. It does so for the main `datasets` parameter by providing a detailed inner structure: [{name, key, columns: [{name, type, required?}], emitted_by?, description?}], and explicitly states the `key` is mandatory. However, it does not explain the `name` and `request_id` parameters, leaving some semantic gaps. This is strong compensation for the primary param but incomplete for all params.

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 "Escribe el CONTRATO del puerto del ecosistema (pbi-port-contract.json)" — a specific verb (write) and resource (the port contract file). It distinguishes the tool from pbi_check_contract (which validates) and pbi_define_brief (which defines the brief), and clarifies the port is a data contract, not an API bus. This makes the tool's 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 explains the contract 'vive versionado junto al .pbip' and that it is validated with pbi_check_contract, giving clear context for when to use this tool (to define/write the contract) versus when to use the validation sibling. It also explains the rationale for the contract approach. However, it lacks explicit 'when not to use' or alternative tool exclusions, so it stops short of a 5.

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

pbi_delete_bookmarkA
Destructive

Borra un marcador y lo quita del indice. Destructiva: confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations that declare destructiveHint=true, the description adds the crucial requirement 'confirm=true' to actually execute the deletion. It also mentions the side effect of removing the bookmark from the index, providing useful behavioral context beyond the structured metadata.

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 two short sentences, front-loads the verb and resource, and wastes no words. It efficiently conveys the action, the index side effect, and the destructive confirmation requirement.

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

Completeness4/5

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

For a simple delete operation with an output schema and annotations, the description is mostly complete. It warns about destructiveness and the confirm flag, but does not mention failure scenarios (e.g., bookmark not found) or what happens if confirm is false. Acceptable for simple tool.

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 carries the burden of explaining parameters. It explains that 'confirm' must be true for deletion, and 'name' is implicitly the bookmark to delete, but 'request_id' remains undocumented. Partial compensation, but not complete.

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 action 'Borra un marcador' (deletes a bookmark) and specifies the additional behavior 'lo quita del indice' (removes it from the index). This distinguishes it from sibling tools like pbi_create_bookmark or pbi_list_bookmarks.

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 you want to delete a bookmark) but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The destructive warning hints at caution but does not elaborate on when to avoid use.

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

pbi_delete_measureA
Destructive

Elimina una medida. Operacion destructiva: requiere confirm=true.

mode='both' esta temporalmente deshabilitado bajo la politica estricta: 'live' necesita Power BI Desktop abierto y 'pbip' lo necesita cerrado, asi que una sola llamada aplicaria solo uno de los dos destinos. Elige 'live' o 'pbip', o usa 'auto' y se mira el estado para elegir. Si estas construyendo desde cero, 'auto' o 'pbip': el defecto es 'live' y exige Desktop abierto.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
nameYes
tableYes
confirmNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description adds significant behavioral context: it explicitly warns that the operation is destructive and requires confirm=true, clarifies that 'live' needs Desktop open while 'pbip' needs it closed, and explains the 'auto' fallback logic. This provides valuable operational detail not inferable from the annotations alone.

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 paragraph that front-loads the primary purpose and then explains mode behavior. It contains no filler, but the mode explanation is slightly verbose and could be tightened. It is reasonably concise and well-structured for the complexity involved.

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

Completeness4/5

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

The description covers the key aspects needed to use the tool safely: destructive nature, confirm requirement, mode selection with prerequisites, and default behavior. With an output schema present to describe return values, the description is sufficiently complete. Minor gaps like error handling or missing-measure behavior are not critical.

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 by explaining the 'mode' and 'confirm' parameters in detail, including the disabled 'both' option and the default behavior. The 'table' and 'name' parameters are not described, but their names are self-explanatory. 'request_id' is not explained, but it is a common internal field. The description adds enough value over the schema to earn a 4.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb and resource: 'Elimina una medida' (Deletes a measure). This distinguishes it from sibling tools like pbi_create_measure, pbi_update_measure, and pbi_rename_measure, which handle other operations on measures.

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 guidance on when to use different values of the 'mode' parameter (live, pbip, auto), including the note that 'mode=both' is temporarily disabled and the default 'live' requires Power BI Desktop open. It also advises using 'auto' or 'pbip' when building from scratch. However, it does not mention alternatives like 'update measure' or when not to use this tool, so it falls short of a 5.

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

pbi_delete_pageA
Destructive

Elimina una pagina y actualiza el orden y la pagina activa.

Destructiva: requiere confirm=true. Se niega a borrar la ultima pagina del informe, porque un informe sin paginas no abre.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
confirmNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, but the description adds valuable context beyond that: confirm=true is mandatory, the tool refuses to delete the last page (with a rationale), and it updates page order and active page. No contradiction with annotations.

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: two sentences that front-load the core action and then provide essential safety caveats. Every sentence adds value, with no redundant wording.

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 simplicity and the presence of an output schema, the description covers all critical operational aspects: destructive nature, confirmation requirement, and the last-page guard. The agent has enough information to invoke the tool correctly without needing additional 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?

The schema has 0% description coverage, so the description must compensate. It does clarify that confirm must be true and implies page is the target. However, it does not explain the format of 'page' or the purpose of 'request_id', leaving some parameter 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 uses a specific verb ('Elimina una pagina') and resource ('pagina'), clearly identifying the delete action. It also mentions side effects (updating order and active page), which distinguishes it from sibling tools like pbi_duplicate_page, pbi_rename_page, and pbi_reorder_pages.

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

Usage Guidelines4/5

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

The description explicitly states that the tool is destructive and requires confirm=true, and it warns against deleting the last page. This provides clear usage guidance, though it does not name alternative tools. However, the deletion action is unique among siblings, so the guidance is sufficient.

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

pbi_delete_visualA
Destructive

Elimina un visual. Operacion destructiva: requiere confirm=true.

Devuelve la definicion previa, y el journal permite restaurarla.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
confirmNo
visual_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description goes beyond the destructiveHint annotation by disclosing the confirm=true requirement, the return of the previous definition, and the journal-based restore capability. These are meaningful behavioral details that help the agent understand the tool's safety and recovery mechanisms. No contradiction with annotations.

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, two sentences long, with the core action first and important constraints immediately following. Every sentence earns its place with no redundant information.

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

Completeness4/5

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

Given the destructive nature, the description adequately covers the key context: what it does, the confirmation requirement, and the recovery path via journal. The presence of an output schema likely covers return value details, and annotations cover destructiveness. It could mention error conditions, but the current level is sufficient for a delete tool.

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 must compensate. It explicitly explains the confirm parameter ('requiere confirm=true') but does not elaborate on page, visual_id, or request_id. The parameter names are relatively self-explanatory, but the description only partially covers the parameter semantics.

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 'Elimina un visual' clearly states the action (delete) and resource (visual), distinguishing it from sibling tools like pbi_delete_bookmark and pbi_delete_page. It also adds important context about destructiveness and confirmation, 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 by framing it as a destructive operation that requires confirm=true, which signals when to use it (intentional deletion with confirmation) and cautions against careless use. It does not explicitly name alternatives or exclusion scenarios, but the context is sufficient.

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

pbi_detect_layout_issuesA
Read-only

Diagnostica la geometria de una pagina (o de todas). Solo lectura.

Detecta solapamientos, visuales fuera del lienzo, tamanos demasiado pequenos, margenes, separaciones inconsistentes, orden Z duplicado o ausente, paginas vacias y paginas saturadas. Cada hallazgo trae su evidencia geometrica.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

The description adds behavior beyond the read-only annotation by listing concrete issue categories and noting that 'Cada hallazgo trae su evidencia geometrica' (each finding includes geometric evidence). It also repeats the read-only hint but does not contradict annotations.

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 in the first line, followed by a concise bullet-like list of detections and a one-line note about evidence. Every sentence earns its place with no filler.

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

Completeness5/5

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

Given the tool's single optional parameter, output schema, and read-only annotation, the description is complete: it states scope (one/all pages), what issues are found, and that findings include geometric evidence. No critical information is missing.

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 coverage, the description fully compensates by explaining that the page parameter targets one page or all pages ('de una pagina (o de todas)'). The default null meaning is clear: omitting the parameter diagnoses all pages. This directly clarifies the only 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 opens with a specific verb+resource: 'Diagnostica la geometria de una pagina' and enumerates exact layout issues detected (overlaps, off-canvas visuals, small sizes, margins, inconsistent spacing, Z-order problems, empty/saturated pages). This clearly differentiates it from sibling audit or documentation tools.

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

Usage Guidelines4/5

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

The phrase 'Diagnostica la geometria de una pagina (o de todas)' provides clear context for when to use this tool: to diagnose layout geometry on one or all pages. It does not explicitly state exclusions or name alternatives, so it misses the top score.

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

pbi_diagnose_dataA
Read-only

Diagnostico de CONTENIDO contra el modelo VIVO: lo que rompe tableros y ningun metadato ve.

Cuatro chequeos deterministas, cada uno con la consulta DAX que lo demuestra y muestras de los valores culpables:

  • claves_huerfanas: filas del lado muchos cuya clave no existe en el lado uno (caen al Blank de la relacion; los totales cuadran de menos sin error). Incluye claves EN BLANCO.

  • grano_duplicado: el lado uno con claves repetidas (todo se multiplica al cruzar).

  • calendario_con_huecos: dias faltantes en la tabla de fechas.

  • umbral_del_brief_violado y campo_critico_inexistente: los critical_fields del brief contra los datos reales. La severidad la decide el dueño: lo que declaro critico sale como error.

No hay heuristicas "inteligentes" de outliers ni escalas: lo generico es determinista y lo subjetivo viene del brief. Un chequeo que no se pudo correr sale en skipped con su motivo — "no se comprobo" y "esta bien" no son lo mismo.

Requiere el modelo ABIERTO en Desktop (consulta datos, no archivos). tables acota a las relaciones que tocan esas tablas.

ParametersJSON Schema
NameRequiredDescriptionDefault
tablesNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the annotations by explaining deterministic behavior, absence of heuristics, how skipped checks are reported, severity assignment for critical fields, and the requirement for a live open model. This adds substantial context not available from the readOnlyHint and openWorldHint annotations.

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 dense yet well-structured, starting with a clear purpose statement followed by a bulleted list of checks, then behavioral notes and prerequisites. Every sentence contributes value, with no redundant or filler content, and the front-loaded opening ensures 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?

Given the tool's complexity (four checks, skipped states, severity rules, prerequisites), the description is remarkably complete. It explains what each check does, how failures are categorized, the deterministic vs. subjective split, the skipped status semantics, and the model-open requirement. The output schema exists, so return values need not be described.

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

Parameters3/5

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

The schema provides no descriptions for the two parameters (0% coverage), so the description must compensate. It explains the `tables` parameter's filtering semantics effectively ('narrows to relationships that touch those tables'), but it does not mention `request_id` at all. Thus, the compensation is partial, leaving one parameter completely unexplained.

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 a specific verb ('diagnose') and resource (data content against the live model), and enumerates the four deterministic checks. It distinguishes itself from metadata-only audit tools by explicitly targeting what 'breaks dashboards and no metadata sees', making it unique among siblings.

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 find data-level issues invisible to metadata, and it notes the prerequisite of an open model in Desktop. However, it does not explicitly contrast with alternatives like pbi_profile_data or pbi_analyze_model_quality, nor does it state when not to use it, stopping short of the 'explicit alternatives' benchmark.

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

pbi_diff_page_specA
Read-only

Compara el spec con una pagina existente antes de aplicarlo.

Dice que visuales se anadirian, cuales sobrarian y cuantos quedan igual. Si la pagina no existe, informa que se creara.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Given readOnlyHint: true, the description adds value by specifying the concrete behavioral outputs (added, leftover, same visuals) and how missing pages are handled (reports that it will be created). This exceeds the annotation baseline without contradicting it.

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

Conciseness5/5

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

The description is three short sentences, front-loaded with the main action, and contains no redundant or filler content. Every sentence contributes meaningful information.

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

Completeness4/5

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

For a diff tool, the description covers the primary behavior and outcome categories, and the existence of an output schema reduces the need to document returns. It assumes prior knowledge of what a 'page spec' is, but this is reasonable given the sibling tool ecosystem.

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 coverage, the description must clarify parameters, and it partially does: 'spec' is identified as the proposed spec, and 'page' is implied to be an existing page (or missing → creation). However, the structure of a spec is not explained, and the nature of 'page' (e.g., name vs. ID) is left vague.

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 compares a spec against an existing page to identify added, removed, and unchanged visuals, which is a specific and distinct function from sibling tools like apply or preview. The verb 'diff' is effectively explained through the listed outputs.

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 phrase 'before applying it' provides clear usage context, implying this is a dry-run comparison preceding pbi_apply_page_spec. It does not explicitly exclude other tools or mention alternatives, but the temporal guidance is useful and clear.

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

pbi_disable_auto_date_timeA

Activa/desactiva 'Auto fecha y hora' (solo modo pbip).

Desactivarlo aligera el modelo: al reabrir el .pbip, Power BI elimina las tablas de fecha automaticas (LocalDateTable_*). Requiere proyecto .pbip activo.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses the side effect of disabling: Power BI removes automatic date tables (LocalDateTable_*) when reopening the .pbip, lightening the model. With annotations all false and unhelpful, the description carries the behavioral disclosure burden and does so adequately.

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

Conciseness5/5

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

The description is concise and front-loaded with the main action, followed by a practical benefit and a prerequisite. Each sentence adds value without unnecessary fluff.

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 and the presence of an output schema, the description covers scope ('solo modo pbip'), prerequisite, and a key side effect. It does not describe enabling behavior in detail, but the essential operational context is present.

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%, and the description does not explicitly explain the 'enabled' or 'request_id' parameters. The word 'Activa/desactiva' implicitly maps to the boolean 'enabled', but the request_id parameter is completely unaddressed, requiring the agent to infer its purpose.

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 activates/deactivates 'Auto fecha y hora' in pbip mode, using a specific verb and resource. It distinguishes itself from siblings by addressing a unique setting that no other tool mentions.

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 clear context: 'solo modo pbip' and 'Requiere proyecto .pbip activo' indicate when to use the tool. It does not explicitly name alternatives or exclusions, but the scope and prerequisite are well defined.

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

pbi_distribute_visualsA

Reparte visuales con separacion uniforme. axis: horizontal|vertical.

Necesita al menos tres visuales: con dos, la separacion ya es la que hay.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNohorizontal
pageYes
request_idNo
visual_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

It adds a behavioral detail beyond annotations: the minimum number of visuals required for the operation to have effect. Annotations only indicate non-read-only and non-destructive, so this context is useful. It doesn't disclose side effects or error conditions, but the main behavior is covered.

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

Conciseness5/5

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

The description is highly concise: two short sentences with the main verb front-loaded. It includes essential details without any fluff, 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.

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 and the presence of an output schema, the description is fairly complete. It explains the core action, axis parameter, and a critical constraint. It doesn't explain every parameter, but those are self-explanatory from names and schema defaults.

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%, and the description partially compensates by explaining the `axis` parameter with 'horizontal|vertical'. It does not elaborate on `page`, `visual_ids`, or `request_id`, but those are somewhat inferable from names. The added axis semantics are helpful but incomplete.

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

Purpose5/5

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

The description clearly states the tool's function: 'Reparte visuales con separacion uniforme' (distributes visuals with uniform separation). This specific verb+resource combination distinguishes it from sibling tools like pbi_align_visuals and pbi_arrange_visuals.

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

Usage Guidelines3/5

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

The description provides a key usage precondition: 'Necesita al menos tres visuales' (needs at least three visuals), explaining behavior with two visuals. However, it does not explicitly mention when to prefer this tool over alternatives, relying on the purpose to imply usage.

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

pbi_document_modelA

Genera documentacion completa del modelo en Markdown.

Incluye resumen, tablas, columnas, medidas, relaciones, jerarquias, roles (RLS) y advertencias de calidad. Guarda el archivo en outputs/.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive
include_qualityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations are all false, so the description carries the burden of disclosing side effects. It explicitly states 'Guarda el archivo en outputs/' (saves the file in outputs/), which is a useful side-effect disclosure beyond annotations. However, it does not mention whether existing files are overwritten or if a live connection is required.

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 two sentences long, front-loaded with the main action, and lists included content and output location without unnecessary detail. Every sentence provides value.

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

Completeness3/5

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

The output schema exists, so return values are handled. The description covers the core purpose and side effect, but lacks parameter semantics and explicit usage guidance. For a tool with two parameters and a file output, it is adequate but not complete.

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%, and the description provides almost no parameter information. It mentions quality warnings, which weakly hints at 'include_quality', but completely ignores the 'source' parameter. The description fails to compensate for the lack of schema documentation.

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 generates complete model documentation in Markdown and lists the specific included components (summary, tables, columns, measures, relationships, hierarchies, roles, quality warnings). This distinguishes it from sibling tools like pbi_model_summary or pbi_audit_model.

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 full model documentation is needed, but does not explicitly state when to use this tool versus alternatives. There are no exclusions or comparisons to sibling tools like pbi_generate_technical_documentation or pbi_model_summary.

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

pbi_document_report_layoutA

Genera documentacion Markdown del layout del informe (paginas y visuales).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

The annotations are all false (readOnlyHint=false, destructiveHint=false, etc.), providing no safety or side-effect hints. The description only says it generates Markdown documentation but does not clarify whether this is a read-only operation, whether it writes files, or if it requires a specific report context. This lack of transparency is a significant gap.

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, concise sentence that is front-loaded with the action and object. It includes the output format (Markdown) and scope (pages and visuals) without any unnecessary words.

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?

There is an output schema (as indicated by context signals), so return value details are covered. However, the description lacks context about prerequisites (e.g., whether a report must be open) and the expected output structure. For a simple tool with no parameters, this is a moderate gap.

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

Parameters4/5

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

The tool has zero parameters, so the schema is empty. The description adds no parameter details, but this is acceptable because there are no parameters to explain. The baseline of 4 for zero-parameter tools applies.

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 a specific action ('Genera documentacion Markdown') and a specific resource ('del layout del informe (paginas y visuales)'). This distinguishes it from sibling tools like pbi_document_model, which focuses on the data model, and pbi_generate_technical_documentation, which covers broader documentation.

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 report layout documentation is needed, but it does not explicitly state when to use this tool over alternatives or provide exclusion criteria. There is no mention of prerequisites or alternatives, making the guidance implicit rather than explicit.

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

pbi_duplicate_pageA

Duplica una pagina con todos sus visuales, en una sola transaccion.

Se regeneran los identificadores que deben ser unicos (el de la pagina y el de cada visual) y se conserva todo lo demas.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
new_nameYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

The description adds meaningful behavior beyond the annotations: it explains that duplication is atomic ('in a single transaction'), that unique identifiers (page and visual) are regenerated, and that everything else is preserved. This addresses side-effect expectations despite the annotations being mostly false/neutral.

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: two sentences, front-loaded with the primary purpose and followed by key behavioral details. Every sentence adds value without unnecessary length.

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

Completeness3/5

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

The description covers the core duplication behavior and ID regeneration, and an output schema exists to describe return values. However, it omits important operational constraints such as whether the source page must exist, whether 'new_name' must be unique, or what happens to visual references. This is adequate but incomplete for smooth 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%, and the description does not explain the 'page', 'new_name', or 'request_id' parameters. It only indirectly references the page concept; 'new_name' and 'request_id' are left entirely unexplained, so the agent cannot infer parameter meaning from the description.

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

Purpose5/5

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

The description states a specific action ('Duplicates a page with all its visuals') and resource ('page'), clearly distinguishing it from sibling tools like pbi_duplicate_visual. It also adds scope ('all its visuals') and execution context ('in a single transaction').

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 context is implied: use this when you need to duplicate a page and its visuals. However, there is no explicit guidance on when not to use it or which alternative to choose (e.g., pbi_duplicate_visual for just one visual, pbi_create_page_from_spec for building from spec).

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

pbi_duplicate_visualA

Duplica un visual conservando campos, formato y filtros.

Solo se regenera el identificador, que debe ser unico. La copia se desplaza offset_x/offset_y para que no quede tapando al original. target_page permite copiarlo a otra pagina.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
offset_xNo
offset_yNo
new_titleNo
visual_idYes
request_idNo
target_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

La descripción añade información valiosa más allá de las anotaciones neutrales: revela que solo se regenera el identificador (que debe ser único), que la copia se desplaza con offset_x/offset_y para no superponerse, y que target_page permite copiar a otra página. Esto cubre efectos clave de la operación, aunque no detalla permisos ni reversibilidad.

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?

La descripción consta de tres oraciones breves y directas, con la información principal al inicio. No hay relleno ni repetición de lo que ya está en el schema; cada oración aporta un dato relevante.

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?

La herramienta tiene 7 parámetros y es mutadora, pero la descripción cubre el comportamiento central y la existencia de output schema evita explicar retornos. No obstante, la falta de explicación para request_id y matices de new_title deja lagunas para una invocación correcta. En general es útil pero no completa.

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?

La cobertura del schema es 0%, por lo que la descripción debe compensar. Explica offset_x, offset_y y target_page con su propósito. Sin embargo, no aclara request_id, y el papel de new_title solo se infiere por el nombre. De los 7 parámetros, 3 reciben descripción semántica explícita, dejando vacíos para los demás.

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?

La descripción comienza con 'Duplica un visual conservando campos, formato y filtros', que es un verbo específico con recurso y alcance claro. Distingue de herramientas hermanas como pbi_create_visual o pbi_copy_visual_format al especificar qué se conserva y qué se regenera.

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?

El uso se implica claramente: duplicar un visual manteniendo propiedades. Sin embargo, no se mencionan cuándo no usar esta herramienta ni alternativas explícitas (por ejemplo, pbi_copy_visual_format o pbi_duplicate_page). Falta orientación contextual sobre escenarios o exclusiones.

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

pbi_export_excelA

Exporta la informacion disponible a un libro Excel verificado.

Crea hojas para resumen, tablas, columnas, medidas, relaciones y, si hay PBIP activo, paginas, visuales y auditoria. source admite auto|live|pbip. Si se proporciona query, ejecuta DAX de solo lectura contra Desktop y agrega Datos_DAX, declarando cualquier truncamiento.

El archivo se escribe en outputs/excel/, nunca dentro del PBIP. No sobrescribe nombres existentes, neutraliza formulas inyectadas y vuelve a abrir el XLSX antes de informar exito.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
sourceNoauto
max_rowsNo
file_nameNo
include_auditNo
include_reportNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavioral traits: files are written to `outputs/excel/` and never inside the PBIP, existing names are not overwritten, injected formulas are neutralized, and the XLSX is reopened before reporting success. It also clarifies that query execution is read-only DAX. These details significantly exceed the simple boolean 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 front-loaded with a clear purpose and uses three focused paragraphs to convey behavior, safety, and conditions. Each sentence contributes information, though the middle paragraph is dense with multiple details and could be slightly restructured for readability.

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

Completeness4/5

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

For a complex tool with multiple sheets, conditional behavior (PBIP active, DAX query), and file output, the description provides strong coverage of side effects, output location, and safety checks. However, it omits explicit parameter semantics and error scenarios, though an output schema exists to cover return structure.

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

Parameters2/5

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

The description adds meaning for `source` (auto|live|pbip) and `query` (read-only DAX against Desktop with truncation declaration), but it does not explain `max_rows`, `file_name`, `include_audit`, or `include_report`. With 0% schema description coverage, the description should compensate more; the remaining parameter semantics are left to inference from their names.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Exporta la informacion disponible a un libro Excel verificado,' clearly stating it exports available information to a verified Excel workbook. It further details the sheet types (summary, tables, columns, measures, relationships, pages, visuals, audit), which distinguishes it from sibling export tools like HTML or PDF exporters.

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

Usage Guidelines3/5

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

The description provides contextual usage details such as supported `source` modes and optional DAX query execution, but it does not explicitly state when to prefer this tool over alternatives like pbi_export_page_html or pbi_generate_pdf_report. No exclusions or when-not use cases are mentioned.

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

pbi_export_page_htmlC

Exporta una MAQUETA HTML de una pagina EXISTENTE (layout + campos de cada visual).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations are all false, offering no safety or side-effect information. The description adds that the page must exist (implying an error for nonexistent pages) and specifies the output content (layout + fields), but it does not disclose whether the HTML is returned directly or written to a file, nor any potential 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.

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the verb and resource. Every word adds value without 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?

Despite having an output schema, the description is sparse. It lacks details on return format, side effects, and parameter format. Given the tool's simplicity, the description is minimally viable but has clear gaps in usage context.

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 clarify the 'page' parameter. It only indicates that the page must exist, but does not specify whether the parameter expects a page name, ID, or other identifier. This leaves ambiguity for the agent.

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 exports an HTML layout of an existing page, including layout and fields of each visual. This is specific enough to distinguish from sibling tools like pbi_list_visuals or pbi_get_visual, though it does not explicitly name alternatives.

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 explicit guidance is provided about when to use this tool versus alternatives. The description implies it is for exporting an HTML mockup of an existing page but does not mention exclusions or alternative tools such as pbi_preview_page_spec.

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

pbi_export_pbixB

Exporta el proyecto .pbip a un archivo .pbix de verdad.

Microsoft no publica ninguna API para convertir el formato, asi que esto automatiza el flujo OFICIAL: abre el proyecto en Power BI Desktop y usa Archivo > Guardar como. No se fabrica el .pbix a mano -un zip cosido con TOM abre a veces y rompe otras-.

Antes de tocar Desktop se resuelve la ruta exacta, se valida el TMDL, se comprueba que el destino cabe en Windows y, si existe y pasas overwrite=true, se respalda. Si el destino existe y no lo pasas, falla ANTES de abrir ninguna ventana.

refresh: 'auto' intenta refrescar y declara el resultado sin adornarlo; 'required' no exporta si no pudo refrescar -para no entregar un .pbix como si tuviera datos-; 'skip' guarda el estado que el modelo tenga ahora.

Que el dialogo desaparezca NO es que se haya guardado: se comprueba que el archivo existe, que es .pbix y no .pbit, que pesa mas de cero, que su fecha es de esta ejecucion y que el lector de .pbix lo puede abrir con informe y modelo dentro. Si saved_as_verified no es true, la respuesta no es un exito.

leave_open=true (por defecto) deja abierto exactamente el .pbix generado y lo selecciona como modelo activo. Nunca cierra una ventana que no abrio esta operacion.

Requiere Windows, Power BI Desktop instalado y el extra export (pip install "horizun-pbi-mcp[export]"). El cuadro de guardado se conduce por UI Automation desde un proceso aparte: los mensajes Win32 cambian lo que se LEE en el desplegable de tipo sin avisar a la aplicacion, y Desktop sigue guardando un proyecto. pbi_capabilities dice en pbix_export si esta disponible aqui y ahora.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNoauto
timeoutNo
out_pathNo
overwriteNo
pbip_pathNo
leave_openNo
request_idNo
confirm_reuseNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior1/5

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

The description is rich in behavioral detail: it verifies the saved file, never closes windows it did not open, backs up before overwriting, and explains UI Automation caveats. However, it explicitly says that with overwrite=true an existing destination is overwritten, which contradicts the annotation destructiveHint=false. Per the rubric, a description that contradicts annotations receives a score of 1 and must be flagged.

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

Conciseness4/5

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

The description is long but well structured: purpose first, then preconditions, refresh behavior, verification, leave_open, and environment requirements. Some phrasing like 'un zip cosido con TOM' adds color and explanatory value. It is dense enough that most sentences earn their place, though a few could be tightened.

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

Completeness3/5

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

The description is unusually complete on workflow, preconditions, verification, and failure behavior, and an output schema exists to document return values. However, with 8 parameters and no schema descriptions for any of them, leaving five parameters undocumented in the description creates a real completeness gap. The annotation contradiction further undermines trust in the definition.

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 carries the burden of explaining parameters. It does explain refresh, overwrite, and leave_open with real semantics. However, out_path, pbip_path, timeout, request_id, and confirm_reuse are left unexplained, leaving meaningful gaps for an agent trying 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 first sentence states a specific verb and resource: 'Exporta el proyecto .pbip a un archivo .pbix'. It also clarifies this is the official Power BI Desktop 'Guardar como' flow, which distinguishes it from sibling tools like pbi_convert_pbix_to_pbip, pbi_open_in_desktop, or other exporters.

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

Usage Guidelines4/5

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

The description gives concrete usage conditions: Windows, Power BI Desktop, the export extra, and a direct pointer to check pbi_capabilities for pbix_export availability. It also explains when the tool fails before opening windows and what each refresh mode does. It does not explicitly compare against sibling export tools, so it stops short of a 5.

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

pbi_export_report_contentA

Exporta el CONTENIDO del informe: los datos que muestra el tablero.

A diferencia de pbi_export_excel y pbi_generate_pdf_report, que documentan el proyecto, esto exporta lo que el cliente ve. select admite tres formas, combinables:

  • pages: ["Matriz de Riesgos"] -> la tabla que hay detras de CADA visual de esas paginas (por nombre visible o id interno).

  • visuals: ["15b0fc11e628..."] -> solo esos visuales.

  • queries: [{name, rows:["Tabla[Columna]"], values:["Medida"], filters:[{field, values, exclude?}], top_n?}] -> lo que el cliente declare, sin referirse a ningun visual.

Cada consulta se reconstruye a partir de los campos del visual, se ejecuta en SOLO LECTURA contra el modelo en vivo y sale como una hoja de Excel (format: xlsx|pdf|both).

Necesita el modelo en vivo: los datos solo existen en el motor, no en el .pbip. Con auto_open abre el informe en Desktop si hace falta, y se NIEGA a exportar si el modelo esta abierto pero sin procesar, en vez de publicar un archivo en blanco. Con dry_run devuelve el DAX que ejecutaria sin tocar el motor ni escribir nada.

Cada hoja declara con que filtros se saco y, sobre todo, cuales no se pudieron aplicar. Los visuales sin consulta tabular -textos, imagenes, formas- se listan aparte con el motivo.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
formatNoxlsx
selectYes
dry_runNo
max_rowsNo
auto_openNo
file_nameNo
max_rows_pdfNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

The description goes far beyond the sparse annotations: it discloses that queries run 'en SOLO LECTURA,' that the tool refuses to export if the model is open but unprocessed, that dry_run returns DAX without touching the engine, and that each sheet declares applied and unapplied filters. This is rich behavioral disclosure and does not contradict the annotations.

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

Conciseness5/5

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

The description is dense but well-structured: one-line purpose, then clear line breaks for select forms and behavioral details. Every sentence adds value; there is no filler or repetition. It is front-loaded and 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.

Completeness5/5

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

For a tool with nested select objects, 8 parameters, and an output schema, the description is remarkably complete. It covers what the tool exports, how to select content, execution modes, safety guarantees, output format, and sibling differentiation. An agent can correctly invoke it without additional clarification.

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

Parameters4/5

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

Schema coverage is 0%, so the description bears full responsibility. It thoroughly explains the select parameter's three combinable forms, including pages, visuals, and queries with their sub-fields. It also explains format values, dry_run, and auto_open. However, it does not explicitly explain max_rows, max_rows_pdf, file_name, or title, though these are reasonably inferable from names/defaults.

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 and object: 'Exporta el CONTENIDO del informe: los datos que muestra el tablero.' It also explicitly contrasts with pbi_export_excel and pbi_generate_pdf_report, which 'documentan el proyecto,' making the purpose unmistakable and distinct from siblings.

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 names the alternatives explicitly ('A diferencia de pbi_export_excel y pbi_generate_pdf_report') and explains what makes this tool different: it exports what the client sees. It also provides clear context for when to use it, including the live-model requirement and the dry_run/auto_open modes.

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

pbi_finalize_deliveryA

El ULTIMO paso de una construccion: del proyecto al entregable.

Hace de extremo a extremo lo que hasta ahora eran cinco llamadas y un par de suposiciones: resuelve el archivo exacto que le pasas, lo prepara -convirtiendolo si le das un .pbix-, valida el proyecto, exporta a .pbix conduciendo Power BI Desktop, inspecciona el resultado y deja abierto justo el entregable, seleccionado como modelo activo.

Una sola respuesta verificable: output_pbix, output_sha256, output_size, saved_as_verified y opened_path_verified.

path se puede omitir para usar el proyecto activo. format solo acepta 'pbix' por ahora, y se declara asi en vez de fingir que hay mas. Requiere Windows con Power BI Desktop instalado.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
formatNopbix
refreshNoauto
out_pathNo
overwriteNo
leave_openNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With all annotations false, the description carries the behavioral disclosure burden and does so well. It discloses the full pipeline, including conversion of .pbix, that it drives Power BI Desktop, that it inspects the result, and that it leaves the deliverable open with the active model selected. It also flags format limitations and Windows requirements, though it does not explain side effects on the source project or overwrite failure behavior.

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

Conciseness4/5

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

The description is moderately sized but well structured: it front-loads the ultimate purpose, summarizes the pipeline, lists the output keys, and then clarifies parameter and requirement notes. Each section earns its place, though the Spanish phrasing is slightly editorial and could be tightened.

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 tool with 7 parameters, 0% schema coverage, and no meaningful annotations, the description is incomplete despite the existing output schema. It covers the core workflow and output keys, but leaves five parameters and important edge-case behavior such as overwrite and refresh undocumented. An agent cannot fully determine how to invoke all options correctly.

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% and no parameters have descriptions, so the description must compensate. It only explains path ('se puede omitir para usar el proyecto activo') and format ('solo acepta pbix'), leaving refresh, out_path, overwrite, leave_open, and request_id unexplained. The names and defaults hint at some meaning, but the description is far from sufficient for seven parameters.

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 identifies this as the final step of a build pipeline and enumerates a concrete end-to-end behavior: resolving a file, converting .pbix, validating, exporting via Power BI Desktop, inspecting, and opening the result as the active model. This strongly differentiates it from sibling operations like prepare_delivery or export_pbix because it explicitly claims to replace five earlier calls.

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

Usage Guidelines4/5

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

It explicitly labels the tool as 'EL ULTIMO paso de una construccion' and says it replaces five separate calls and assumptions, giving agents clear when-to-use context. It also states preconditions (Windows + Power BI Desktop) and explains that path can be omitted to use the active project. It does not explicitly name alternative tools or state when not to use it, so it stops short of a 5.

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

pbi_generate_page_specA
Read-only

Genera un borrador de spec a partir de un preset y unos campos.

preset: executive | financial | sales | operations | evm | detail. measures: medidas para los KPIs y los graficos. category: columna para el eje de los graficos. El resultado es un spec editable: revisalo y pasalo por pbi_validate_page_spec.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
presetNoexecutive
categoryNo
measuresNo
page_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With readOnlyHint=true, the safety profile is already covered. The description adds useful behavior beyond annotations: the output is an editable draft requiring review and validation, and it enumerates the allowed preset values. This helps set expectations without contradicting the read-only annotation.

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

Conciseness5/5

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

The description is compact and well-formatted, with a clear first sentence, a backtick-delimited parameter list, and a concise use instruction. Every sentence adds value and there is no redundancy.

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

Completeness3/5

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

The description provides a clear workflow (generate, review, validate) and references an output schema, but it misses the required page_name parameter and does not mention defaults or constraints. Given the tool's moderate complexity and output schema presence, the description is adequate but not complete.

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

Parameters3/5

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

Schema coverage is 0%, so the description carries the burden. It explains preset, measures, and category, but omits the required page_name parameter and the width/height parameters. This partial compensation is better than nothing but leaves critical parameters undocumented.

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 'Genera un borrador de spec' (generates a draft spec) from a preset and fields, with a specific verb and resource. It also distinguishes itself from sibling tools by mentioning the subsequent validation step with pbi_validate_page_spec.

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 as the generation step by noting the result should be reviewed and passed to pbi_validate_page_spec, but it does not explicitly state when to use this tool versus alternatives like pbi_preview_page_spec or pbi_apply_page_spec. It provides a workflow hint but no exclusions or alternative comparisons.

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

pbi_generate_pdf_reportA

Genera un PDF ejecutivo, tecnico o de auditoria con capturas.

Compone informacion existente del modelo, paginas, visuales y auditoria. capture_paths acepta hasta 20 PNG/JPEG, por ejemplo las rutas devueltas por pbi_validate_desktop_render. No inventa graficas si no hay captura.

El PDF se reabre con pypdf y, cuando Poppler esta disponible, su primera pagina se renderiza a PNG como prueba visual. Se guarda en outputs/pdf/.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
sourceNoauto
file_nameNo
report_typeNoexecutive
max_findingsNo
capture_pathsNo
include_auditNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations do not convey any safety or behavior hints, so the description carries the burden. It discloses that the tool does not invent graphics when no captures are provided, reopens the PDF with pypdf, and renders the first page to PNG if Poppler is available, plus states the output directory. This adds meaningful behavioral context beyond 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 four sentences, each contributing useful information: main purpose, input constraints, behavior when captures are absent, and output details. It is dense but not bloated, 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.

Completeness3/5

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

For a tool with 7 optional parameters and an output schema, the description gives enough to understand the core workflow and output location, but it does not explain several parameters or their interplay. The output schema covers return values, yet the lack of parameter descriptions makes the tool less than fully self-contained.

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 coverage is 0%, so the description must compensate. It only elaborates on `capture_paths` (accepted formats, max 20, example source) and indirectly hints at `report_type` via 'executive, technical, or audit' and `include_audit` via 'audit information.' The remaining parameters (`title`, `source`, `file_name`, `max_findings`) are left unexplained, leaving a significant 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 'generates an executive, technical, or audit PDF with captures' and explains it composes existing model, page, visual, and audit information. It distinguishes itself from siblings like `pbi_generate_technical_documentation` by focusing on PDF generation with screenshots and references `pbi_validate_desktop_render` for input paths.

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

Usage Guidelines4/5

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

The description provides clear context by specifying that `capture_paths` should contain paths returned by `pbi_validate_desktop_render`, implying use after rendering desktop captures. It does not explicitly mention when not to use or name alternative tools, but the context is clear enough.

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

pbi_generate_report_pageB

Genera una pagina con visuales propuestos a partir del modelo.

Revisa el modelo, valida los campos sugeridos (no inventa campos), crea la pagina, agrega tarjetas para medidas y un grafico por categoria, y acomoda todo con el layout indicado. Devuelve un resumen de lo creado.

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutNoexecutive_summary
objectiveNo
page_nameYes
request_idNo
available_fields_hintNo
create_missing_measuresNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations provide no safety hints (readOnlyHint=false, destructiveHint=false), so the description carries the burden. It usefully discloses that fields are validated and not invented, that the page gets cards and charts, and that a summary is returned. It does not mention side effects like overwriting pages or creating measures when create_missing_measures is true.

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose, followed by a short process list. Each sentence adds useful information, though the phrasing could be tightened slightly without losing meaning.

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?

With an output schema present, the return summary need not be over-explained. However, the description omits critical context about which parameters control the generation, prerequisites (e.g., selected model), and how this tool differs from similar page-creation siblings. It is adequate but not thorough.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not mention any of the six parameters by name. Only 'layout indicado' loosely alludes to the layout parameter, and no guidance is given for page_name, objective, request_id, available_fields_hint, or create_missing_measures.

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 generates a report page with visuals proposed from the model, using specific verbs like 'Genera' and 'crea'. It outlines key actions (validating fields, adding cards and charts) but does not explicitly distinguish itself from sibling tools like pbi_compose_page or pbi_create_page_from_spec.

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 an AI-generated page layout from the model is desired, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. The step-by-step process gives some context, but no exclusions or comparison to related tools.

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

pbi_generate_technical_documentationA

Documentacion tecnica completa en Markdown, guardada en outputs/.

Incluye el modelo (tablas, medidas con su DAX y dependencias), el informe pagina a pagina con los campos de cada visual, y la auditoria con puntaje por dominio.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses that output is saved to outputs/ and includes the audit scoring, providing some context about side effects. Annotations are all false and unhelpful, so the description carries the burden; it does not mention whether the tool modifies the model/report or if there are prerequisites, leaving gaps in behavioral transparency.

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

Conciseness5/5

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

The description is concise (two sentences), front-loaded with the core purpose and output location, and efficiently lists the documentation contents 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?

For a zero-parameter generation tool, the description adequately covers what is produced (model, report, audit) and where. It could mention prerequisites like a selected model or open report, but the output schema likely covers return details, making the description reasonably 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?

The tool has zero parameters, and the empty schema provides no semantic information. The description's focus on what the documentation includes effectively compensates for the lack of parameters, meeting the baseline for a no-parameter tool.

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

Purpose5/5

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

The description clearly states the tool generates complete technical documentation in Markdown, listing specific contents (model, report, audit). It distinguishes itself from sibling tools like pbi_document_model and pbi_document_report_layout by being comprehensive and including the audit score.

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 through the word 'complete' and the enumerated contents, suggesting it is the all-in-one documentation option. However, it does not explicitly state when to use this tool versus alternatives like pbi_document_model or pbi_audit_project, nor provide exclusions.

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

pbi_get_briefA
Read-only

Lee el brief de intencion del proyecto activo.

Devuelve defined: false si no existe —con las preguntas que hay que hacerle al usuario para definirlo—, o el brief completo y el sistema de diseño que recomienda. Consultalo ANTES de proponer paginas o elegir sistema: es la diferencia entre servir al proposito del tablero y deducirlo todo del modelo.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds meaningful behavior beyond that: it describes two specific return states (defined:false with clarifying questions, or the full brief plus recommended design system). This is useful context for an agent to know what to expect and how to handle the undefined case.

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 two short, focused paragraphs. The first sentence states the core purpose, and the second adds return behavior and usage timing. Every sentence contributes essential information without redundancy or filler.

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

Completeness4/5

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

For a simple read tool with an output schema and annotations, this description is largely complete: it explains what it does, when to use it, and what it returns in both possible situations. The only gap is the unexplained request_id parameter, but given its optionality and the tool's simplicity, the overall context remains sufficient.

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

Parameters2/5

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

The only parameter, request_id, is optional with a default empty string, but the description never mentions it. Schema description coverage is 0%, so the description must compensate but does not. An agent is left wondering what request_id refers to and whether it is needed to select the 'active project' or if it is merely a correlation ID.

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

Purpose5/5

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

The description starts with a specific verb+resource: 'Lee el brief de intencion del proyecto activo' (Reads the intent brief of the active project). It clearly distinguishes from siblings like pbi_define_brief (which would define rather than read) and pbi_apply_design_system (which applies rather than reads), while also mentioning it returns the recommended design system.

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 gives explicit when-to-use guidance: 'Consultalo ANTES de proponer paginas o elegir sistema' (Consult it BEFORE proposing pages or choosing a system), and explains the consequence of not doing so. This effectively communicates when it should be used versus relying on model inference, covering both the 'when' and an implied alternative.

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

pbi_get_objectA
Read-only

Devuelve un objeto del modelo con todo su detalle.

kind: table | column | measure. Para una columna usa 'Tabla[Columna]'. En una medida incluye ademas las referencias que aparecen en su DAX.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
nameYes
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already signal read-only behavior (readOnlyHint: true), and the description adds meaningful detail beyond that: it explains that measures include DAX references and that columns require a specific bracket syntax. This goes beyond the basic safety profile and clarifies the output contents.

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

Conciseness5/5

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

The description is compact and front-loaded, with the core purpose in the first sentence. The subsequent two sentences deliver specific, non-redundant usage details. Every sentence earns its place, achieving high information density without clutter.

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

Completeness4/5

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

Given the output schema exists (avoiding the need to detail return values) and the read-only annotation covers safety, the description is largely complete for the tool's complexity. It explains the main parameters and a special behavior (measure DAX references). The only gap is the undocumented 'source' parameter, but overall it offers enough context for correct invocation.

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 compensates by explaining the 'kind' values (table/column/measure) and the naming format for columns. However, the 'source' parameter is left completely unexplained, and 'name' semantics are only partially implied through the column example. It adds value but does not fully replicate missing schema descriptions.

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 and resource: 'Devuelve un objeto del modelo con todo su detalle' (returns a model object with all its detail). It also enumerates the supported kinds (table, column, measure), which further clarifies the scope. However, it does not explicitly differentiate this tool from sibling getters like pbi_get_visual or pbi_measure_dependencies.

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 a specific naming convention for columns ('Tabla[Columna]') but offers no when-to-use guidance or exclusions relative to alternatives. There is no mention of when to prefer this tool over sibling tools, leaving the agent to infer usage from context.

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

pbi_get_power_queryA
Read-only

Lee la consulta Power Query (M) de una particion o expresion.

En un .pbip el M no tiene archivo propio: vive dentro del TMDL, en la partition de cada tabla y en expressions.tmdl. Esta tool lo saca tal cual, con su SHA-256, que es lo que despues acepta pbi_update_power_query como expected_sha256 para no escribir sobre una version que ya cambio.

table + name seleccionan una particion; name con kind='expression', una expresion con nombre. Si la seleccion queda ambigua o no existe, el error trae la lista de candidatos.

Solo lectura, y solo lectura de TEXTO: nadie ha ejecutado esta consulta. No hay motor M fuera de Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
nameNo
tableNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description states that the tool is read-only text access, does not execute the M query, and has no M engine outside Power BI Desktop. It also discloses the SHA-256 output and error behavior with candidate lists, adding substantial behavioral context.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: the main action is front-loaded, selection semantics are precise, error behavior is covered, and the safety note about not executing queries is valuable. It is appropriately sized for a tool with subtle selection logic.

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 partition-vs-expression selection and the 0% schema coverage, the description is remarkably complete. It explains where M lives in a .pbip, how to select the target, what is returned, how the result is consumed by pbi_update_power_query, and what happens on ambiguity. An output schema exists, so return-value details do not need to be duplicated.

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 carries the full burden of explaining parameters. It clearly defines the roles of table, name, and kind, and explains how they combine, including the special kind='expression' case. It could be more explicit about value formats, but the guidance is sufficient for invocation.

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

Purpose5/5

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

The description opens with a specific verb and resource: reads the Power Query (M) of a partition or expression. It also clarifies the .pbip/TMDL context and the SHA-256 return value, which clearly distinguishes it from sibling tools like pbi_list_partitions or pbi_get_object.

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

Usage Guidelines4/5

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

The description gives detailed selection guidance: table + name select a partition, while name with kind='expression' selects a named expression, and ambiguous/nonexistent selections produce a candidate list. It does not explicitly contrast with other read tools, but the context strongly implies when this tool is appropriate.

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

pbi_get_visualB
Read-only

Definicion completa y normalizada de un visual.

Devuelve tipo, posicion, orden Z, titulo, campos por rol, medidas y columnas referenciadas, si tiene formato propio, sus filtros, y la definicion cruda por si hace falta inspeccionarla.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
visual_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior4/5

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

The description goes beyond the readOnlyHint annotation by explaining the exact content of the return payload, including the 'definicion cruda' for deeper inspection needs. This adds meaningful context about what the tool discloses and its completeness. It does not contradict the annotations and adds value beyond the simple read-only marker.

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 two sentences long, front-loaded with the core purpose, and every word earns its place. It efficiently enumerates the returned fields without unnecessary elaboration. This is an exemplary model of concise, informative tool documentation.

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

Completeness3/5

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

The tool has an output schema, so the return value list is redundant but helpful. However, the complete lack of parameter semantics and usage guidance leaves the description incomplete for an agent trying to invoke it correctly. For a simple read-only getter, it is adequate but has clear gaps in parameter and alternative guidance.

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 input schema has zero description coverage for the two parameters (page, visual_id), and the description provides no explanation of their meaning, format, or constraints. This is a significant gap since the schema itself offers no help. The parameter names are somewhat self-explanatory, but the description does not compensate for the lack of schema documentation.

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 it returns a complete and normalized definition of a visual, listing specific attributes (type, position, Z-order, title, fields, filters, raw definition). This distinguishes it from list-oriented siblings like pbi_list_visuals, though it does not explicitly name an alternative. The verb 'Devuelve' (returns) indicates the retrieval action, but it is slightly less direct than a verb-first description.

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 the tool is used when a full, normalized visual definition is needed, including raw inspection data. However, it provides no explicit guidance on when to use this tool versus alternatives such as pbi_get_object or pbi_list_visuals, nor any exclusions. The context is clear but not fully developed.

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

pbi_health_checkA
Read-only

Estado general del servidor: dependencias, DLLs, sesion y proyecto.

Solo lectura. Es lo primero que conviene llamar: dice si la capa EN VIVO esta disponible, si hay un proyecto .pbip abierto y si algo requiere atencion (sesion obsoleta, journals pendientes).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint true; the description reinforces this with 'Solo lectura' and adds behavioral context by enumerating the aspects it reports (dependencies, DLLs, session, project state) and that it flags issues like obsolete sessions and pending journals. No contradiction with annotations.

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—two sentences—and front-loaded with the core function ('Estado general del servidor'). Each sentence provides distinct value: the first defines scope, the second explains usage and expected outputs. No wasted words.

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 zero-parameter interface, existing output schema, and read-only annotation, the description fully captures the tool's role and the signals it reports. It tells the agent when to invoke it and what information it exposes, making it sufficient for selection and invocation.

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

Parameters4/5

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

The tool has zero parameters, making schema coverage trivially 100%. There are no hidden parameters to document, so the baseline of 4 applies without any need for description 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 the tool's purpose: general server status (dependencies, DLLs, session, project) and checking whether the live layer is available and whether a .pbip project is open. It distinguishes itself from siblings like pbi_test_connection and pbi_session_info by positioning itself as the first diagnostic call.

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?

Explicitly states 'Es lo primero que conviene llamar' (it's the first thing to call), providing clear when-to-use context. It also lists what the tool checks (e.g., obsolete session, pending journals), but does not explicitly name alternatives 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.

pbi_hide_columnsA

Oculta/muestra VARIAS columnas como un solo lote.

columns: lista de {"table": ..., "column": ...}.

Valida todas las entradas antes de escribir: si alguna tabla o columna no existe, no se modifica nada y el error indica el indice. Los archivos TMDL se escriben en una sola transaccion y el modelo en vivo con un solo SaveChanges. count es el numero de entradas SOLICITADAS (incluidos duplicados); results trae una entrada por cada una, en el mismo orden.

mode='both' esta temporalmente deshabilitado bajo la politica estricta: 'live' necesita Power BI Desktop abierto y 'pbip' lo necesita cerrado, asi que una sola llamada aplicaria solo uno de los dos destinos. Elige 'live' o 'pbip', o usa 'auto' y se mira el estado para elegir. Si estas construyendo desde cero, 'auto' o 'pbip': el defecto es 'live' y exige Desktop abierto.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
hiddenNo
columnsYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

La descripción revela varios comportamientos más allá de las anotaciones: valida todas las entradas antes de escribir, escribe en una sola transacción, y usa un solo SaveChanges para el modelo en vivo. Explica la semántica de 'count' y 'results', así como las restricciones de modos. Todo esto es valor adicional significativo que no está en las anotaciones.

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?

La descripción es concisa pero densa; arranca con el propósito y luego detalla aspectos técnicos en frases cortas. No hay relleno. La parte de count/results podría ser redundante si el output schema ya lo cubre, pero el nivel de detalle es aceptable.

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?

Cubre modos, validación, atomicidad, orden de resultados y significado de count/results. No explica 'hidden' ni 'request_id', pero son parámetros menores. Para un lote con validación y múltiples destinos, la descripción es bastante completa, especialmente si el output schema documenta los retornos.

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?

La descripción define el formato de 'columns' como lista de {table, column} y explica 'count' y 'results'. Sin embargo, no documenta 'hidden' ni 'request_id'; 'hidden' se deduce fácilmente, pero 'request_id' queda sin contexto. Dado que la cobertura del esquema es 0%, la descripción compensa parcialmente pero deja lagunas.

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?

La descripción comienza con 'Oculta/muestra VARIAS columnas como un solo lote', que es un verbo específico con recurso claro. Aunque no compara explícitamente con pbi_set_column_visibility, el énfasis en 'VARIAS' y 'un solo lote' lo distingue claramente de herramientas de una sola columna.

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?

Da orientación concreta sobre cuándo usar cada modo: 'live' requiere Power BI Desktop abierto, 'pbip' cerrado, y 'auto' selecciona según el estado. Además, menciona que 'mode='both'' está deshabilitado temporalmente y recomienda 'auto' o 'pbip' para construcción desde cero. No alternativas para otros casos, pero el contexto de lote queda implícito.

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

pbi_inspect_journalA
Read-only

Inspecciona un journal y lo compara con el estado ACTUAL del proyecto.

Solo lectura: no restaura nada. Por cada archivo dice si sigue como el original, si hay respaldo disponible y cual fue su desenlace. journal: ruta devuelta por pbi_list_pending_journals.

ParametersJSON Schema
NameRequiredDescriptionDefault
journalYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

While annotations already provide readOnlyHint=true, the description adds meaningful behavioral detail: it compares against current state, reports per-file status (original, backup availability, outcome), and reinforces that no restoration occurs. This goes well beyond the annotation by explaining the tool's analysis and output nature.

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

Conciseness5/5

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

The description is concise and front-loaded, with the primary action in the first sentence, followed by a short read-only note, then a summary of output, and finally the parameter explanation. Every sentence adds value, 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 has only one parameter, an output schema, and annotations declaring read-only behavior, the description is complete. It covers the tool's purpose, safety profile, parameter source, and the kind of results produced. No additional context seems necessary for an agent to decide when and how to use 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?

The schema for 'journal' provides only type and required status with no description (0% coverage). The description compensates fully by explaining the parameter's meaning and origin: '`journal`: ruta devuelta por pbi_list_pending_journals'. This gives the agent the necessary context to correctly supply the value.

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

Purpose5/5

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

The description clearly states the tool's function: 'Inspecciona un journal y lo compara con el estado ACTUAL del proyecto' (inspects a journal and compares it with the current project state). It distinguishes itself from siblings like pbi_recover_from_journal by explicitly stating 'Solo lectura: no restaura nada' (read-only, restores nothing), making its purpose unique.

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

Usage Guidelines4/5

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

The description provides clear context by noting it is read-only and does not restore anything, implying it should be used for inspection rather than recovery. It also tells users where to obtain the journal parameter ('ruta devuelta por pbi_list_pending_journals'). However, it does not explicitly name alternative tools for restoration, so it lacks explicit when-not-to-use guidance.

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

pbi_inspect_pbixA
Read-only

Radiografia de un .pbix SIN convertirlo ni abrir Power BI Desktop.

Dice en que formato esta el informe ('pbir' si ya trae el formato mejorado y solo hay que copiarlo, 'layout' si es el heredado y hay que traducirlo), si lleva modelo de datos propio o es un informe con conexion en vivo, y cuantas paginas, recursos y visuales personalizados tiene. Sirve para saber que esperar antes de lanzar la conversion.

path: ruta al archivo .pbix.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds valuable behavioral detail: it does NOT convert or open Power BI Desktop. This clarifies the tool's non-invasive nature beyond the annotations, but it does not discuss edge cases like invalid paths or file access issues.

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 concise, three-sentence paragraph in Spanish that front-loads the core purpose and lists key outputs succinctly. Every sentence adds value, and the parameter explanation is cleanly separated at the end. No wasted words.

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 is a read-only inspection utility with a single parameter and an output schema (not shown). The description provides enough context about what the tool reports and when to use it, without needing to detail return structure. It could mention prerequisites (e.g., file existence) but overall is complete relative to its simplicity.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate for the single 'path' parameter. It provides a clear definition ('ruta al archivo .pbix') that adds context to the bare schema title, explaining the parameter's role as the target file path. While minimal, it is sufficient for a single simple 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 tool inspects a .pbix file without converting or opening Power BI Desktop. It specifies exactly what information is provided (format, data model type, page/resource/custom visual counts), making it distinct from sibling conversion and listing tools.

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

Usage Guidelines4/5

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

The description explicitly says it is for knowing what to expect before launching a conversion ('Sirve para saber que esperar antes de lanzar la conversion'). This gives clear usage context, but it does not name alternatives or explicitly state when not to use it, leaving a small gap.

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

pbi_list_audit_rulesA
Read-only

Catalogo de reglas de auditoria disponibles, con su dominio y severidad.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description adds that results include domain and severity, which is helpful context. However, it does not disclose further behavioral traits such as authentication, rate limits, or exact return structure beyond those fields.

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, compact sentence that immediately communicates the resource and key attributes (domain, severity). It wastes no words and is appropriately front-loaded.

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

Completeness5/5

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

For a zero-parameter, read-only catalog tool with readOnlyHint annotation and an output schema, the description is complete. It clearly communicates the purpose and the included fields, making it sufficient for an agent to select and invoke 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?

This tool has zero parameters, and the input schema is empty, so there are no parameter semantics to clarify. Per rubric, the baseline for 0 parameters is 4, and the description does not need to compensate for schema 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 it is a catalog of available audit rules with their domain and severity, which distinguishes it from sibling tools like pbi_list_autofix_rules. It uses a specific resource and conveys the listing nature.

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?

It implies usage as a discovery/preflight tool for audit rules but does not explicitly state when to use it versus alternatives such as pbi_audit_project or pbi_list_autofix_rules. The guidance is implied rather than explicit.

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

pbi_list_autofix_rulesA
Read-only

Reglas que tienen correccion automatica, y en que consiste cada una.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates this is a safe read operation. The description adds minimal behavioral context by clarifying that it returns the rules and their details, but does not disclose any additional traits such as permissions or data scope.

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, clear sentence with no unnecessary words. It efficiently conveys the tool's purpose and output content.

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

Completeness4/5

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

For a simple list tool with no parameters and an output schema present, the description is adequate. It specifies the resource (autofix rules) and the kind of information returned (what each rule consists of), which is sufficient for basic understanding.

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

Parameters4/5

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

The tool has zero parameters, so the description does not need to explain parameter semantics. The baseline of 4 is appropriate since the schema is empty and there is nothing to elaborate.

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 that the tool lists rules with automatic correction and describes what each rule consists of. It distinguishes itself from sibling tools like pbi_list_audit_rules by focusing specifically on autofix rules.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives or any conditions for its use. The description simply states what it returns, leaving the agent to infer usage from the name and context.

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

pbi_list_bookmarksA
Read-only

Marcadores del informe, y los que no cuadran entre indice y disco.

Un marcador que no esta en el indice no se muestra; una entrada del indice sin archivo rompe el panel. Los dos casos son mudos al abrir.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

The description goes well beyond the readOnlyHint annotation by explaining edge-case behaviors: bookmarks missing from the index are invisible, and index entries without files break the panel, both silently. This is valuable context that annotations do not provide.

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

Conciseness4/5

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

The description is concise and front-loaded, with each sentence adding meaningful information. It is slightly cryptic due to Spanish phrasing and domain-specific terms, but remains appropriately sized and structured.

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?

With an output schema present, the description does not need to explain return values. It covers the tool's purpose and important edge cases, though it leaves 'index' and 'disk' somewhat undefined, which may be clear only in context.

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

Parameters4/5

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

The tool takes no parameters, so there is nothing for the description to clarify beyond the schema. The baseline of 4 applies, and no additional parameter explanation is needed.

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

Purpose5/5

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

The description clearly states the tool lists report bookmarks and identifies inconsistencies between index and disk. It distinguishes itself from sibling tools like pbi_create_bookmark and pbi_delete_bookmark by focusing on enumeration and inconsistency detection.

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 explicit guidance is provided on when to use this tool versus alternatives. The description implies it is for inspecting bookmarks, but it does not state prerequisites, exclusions, or contrast with other bookmark-related tools.

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

pbi_list_convertible_pbixA
Read-only

Lista los .pbix de una carpeta y como se convertiria cada uno.

Recorre los archivos sin abrirlos en Desktop y dice, por cada uno, si el informe se copiaria (ya esta en PBIR) o habria que traducirlo, y si hace falta Desktop para sacar el modelo. Es la vista previa del lote.

path: carpeta (o un .pbix suelto). recursive: incluir subcarpetas.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

The description adds behavioral detail beyond the readOnlyHint annotation: it does not open Desktop, examines each file, and reports whether each report would be copied (already in PBIR) or needs translation, and whether Desktop is required for model extraction. This is consistent with the annotation and clarifies the non-destructive preview nature.

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 tight and well-structured: a one-sentence summary, a brief behavioral explanation, and concise parameter documentation. No redundant or filler 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?

With an output schema present, the description adequately covers the tool's scope: it lists files, provides per-file conversion decisions, explains path/recursive semantics, and gives the preview context. It is sufficient for an agent to invoke 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?

Schema description coverage is 0%, but the description fully compensates by explaining `path` as a folder or a single .pbix file, and `recursive` as including subfolders. This provides clear semantic 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 lists .pbix files in a folder and predicts conversion status for each, and explicitly calls itself 'la vista previa del lote' (the preview of the batch), distinguishing it from the conversion tool pbi_convert_pbix_to_pbip.

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 clear context by describing this as the preview step before batch conversion and notes it runs 'sin abrirlos en Desktop' (without opening them in Desktop), implying usage for safe pre-conversion assessment. However, it does not name alternative tools or explicitly state when not to use it.

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

pbi_list_design_systemsA
Read-only

Sistemas de diseno disponibles: para que sirve cada uno y que trae.

Un sistema decide a la vez el tema (color y tipografia, con paletas ya verificadas contra daltonismo), el tamano del lienzo, la rejilla sobre la que se coloca todo y la escala de texto. Son la misma decision: un tablero de sala se lee a cuatro metros y uno en PDF a cuarenta centimetros, y eso no es el mismo diseno con otro color.

Eligelo ANTES de la primera pagina; cambiarlo despues obliga a recolocarlo todo.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds conceptual context about design systems (color/typography palettes, canvas size, grid, text scale) and the consequence of changing systems late. This adds value beyond the annotation but does not disclose concrete behaviors like return format or pagination. No contradiction with annotations.

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

Conciseness4/5

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

The description is concise yet informative. It front-loads the core purpose in the first sentence, then provides a helpful conceptual explanation. The metaphor about a room board versus a PDF is illustrative but slightly extraneous; still, it reinforces the importance of choosing early. Every sentence contributes meaning, and the length is appropriate.

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

Completeness4/5

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

For a simple list tool with an output schema, the description provides sufficient context: it explains what design systems are, what they include, and why they should be chosen before building pages. It does not explicitly link to pbi_apply_design_system, but the overall guidance is complete enough for an agent to understand the tool's role in the workflow.

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

Parameters3/5

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

The only parameter is 'request_id', an optional string with a default of ''. The description does not discuss parameters, and schema description coverage is 0%. However, the parameter is trivial and self-explanatory from the schema. The description adds no parameter meaning, but none is really needed for such a simple optional field, so a baseline score of 3 is appropriate.

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 begins 'Sistemas de diseno disponibles: para que sirve cada uno y que trae' which clearly indicates this is a listing tool for design systems, and goes on to explain what a design system encompasses (theme, canvas, grid, text scale). The name also clearly states the verb 'list' and resource 'design systems'. It somewhat distinguishes from sibling pbi_list_themes by describing the broader scope of design systems, though not explicitly naming alternatives.

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 gives important timing guidance: 'Eligelo ANTES de la primera pagina; cambiarlo despues obliga a recolocarlo todo.' This implies when to use this tool (before starting page composition) and why it matters. However, it does not explicitly contrast this tool with related siblings like pbi_apply_design_system or pbi_list_themes, nor does it state when not to use it.

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

pbi_list_desktop_modelsA
Read-only

Lista los modelos de Power BI Desktop abiertos localmente.

Detecta el motor de Analysis Services (localhost:) de cada informe abierto y devuelve puerto, connection string, catalogo y nº de tablas.

Cada instancia trae ademas su IDENTIDAD: engine_pid es el proceso del motor (msmdsrv.exe) y desktop_pid el de la ventana (PBIDesktop.exe) —son distintos—, mas el titulo de la ventana, la ruta del documento cuando puede demostrarse, identity_confidence y la identity_evidence que la sostiene. Un .pbip no deja descriptor abierto sobre su carpeta: ahi la ruta sale null en vez de adivinada.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description explains the localhost Analysis Services detection, distinguishes engine_pid from desktop_pid, and documents the .pbip null path edge case. This adds meaningful behavioral context about what the tool detects and returns, without contradicting the read-only annotation.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and then provides only relevant detail—return fields, PID distinction, and the null-path caveat. Each sentence earns its place and there is no filler.

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

Completeness5/5

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

Given the tool has no parameters, a read-only annotation, and an output schema, the description covers all operational semantics an agent needs: it names the detection method, the returned fields, and the .pbip null behavior. The only minor omission—behavior when no models are open—is easily inferred from 'open locally.'

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

Parameters4/5

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

There are zero parameters and the input schema is empty, so the description has no parameter burden to carry. It instead clarifies what each returned instance includes, which is appropriate for a parameter-less tool.

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

Purpose5/5

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

The opening sentence states a specific verb and resource: lists locally open Power BI Desktop models. It then enumerates the exact fields returned (port, connection string, catalog, table count, identity details), clearly distinguishing this from sibling list tools like pbi_list_tables or pbi_list_measures.

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

Usage Guidelines4/5

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

The description clearly implies a discovery/read scenario—enumerating open local desktop models and their connection details—but it does not explicitly name alternatives or when not to use it. The context is clear, yet exclusions and alternative tool routing are left implicit.

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

pbi_list_hierarchiesB
Read-only

Lista las jerarquias del modelo con sus niveles y columnas.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds that the tool returns hierarchies with 'niveles y columnas' (levels and columns), which is useful but minimal behavioral context beyond the annotation.

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 concise sentence that directly states the tool's function without any fluff or redundancy.

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?

While an output schema exists and the read-only annotation covers safety, the description leaves the 'source' parameter unexplained. The description is adequate for the core purpose but incomplete for fully correct invocation.

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 only parameter 'source' is not described in the input schema, and the description does not mention it. With 0% schema coverage, the agent has no guidance on valid values or how to use this 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 tool lists model hierarchies with their levels and columns, using a specific verb and resource. It distinguishes itself from sibling tools like pbi_list_tables or pbi_create_hierarchy.

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, nor any exclusions or context. It simply states what it does without comparing to sibling list tools.

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

pbi_list_measuresA
Read-only

Lista medidas con tabla, expresion DAX, formato, descripcion y carpeta.

Empieza por detail='summary'. Omite la expresion DAX, que es el grueso del peso y rara vez hace falta para orientarse; para leer el DAX de una medida concreta usa pbi_get_object, y para buscar dentro del DAX, pbi_search_model. detail='full' sigue siendo el valor por defecto por compatibilidad.

tables: acota a las medidas de esas tablas.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNofull
sourceNolive
tablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

La descripción añade contexto de peso/rendimiento del DAX y el comportamiento por defecto de detail='full' por compatibilidad. Aunque readOnlyHint ya indica lectura, no contradice y aporta información útil sobre cómo evitar respuestas pesadas.

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?

Texto breve y bien estructurado: una frase de propósito seguida de recomendaciones claras y la explicación de tables. Cada oración aporta información útil, sin relleno.

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?

La herramienta es de complejidad media; la descripción cubre propósito, guía de uso, detalle de parámetros y recomendación de rendimiento. El output schema cubre el retorno. La omisión del parámetro 'source' es la única carencia notable.

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?

Explica los parámetros detail y tables en prosa, pero el tercer parámetro 'source' no se menciona. Con una cobertura de schema del 0%, la descripción compensa parcialmente pero deja un vacío claro.

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?

La descripción comienza con 'Lista medidas con tabla, expresion DAX, formato, descripcion y carpeta', verbo específico y recurso claro. Se distingue de siblings como pbi_get_object o pbi_search_model al mencionarlos explícitamente.

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?

Recomienda 'Empieza por detail=summary' y explica cuándo usar alternativas: 'para leer el DAX de una medida concreta usa pbi_get_object, y para buscar dentro del DAX, pbi_search_model'. También aclara el comportamiento por defecto de detail='full'.

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

pbi_list_page_presetsA
Read-only

Presets de pagina disponibles, con los bloques que compone cada uno.

Un preset describe la INTENCION de la pagina (KPIs arriba, grafico protagonista, detalle abajo). Los campos concretos los eliges tu.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds domain context about what a preset represents, but does not disclose any additional behavioral traits such as filtering, pagination, or response size.

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 two concise sentences in Spanish. It front-loads the primary purpose and then clarifies the meaning of a preset, with no redundant words or irrelevant details.

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

Completeness4/5

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

For a zero-parameter read-only list tool with an output schema, the description is sufficiently complete. It explains what is returned (presets with blocks) and the underlying concept, though it does not detail how presets might be used in page composition workflows.

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

Parameters4/5

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

The tool has zero parameters, and the description correctly focuses on what the tool returns rather than argument details. With no parameters to document, the baseline of 4 applies; the description adds conceptual clarity about preset intentions.

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 lists available page presets with their component blocks. It also defines the concept of a preset as a page intention, distinguishing this from other listing tools like pbi_page_building_blocks or pbi_list_themes.

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

Usage Guidelines3/5

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

The description implies this tool is used to browse preset page layouts before composing a page, but it does not explicitly mention when to use it versus alternatives. No exclusions or direct comparisons to sibling tools are provided.

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

pbi_list_partitionsA
Read-only

Lista las particiones por tabla (modo de almacenamiento y origen).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the safety profile is known. The description adds that the results are organized by table and include storage mode and origin, which is useful but not extensive. No behavioral traits like requiring a selected model or response structure are disclosed, but the annotation covers the most critical aspect (read-only).

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, concise sentence that directly states the tool's purpose. It contains no filler or repetition, and all words contribute meaning. This is an example of efficient writing without being under-specified.

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

Completeness3/5

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

The tool is a simple read-only list operation with one optional parameter and an output schema. The description covers the core function but leaves the 'source' parameter unexplained, which is a completeness gap. Given the low complexity, the description is minimally adequate but not fully complete.

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

Parameters2/5

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

The schema has one optional parameter 'source' with a default value but no description, and schema_description_coverage is 0%. The description does not mention or explain the 'source' parameter at all, leaving its meaning and accepted values ambiguous. This is a significant gap since the description must compensate for the schema's lack of detail.

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

Purpose5/5

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

The description clearly states the tool lists partitions grouped by table, including storage mode and origin. The verb 'list' and resource 'partitions' are specific, and the detail 'by table (storage mode and origin)' distinguishes it from sibling tools like pbi_list_tables or pbi_set_storage_mode.

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 you need to see partitions with their storage mode and origin. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention exclusions or prerequisites. The implied context provides some guidance but lacks explicit alternatives.

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

pbi_list_pending_journalsA
Read-only

Lista los journals del proyecto activo.

Un journal pending es el de una operacion que ni se confirmo ni se revirtio (el proceso murio en medio). Contiene los originales. only_pending=false lista tambien los ya cerrados.

ParametersJSON Schema
NameRequiredDescriptionDefault
only_pendingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description reinforces a read-only list operation. The description adds value by explaining that pending journals contain originals and that only_pending=false includes closed ones, but does not disclose any other behavioral traits such as pagination or ordering. No contradiction with annotations.

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

Conciseness5/5

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

The description is three sentences, each serving a purpose: what the tool does, what 'pending' means, and the optional parameter behavior. No wasted words or 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 that an output schema exists and the tool is a straightforward list operation, the description adequately covers scope ('del proyecto activo') and filtering semantics. It doesn't describe return values, but the output schema handles that. Minor gap: no mention of what fields are returned per journal, but not required for the tool's basic 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 provides no description for the only_pending parameter, so the description carries the sole burden. It explains that setting only_pending=false lists closed journals as well, which clarifies the parameter's effect beyond the raw schema. The boolean nature and default are implicitly clear.

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

Purpose5/5

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

The description starts with a clear verb 'Lista' and specific resource 'journals del proyecto activo', distinguishing it from sibling tools like inspect_journal and recover_from_journal. It also clarifies the meaning of 'pending', leaving no ambiguity about the tool's function.

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 gives context about what pending journals are and the effect of the only_pending parameter, but it does not explicitly state when to use this tool versus alternatives like pbi_inspect_journal or pbi_recover_from_journal. Usage is implied rather than explicitly contrasted.

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

pbi_list_perspectivesA
Read-only

Lista las perspectivas del modelo.

Requiere la capa EN VIVO: el lector TMDL de este proyecto no las extrae. Si no hay ninguna, devuelve una lista vacia con la explicacion.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds meaningful behavioral details: it only works on the live layer, the TMDL reader will not return perspectives, and if none exist it returns an empty list with an explanation. This is useful context not available in annotations or 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 extremely concise: three short sentences, each adding unique value (what it lists, the live-layer requirement, and the empty-list behavior). No redundant or filler 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?

For a simple list tool with one optional parameter, an output schema, and read-only annotations, the description covers all critical context: purpose, operational constraint, and edge-case behavior. Nothing important is missing.

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

Parameters4/5

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

The schema has one parameter ('source') with no description and 0% coverage, but the description's 'Requiere la capa EN VIVO' effectively tells the agent to use the 'live' source. This compensates for the lack of schema-level documentation, though it does not explicitly name the 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 starts with 'Lista las perspectivas del modelo', a specific verb ('lista') and resource ('perspectivas del modelo'). This clearly distinguishes it from sibling tools that list other model objects like tables, measures, or roles.

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 states when to use the tool: 'Requiere la capa EN VIVO' (requires the LIVE layer) and explains that the TMDL reader cannot extract perspectives. This gives clear context and a constraint, though it does not explicitly name alternative tools for other layers.

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

pbi_list_relationshipsB
Read-only

Lista relaciones: tablas/columnas, cardinalidad, filtro cruzado y estado.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds useful context about the output content (tables/columns, cardinality, cross-filter, status), which helps set expectations. However, it doesn't disclose behavior regarding the 'source' parameter or potential limitations.

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 concise sentence that front-loads the main action and lists the key output aspects without unnecessary words.

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

Completeness3/5

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

The tool is simple and has an output schema, so return values are covered. The description adequately covers the main functionality but leaves the 'source' parameter unexplained and doesn't position the tool within the broader model inspection workflow.

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

Parameters1/5

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

The description completely ignores the single 'source' parameter. With 0% schema description coverage and no explanation in the description, the agent has no information about this parameter's purpose, allowed values, or effect on results.

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 lists relationships and specifies the key attributes included (tables/columns, cardinality, cross-filter, status). This directly differentiates it from sibling list tools like pbi_list_tables and pbi_list_measures.

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. The name implies the purpose, but the description lacks explicit context, prerequisites, or comparisons to other list tools.

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

pbi_list_report_pagesA
Read-only

Lista las paginas del informe PBIR activo (id, nombre, tamano, nº visuales).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds context about the active report and the fields returned, but does not discuss error conditions or dependencies beyond 'activo.' This is acceptable but not rich.

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 compact sentence with no wasted words. It front-loads the verb and resource, and every phrase contributes to understanding the tool's purpose and output.

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 zero parameters, a read-only annotation, and an existing output schema, the description covers the essential behavior, scope (active report), and returned fields. There are no critical gaps.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so no parameter detail is needed. The description's mention of returned fields partially compensates for a no-parameter tool, but the baseline 4 for zero parameters is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Lista' and clearly identifies the resource as 'paginas del informe PBIR activo', enumerating returned fields (id, nombre, tamaño, nº visuales). This distinguishes it from sibling tools like pbi_list_visuals and pbi_list_bookmarks.

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

Usage Guidelines4/5

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

The description clearly states the tool operates on the active PBIR report, providing clear context for when to invoke it. It does not explicitly name alternatives or exclusions, but the scope is unambiguous for a list operation.

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

pbi_list_report_resourcesA
Read-only

Recursos del informe: declarados, en disco y los que no cuadran.

Un archivo sin declarar no lo encuentra Power BI; una declaracion sin archivo deja el visual vacio. Los dos casos son invisibles al abrir el informe, asi que se listan aparte.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the safety profile is covered. The description adds behavioral detail by explaining the three resource categories and the real-world consequences of each mismatch (file not found, empty visual). This goes beyond the structured data and helps the agent understand what the tool surfaces and why.

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 two concise sentences plus a leading phrase. Every sentence provides meaningful information: what is listed, why the categories matter, and the fact that these issues are invisible. No wasted words, and the structure is 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's simplicity (no parameters, read-only, with an output schema that presumably documents the return structure), the description covers the essential context. It explains the purpose, the three resource categories, and the significance of each mismatch. No obvious gaps remain for a list-type tool.

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

Parameters4/5

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

The tool has zero parameters, and the input schema is empty. The baseline for no-parameter tools is 4 per the rubric. The description adds no parameter details because none are needed; it correctly focuses on the tool's output categories instead.

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 lists report resources divided into three categories: declared, on disk, and mismatched. It uses a specific verb ('listar') and resource ('recursos del informe'), and distinguishes this tool from siblings like pbi_list_report_pages or pbi_list_visuals by focusing on resource-level inconsistencies.

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 why the tool is useful: to surface invisible issues where undeclared files or orphaned declarations cause problems. This implies when to use it (during audit or troubleshooting), though it does not explicitly mention alternatives or when not to use it. The context is clear enough for an agent to infer appropriate usage.

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

pbi_list_rolesA
Read-only

Lista los roles de seguridad (RLS) y sus filtros por tabla.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds a minor behavioral detail—filters are grouped by table ('por tabla')—but it does not disclose output format, pagination, or any other behavioral traits. This is slightly more than nothing, but still limited.

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, front-loaded sentence in Spanish that directly states the tool's purpose. Every word earns its place, with no filler or repetition of the tool name.

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

Completeness3/5

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

The tool is simple, read-only, and has an output schema, so the description doesn't need to explain return values. However, the 'source' parameter is left undocumented, and there is no explicit context about when this tool is the right choice among the many sibling tools. It is adequate but not complete.

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

Parameters2/5

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

The schema has one optional parameter ('source') with a default value, but schema description coverage is 0%. The description does not mention or explain the 'source' parameter at all, leaving the agent to guess what values are valid or how it affects the result. This is a clear 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 uses a specific verb ('Lista') and a specific resource ('roles de seguridad (RLS)') and adds the scope 'sus filtros por tabla', clearly distinguishing it from other list tools like pbi_list_tables or pbi_list_measures. It leaves no doubt about what the tool does.

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 in security-role contexts, but it does not explicitly state when to use this tool versus alternatives such as pbi_list_audit_rules or other listing tools. There are no exclusions or alternative recommendations, so usage guidance is only implicit.

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

pbi_list_tablesA
Read-only

Lista tablas con columnas, tipos, visibilidad y conteos.

source: 'live' (modelo abierto, por defecto) o 'pbip' (archivos TMDL).

Empieza por detail='summary'. Devuelve nombre, visibilidad y recuentos, sin la lista de columnas. Con detail='full' (por defecto, por compatibilidad) un modelo de siete tablas ocupa ~28.000 caracteres y uno corporativo puede llenar buena parte de la ventana de contexto en una sola llamada.

tables: acota a esas tablas por nombre. Es lo que se usa despues del resumen para pedir el detalle solo de las que interesan. Un nombre que no existe falla y devuelve los disponibles, en vez de una lista vacia.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNofull
sourceNolive
tablesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behaviors: the full detail output can be extremely large (~28,000 chars for a small model), invalid table names cause an error that returns available tables, and the `source` parameter selects between live and pbip. This adds substantial value beyond structured annotations.

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 dense but every sentence adds value: purpose, parameter semantics, usage advice, and a warning about output size. It is well-structured with bold emphasis on the critical advice, making it easy to scan.

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?

With an output schema present and annotations provided, the description covers all necessary aspects: what is returned, how to control output size, and error behavior. The tool is simple enough that this description is fully sufficient for an agent to select and invoke it 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?

The schema has 0% description coverage, but the description thoroughly explains all three parameters: `source` (live vs pbip), `detail` (summary vs full with size implications), and `tables` (filtering and failure behavior). It fully compensates 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 states 'Lista tablas con columnas, tipos, visibilidad y conteos' — a specific verb and resource, clearly distinguishing it from sibling tools that list measures, relationships, roles, etc. The title and description align perfectly, leaving no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description gives clear usage guidance: start with `detail='summary'` to avoid context overload, then use `tables` to request details for specific tables. It does not explicitly name alternatives or exclusions, but the context and parameter guidance are highly actionable.

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

pbi_list_themesA
Read-only

Temas de informe disponibles, con su paleta y para que sirve cada uno.

Devuelve, por tema: el escenario de uso, el color de fondo, los colores de serie EN SU ORDEN (el orden es lo que garantiza que dos series contiguas se distingan tambien con daltonismo) y los colores de estado.

Usalo para PROPONER un esquema antes de construir, en vez de decidirlo por el usuario.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description doesn't need to address mutation safety. It adds transparency by detailing what the tool returns—usage scenario, background color, series colors in order (with the rationale that order ensures color-blind-safe distinction), and status colors—which goes beyond the annotated safety profile.

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 the main point front-loaded and every sentence providing valuable information. It includes the purpose, the returned data, and usage guidance without any filler.

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

Completeness5/5

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

For a zero-parameter read-only listing tool with an output schema, the description thoroughly covers the purpose, output content, and usage context. The added detail about color order and accessibility makes it particularly 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?

The tool has zero parameters, and schema coverage is 100% (vacuously). Per the rubric, the baseline for 0 parameters is 4, and the description does not need to add parameter semantics because there are none.

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 lists available report themes with their palettes and purpose, using a specific verb and resource. It also distinguishes itself from theme application tools by emphasizing the use case of proposing a scheme before building.

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

Usage Guidelines4/5

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

It explicitly instructs to use the tool to propose a scheme before building, and phrases it as an alternative to deciding for the user. However, it does not explicitly name sibling tools like pbi_apply_theme as alternatives, so it falls short of a full 5.

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

pbi_list_visualsA
Read-only

Lista los visuales de una pagina: id, tipo, posicion, campos, titulo.

page: id interno o nombre visible de la pagina.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The description adds behavioral context by enumerating the output fields (id, tipo, posicion, campos, titulo), which goes beyond the readOnlyHint annotation. However, it does not disclose behavior for edge cases such as empty pages or invalid page identifiers, and it relies heavily on the annotation for safety profile.

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, using only two sentences to convey purpose and parameter information. Every word earns its place, with no redundancy or filler.

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, read-only listing) and the presence of an output schema, the description covers the essential aspects: what it does, what it returns, and the parameter meaning. It is complete enough for an agent to invoke it correctly, though it could mention error conditions or preconditions like the page existing in the current report.

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 provides no description for the 'page' parameter, but the tool description compensates by explaining that it accepts an internal id or visible name. This adds meaning beyond the bare schema definition, making the parameter clear enough for 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 it lists the visuals of a page and specifies the returned fields (id, tipo, posicion, campos, titulo). This distinguishes it from sibling tools like pbi_get_visual (which retrieves a single visual) and pbi_list_report_pages (which lists pages).

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 does not provide any guidance on when to use this tool versus alternatives like pbi_get_visual or pbi_list_report_pages. It only states the basic function and parameter, leaving the agent to infer appropriate usage without explicit context or exclusions.

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

pbi_measure_dependenciesA
Read-only

De que depende una medida y quien depende de ella.

Devuelve dependencias directas (medidas, columnas y referencias ROTAS), el cierre transitivo sobre medidas hasta depth, y la lista de medidas que la usan. Analisis lexico: detecta referencias escritas, no las construidas dinamicamente.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
depthNo
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

The description adds significant behavioral context beyond the readOnlyHint and openWorldHint annotations. It discloses that the analysis is lexical, detecting only written references and not dynamically constructed ones, which is a critical limitation. It also mentions the inclusion of broken references, providing useful insight into the tool's behavior.

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

Conciseness5/5

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

The description is concise and well-structured. It opens with a one-line summary of the tool's purpose, followed by two sentences that detail the outputs and the lexical analysis limitation. Every sentence adds valuable information without unnecessary verbosity.

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

Completeness4/5

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

The description covers the core functionality comprehensively: direct dependencies, transitive closure, reverse dependencies, and lexical limitations. An output schema exists, so return values need not be described. The main gap is the unexplained `source` parameter, which prevents a perfect score.

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

Parameters3/5

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

The schema has 0% description coverage, leaving the burden on the description. The description explains that `depth` controls the transitive closure depth and implicitly identifies `name` as the measure name. However, the `source` parameter is not explained at all, leaving a gap in understanding what values it accepts and how it affects the analysis.

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: it returns measure dependencies, both direct and transitive, plus reverse dependencies. It distinguishes itself from siblings like pbi_column_dependencies by focusing on measures. The phrase 'De que depende una medida y quien depende de ella' captures the bidirectional dependency analysis.

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 for understanding measure dependencies but does not explicitly state when to use this tool over alternatives such as pbi_column_dependencies or pbi_run_dax. There is no when-not-to-use guidance or mention of alternative tools. The context is clear enough for an informed agent, but the lack of explicit exclusions prevents a higher score.

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

pbi_model_summaryA
Read-only

Resumen compacto del modelo, pensado para leerlo de un vistazo.

Conteos, tablas con su tamano, medidas por tabla, columnas calculadas, tablas desconectadas, relaciones bidireccionales y referencias rotas. Es la primera tool que conviene llamar para orientarse en un modelo. source: 'live' (Desktop abierto) o 'pbip' (archivos TMDL).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds behavioral context by enumerating what the summary includes and explaining the two source modes ('live' and 'pbip'). It does not contradict annotations and provides useful extra detail.

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

Conciseness5/5

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

The description is compact yet informative, with a clear opening phrase, a listed set of key contents, a usage recommendation, and a brief parameter explanation. Every sentence earns its place without unnecessary 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?

The tool is a summary with one optional parameter, and an output schema exists, so return format doesn't need explanation. The description covers what the summary includes, when to use it, and how the source parameter works, making it complete for the tool's complexity.

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 has only one parameter with no description (0% coverage). The description fully explains the 'source' parameter, listing its possible values ('live' vs 'pbip') and their meanings, completely compensating 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 provides a compact model summary listing specific contents (counts, table sizes, measures per table, calculated columns, disconnected tables, bidirectional relationships, broken references). It also positions itself as the first tool to call for orientation, distinguishing it from detailed list tools like pbi_list_tables and pbi_list_measures.

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

Usage Guidelines4/5

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

The description explicitly says 'Es la primera tool que conviene llamar para orientarse en un modelo' (it is the first tool to call for orientation), which gives clear usage context. It does not mention alternatives or when not to use, but the recommendation is strong and unambiguous.

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

pbi_normalize_page_layoutA

Corrige lo corregible de una pagina sin reacomodarla entera.

Mete dentro del lienzo lo que se sale, sube al minimo lo demasiado pequeno y respeta los margenes. NO mueve lo que ya esta bien: es una correccion conservadora. dry_run=true devuelve el plan sin escribir.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
dry_runNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

The description goes beyond the annotations by explaining the tool's conservative approach ('NO mueve lo que ya esta bien') and by disclosing the dry-run behavior ('dry_run=true devuelve el plan sin escribir'). It does not contradict the annotations (readOnlyHint=false, destructiveHint=false), and it adds useful context about what the tool actually does during execution.

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, front-loaded with the main purpose, and every sentence earns its place. It uses a short opening sentence, followed by detailed behavior and the dry-run note, with no redundant or filler 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 that an output schema exists, the description doesn't need to explain return values. It covers the tool's scope, key behaviors, and the dry-run option. It could mention prerequisites or side effects, but for a layout normalization tool with these annotations and schema, it is reasonably complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the 'dry_run' parameter's semantics ('devuelve el plan sin escribir'). The 'page' parameter is self-explanatory, but 'request_id' is not explained at all. Partial compensation for parameter clarity.

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

Purpose5/5

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

The description clearly states the tool's function: to fix fixable issues on a page without rearranging it entirely. It lists specific actions (brings into canvas, resizes too small, respects margins) and explicitly distinguishes itself as a conservative correction, which differentiates it from sibling tools like pbi_arrange_visuals or pbi_align_visuals.

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 for pages with minor layout issues that need conservative fixing, and it mentions not moving elements that are already fine. However, it does not explicitly state when to use this tool over alternatives, nor does it provide exclusions or direct comparisons to sibling tools. The context is clear but lacks explicit guidance.

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

pbi_normalize_reportA

Normaliza la geometria de TODAS las paginas del informe.

Mete dentro del lienzo lo que se sale, sube al minimo lo demasiado pequeno y respeta margenes. No reacomoda lo que ya cumple. Compara el puntaje de auditoria antes y despues.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate readOnly=false and destructive=false, but the description adds meaningful behavioral context: it moves overflowing items inside the canvas, raises too-small items, respects margins, leaves compliant items untouched, and compares audit score before/after. It does not mention dry_run behavior or reversibility, but it adds value beyond annotations.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence states the core purpose, followed by three short behavioral clauses and one comparison clause. Every sentence adds meaningful information with no repetition or filler.

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

Completeness3/5

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

The description covers the core transformation behavior and audit comparison, and an output schema likely covers return values. However, it omits the meaning of dry_run (which defaults to true) and any prerequisites or side effects, leaving a meaningful gap for a mutating tool with sparse schema descriptions.

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

Parameters2/5

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

The schema has two parameters (dry_run, request_id) with 0% description coverage, and the description does not mention either parameter. Since dry_run defaults to true and controls whether changes are actually applied, omitting it from the description is a significant gap; the agent must infer its meaning solely from the parameter name.

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

Purpose5/5

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

The description opens with 'Normaliza la geometria de TODAS las paginas del informe', a specific verb+resource+scope statement. It clearly distinguishes itself from sibling pbi_normalize_page_layout by applying to all pages, and details what normalization entails (fitting into canvas, minimum size, margins).

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 what the tool does and its non-destructive-to-compliant-elements behavior ('No reacomoda lo que ya cumple'), but it does not explicitly name alternatives or list when-not-to-use scenarios. Since sibling pbi_normalize_page_layout exists, direct comparison would have made this a 5.

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

pbi_open_and_refreshA
Destructive

Abre el proyecto en Power BI Desktop y lo refresca, en una llamada.

Es la secuencia real de trabajo y siempre eran dos llamadas de unos catorce segundos cada una, porque un .pbip recien abierto trae el modelo SIN DATOS: abrirlo sin refrescar no sirve para comprobar nada.

path y pbip_path son el mismo parametro -el segundo es como lo llama pbi_session_info-, y se pueden omitir los dos: entonces se usa el proyecto .pbip activo.

Devuelve lo mismo que las dos por separado, incluido rows_by_table. Si el archivo ya estaba abierto se reutiliza esa sesion (reuse_open).

Si el refresh falla, la ventana se DEJA ABIERTA: ya cargo bien, y cerrarla borraria justo el contexto que hace falta para ver por que fallo. Sale en desktop_left_open.

Exige confirm=true desde 2.0.0. Abre una aplicacion y refresca: los dos efectos son visibles y el segundo descarta lo que hubiera en memoria sin guardar.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
typeNofull
tablesNo
confirmNo
timeoutNo
pbip_pathNo
request_idNo
reuse_openNo
refresh_timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

The description goes beyond annotations by detailing the failure behavior (window stays open if refresh fails, with desktop_left_open), the reuse_open option, and the destructive nature (discards unsaved memory data). It also warns about the confirm requirement. This aligns with destructiveHint=true and provides valuable context for the agent.

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 reasonably concise for the complexity it covers. It is well-structured with paragraphs, each addressing a distinct aspect (purpose, parameter alias, return behavior, failure handling, security requirement). Some redundancy exists (e.g., mentioning the two-call history in the first paragraph) but overall it earns its length.

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 (9 params, destructive, with output schema), the description is quite complete. It covers the operational workflow, failure handling, and key parameter relationships. It does not describe all parameters or the exact output format, but the presence of an output schema lessens that need. It effectively conveys the behavioral contract.

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 coverage, the description must explain parameters. It clarifies that path and pbip_path are aliases, optional, and default to the active project. It mentions reuse_open and confirm effects. However, it does not explain type, tables, timeout, request_id, or refresh_timeout_seconds, leaving gaps for those parameters. Still, it covers the most critical ones.

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: 'Abre el proyecto en Power BI Desktop y lo refresca, en una llamada.' It names the specific verb (open and refresh) and the resource (Power BI Desktop project), and distinguishes itself from siblings like pbi_open_pbip_project and pbi_refresh_model by emphasizing the single-call combination.

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 context: it calls out that opening without refreshing is useless for a .pbip with no data, explains that path/pbip_path can be omitted for the active project, and mentions that confirm=true is required since version 2.0.0. It also differentiates from separate calls by explaining the efficiency gain, giving clear when-to-use guidance.

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

pbi_open_in_desktopA

Abre un .pbip o .pbix en Power BI Desktop y espera a que sirva el modelo.

Cierra el ciclo de trabajo: despues de editar un proyecto, esto permite comprobar que ABRE de verdad y consultar sus medidas, sin pedirle al usuario que lo haga a mano. Un TMDL que no carga se manifiesta aqui.

Espera a que el motor local aparezca y deje de crecer, identifica cual de las instancias corresponde a este archivo (el puerto es dinamico) y, con select=true, lo deja como modelo activo.

Si el archivo ya estaba abierto se reutiliza esa sesion y no se toca nada (reuse_open). Nunca cierra una ventana del usuario.

path (o pbip_path, como lo llama pbi_session_info) se puede omitir: entonces se abre el proyecto .pbip activo.

Ojo: un .pbip recien abierto trae el modelo SIN DATOS. Refresca despues con pbi_refresh_model si vas a comprobar valores.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
selectNo
timeoutNo
pbip_pathNo
reuse_openNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

With all annotations false, the description carries the full transparency burden and does so well. It discloses waiting behavior, dynamic port identification, select=true behavior, reuse_open session reuse, that it never closes user windows, and the no-data caveat for newly opened .pbip files.

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 organized into short, purposeful paragraphs. It front-loads the main action, then adds workflow context, parameter notes, and a caveat. Every sentence contributes useful information without filler.

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

Completeness5/5

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

Given the tool's complexity and the absence of meaningful annotations, the description is remarkably complete. It covers the full workflow, side effects, parameter nuances, and next-step refresh guidance. The output schema handles return-value expectations, so no additional return description is needed.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains path/pbip_path optionality and aliasing, select=true behavior, and reuse_open semantics. However, the timeout parameter is never explained, leaving one of five parameters without added meaning.

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

Purpose5/5

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

The description opens with a specific action: 'Abre un .pbip o .pbix en Power BI Desktop y espera a que sirva el modelo.' It clearly states the resource, the verb, and the expected outcome. It also distinguishes itself from siblings by emphasizing model-load verification and active-model selection.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: after editing a project, to verify it opens and to query measures without manual user effort. It also points to pbi_refresh_model as a follow-up when checking values. It does not explicitly list when-not-to-use or name alternative tools, so it stops short of a 5.

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

pbi_open_pbip_projectA
Idempotent

Abre un proyecto .pbip y lo marca como proyecto activo.

Detecta carpetas .SemanticModel (TMDL) y .Report (PBIR) y devuelve un resumen con advertencias (p.ej. si el informe no usa PBIR). path: ruta al archivo .pbip o a su carpeta.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses meaningful behavioral details: it detects folder types (TMDL/PBIR), returns a summary with warnings, and gives an example warning. Annotations (idempotentHint: true, readOnlyHint: false) are consistent with the description. It could go further on side effects, but this exceeds the bar.

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, perfectly front-loaded with the primary action, followed by detection behavior and a parameter explanation. Every sentence earns its place with zero fluff.

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

Completeness4/5

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

For a moderate-complexity tool with an output schema, an idempotency annotation, and a well-covered single parameter, the description covers the essentials: behavior, detection, return value, and parameter format. No major gaps identified.

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 must compensate for the single 'path' parameter — and it does with a dedicated sentence: '`path`: ruta al archivo .pbip o a su carpeta.' This fully explains the only parameter, including both accepted input forms.

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

Purpose5/5

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

The description uses a specific verb+resource: 'Opens a .pbip project and marks it as active project.' It clearly explains the scope (detects .SemanticModel and .Report folders, returns a summary with warnings) and distinguishes itself from siblings like pbi_create_pbip_project or pbi_open_in_desktop. No other sibling has this open/activate purpose.

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 that this tool is a prerequisite for working with a project (it 'marks it as active project'), which suggests a workflow, but it doesn't explicitly state when to use it vs. alternatives. It provides no 'when not to use' guidance or explicit alternatives.

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

pbi_page_building_blocksA
Read-only

Entrega el material para diseniar una hoja: modelo (tablas/medidas/columnas), catalogo de visuales existentes (reutilizables como plantilla), canvas y paginas.

Usa esto ANTES de proponer una hoja: te dice que campos y tipos de visual hay.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With readOnlyHint=true in annotations, the safety profile is already covered. The description adds behavioral context by specifying that it returns the model schema, visual catalog, and canvas/pages, and that it reveals available fields and visual types. It doesn't contradict the read-only annotation and provides useful information about the tool's output scope.

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 two sentences, both purposeful. The first enumerates the deliverables, the second gives precise usage timing. There is no redundant or filler content. It is fully front-loaded 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?

For a tool with no parameters and an output schema, the description adequately covers purpose, content, and usage timing. It explains what the agent will get (model, visuals catalog, canvas/pages) and when to call it (before proposing a page). The output schema is available to fill in return structure details, so the description is sufficiently 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?

The tool has zero parameters, so there is nothing to add beyond the schema. Per the rubric, 0 parameters earns a baseline of 4. The description doesn't need to describe parameter semantics, and it adds no irrelevant details.

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 'delivers the material for designing a page' and enumerates its contents: model (tables/measures/columns), catalog of existing visuals, canvas, and pages. It distinguishes itself from sibling tools by positioning itself as a pre-design resource that tells you what fields and visual types are available, not just listing individual tables or measures.

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

Usage Guidelines4/5

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

The description explicitly instructs to use this tool 'BEFORE proposing a page' and explains what it provides (fields and visual types). This gives clear contextual timing, though it doesn't name specific alternative tools or explicit when-not-to-use scenarios. The guidance is actionable and concise.

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

pbi_plan_audit_fixesA
Read-only

Planifica correcciones para reglas CONCRETAS. No escribe nada.

No existe "arreglar todo": hay que indicar rules explicitamente. objects acota mas todavia (ids de visual o de pagina). Devuelve las acciones exactas que se aplicarian, con su motivo.

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesYes
objectsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

The description adds behavioral context beyond the readOnlyHint annotation: it explicitly states 'No escribe nada' (writes nothing) and discloses that the tool returns the exact actions and reasons ('Devuelve las acciones exactas que se aplicarían, con su motivo'). This is valuable context not present in the structured annotations.

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

Conciseness5/5

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

The description is concise and well-structured. It front-loads the main purpose, then uses short, scannable sentences to convey constraints and parameter behavior. No unnecessary words; every sentence earns its place.

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 an output schema, so detailed return-value explanation is not needed. The description covers the essential context: what it does, that it is read-only, and parameter semantics. It could have more explicitly stated when to use this tool versus pbi_apply_audit_fixes, but given the sibling context and output schema, it is reasonably complete.

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?

Even though schema description coverage is 0%, the description compensates by explaining both parameters: 'rules' must be explicit (aligning with the schema's required flag) and 'objects' narrows down further and provides IDs of visuals or pages. This adds meaningful semantics beyond the bare schema definitions.

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

Purpose5/5

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

The description clearly states the tool's function: 'Planifica correcciones para reglas CONCRETAS' (plan corrections for specific rules) and explicitly distinguishes it as a planning tool that does not write ('No escribe nada'). It also mentions returning exact actions to be applied, making the purpose specific and distinguishable from sibling tools like pbi_apply_audit_fixes.

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

Usage Guidelines4/5

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

The description provides clear usage context: it emphasizes that there is no 'fix everything' and that rules must be specified explicitly, which is a key guideline. It also notes that objects narrows down the scope. However, it does not explicitly name the alternative apply tool (pbi_apply_audit_fixes) for when to actually apply changes, though 'No escribe nada' implies the contrast.

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

pbi_plan_changeA
Read-only

Calcula un PLAN sin aplicar nada, y devuelve un plan_token.

operation: una de las que lista pbi_capabilities en planned_operations. arguments: los mismos que aceptaria la tool.

El plan incluye el diff por archivo y una huella del estado sobre el que se calculo. Si el proyecto cambia despues, pbi_apply_plan lo rechaza.

ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsYes
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true; the description reinforces this with 'sin aplicar nada' and adds concrete behavioral details: the plan includes per-file diff and a state fingerprint, and applying becomes invalid if the project changes. This goes beyond the structured annotations and helps the agent predict 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.

Conciseness5/5

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

Three short, information-dense sentences with no filler. The most important behavior (safe planning, token return) appears first.

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 an output schema and read-only annotation, the description adds the missing operational context: token semantics, diff/fingerprint contents, and rejection condition. It is sufficient for an agent to decide to invoke it and understand the result.

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 provides only names (`operation`, `arguments`) with no descriptions and 0% coverage. The description compensates by explaining that `operation` comes from `pbi_capabilities.planned_operations` and `arguments` are the same as the target tool would accept, giving the agent enough to construct valid inputs.

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

Purpose5/5

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

The description opens with a specific verb phrase 'Calcula un PLAN sin aplicar nada' (calculates a plan without applying anything) and names the return value `plan_token`. This clearly distinguishes it from sibling `pbi_apply_plan`, which actually applies plans.

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 states `operation` must be one of those listed by `pbi_capabilities` in `planned_operations`, and `arguments` are the same as the tool would accept. It also implies the typical workflow by explaining that `pbi_apply_plan` rejects the plan if the project changed. However, it does not explicitly state 'use this before applying changes' or list exclusions.

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

pbi_prepare_deliveryA

Checklist de pre-entrega con plan de correccion.

Audita el proyecto, produce un checklist de bloqueantes y propone las correcciones automaticas disponibles. Con dry_run=false las aplica y compara el puntaje antes y despues.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds valuable context: it explains that with dry_run=false the tool applies corrections and compares scores before/after. This discloses the mutating behavior and the dry-run safeguard, going beyond the annotations.

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

Conciseness5/5

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

The description is brief (three sentences), front-loaded with a clear summary ('Checklist de pre-entrega con plan de correccion'), and contains no redundant information. Every sentence adds functional value.

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 that an output schema exists, the description does not need to explain return values. It covers the core workflow (audit, checklist, corrections, optional apply) and the dry_run behavior. However, it omits details about request_id and potential side effects of applying corrections, leaving minor gaps.

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

Parameters3/5

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

The description explicitly explains the dry_run parameter (with dry_run=false it applies corrections), which is key. However, it does not mention request_id at all, and since schema_description_coverage is 0%, the description only partially compensates for the undocumented parameters.

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

Purpose5/5

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

The description clearly states the tool's function: it audits the project, produces a checklist of blockers, proposes automatic corrections, and optionally applies them when dry_run=false. It uses a specific verb ('Audita', 'produce') and distinguishes itself from siblings like pbi_audit_project and pbi_apply_audit_fixes by combining audit and correction application.

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

Usage Guidelines4/5

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

The description clearly implies a pre-delivery usage context ('Checklist de pre-entrega') and explains the workflow with dry_run. However, it does not explicitly mention when to choose this tool over alternatives such as pbi_audit_project or pbi_apply_audit_fixes, so it lacks explicit exclusions.

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

pbi_prepare_projectA

Deja listo EXACTAMENTE el proyecto que le pasas, y dice cual es.

Es el punto de entrada de una sesion de trabajo. Acepta las tres cosas que una persona tiene a mano y las resuelve con una sola politica:

  • un .pbip: se valida y se activa esa ruta, tal cual;

  • un .pbix: se convierte ESE archivo y se activa el .pbip que produjo la conversion (no uno que se le parezca en la carpeta);

  • una carpeta: solo se resuelve si contiene UN candidato. Con dos .pbip falla con ambiguous_pbip_project y te los enumera, porque elegir el primero por orden alfabetico es como se acaba editando el proyecto equivocado con la respuesta en verde.

La ruta que pasas gana siempre: sobre el proyecto activo, sobre la sesion restaurada y sobre lo que tenga abierto Power BI Desktop. Si algo falla, el proyecto activo se queda como estaba.

La respuesta trae requested_path, resolved_path, selection_reason, path_match, previous_active_project y active_project, para que la decision sea auditable sin repetirla.

open_result=true abre el resultado en Desktop y comprueba que la ventana sirve ese archivo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
out_dirNo
overwriteNo
request_idNo
open_resultNo
project_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior5/5

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

The description discloses significant behavioral details beyond the annotations: the passed path always wins over active/restored/Desktop state, failure leaves the previous active project unchanged, and two `.pbip` files in a folder produce `ambiguous_pbip_project` with an enumeration. It also explains that `open_result=true` opens the result and verifies the Desktop window serves that file. This gives an agent essential expectations for side effects and failure modes.

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 dense and front-loaded with the tool's purpose and input policy, then moves to precedence, failure behavior, response fields, and the open flag. Some rationale clauses are vivid but not strictly necessary, and the bullet structure makes the logic easy to follow. Overall it stays useful without being padded.

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?

Core behavior, input resolution, failure modes, and output traceability fields are well covered, and an output schema exists to document return values. However, the optional parameters that can alter behavior (`out_dir`, `overwrite`, `request_id`, `project_name`) are left unexplained, which is a notable gap for a six-parameter tool. The description is strong for the happy path but incomplete for advanced invocation details.

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, the description must carry parameter semantics, but it only meaningfully explains `path` and `open_result`. The other four parameters (`out_dir`, `overwrite`, `request_id`, `project_name`) receive no explanation, leaving their behavior ambiguous. The names and defaults offer hints, but the description does not compensate for the complete lack of schema descriptions.

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 identifies the tool as the session entry point and specifies what it does: it prepares exactly the provided project and reports which one was activated. It also differentiates its behavior for `.pbip`, `.pbix`, and folder inputs, so the core purpose is unambiguous. It does not explicitly name sibling tools such as `pbi_open_pbip_project` or `pbi_convert_pbix_to_pbip`, but the scope is clear enough.

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

Usage Guidelines4/5

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

The description explicitly frames this as the entry point of a work session and explains the accepted input types and the resolution policy for each: `.pbip`, `.pbix`, and folder. It also gives clear guidance on ambiguity failure. It does not state explicit alternative tools or when-not-to-use conditions, but the context is strong enough for an agent to select it appropriately.

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

pbi_preview_page_specA

Maqueta HTML del spec con las posiciones FINALES. No escribe al .pbip.

Lo que muestra el preview es exactamente lo que se escribiria: tipos, titulos, campos, tamanos y posiciones salen del mismo compilado que usa la aplicacion.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNo
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

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

With annotations all false and unhelpful, the description carries the burden of behavioral disclosure. It clearly states the tool does not write to the .pbip and that the preview accurately reflects the final compiled output, which is valuable transparency about side effects and reliability.

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 very concise, with the main purpose front-loaded in the first sentence. The second sentence adds essential accuracy details without redundancy or fluff.

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

Completeness3/5

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

The description explains the tool's purpose and output fidelity, and the presence of an output schema reduces the need to describe return values. However, the complete lack of input parameter explanation and no explicit contrast with the very similar sibling tool pbi_preview_spec_html leave meaningful 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% and the description does not explain the 'spec' or 'seed' parameters. Since the schema provides no descriptions, the description needed to compensate but did not address parameter semantics at all.

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 creates an HTML mockup of the spec with final positions and explicitly notes it does not write to the .pbip file. This distinguishes it from apply/write tools, though it does not explicitly differentiate from the similar sibling pbi_preview_spec_html.

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 the tool is meant for previewing exactly what will be written before committing, which gives contextual usage guidance. However, it does not explicitly state when to use this tool over alternatives like pbi_preview_spec_html or pbi_validate_page_spec.

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

pbi_preview_spec_htmlA

Genera una MAQUETA HTML de una hoja propuesta (sin escribir nada al .pbip).

spec: {page_name, canvas?, layout?, visuals:[{type,title,fields,position?}]}. Devuelve la ruta del HTML (abrelo en el navegador para revisar el diseno).

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no meaningful annotations (all hints false), the description carries the burden. It explicitly discloses the key non-destructive behavior ('sin escribir nada al .pbip') and states the output is an HTML file path. It does not detail file cleanup or potential side effects of creating the HTML file, but the main behavioral trait is transparent.

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

Conciseness5/5

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

The description is two compact sentences with the key information front-loaded. Every phrase earns its place: the action, the non-destructive guarantee, the spec shape, and the output path. There is no wasted 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?

The tool is moderately complex (spec-driven HTML generation), and the output schema exists, so return values do not need elaboration. The description provides a sufficient input template and usage context. It could add more detail about required vs optional spec fields, but the provided structure is adequate for initial 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 only defines an opaque 'spec' object with additionalProperties and 0% description coverage. The description compensates by providing a concrete structure: {page_name, canvas?, layout?, visuals:[{type,title,fields,position?}]}. This gives meaningful guidance beyond the bare schema, though individual fields are not explained in depth.

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 generates an HTML mockup of a proposed page ('Genera una MAQUETA HTML de una hoja propuesta') and explicitly distinguishes it from write operations by adding 'sin escribir nada al .pbip'. The verb, resource, and output are all specific, and it differentiates from siblings like pbi_create_page_from_spec and pbi_apply_page_spec.

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 when to use it: to review a proposed page design in the browser before committing anything to the .pbip file. It provides a clear workflow via the returned HTML path, though it does not explicitly name alternatives or state exclusions, so it falls short of a 5.

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

pbi_profile_dataA

Perfila los VALORES del modelo abierto y devuelve lo que no cuadra.

Complementa a pbi_audit_model, que revisa la estructura: un porcentaje que vale -800 no es un defecto del modelo sino de los datos, y solo se ve consultandolos.

Detecta porcentajes fuera de 0-100, columnas vacias, columnas de un solo valor y columnas mayormente vacias. Cada hallazgo trae la consulta que lo demuestra y la consecuencia concreta sobre el tablero.

Solo lectura. tables acota el trabajo; max_columns evita que un modelo grande agote el timeout y devuelva un perfil a medias.

ParametersJSON Schema
NameRequiredDescriptionDefault
tablesNo
max_columnsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior1/5

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

The description states 'Solo lectura' (read-only), but the annotations set `readOnlyHint: false`. This is a direct contradiction, undermining the agent's ability to trust the tool's side-effect profile. Although other behavioral details are provided (detected issues, queries, consequences), the contradiction forces a score of 1 per evaluation rules.

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 concise, with each sentence providing essential information: purpose, complementary relationship, detection criteria, and parameter roles. No filler; it is front-loaded and stays focused.

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, the description covers the key aspects: what it does, which specific data anomalies it detects, what each finding includes, that it is read-only, and how parameters affect behavior. The presence of an output schema means return values need no explanation, so this description is complete for agent usage.

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 fully compensates by explaining both parameters: `tables` scopes the work, and `max_columns` prevents timeout on large models. This adds meaningful context beyond the bare type information in the schema.

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

Purpose5/5

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

The description uses a specific verb 'Perfila' (profiles) with a clear resource ('VALORES del modelo'), and explicitly distinguishes itself from pbi_audit_model by stating it reviews data values rather than structure. This makes the tool's purpose unmistakable and differentiates it from its sibling.

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

Usage Guidelines5/5

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

The description explicitly explains when to use this tool instead of pbi_audit_model, noting that structural audits miss data-level issues like percentages outside 0-100. It also provides practical usage guidance for parameters, such as using `tables` to limit scope and `max_columns` to avoid timeouts.

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

pbi_propose_dashboardA
Read-only

Mira el modelo y PROPONE varios diseños distintos, con su porque.

A diferencia de pbi_page_building_blocks, que entrega el inventario y deja el diseño en manos de quien pregunta, esto clasifica lo que hay —que columna es un estado, cual una fecha, cuales forman una familia de metricas comparables— y devuelve paginas completas con un spec listo para aplicar.

Devuelve tambien blockers: lo que hay que resolver ANTES de construir (p.ej. un modelo sin medidas, donde todo visual caeria en sumas implicitas), y themes con las paletas disponibles.

Usalo para ofrecer opciones al usuario en vez de decidir por el.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds meaningful behavioral context: it classifies columns into status/date/metric families, returns complete pages with specs, and also discloses 'blockers' and 'themes' as part of the output. This goes beyond just the annotation.

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

Conciseness4/5

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

The description is well-structured and front-loaded with the core purpose, followed by differentiation and output details. It's slightly longer than the two-sentence ideal, but every sentence adds value—no fluff.

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

Completeness4/5

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

The description covers the tool's purpose, how it differs from a key sibling, and what it returns (pages with specs, blockers, themes). Since an output schema exists, the description doesn't need to detail return structures. It doesn't mention prerequisites like model selection, but that's context likely handled elsewhere.

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, so the baseline is 4. The description doesn't need to explain parameters since there are none, and it provides no parameter-specific information that could be added.

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: examine the model and propose several distinct dashboard designs with rationale. It explicitly differentiates from pbi_page_building_blocks, which only provides inventory, making the tool's role 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?

Explicit usage guidance is provided: use this tool to offer design options to the user instead of deciding for them. It contrasts directly with pbi_page_building_blocks, which leaves design decisions to the user, giving clear when-to-use signals.

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

pbi_purge_backupsA
Destructive

Aplica la politica de retencion a los backups. DESTRUCTIVA.

Sin confirm devuelve el MANIFIESTO de lo que se eliminaria, sin tocar nada. Solo se borran directorios de journal reconocibles (con su manifest.json) dentro de la carpeta de backups del proyecto activo: nunca un archivo suelto, ni un enlace simbolico, ni una raiz amplia.

Se conserva siempre el journal mas reciente y TODOS los pendientes: un journal pendiente guarda los unicos originales de una transaccion que no llego a cerrarse.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
confirmNo
request_idNo
max_journalsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true), the description adds substantial behavioral detail: without 'confirm' it returns a manifest without deleting; it only deletes recognizable journal directories; it never deletes loose files, symlinks, or broad roots; and it always preserves the newest journal and all pending journals. This greatly informs the agent of safety and 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.

Conciseness5/5

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

The description is concise and well-structured: it opens with the purpose and a clear destructive warning, then details the safe behavior and retention guarantees. Each sentence adds essential operational context without fluff.

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

Completeness3/5

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

The tool is destructive with 4 parameters and an output schema. The description thoroughly covers safety behavior and preservation guarantees, but omits semantics for 'days' and 'max_journals' that are necessary for an agent to use it correctly. The output schema likely covers return format, but parameter gaps make the description incomplete overall.

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 explains the 'confirm' parameter ('Sin confirm devuelve el MANIFIESTO...') but does not explain 'days', 'max_journals', or 'request_id'. These are critical for correct invocation (e.g., retention period and number of journals to keep), so the description is insufficient for parameters.

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: 'Aplica la politica de retencion a los backups' (applies retention policy to backups), and explicitly marks it as DESTRUCTIVA. This distinguishes it from sibling tools like pbi_backup_pbip_project (backup creation) and pbi_recover_from_journal (recovery), making it the deletion/retention tool.

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 does not explicitly state when to use this tool versus alternatives, nor does it name exclusions. However, the context of retention policy and the destructive hint imply it is for cleanup operations. The safety boundaries (only journal directories with manifest.json, never loose files/symlinks) provide usage constraints but not explicit alternative guidance.

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

pbi_recover_from_journalA
Destructive

Restaura los originales guardados en un journal. DESTRUCTIVA.

Sin confirm devuelve la VISTA PREVIA: que archivos se restaurarian, cual es su estado actual y si alguien los cambio despues.

Estados: recoverable, recovered, conflict, incomplete, corrupted. Si un archivo cambio despues de la transaccion, se rechaza con recovery_conflict en vez de pisar ese trabajo; force_conflict lo aplica de todas formas.

Cada archivo se verifica byte a byte tras restaurarlo, y se recrean los directorios padre que hubieran desaparecido.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
journalYes
request_idNo
force_conflictNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, but the description adds substantial behavior: preview mode without confirm, the five possible states, rejection on changed files via `recovery_conflict`, the `force_conflict` override, byte-by-byte verification, and recreation of missing parent directories. It also reveals that conflicts prevent overwriting work, which is critical safety information.

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

Conciseness5/5

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

The description is compact, well-structured, and front-loaded with the core action and a warning. Every sentence adds value: preview behavior, conflict details, safety checks, and directory restoration. No filler or repetition.

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

Completeness5/5

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

Given the tool's destructive nature, the description covers all essential aspects: preview, execution, conflict resolution, verification, and side effects on parent directories. Since an output schema exists, return values are already structured. The description is complete enough for an agent to decide safely.

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

Parameters4/5

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

Schema coverage is 0%, so the description must define parameter meaning. It clearly explains `confirm` (preview vs execution) and `force_conflict` (apply despite a conflict). `journal` is implicit in the tool purpose. However, `request_id` is not explained at all, leaving one parameter's semantics unclear.

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

Purpose5/5

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

The description starts with 'Restaura los originales guardados en un journal' — a specific verb and resource. It clearly distinguishes this tool from siblings like pbi_inspect_journal (inspect only) and pbi_purge_backups (permanently delete). The 'DESTRUCTIVA' marker reinforces its purpose as a recovery/restore operation.

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

Usage Guidelines4/5

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

The description explicitly explains the preview mode (without `confirm`) versus the actual recovery (with `confirm`), and how `force_conflict` handles conflicts. This gives clear context for when to use each parameter. However, it does not name alternative tools or state when not to use this tool, so it stops short of a full 5.

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

pbi_reflow_pagesA

Reescala las paginas ya escritas al lienzo de otro sistema.

El camino de vuelta que faltaba. Aplicar un sistema cambia el tema del informe, pero NO reescribe lo ya compuesto: las paginas se quedan con el lienzo anterior —visuales fuera de limites, basura invisible que si viaja al render— y con los colores que se cocieron al componerlas: un titulo compuesto en tema oscuro queda BLANCO SOBRE BLANCO al pasar a claro, sin que falle nada.

Esto hace las dos cosas: reescala cada visual proporcionalmente al lienzo nuevo (acotandolo si no cabe) y recalcula el color de texto de los elementos decorativos con el tema del sistema destino.

No recompone: no se puede saber que intencion tenia cada visual, y adivinarla seria peor. Si una pagina necesita otra estructura, recomponla con pbi_compose_page. Esto la deja utilizable, no optima.

pages: subconjunto opcional (id o nombre visible); por defecto todas. dry_run=true (por defecto) devuelve el plan visual por visual, con cuales estaban ya fuera de limites, sin escribir nada.

Escribe en el informe (PBIR): requiere el proyecto CERRADO en Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNo
systemYes
dry_runNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses key behaviors: it rescales proportionally, bounds out-of-fit visuals, recalculates text colors, does NOT recompose, supports a dry-run mode that writes nothing, and writes to the report (PBIR). It explains the reasoning behind the 'no recompose' limitation. The annotations (readOnlyHint=false, destructiveHint=false) are consistent with the description; no contradiction.

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 main action. It uses three clear paragraphs: core functionality, limitation/alternative, and parameter notes. Every sentence contributes value, and the length is appropriate for the complexity described.

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 (write operation with dry-run, out-of-bounds handling, color recalculation) and the presence of an output schema, the description is quite complete. It covers the why, what, limitations, parameter behavior, and operational requirement (project closed). The only minor omission is explicit documentation of `system`, but the context makes it inferable.

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 does explain `pages` (optional subset, default all) and `dry_run` (default true, returns plan without writing), which is helpful. However, the required `system` parameter is only indirectly referenced (as the destination system) but never explicitly tied to the parameter, and `request_id` is not mentioned at all. This partial coverage leaves meaning 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 function: 'Reescala las paginas ya escritas al lienzo de otro sistema.' It explains it rescales visuals and recalculates text colors, and explicitly contrasts with pbi_compose_page ('No recompone'), distinguishing it from siblings. The verb is specific and the scope is clear.

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 sets the context ('El camino de vuelta que faltaba'), explains when this tool is needed (after applying a system to composed pages), and provides an explicit alternative: 'Si una pagina necesita otra estructura, recomponla con pbi_compose_page.' It also mentions the prerequisite of having the project closed in Desktop, which is important usage guidance.

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

pbi_refresh_modelA
Destructive

Refresca el modelo LOCAL abierto en Power BI Desktop (no el Service).

type: full | calculate | clear_values (tambien automatic | data_only). tables: lista opcional de tablas a refrescar; si se omite, todo el modelo. Los errores de credenciales/origen se reportan.

timeout_seconds (600 por defecto, 0 lo desactiva): un refresh lanzado por XMLA no puede mostrar el dialogo de credenciales de Desktop, asi que un origen sin credenciales guardadas deja al motor esperando para siempre y no hay ninguna ventana que cerrar. Al agotarse el plazo se pide la cancelacion al motor y se devuelve refresh_timeout enumerando los origenes que REQUIEREN credenciales -no si las tienen: eso Desktop no lo expone- y si la cancelacion se confirmo o el comando pudo quedar corriendo.

Devuelve estado, duracion y rows_by_table: cuantas filas quedaron en cada tabla refrescada. Un refresh puede terminar en 'ok' y haber cargado CERO filas -credenciales que devuelven vacio, un filtro de fecha que no alcanza nada, un origen que cambio de esquema-, asi que las tablas vacias salen ademas en warnings. Si no se pudo contar, se dice; no se inventa el numero.

En un proyecto .pbip los datos NO se guardan: viven en la sesion de Desktop y al reabrir hay que refrescar otra vez. Lo que persiste al guardar es la definicion (TMDL + PBIR).

Exige confirm=true desde 2.0.0. Hasta entonces era la unica tool destructiveHint sin confirmacion junto con pbi_open_and_refresh: un agente que decide por «¿tiene confirm?» no veia nada que preguntar.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNofull
tablesNo
confirmNo
request_idNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

With destructiveHint=true and readOnlyHint=false, the description adds rich context well beyond the annotations: the XMLA credential-dialog limitation that causes infinite hangs, the timeout_seconds default/disable semantics, the 'ok with zero rows' gotcha, the warning list behavior, and the critical .pbip data-not-saved persistence fact. It also discloses the confirm=true requirement since 2.0.0. This is exactly the kind of behavioral disclosure a mutation tool with sparse annotations needs — no contradictions found.

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 substantial (~180 words across three paragraphs) but front-loaded with the core purpose and param summary before diving into edge cases. The timeout/credential paragraph, zero-rows caveat, and .pbip persistence note are all necessary behavioral disclosures. Only the historical note about 'the only destructiveHint tool without confirmation' is somewhat meta/trim-able, but it explains why confirm exists. Dense but every sentence earns its place.

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

Completeness5/5

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

For a destructive, credential-sensitive, hang-prone tool with 5 params, 0% schema coverage, and no enums, the description is remarkably complete: it covers type semantics, table selection, the critical timeout failure mode, return value semantics (status, duration, rows_by_table, refresh_timeout, warnings) even though an output schema exists, .pbip persistence behavior, and the confirm requirement. Nothing essential about successful use or failure modes is left unaddressed.

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 carries the full burden, and it largely delivers: type's valid values (full | calculate | clear_values | automatic | data_only), tables's optional-omit-means-everything semantics, timeout_seconds's default (600), disable value (0), and hang-prevention rationale, and confirm's mandatory status. Only request_id is left undocumented, which is a modest gap given the otherwise thorough 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 opening sentence states the exact verb-resource-scope: refreshes the LOCAL model in Power BI Desktop, explicitly excluding the Service. This clearly distinguishes it from sibling pbi_open_and_refresh (which opens + refreshes), and the .pbip vs. model distinction further scopes its behavior. Purpose is unambiguous 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 Guidelines4/5

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

The description gives explicit exclusion context ('not the Service' — so don't use it for cloud refresh) and references sibling pbi_open_and_refresh by name, implying when a different tool applies. It also explains important contextual behavior (confirm=true requirement, .pbip data-not-saved persistence) that informs when a refresh is meaningful. It stops short of a full when/when-not decision framework for all alternatives, but the local-vs-Service and refresh-vs-open-and-refresh contrasts are substantive.

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

pbi_rename_measureA

Renombra una medida actualizando TODO lo que la referencia.

Renombrar a mano rompe el informe en silencio: cualquier visual o medida que apuntara al nombre viejo abre y sale VACIO, sin error. Esta tool compila primero y escribe en UNA transaccion: la cabecera TMDL, las expresiones DAX de otras medidas que usan [old_name], y los visual.json del informe. Devuelve la lista de lo tocado.

Limite honesto: las referencias DAX CALIFICADAS (Tabla[old]) no se reescriben —pueden ser una columna homonima de otra tabla, y adivinar seria corromper—; si quedan, salen en warnings con su ubicacion, igual que las de bookmarks y filtros.

Solo pbip (escribe modelo E informe a la vez: exige Desktop CERRADO). dry_run=true (defecto) devuelve el plan sin escribir.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
dry_runNo
new_nameYes
old_nameYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false), the description discloses detailed behavioral context: it compiles first, writes in a single transaction, updates the TMDL header, DAX expressions, and visual.json, returns a list of touched items, and warns about qualified references not being rewritten. This is rich, honest disclosure consistent with the annotation that it is a write operation without being destructive.

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 four dense sentences that cover the action, rationale, technical process, limitations, and prerequisites. It is front-loaded with the main verb and every sentence adds essential information without fluff.

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 rename-update tool, the description covers prerequisites (pbip only, Desktop closed), the transactional process, safety (dry_run default), output (list of touched items), and limitations (qualified references, warnings). Since an output schema exists, return values need no further explanation; this is complete enough for an agent to use correctly.

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 coverage is 0%, but the description compensates partially: it explains dry_run defaults to true and returns a plan without writing, and it contextualizes old_name/new_name via examples like `[old_name]` and `Tabla[old]`. However, it does not explicitly define table or request_id parameters, leaving some parameter semantics to inference.

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

Purpose5/5

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

The description opens with 'Renombra una medida actualizando TODO lo que la referencia', a specific verb (rename) and resource (measure) plus the key scope (updating all references). This clearly distinguishes it from sibling tools like pbi_update_measure or pbi_delete_measure, making the tool's unique purpose immediately evident.

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 states when to use it: for renaming measures safely instead of manually renaming, which would break visuals/measures silently. It also specifies a clear prerequisite: only works on .pbip projects and requires Desktop closed. However, it does not explicitly name alternative tools, so it falls short of a full when-to-use/when-not-to-use map.

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

pbi_rename_pageA

Cambia el nombre visible de una pagina. El id interno no cambia.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
new_nameYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate mutation without destructive effects. The description adds a useful behavioral nuance: the internal ID remains unchanged, which helps agents understand side effects. It does not cover all possible impacts (e.g., references), but given the simple operation this is adequate.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant information. It is front-loaded with the action and immediately conveys the key detail about internal ID stability.

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 and the presence of an output schema (not shown), the description is mostly complete. It could mention return values or error conditions, but the core behavior is clearly described. The annotation already covers safety aspects, so this is near-complete for its complexity.

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

Parameters2/5

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

The schema has 0% description coverage, leaving only property titles 'Page' and 'New Name'. The description does not explain what the 'page' parameter expects (name, ID, or object reference) nor any constraints for 'new_name'. This is a significant gap because the description fails to compensate for the lack of schema details.

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 changes a page's visible name and notes that the internal ID does not change, providing a specific verb and resource. This distinguishes it from sibling tools like duplicate or delete page, as it is solely for renaming.

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 when to use the tool (renaming a page) and is unambiguous for that action. It does not explicitly mention alternatives or exclusions, but for a rename operation this is acceptable and clear enough for an agent to select it.

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

pbi_reorder_pagesA

Fija el orden de las paginas del informe.

Acepta ids o nombres visibles. Las paginas que no menciones quedan al final, conservando su orden relativo.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description adds a non-obvious behavioral rule: unmentioned pages are moved to the end while preserving their relative order. This goes beyond what annotations provide and clarifies the side effect on the full set of pages.

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 two short sentences, front-loaded with the primary action, and each sentence adds unique information. No redundant or filler content, making it highly concise and efficiently structured.

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 is relatively simple with 2 parameters and an output schema present. The description covers the core functionality and the most important parameter behavior. It omits explanation for 'request_id', but given the optional nature and existence of an output schema, the description is sufficiently complete for an agent to invoke the tool correctly.

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 carry the burden. It clarifies that the 'order' array accepts ids or visible names, which explains the main parameter's items. However, the optional 'request_id' parameter is not mentioned, leaving its purpose unclear. Partial compensation, but not complete.

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

Purpose5/5

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

The description begins with 'Fija el orden de las paginas del informe' which clearly states a specific action (fixing/ordering) on a specific resource (report pages). This distinguishes it from sibling tools like rename_page, delete_page, or duplicate_page, 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 explains how to specify pages ('Acepta ids o nombres visibles') and the behavior of unmentioned pages ('Las paginas que no menciones quedan al final, conservando su orden relativo'). This provides clear usage context, though it does not explicitly mention when not to use this tool or alternatives.

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

pbi_repair_broken_referencesA

Detecta referencias rotas en los visuales y las repara.

Sin mapping solo diagnostica: adivinar a que campo queria apuntar un visual roto no es una decision que deba tomarse sola. Pasa {"Tabla[Viejo]": "Tabla[Nuevo]"} para repararlas, y el destino se valida contra el modelo antes de escribir.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
mappingNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond annotations: the tool acts as a diagnostic-only mode without mapping, and it validates destinations before writing. This conditional behavior is not captured by the annotations, but the description does not elaborate on all side effects (e.g., dry_run behavior).

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

Conciseness5/5

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

The description is concise, front-loaded with the core purpose, and includes a practical example. Every sentence contributes useful information without unnecessary detail.

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 output schema covers return values, so the description only needs to clarify behavior. It explains the two modes, the validation step, and the mapping format. Minor gaps remain (e.g., dry_run semantics), but overall it is complete for the tool's complexity.

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

Parameters3/5

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

The description provides an excellent example for the `mapping` parameter, clarifying its format and purpose. However, `dry_run` and `request_id` are not explained, and with 0% schema coverage, the description only partially compensates for the missing parameter documentation.

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

Purpose5/5

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

The description clearly states the tool's function: detect and repair broken references in visuals. It distinguishes two modes (diagnose vs. repair) and is specific about the resource and action, differentiating it from sibling tools like pbi_replace_visual_field.

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 explains when to use the tool: without `mapping` it only diagnoses, and with `mapping` it repairs after validating destinations. It also warns against guessing field mappings, providing clear guidance on responsible use.

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

pbi_replace_visual_fieldA

Sustituye una referencia de campo dentro de un visual.

old_ref/new_ref: 'Tabla[Campo]' o '[Medida]'. Trabaja sobre las proyecciones existentes; no crea roles nuevos. Falla si el visual no referencia old_ref, en vez de no hacer nada en silencio.

El destino se valida contra el modelo antes de escribir: si no existe, es ambiguo o es de otro tipo (medida donde va una columna), se rechaza con field_not_found en lugar de inventarlo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
new_refYes
old_refYes
visual_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations (all false, giving no safety profile), the description discloses important behavioral traits: it fails loudly instead of silently doing nothing, and it validates the destination against the model before writing, rejecting with field_not_found if invalid. This adds meaningful context about error handling and validation, though it omits details about reversibility or permissions.

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

Conciseness5/5

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

The description is compact and well-structured. Each sentence serves a purpose: the first states the core action, the second defines the parameter formats and scope, and the third clarifies validation and error behavior. There is no fluff or 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?

The description covers the essential aspects: purpose, parameter format, constraints, and error behavior. It does not explain prerequisites like which model must be open, but the output schema exists (which likely covers return values) and the tool's scope is well-defined. Given the large sibling set, the description adequately distinguishes the tool but could benefit from an explicit usage scenario.

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 by explaining the format of old_ref and new_ref ('Tabla[Campo]' or '[Medida]'). The remaining parameters (page, visual_id, request_id) are likely self-explanatory from their names, but the description does not add any semantics for them, so it only partially compensates for the coverage 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 opens with a specific verb and resource: 'Sustituye una referencia de campo dentro de un visual' (replaces a field reference within a visual). It also explains the reference format and explicitly distinguishes itself from other visual operations by stating it works on existing projections and does not create new roles.

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

Usage Guidelines3/5

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

The description provides context by specifying constraints (only works on existing projections, does not create new roles) and error behavior (fails if old_ref is not referenced), but it does not explicitly mention when to use this tool versus alternatives. For example, it doesn't state 'use this for swapping fields, while pbi_set_visual_filter is for filtering'—such guidance is only implied.

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

pbi_report_capabilitiesA
Read-only

Version PBIR observada, tema, custom visuals y tipos clonables.

Solo se pueden crear visuales de tipos ya presentes en el informe: se clona una estructura real en vez de inventarla. Esta tool dice cuales hay disponibles antes de intentarlo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

The description adds meaningful context beyond the readOnlyHint annotation by disclosing that it 'observes' the report and reports specific capabilities. It also explains the constraint that only existing visual types can be cloned, which is a behavioral trait relevant for the agent's planning. No contradiction with annotations.

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: two short sentences that front-load the key outputs and then provide the essential usage context. Every sentence earns its place with no redundancy or filler.

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

Completeness5/5

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

For a zero-parameter, read-only tool with an output schema, the description is complete. It explains what the tool provides, why it matters (the cloning constraint), and when to use it. The output schema handles return-value details, so no further explanation is needed.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, but it does add value by describing the output (version, theme, custom visuals, clonable types), which complements the presence of an output 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 what the tool does: it reports the observed PBIR version, theme, custom visuals, and clonable visual types. The verb is implied but specific ('dice cuales hay disponibles'), and the resource is 'el informe' (the report). This distinguishes it from sibling tools like pbi_list_visuals (lists actual visuals) and pbi_capabilities (generic capabilities) by focusing on the types available for cloning.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool 'antes de intentarlo' (before trying) to create visuals, and explains why: only visuals of types already present in the report can be created. This gives a clear when-to-use context, though it does not name alternative tools or provide when-not-to-use guidance.

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

pbi_run_daxA

Ejecuta una consulta DAX de SOLO LECTURA contra el modelo activo.

Solo se admiten formas reconocidas: EVALUATE, DEFINE...EVALUATE y DMVs de $SYSTEM. Cualquier otra cosa se rechaza (politica fail-closed).

max_rows: limite de filas. max_bytes: tope de tamano del resultado, para no devolver megas al cliente. timeout_seconds: timeout del comando. export=true vuelca el resultado completo a outputs/ y devuelve la ruta.

Devuelve columnas, tipos observados, filas, estadisticas de ejecucion y si se trunco (y por que: filas o tamano). Los errores DAX del motor se devuelven tal cual.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
exportNo
max_rowsNo
max_bytesNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the annotations by disclosing the fail-closed acceptance policy, the effects of max_rows, max_bytes, timeout_seconds, and export behavior, including writing to outputs/. It also reveals the response content (columns, truncation reasons, engine errors), providing thorough behavioral context.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by constraints, parameter semantics, and output behavior. Every sentence contributes useful information, and there is no filler or repetition.

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

Completeness5/5

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

With an output schema present and annotations available, the description still adds critical context: accepted DAX forms, fail-closed policy, export side effects, truncation criteria, and error handling. It leaves no major gap for an agent deciding when and how to invoke this tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the full burden. It explains export, max_rows, max_bytes, and timeout_seconds with their intended behavior. The 'query' parameter is only indirectly described as a DAX query, but the accepted forms section adds enough context to understand its purpose.

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

Purpose5/5

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

The description uses a specific verb ('Ejecuta') and identifies the resource ('consulta DAX contra el modelo activo'). It also enumerates the accepted query forms, making it clearly distinct from other tools that list static model metadata or perform audits.

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

Usage Guidelines4/5

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

It explicitly defines when the tool may be used (read-only DAX queries) and gives clear exclusions (only EVALUATE, DEFINE...EVALUATE, and $SYSTEM DMVs; everything else is rejected with a fail-closed policy). It stops short of naming sibling alternatives, so it is not a perfect 5.

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

pbi_search_modelA
Read-only

Busca objetos del modelo por nombre (y en el DAX de las medidas).

term: texto a buscar, sin distinguir mayusculas. kinds: filtra por tipo — table, column, measure, hierarchy, role. Para las medidas indica si coincidio el nombre o la expresion.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYes
kindsNo
limitNo
sourceNolive

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description adds useful behavioral context: case-insensitive search, filtering by kinds, and a distinction for measures between name and expression matches. This enriches the agent's understanding of the tool's behavior.

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

Conciseness5/5

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

The description is concise, front-loaded with the main purpose, and uses clear formatting for parameter details. Every sentence adds value, and there is no unnecessary filler.

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 presence of an output schema and read-only annotation, the description does not need to explain return values. It covers the core behavior and important nuances (case-insensitivity, kinds, name-vs-expression), though it omits details about `limit` and `source`. Overall, it is sufficiently complete for a search tool.

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%, and the description only explains `term` and `kinds`, adding meaning like case-insensitivity and filter types. However, `limit` and `source` are left undocumented, leaving gaps that the schema does not fill.

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

Purpose5/5

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

The description clearly states the tool's function: searching model objects by name and within measure DAX. The verb 'Busca' (search) is specific, and the resource 'objetos del modelo' is well-defined. This distinguishes it from sibling tools like list_tables or get_object.

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 for finding model objects by term, but it does not explicitly state when to use this tool over alternatives like get_object or list_measures, nor does it provide exclusions. The use case 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.

pbi_select_modelA
Idempotent

Selecciona el modelo local activo para futuras operaciones.

Si hay un solo modelo abierto no hace falta indicar nada. Si hay varios, pasa port o connection_string TAL CUAL lo devuelve pbi_list_desktop_models ("Data Source=localhost:56057"): lo que sale de esa tool entra en esta sin tener que extraer el puerto a mano.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNo
catalogNo
connection_stringNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) cover the safety profile, and the description adds genuine context: it's a stateful selection ('para futuras operaciones') and discloses the exact pass-through contract ('TAL CUAL lo devuelve pbi_list_desktop_models') along with the anti-pattern it prevents (hand-extracting the port). No contradiction with annotations — re-selecting is indeed idempotent.

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

Conciseness5/5

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

Three tight sentences, each earning its place: purpose, when-to-skip-args, and how-to-pass-values. The bolded 'o' and inline format example aid scanning. Dense but efficient — zero filler.

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

Completeness4/5

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

For a stateful selection tool with an output schema present, the description covers the core flows: single model, multiple models, and the value-passing contract. Minor gaps: no comment on error behavior when no models are open or on whether selection persists, and catalog remains undefined. Still, given the output schema handles return values, this is largely complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It richly does for two parameters: port and connection_string are explained as interchangeable alternatives with a concrete format example and 'don't transform the value' instruction. However, the `catalog` parameter is never mentioned, leaving one third of the API surface undocumented in both schema and description.

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?

Uses a specific verb with resource and scope: 'Selecciona el modelo local activo para futuras operaciones' (selects the active local model for future operations). This crisply distinguishes it from ~140 siblings like pbi_list_desktop_models (listing), pbi_define_port_contract, and pbi_test_connection. The purpose is unmistakable even without reading further.

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?

Excellent when/when-not guidance: single open model → no args needed; multiple models → pass `port` or `connection_string`. It explicitly references the companion tool pbi_list_desktop_models as the source of values and explains the pass-through contract so the agent doesn't transform input. Loses a point on not explicitly naming sibling alternatives to rule out, and doesn't state what happens when called with no args if multiple models are open.

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

pbi_session_infoA
Read-only

Detalle de la sesion: modelo activo, proyecto activo y su frescura.

Distingue una sesion valida de una obsoleta (stale) o de otra que ocupo el mismo puerto (mismatch).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the description need not repeat safety. It adds valuable behavioral context by explaining that the tool distinguishes valid vs stale vs mismatch sessions and reports freshness, which clarifies output semantics beyond the structured annotations.

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 two compact sentences, front-loaded with the core purpose and then adding the session-state distinction. Every clause earns its place; there is no redundancy or filler.

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

Completeness5/5

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

Given the existence of an output schema and read-only annotations, the description is complete for a simple info tool. It conveys the essential output concepts (active model, project, freshness, status classes) without needing to enumerate return fields. The agent has sufficient context to 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?

The input schema has zero parameters with 100% coverage, so there are no parameter semantics to clarify. Baseline for zero parameters is 4, and the description appropriately focuses on the tool's output rather than nonexistent inputs.

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

Purpose5/5

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

The description clearly states the tool's function: it provides session details (active model, project, freshness) and distinguishes valid, stale, and mismatch session states. This specific scope differentiates it from generic health/connection checks, making the purpose unambiguous and non-tautological.

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 for verifying session status and validity, but does not explicitly name alternatives or exclusions. The context is clear enough for an agent to know when to invoke this tool, but it lacks explicit guidance on when to prefer it over sibling tools like pbi_health_check or pbi_test_connection.

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

pbi_set_color_from_fieldA

Colorea un visual con el color que DEVUELVE una medida.

Es el modo "valor de campo" de Power BI: la medida entrega '#D03B3B' o un nombre de color, y el visual lo aplica tal cual. Es el patron tipico de un semaforo calculado en DAX.

field: '[Medida]' o 'Tabla[Medida]' que devuelve el color. target: 'background' o 'font' (tablas y matrices), 'bars' (barras, columnas y puntos). La matriz de que combinacion funciona en que tipo de visual vive en el servidor y se valida antes de escribir. target_column: columna proyectada a pintar; sin ella se pinta la columna del propio campo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
fieldYes
targetNobackground
visual_idYes
request_idNo
target_columnNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description adds behavioral context beyond the annotations by explaining that the visual applies the returned color as-is, and that valid field/target/visual combinations are validated server-side before writing. This is useful context that annotations (readOnlyHint=false) alone do not provide.

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

Conciseness5/5

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

The description is concise and well-structured: an introductory sentence, a clarifying analogy, and then bullet-style parameter explanations. Every sentence contributes value without unnecessary fluff.

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 and the presence of an output schema, the description adequately covers the core behavior, parameter formats, and validation. It doesn't spell out prerequisites like needing an existing measure, but the intended pattern is clear enough for an agent to use 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?

With 0% schema description coverage, the description compensates by detailing `field` (measures like '[Medida]' or 'Tabla[Medida]'), `target` (background, font, bars with visual-type context), and `target_column` (optional column to paint). It omits obvious params like page and visual_id, which are standard.

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

Purpose5/5

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

The description uses the specific verb 'Colorea' (colors) with a clear resource (a visual) and a precise mechanism (using a color returned by a measure). It distinguishes itself from sibling tools like pbi_set_conditional_format by explicitly identifying this as Power BI's 'valor de campo' mode.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool: it's the typical pattern for a DAX-calculated traffic light. It does not explicitly name alternatives or say when not to use it, but the 'valor de campo' framing makes the intended use case clear.

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

pbi_set_column_visibilityA

Oculta o muestra una columna del modelo (p.ej. ocultar columnas de ID).

mode='both' esta temporalmente deshabilitado bajo la politica estricta: 'live' necesita Power BI Desktop abierto y 'pbip' lo necesita cerrado, asi que una sola llamada aplicaria solo uno de los dos destinos. Elige 'live' o 'pbip', o usa 'auto' y se mira el estado para elegir. Si estas construyendo desde cero, 'auto' o 'pbip': el defecto es 'live' y exige Desktop abierto.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
tableYes
columnYes
hiddenNo
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses important behavioral constraints: 'live' requires Power BI Desktop open, 'pbip' requires it closed, and mode='both' is disabled. This explains why only one destination can be applied per call and clarifies the default mode's prerequisite.

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 paragraph of about 80 words, front-loaded with the purpose statement. It covers essential mode behavior and prerequisites without redundancy, though it could be structured more clearly.

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's mode complexity is thoroughly addressed: the disabled 'both' option, prerequisites for 'live' and 'pbip', and 'auto' behavior are all explained. With an output schema present, return-value documentation is unnecessary, but request_id remains unexplained.

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 compensates for the 'mode' parameter by explaining its values and default behavior. However, it leaves 'table', 'column', 'hidden', and 'request_id' without additional semantics, though most are self-explanatory from names/types.

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

Purpose5/5

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

The description states 'Oculta o muestra una columna del modelo', which is a specific action (hide/show) on a model column. It implicitly differentiates from the sibling tool pbi_hide_columns by including 'muestra' (show) and singular 'columna', making its scope clear.

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

Usage Guidelines3/5

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

The description provides detailed guidance on mode selection ('live' vs 'pbip' vs 'auto') and warns that 'both' is temporarily disabled due to conflicting prerequisites. However, it does not explain when to choose this tool over alternatives like pbi_hide_columns, so tool-selection guidance is implied at best.

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

pbi_set_conditional_formatA

Colorea un visual segun el valor de un campo (degradado).

Es lo que convierte una matriz de numeros en un mapa de calor, o unas barras planas en una escala de semaforo.

field: 'Tabla[Campo]' o '[Medida]' de donde sale el VALOR. target_column: que columna del visual se pinta con ese valor; sin ella se pinta la columna del propio field. Debe estar proyectada en el visual (p.ej. pintar 'Resumen[semaforo]' con '[Puntaje promedio]'). target: 'background' o 'font' para tablas y matrices; 'bars' para barras, columnas y puntos. mid_color: si lo indicas, el degradado tiene tres paradas en vez de dos, util cuando hay un punto neutro. min_value/mid_value/max_value: anclas numericas de las paradas (sin ellas, Power BI usa el minimo y maximo observados). null_strategy: asZero | none | specificColor.

Si el visual ya tenia una regla en ese mismo destino, se sustituye: dos degradados sobre la misma propiedad no se suman, se pisan.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
fieldYes
targetNobackground
max_colorYes
max_valueNo
mid_colorNo
mid_valueNo
min_colorYes
min_valueNo
visual_idYes
request_idNo
null_strategyNoasZero
target_columnNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (which only indicate non-read-only and non-idempotent), the description discloses that applying a second gradient to the same property overwrites the previous rule ('dos degradados sobre la misma propiedad no se suman, se pisan'). It also explains the default behavior for missing min/max values and the requirement for target_column to be projected, adding valuable operational context.

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

Conciseness5/5

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

The description is well-structured: a short introductory sentence, a compact bullet-style explanation of each parameter, and a critical caveat about rule replacement. Every sentence contributes substantive information, and there is no redundant filler.

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

Completeness5/5

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

For a 13-parameter tool with no schema descriptions and no annotation assistance, this description covers usage context, parameter semantics, and side effects thoroughly. The presence of an output schema means the description does not need to explain return values, making the content sufficiently complete for an agent to select and 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 compensates thoroughly by explaining nearly every meaningful parameter: field's table/measure syntax, target_column's role and prerequisite, target's possible values, mid_color's effect, numeric anchors, and null_strategy options. This is essential for correct invocation and far exceeds what the bare schema offers.

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

Purpose5/5

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

The description states 'Colorea un visual segun el valor de un campo (degradado)', which clearly identifies the tool as applying gradient-based conditional formatting. The analogies (heat map, traffic light scale) definitively clarify the purpose and distinguish it from other visual formatting tools like pbi_set_visual_title or pbi_set_color_from_field.

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

Usage Guidelines4/5

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

The description gives clear context: it is meant for gradient coloring based on field values and even warns that existing rules on the same target are replaced, which is critical for usage. However, it does not explicitly name alternatives for simpler static coloring or other formatting approaches, so it lacks explicit exclusions.

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

pbi_set_relationship_directionA

Cambia el filtro cruzado de una relacion.

direction: 'single' (una direccion, recomendado) o 'both' (bidireccional). OJO: cambiar a 'single' puede alterar totales que dependian de la bidireccional; verifica el informe despues.

No confundir direction='both' (bidireccional, valido) con mode='both', que esta temporalmente deshabilitado bajo la politica estricta: 'live' necesita Power BI Desktop abierto y 'pbip' lo necesita cerrado, asi que una sola llamada aplicaria solo uno de los dos destinos.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
to_tableYes
directionNosingle
from_tableYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations: it warns that changing to 'single' can alter totals, and it explains the 'mode' parameter's behavior with 'live' vs 'pbip' and the temporary disabling of 'mode='both''. This goes beyond the basic readOnlyHint/destructiveHint flags, which are all false, and provides useful side-effect information.

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

Conciseness4/5

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

The description is concise and front-loaded with the tool's purpose. It then provides essential parameter details and warnings in a readable format. The 'OJO' and 'No confundir' notes are useful and not overly verbose. It could be slightly more structured, but it is well within acceptable length.

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 that an output schema exists, the description need not explain return values. It covers the tool's purpose, key parameter semantics, and important behavioral caveats (side effects on totals, mode restrictions). While it doesn't discuss prerequisites like model selection or relationship identification, the core operation is well-described for a tool of this complexity.

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 for the most critical parameters. It explains the meaning and allowed values for 'direction' ('single' vs 'both') and clarifies the confusing relationship between 'direction' and 'mode', including the caveat about 'mode='both''. However, it does not explain 'from_table', 'to_table', or 'request_id', though these are somewhat self-explanatory from their names.

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

Purpose4/5

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

The description clearly states the tool's function: 'Cambia el filtro cruzado de una relacion' (changes the cross-filter direction of a relationship). This is a specific verb and resource, effectively distinguishing it from sibling tools like pbi_create_relationship or pbi_list_relationships, though no explicit sibling differentiation is mentioned.

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 does not provide explicit guidance on when to use this tool versus alternatives. It only implies usage through the purpose statement and gives parameter-level warnings (e.g., about 'mode'), but there is no clear context about prerequisites, alternative tools, or situations where this tool should be avoided.

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

pbi_set_storage_modeA

Cambia el modo de almacenamiento de una tabla: import | directQuery | dual.

Con directQuery el dato se consulta al origen en cada interaccion y desaparece el refresco, pero NO es un interruptor inocuo: la consulta M tiene que ser plegable al origen, las columnas y tablas calculadas dejan de estar disponibles, y cada visual pasa a ser una consulta al servidor.

Devuelve el modo anterior y cuantas particiones cambiaron, para poder deshacerlo sabiendo exactamente que se toco.

Escribe en TMDL: requiere el proyecto CERRADO en Power BI Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
tableYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

The description goes far beyond the annotations by disclosing significant behavioral impacts: directQuery makes refresh disappear, requires foldable M queries, disables calculated columns/tables, and turns every visual into a server query. It also reveals return values (previous mode, number of partitions changed) for undoability and the requirement that the project be closed. This is rich, non-obvious behavioral context that the annotations do not convey.

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 covers purpose, risks, return values, and a prerequisite in a few short sentences. There is no redundancy or fluff; every sentence adds distinct value, making it easy to parse quickly.

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 mutating and potentially disruptive nature, the description is thorough: it explains what changes, the directQuery-specific risks, what is returned (for undo), and a critical prerequisite (closed project). The presence of an output schema covers the return structure, so the description does not need to detail it further. Overall, it provides sufficient context for an agent to invoke the tool correctly.

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 carries the burden of explaining parameters. It does mention the allowed modes for 'mode' and indicates the target is a 'table', but it does not describe the 'request_id' parameter or the expected format of 'table'. This leaves part of the parameter space unexplained, so the compensation is incomplete.

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 changes the storage mode of a table, enumerating the exact allowed values (import, directQuery, dual). The verb 'Cambia' plus the resource 'modo de almacenamiento de una tabla' makes the purpose unambiguous and distinguishes it from sibling tools.

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

Usage Guidelines3/5

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

The description explains the consequences of using directQuery (refresh disappears, M query must be foldable, calculated columns/tables unavailable) which implicitly suggests when this tool might be used, but it does not explicitly state usage scenarios, alternatives, or exclusions. The prerequisite (project closed in Power BI Desktop) is a useful guideline, but it does not fully replace explicit when-to-use guidance.

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

pbi_set_visual_filterA

Filtra un visual EXISTENTE sin escribir filterConfig a mano.

filters: lista de specs. Por COLUMNA, {field: 'Tabla[Columna]', values?: [...], type?: 'Categorical' | 'Advanced' | 'TopN' | 'Range' | 'RelativeDate' | 'Passthrough', exclude?: bool, raw?: {...}, hidden?: bool, locked?: bool, display_name?: str}. Con values se arma un filtro de lista (Categorical); sin values ni raw el campo queda declarado pero SIN acotar, como el panel de filtros vacio. raw pasa una consulta semantica ya construida, para lo que este constructor no cubre.

Por MEDIDA, {measure: 'Tabla[Medida]', condition: 'GreaterThan', value: 0} (condition: Equal | NotEqual | GreaterThan | GreaterThanOrEqual | LessThan | LessThanOrEqual, o los simbolos > >= < <= = !=). Es la forma de ENCADENAR slicers de dimension cuando varias tablas de hechos cuelgan de las mismas dimensiones y una relacion bidireccional crearia ambiguedad.

field/measure van con el NOMBRE real de la tabla. La mitad interna de la consulta usa un ALIAS (SourceRef.Source) que esta tool resuelve sola: escribirlo a mano ahi es el error mas comun al construir un filtro de visual, y Power BI lo ignora sin decir por que.

Por defecto REEMPLAZA los filtros del visual, y una lista vacia los quita todos. Cuidado con los slicers: suelen traer un filtro Categorical donde vive la seleccion del usuario, y reemplazarlo la borra. Para anadir sin pisar, merge=true (ahi una lista vacia no quita nada). No comprueba el campo contra el modelo: uno que no existe se escribe igual y Power BI lo resuelve en silencio a nada.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
mergeNo
filtersYes
visual_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotions are all false, so the description carries full responsibility. It discloses side effects (replace vs merge, empty list removes all filters), failure modes (silently ignores invalid fields), and internal details (alias resolution). This goes far beyond what annotations offer, providing deep transparency without contradiction.

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 dense but structurally sound: a one-sentence summary, then clear sections for column vs measure specs, followed by critical behavioral caveats using bold formatting for emphasis. While long, every sentence adds value; it could be broken into more bullet-like lists but remains digestible given the tool's inherent complexity.

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

Completeness5/5

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

Given no schema descriptions and an output schema present, the description covers all essential aspects: input structures, edge cases (slicers, merge, silent failures), and usage context. It is complete for an agent to use the tool correctly and safely, addressing both typical and problematic scenarios.

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 has zero descriptions, but the description meticulously explains every aspect of the filters array—both column-based and measure-based specs, all conditions, optional fields, raw passthrough, and the merge parameter's default behavior. This transforms an opaque schema into a fully understandable API.

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

Purpose5/5

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

The description opens with 'Filtra un visual EXISTENTE sin escribir `filterConfig` a mano', which precisely identifies the action (filtering an existing visual) and the resource (visual), and differentiates it from manual configuration. The purpose is unmistakable and distinct from siblings like pbi_set_visual_title or pbi_set_visual_z_order.

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?

Provides explicit usage context: when to chain dimension slicers, when to use merge=true vs default, and the risk of erasing slicer selections (implicit when-not-to). It also contrasts with manually writing filterConfig, giving alternatives and conditions, satisfying the 'when/when-not' criterion.

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

pbi_set_visual_titleA

Cambia u oculta el titulo de un visual PRESERVANDO su formato.

title: el texto nuevo. show=false: oculta el titulo SIN borrar su texto ni formato (el rodeo de poner texto vacio dejaba la banda del titulo ocupando altura); show=true lo vuelve a mostrar. Se puede pasar solo uno de los dos, o ambos.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
showNo
titleNo
visual_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only provide generic hints (all false), so the description carries the burden. It adds valuable behavioral context: hiding via `show=false` preserves text and format, and the old workaround left an unwanted band. This goes beyond the schema and annotations without contradicting them.

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

Conciseness5/5

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

The description is compact and front-loaded with the core purpose. It uses a short paragraph plus a bullet-like explanation of parameters. Every sentence adds value; there is no fluff or repetition.

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

Completeness4/5

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

Given the tool's complexity (simple setter with nuanced hide behavior), the description covers the key aspects: operation, parameter combinations, and format preservation. It doesn't discuss errors or return values, but an output schema exists to handle return format. This is a complete enough description for an agent to 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 explains `title` and `show` in detail, including their interaction and the preservation behavior. It does not describe `page`, `visual_id`, or `request_id`, but those are self-evident from context and required fields, respectively.

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 'Cambia u oculta el titulo de un visual PRESERVANDO su formato' (changes or hides a visual's title while preserving its format). This specific verb+resource+behavior distinguishes it from siblings like pbi_set_visual_filter or pbi_update_visual_position.

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 semantics of `title` and `show`, including when to pass one or both. It also explicitly contrasts with an alternative workaround (putting empty text) and explains why `show=false` is better. However, it doesn't compare against other visual-editing tools, so usage guidance is still somewhat implied rather than exhaustive.

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

pbi_set_visual_z_orderA

Fija el orden Z de los visuales de una pagina.

order: ids de MENOR a MAYOR z; el ultimo queda encima. Los visuales que no menciones se colocan por encima, conservando su orden relativo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
orderYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses important behavioral details: the `order` array should be sorted from lowest to highest Z, the last item ends up on top, and unmentioned visuals are placed above while preserving their relative order. This goes beyond the sparse annotations (all false) and explains the tool's non-obvious behavior. No contradictions with annotations.

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 two sentences, front-loading the purpose and then explaining the key parameter. Every sentence provides value, with no fluff or 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?

The description provides enough context for an agent to invoke the tool correctly: it defines the Z-order behavior and handles edge cases (unmentioned visuals). An output schema exists, so return values don't need description. Missing minor details like page identifier format or error handling, but these are not critical for a simple reordering 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 description adds essential semantics for the `order` parameter, explaining it expects visual IDs and how the ordering interpretation works (lowest to highest Z, last is on top, unlisted visuals go above). This compensates for zero schema parameter descriptions, though `page` and `request_id` remain unexplained. The main parameter's meaning is significantly clarified.

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 sets the Z order of visuals on a page ('Fija el orden Z de los visuales de una pagina'), using a specific verb and resource. It distinguishes from sibling tools like pbi_arrange_visuals or pbi_align_visuals by focusing specifically on layer ordering.

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 does not explicitly compare this tool to alternatives or state when to use it versus other layout tools. However, the tool name and introductory sentence make the use case clear (changing Z-order), so usage is implied. Lacks explicit exclusions or alternatives.

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

pbi_sharepoint_download_folderA

Descarga una carpeta de SharePoint a outputs/ de forma todo-o-nada.

Primero inventaria el lote y valida max_files, max_total_mb y el filtro opcional extensions (por ejemplo ['xlsx','csv']). Luego usa URLs temporales emitidas por Graph, verifica tamano y SHA-256 y publica el directorio completo bajo outputs/sharepoint/. Un fallo elimina el staging y no deja una carpeta final parcial.

Es una descarga de solo lectura remota: no sube, mueve ni elimina nada en SharePoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
libraryNoDocuments
site_urlYes
max_filesNo
recursiveNo
extensionsNo
folder_pathNo
max_total_mbNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

The description richly discloses behavior: it validates max_files, max_total_mb, and extensions, uses temporary Graph URLs, verifies size and SHA-256, and publishes to outputs/sharepoint/. It also explains failure atomicity (removes staging, no partial folder). The read-only claim refers to remote SharePoint, not contradicting readOnlyHint:false which may reflect local writes.

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

Conciseness5/5

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

The description is concise and well-structured, with clear front-loaded purpose, a step-by-step process, failure behavior, and remote safety statement. Every sentence adds value with no redundancy.

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

Completeness4/5

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

The description covers the tool's core workflow, validation, atomicity, and remote read-only nature, which is substantial for a complex download operation. The presence of an output schema reduces the need to explain returns. However, it omits guidance on recursive behavior and lacks explicit usage alternatives, making it nearly complete but not fully comprehensive.

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 explicitly explains the semantics and validation for max_files, max_total_mb, and extensions, with an example for extensions. However, it does not describe site_url, folder_path, library, or recursive, leaving significant gaps in parameter understanding.

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

Purpose5/5

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

The description clearly states the tool downloads a SharePoint folder to outputs/ in an all-or-nothing manner. It uses a specific verb ('Descarga') and identifies the resource, distinguishing it from sibling tools like pbi_sharepoint_list_folder.

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

Usage Guidelines3/5

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

The description provides clear context on what the tool does but does not explicitly state when to use it versus alternatives or exclude other tools. It mentions it is a remote read-only download, which implies safe usage, but does not name alternative tools or conditions for non-use.

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

pbi_sharepoint_list_folderA
Read-only

Conecta con SharePoint Online y lista una carpeta mediante Graph.

site_url es la URL HTTPS del sitio; library es el nombre o id de la biblioteca documental; folder_path usa /. Sigue la paginacion de Graph y puede recorrer subcarpetas con un limite total explicito.

Autenticacion app-only: las credenciales SOLO se leen de las variables HORIZUN_PBI_MCP_SHAREPOINT_TENANT_ID, _CLIENT_ID y _CLIENT_SECRET. Nunca se aceptan secretos como parametros ni se devuelven tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
libraryNoDocuments
site_urlYes
max_itemsNo
recursiveNo
folder_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the readOnlyHint annotation: it follows Graph pagination, can traverse subfolders recursively, and details the app-only authentication mechanism, including that secrets are only read from environment variables and never accepted or returned. This is rich, relevant transparency.

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

Conciseness5/5

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

The description is concise and well-structured: three short paragraphs front-loading the primary purpose, then usage details and authentication constraints. Every sentence contributes meaningful information without redundancy.

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

Completeness4/5

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

The description covers the core aspects: connection, purpose, pagination, recursion, and authentication. It does not describe return values, but an output schema exists. It could mention error conditions or response structure, but overall it is adequately complete for a read-only listing tool.

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 schema description coverage at 0%, the description must compensate. It explains site_url, library, and folder_path, and implies max_items and recursive through 'limite total explicito' and 'recorrer subcarpetas', but does not explicitly define all parameters or their formats. Partial coverage with 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: 'Conecta con SharePoint Online y lista una carpeta mediante Graph.' It specifies the action (list), resource (folder), and method (Graph), and distinguishes itself from siblings like pbi_sharepoint_download_folder by focusing on listing rather than downloading.

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

Usage Guidelines3/5

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

The description provides clear context about what the tool does and how it connects, but does not explicitly state when to use it versus alternatives. The use case is implied (listing folder contents without downloading), and no exclusionary guidance is given.

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

pbi_start_hereA
Read-only

Por donde empezar. Mira el estado real y dice los siguientes pasos.

Ciento treinta y dos tools con buen nombre siguen siendo ciento treinta y dos tools. Esta responde «¿y ahora que?» con tres o cuatro pasos concretos, cada uno con el nombre exacto de la tool y por que toca ahora: si hay proyecto activo, si tiene modelo o solo informe, si esta vacio, y si Power BI Desktop lo tiene abierto —que impide escribir el TMDL—.

Devuelve tambien common_tasks: tareas frecuentes y la secuencia de tools que las resuelve.

No escribe nada. Empieza por aqui cuando no sepas que sigue.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

The description aligns with readOnlyHint=true by stating 'No escribe nada.' It adds behavioral context beyond annotations by explaining how it determines next steps and mentions the Desktop-open blocker for TMDL, which is useful cautionary context.

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

Conciseness4/5

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

The description is moderately concise, with the core purpose stated in the first line. The opening metaphor about 132 tools is slightly extra but reinforces the tool's role; otherwise each sentence contributes useful information.

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

Completeness4/5

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

For a starting-point tool, the description covers the main behavior, outputs common_tasks, and the safety guarantee. The presence of an output schema reduces the need to detail return values; the only real gap is the undocumented request_id parameter.

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

Parameters2/5

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

The input schema has one optional request_id with no schema description and 0% coverage. The description never mentions request_id, so it adds no semantic value for parameters; it does not compensate for the low schema coverage.

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 identifies the tool as an entry point that inspects real state and proposes concrete next steps, including exact tool names and reasons. It distinguishes itself from the many sibling tools by explicitly saying 'Empieza por aqui cuando no sepas que sigue.'

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

Usage Guidelines4/5

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

It explicitly states when to use: 'Empieza por aqui cuando no sepas que sigue.' It also describes the conditions it evaluates (active project, model vs report, empty, Desktop open), but does not explicitly state when not to use it beyond noting it writes nothing.

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

pbi_test_connectionA
Read-only

Valida la conexion al modelo activo con una consulta trivial.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the detail that it uses a 'trivial query,' implying lightweight behavior, but does not disclose what happens on failure, output specifics, or any side effects beyond the annotation. No contradiction with annotations.

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?

A single, front-loaded sentence with no filler. It efficiently communicates the tool's purpose and method, earning a perfect score for 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 simplicity (zero params, output schema present, read-only annotation), the description is largely sufficient. It clearly states the tool's function. The only gap is the lack of usage context, but this is covered under the usage_guidelines dimension and does not heavily penalize completeness for such a trivial tool.

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

Parameters4/5

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

The tool has zero parameters, so the schema is fully covered (100%). The baseline for 0 params is 4, and the description does not need to add parameter details. It correctly focuses on the operation itself.

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 a specific action (validates) on a specific resource (connection to the active model) using a specific method (trivial query). It distinguishes itself from broader tools like pbi_health_check by focusing on the active model connection.

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 does not mention scenarios like 'before running other operations' or contrast with pbi_health_check or pbi_session_info, which likely have overlapping purposes.

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

pbi_update_measureA

Actualiza una medida existente. Lo no especificado se conserva.

mode='both' esta temporalmente deshabilitado bajo la politica estricta: 'live' necesita Power BI Desktop abierto y 'pbip' lo necesita cerrado, asi que una sola llamada aplicaria solo uno de los dos destinos. Elige 'live' o 'pbip', o usa 'auto' y se mira el estado para elegir. Si estas construyendo desde cero, 'auto' o 'pbip': el defecto es 'live' y exige Desktop abierto.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
nameYes
tableYes
expressionNo
request_idNo
descriptionNo
format_stringNo
display_folderNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide safety hints (all false), and the description adds substantial behavioral context: partial-update semantics ('lo no especificado se conserva'), the temporary disabling of mode='both', and the dependency of 'live' on Power BI Desktop being open. This goes beyond what annotations alone convey.

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

Conciseness4/5

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

The description is concise and front-loaded, starting with the core purpose in one sentence, then focusing on the important mode complication. It could be more structured, but every sentence contributes useful information 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?

Despite having 8 parameters and no schema descriptions, the description covers the most critical semantic (partial update) and the mode edge cases. An output schema exists, so return values need no explanation. It omits prerequisites like model selection, but that is likely handled by sibling tools and not essential for this tool's immediate 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?

With schema description coverage at 0%, the description compensates by explaining the 'mode' parameter in depth, including its default and trade-offs. It also clarifies that unspecified optional parameters are preserved, which adds meaning to expression, format_string, etc., even though they aren't individually detailed.

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 'Actualiza una medida existente' (updates an existing measure), which is a specific verb+resource pairing. This distinguishes it from siblings like pbi_create_measure and pbi_delete_measure. It also adds the key nuance that unspecified fields are preserved, which further defines its scope.

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 tool is for updating existing measures and provides detailed guidance on mode selection ('live' vs 'pbip' vs 'auto'), including requirements and default behavior. It does not explicitly name alternatives like pbi_create_measure, but the context is clear and no exclusions are needed beyond the mode caveats.

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

pbi_update_power_queryA

Reemplaza ENTERA la consulta M de una particion o expresion.

No hay edicion parcial ni sustitucion por expresion regular: se localiza el bloque por su estructura y se cambia completo. dry_run viene ACTIVADO: la primera llamada enseña lo que se escribiria sin tocar el disco, sin backup y sin journal.

expected_sha256 (el que devuelve pbi_get_power_query) rechaza la escritura si el texto cambio desde que lo leiste, en vez de pisar el trabajo de otro.

Escribe TMDL: exige proyecto .pbip y Power BI Desktop CERRADO. Va con backup, journal, transaccion, relectura y rollback; si el modelo queda con errores TMDL que antes no tenia, se revierte entero.

La respuesta distingue lo comprobado de lo no comprobado: parse_checked y tmdl_load_checked dicen que el TMDL se lee y que el serializador oficial lo acepta; m_engine_checked y refresh_checked son SIEMPRE false. Que el archivo parsee no significa que la consulta cargue: eso solo lo dice un refresh.

ParametersJSON Schema
NameRequiredDescriptionDefault
mYes
kindNo
nameNo
tableNo
dry_runNo
request_idNo
expected_sha256No

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

This is highly transparent: it discloses whole-query replacement, dry-run behavior, no backup/journal in dry-run mode, SHA-256 concurrency protection, TMDL write requirements, backup/journal/transaction/rollback, and the exact meaning of response flags like parse_checked and m_engine_checked. This goes far beyond the annotations.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: core action first, then safety behavior, concurrency control, prerequisites, and response semantics. It is appropriately sized for a complex destructive-looking write operation.

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

Completeness3/5

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

The description covers safety, rollback, response semantics, and prerequisites very well. However, it omits the crucial mapping between kind/name/table and the partition or expression being edited, and request_id is never mentioned. With zero schema parameter descriptions, this is a meaningful completeness gap.

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 explains dry_run and expected_sha256 well, but m, kind, name, table, and request_id are left undocumented, and the description never explains how to target the partition or expression via parameters. An agent would struggle to construct a correct call for a specific object.

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

Purpose5/5

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

The description opens with 'Reemplaza ENTERA la consulta M de una particion o expresion', which names a specific verb, resource, and scope. It also differentiates itself from partial editing and references pbi_get_power_query, making its role in the sibling family clear.

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

Usage Guidelines4/5

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

The description gives clear operating context: it requires a .pbip project and Power BI Desktop closed, dry_run is active on first call, and expected_sha256 from pbi_get_power_query should be used to detect concurrent changes. It does not explicitly list when-not-to-use or name alternative tools for partial edits, but the guidance is strong.

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

pbi_update_visual_positionB

Mueve/redimensiona un visual existente.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
zNo
pageYes
widthYes
heightYes
visual_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

The description adds no behavioral context beyond what annotations already provide. Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not disclose whether the operation is reversible, requires permissions, or how it affects the visual's existing layout. Since it's a mutation tool, more transparency would be expected.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action. It contains no unnecessary words or repetition, making it highly efficient.

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?

With six required parameters and no parameter semantics in the description, the tool is under-specified. The description does not clarify coordinate systems, units, or how the visual is identified, making it incomplete for an agent to use correctly. The output schema exists but does not compensate for the lack of context.

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%. The description does not explain any of the eight parameters (x, y, width, height, page, visual_id, etc.), leaving the agent to infer their meaning from the schema alone. This is a significant gap for a tool with six required parameters.

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 'Mueve/redimensiona un visual existente' clearly states the tool moves/resizes an existing visual, which is a specific verb+resource action. It distinguishes from sibling tools like pbi_set_visual_z_order (z-order) and pbi_duplicate_visual (copy) by focusing solely on position/size.

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 for moving/resizing visuals but does not mention when to use it over alternatives like pbi_align_visuals or pbi_set_visual_z_order. There are no explicit exclusions or alternative references, so the guidance is only implied.

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

pbi_validate_desktop_renderA

Abre un .pbip/.pbix y captura su ventana real sin depender del foco.

Es la comprobacion visual automatizable que complementa al validador PBIR: espera el modelo, identifica la ventana por PID y hora de inicio, y la renderiza con PrintWindow directamente a outputs/desktop_captures. La captura no activa ni trae Desktop al frente, por lo que no puede fotografiar por accidente otra ventana que tape el informe.

path (o pbip_path, el mismo nombre que devuelve pbi_session_info) se puede omitir: entonces se usa el proyecto .pbip activo.

refresh=true es lo que hace que la captura signifique algo en un .pbip: ese formato guarda la definicion, no los datos, asi que recien abierto el modelo viene VACIO y las tablas y matrices salen en blanco aunque el informe este perfecto. Con refresh se abre, se refresca, se espera a que la ventana deje de repintar y se captura. Ese es tambien el camino para fotografiar OTRA pagina con datos: page exige abrir el proyecto, y al abrirlo hay que volver a refrescar.

Pase lo que pase, la respuesta lleva data_loaded: si es false, la captura no es representativa del informe, es la foto de un modelo sin datos. Si no se pudo comprobar, se dice; no se afirma ninguna de las dos.

page (solo .pbip): captura ESA pagina (id o nombre visible), no la que quedo activa. fit_to_page (solo .pbip, activado por defecto): fuerza la vista "Ajustar a la pagina" para que salga el lienzo COMPLETO y no el tercio superior al zoom guardado. Ambos ajustan la vista antes de abrir y la restauran byte a byte al terminar; exigen que el proyecto no este ya abierto (con sesion reutilizada no se pueden aplicar: page falla y fit_to_page degrada a un aviso).

Si la tool tuvo que abrir Desktop, lo cierra al terminar (tambien si la captura falla) y devuelve la seleccion de modelo a como estaba. Si el informe ya estaba abierto, reutiliza esa sesion y nunca cierra la ventana del usuario.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
pathNo
refreshNo
timeoutNo
pbip_pathNo
reuse_openNo
fit_to_pageNo
capture_timeoutNo
refresh_timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only set readOnlyHint=false, so the description carries the full burden. It explains side effects: opening Desktop, refreshing, closing if it opened, reusing session if already open, restoring model selection, and the data_loaded flag for capture representativeness. No contradictions with 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 long but every sentence carries meaning. It is structured into logical sections: purpose, capture method, parameter explanations, behavior on open/close. It front-loads the core purpose and then details nuances. Slightly verbose but not wasteful.

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 (9 parameters, .pbip nuances, side effects), the description is thorough. It covers the main use cases, edge cases (session reuse, data_loaded), and behavioral details. It does not explain the output schema in depth, but since output schema exists, that's acceptable.

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

Parameters5/5

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

Schema has 0% description coverage, so the description fully compensates by explaining each parameter: path/pbip_path, page, refresh, fit_to_page, timeout, capture_timeout, refresh_timeout_seconds, and reuse_open. It also explains inter-parameter dependencies (e.g., refresh needed for .pbip data, page requires opening and refresh).

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: opens a .pbip/.pbix and captures its real window without relying on focus. It distinguishes itself from the PBIR validator by being the visual check that complements it, and from sibling tools like pbi_open_and_refresh by focusing on capture.

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 context for when to use the tool (visual check, complement to PBIR validator) and when to use refresh, page, and fit_to_page. It explains constraints like requiring the project not already open for page/fit_to_page, but does not explicitly exclude alternatives or say 'use X instead of Y'.

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

pbi_validate_generated_pageA
Read-only

Verifica una pagina YA escrita: referencias rotas y geometria.

Se usa despues de aplicar un spec para comprobar que el resultado es valido de verdad, no solo que la escritura no fallo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds meaningful context: checks broken references and geometry, and emphasizes deeper validation beyond mere write success. This goes beyond what annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core action, followed by a clear usage context. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one parameter), readOnlyHint annotation, and presence of an output schema, the description sufficiently covers what the tool does and when. It could clarify the result format, but that is likely handled by the output schema.

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 single parameter 'page' is referenced implicitly as 'una pagina', but the description does not specify the format or how to identify the page. However, the parameter name is self-explanatory, mitigating the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Verifica') and resource ('una pagina YA escrita'), and clearly states the scope: broken references and geometry. This distinguishes it from siblings like pbi_validate_page_spec, which validates specs, and pbi_apply_page_spec, which applies specs.

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?

Explicitly states when to use it: 'despues de aplicar un spec' to verify the result is genuinely valid, not just that writing succeeded. It does not mention alternatives or exclusions, but the timing and intent are clear in context of sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pbi_validate_measuresA
Read-only

Valida DAX de medidas SIN modificar el modelo (dry-run con DEFINE MEASURE).

Ideal para probar medidas ANTES de crearlas con pbi_create_measure. measures: lista de {"name","dax","table"(opcional)}. Las medidas pueden referenciarse entre si. Devuelve por cada una: valid, value (muestra) y error.

ParametersJSON Schema
NameRequiredDescriptionDefault
measuresYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral details beyond the readOnlyHint annotation: it explicitly states the dry-run mechanism (DEFINE MEASURE), notes that measures can reference each other, and describes the return structure (valid, sample value, error). This gives the agent a clear picture of what happens during execution.

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 (3 sentences) and front-loaded with the core purpose. Every sentence adds value: purpose, intended use, and parameter structure. No repetition or extraneous detail.

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 simplicity (one parameter) and the presence of annotations and output schema, the description provides all necessary context: what the tool does, how to format the input, and what the output will contain. An agent can invoke this tool correctly without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only defines a generic array, leaving the inner structure undocumented. The description compensates fully by specifying that `measures` is a list of objects with `name`, `dax`, and optional `table` fields, and explains cross-referencing behavior. This is essential information that the schema lacks.

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 validates DAX measures without modifying the model, using a dry-run with DEFINE MEASURE. It also specifies the intended use case (probing measures before creation), which distinguishes it from related tools like pbi_create_measure and pbi_run_dax.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is ideal for testing measures before creating them with pbi_create_measure, providing a clear usage context. It does not explicitly mention when not to use it or alternative validation tools, but the guidance is sufficient for an agent to select this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pbi_validate_page_specA
Read-only

Valida un spec: esquema, referencias contra el modelo y geometria.

Los errores traen su JSON path ($.visuals[2].fields.values[0]) para que se puedan corregir sin adivinar. No escribe nada.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and openWorldHint, but the description adds valuable behavioral details: it validates three specific aspects, reports errors with their JSON paths, and explicitly states it writes nothing ('No escribe nada'). This enriches the agent's understanding beyond the structured annotations.

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 two short paragraphs, front-loaded with the main purpose. Every sentence adds value: the first states the core function, the second explains the error reporting format and side-effect-freeness. No redundant information or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema present, the description covers key aspects: what is validated, error format, and that it is non-mutating. It does not mention prerequisites like having a model selected, but the sibling set includes model-selection tools, and the validation scope is clear enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero coverage and only declares 'spec' as an object. The description helps by implying a structure via the example JSON path (`$.visuals[2].fields.values[0]`), indicating the spec contains visuals with fields. However, it does not fully describe the expected object shape, dependencies, or validation contract, so agents may still need to infer from sibling tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (validates a spec) and enumerates the validation dimensions: schema, references against the model, and geometry. It clearly distinguishes this tool from siblings like pbi_apply_page_spec (which applies) and pbi_preview_page_spec (which previews), and explicitly notes it writes nothing.

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 a usage context (validating before correcting errors) through 'para que se puedan corregir sin adivinar', but it does not explicitly state when to use this tool over alternatives such as pbi_validate_generated_page or pbi_diff_page_spec. No exclusions or alternative tool mentions are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pbi_validate_pbip_projectA
Read-only

Valida a fondo el proyecto .pbip activo (estructura, PBIR, TMDL).

Incluye references: cada Measure/Column que un visual.json o su filterConfig citan, cruzada contra el TMDL real. El esquema PBIR y la sintaxis TMDL pueden pasar limpios por separado con un visual que apunta a una medida borrada -- Desktop lo resuelve en silencio a nada, sin marca visible. Solo corre si el TMDL es valido (comparar contra un modelo que no abre es ruido, no una comprobacion).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Las anotaciones ya indican readOnlyHint=true, cubriendo la seguridad de la operación. La descripción añade valor conductual más allá de las anotaciones: detalla la verificación de referencias cruzadas, el hecho de que Desktop resuelve silenciosamente medidas borradas, y la precondición sobre el TMDL válido. Esto proporciona contexto importante sobre cómo se comporta la herramienta y por qué es necesaria.

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?

La descripción está bien estructurada: la primera oración da el propósito principal, y el segundo párrafo explica la característica clave y su justificación. Todas las oraciones aportan información útil, aunque el segundo párrafo es algo denso. En general, no hay relleno y la información se presenta de manera eficiente.

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?

Con 0 parámetros y un esquema de salida presente, la descripción se centra adecuadamente en el propósito y el comportamiento. Cubre los aspectos esenciales: qué valida, cómo lo hace (referencias cruzadas) y cuándo debe ejecutarse (TMDL válido). Los detalles de la respuesta los proporciona el esquema de salida, por lo que la descripción no necesita explicarlos.

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?

El schema de entrada no tiene parámetros (0 parámetros), por lo que la descripción no necesita explicar nada al respecto. Según la regla de cobertura del schema, al ser 100% y no haber parámetros, se otorga la línea base de 4.

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?

La descripción especifica claramente el verbo 'Valida a fondo' y el recurso 'proyecto .pbip activo', con alcance explícito (estructura, PBIR, TMDL). Además, introduce una característica distintiva: la verificación cruzada de `references` entre visual.json y el TMDL, lo que la diferencia de otras herramientas de auditoría como pbi_audit_project o pbi_validate_tmdl.

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?

La descripción incluye una condición explícita de uso: 'Solo corre si el TMDL es valido', proporcionando una clara indicación de cuándo no usar la herramienta (si el TMDL no es válido, la comparación sería ruido). No menciona alternativas, pero el contexto de validación profunda es suficiente para decidir su uso frente a herramientas similares.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pbi_validate_tmdlA
Read-only

Comprueba si un modelo TMDL abrira, sin abrir Power BI Desktop.

Dos capas. Un lint estatico que caza las trampas que solo se veian al abrir (una propiedad de tabla colocada despues de sus hijos, un comentario '///' sobre una relacion, una medida que se llama como una columna de su tabla, medidas duplicadas, referencias rotas) y, si estan las DLL, un parseo con el MISMO serializador que usa Power BI.

Cada hallazgo trae rule, severity, el archivo y la linea. Si el parseo no se pudo ejecutar se dice (parse_checked: false) en vez de darlo por bueno.

Hay fallos que NINGUN analisis estatico ve porque dependen de los datos —un blanco en el lado 'uno' de una relacion, un separador decimal mal interpretado—. Salen en limitations: para esos hay que refrescar.

path: carpeta definition del modelo, la carpeta .SemanticModel o el .pbip. Si se omite, el proyecto activo. use_tom=False: solo el lint estatico, sin tocar las DLL.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
use_tomNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, but the description adds substantial behavioral detail: two validation layers (static lint and parser using the same serializer as Power BI), the exact shape of findings (rule, severity, file, line), the parse_checked=false edge case, and a list of data-dependent failures that the tool cannot catch. This goes far beyond the annotation and gives the agent an accurate model of what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense. It front-loads the purpose, then systematically covers the two validation layers, output structure, limitations, and parameters. Every sentence contributes unique value, and the paragraph breaks guide the reader through the key concepts without unnecessary 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 tool's complexity (two-layer validation with multiple edge cases) and the existence of an output schema, the description covers all needed aspects: what the tool does, how results are structured, what it cannot detect, and parameter semantics. Limitations are explicitly documented, and the presence of an output schema means return values need not be spelled out in detail.

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 has only minimal titles and defaults, with 0% schema description coverage. The description fully compensates by explaining that 'path' accepts a definition folder, a .SemanticModel folder, or a .pbip, and defaults to the active project, and that 'use_tom=False' runs only the static lint without touching DLLs. Both parameters are given clear, actionable semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Comprueba si un modelo TMDL abrira, sin abrir Power BI Desktop' (Checks if a TMDL model will open, without opening Power BI Desktop). It distinguishes this tool from siblings by focusing on TMDL model validation and explicitly noting the no-Desktop requirement, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for use: validating TMDL models without opening Desktop, with path options (definition folder, .SemanticModel, .pbip) and a fallback to the active project. It describes the two-layer validation and limitations, but does not explicitly name alternative tools or state when not to use this tool, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv2.1.0
    • Changedpbi_audit_project1 field changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "title": "Compact",
        +  "type": "boolean"
        +}
    • Addedpbi_export_pbix
    • Addedpbi_finalize_delivery
    • Addedpbi_get_power_query
    • Addedpbi_prepare_project
    • Addedpbi_update_power_query
  2. 7 tool updatesv2.0.2
    • Changedpbi_apply_plan1 field changed
      • changedInput schema / properties / confirm / default
        Previous value: -trueNew value: +false
    • Changedpbi_close_desktop5 fields changed
      • addedInput schema / properties / path / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / path / default
        Added value: +null
      • removedInput schema / properties / path / type
        Removed value: -"string"
      • addedInput schema / properties / pbip_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pbip Path"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "path"
        -]
    • Changedpbi_open_and_refresh6 fields changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "default": false,
        +  "title": "Confirm",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / path / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / path / default
        Added value: +null
      • removedInput schema / properties / path / type
        Removed value: -"string"
      • addedInput schema / properties / pbip_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pbip Path"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "path"
        -]
    • Changedpbi_open_in_desktop5 fields changed
      • addedInput schema / properties / path / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / path / default
        Added value: +null
      • removedInput schema / properties / path / type
        Removed value: -"string"
      • addedInput schema / properties / pbip_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pbip Path"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "path"
        -]
    • Changedpbi_refresh_model1 field changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "default": false,
        +  "title": "Confirm",
        +  "type": "boolean"
        +}
    • Changedpbi_set_visual_filter1 field changed
      • addedInput schema / properties / merge
        Added value: +{
        +  "default": false,
        +  "title": "Merge",
        +  "type": "boolean"
        +}
    • Changedpbi_validate_desktop_render7 fields changed
      • addedInput schema / properties / path / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / path / default
        Added value: +null
      • removedInput schema / properties / path / type
        Removed value: -"string"
      • addedInput schema / properties / pbip_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pbip Path"
        +}
      • addedInput schema / properties / refresh
        Added value: +{
        +  "default": false,
        +  "title": "Refresh",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / refresh_timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Timeout Seconds"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "path"
        -]
  3. 13 tool updatesv1.5.1
    • Changedpbi_apply_theme1 field changed
      • addedInput schema / properties / patch
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Patch"
        +}
    • Addedpbi_export_excel
    • Addedpbi_export_report_content
    • Addedpbi_generate_pdf_report
    • Changedpbi_open_and_refresh1 field changed
      • addedInput schema / properties / refresh_timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Timeout Seconds"
        +}
    • Changedpbi_refresh_model1 field changed
      • addedInput schema / properties / timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timeout Seconds"
        +}
    • Changedpbi_select_model1 field changed
      • addedInput schema / properties / connection_string
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Connection String"
        +}
    • Addedpbi_set_color_from_field
    • Changedpbi_set_conditional_format4 fields changed
      • addedInput schema / properties / max_value
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Max Value"
        +}
      • addedInput schema / properties / mid_value
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Mid Value"
        +}
      • addedInput schema / properties / min_value
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Min Value"
        +}
      • addedInput schema / properties / target_column
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Target Column"
        +}
    • Changedpbi_set_visual_title5 fields changed
      • addedInput schema / properties / show
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Show"
        +}
      • addedInput schema / properties / title / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / title / default
        Added value: +null
      • removedInput schema / properties / title / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "page",
        -  "visual_id",
        -  "title"
        -]New value: +[
        +  "page",
        +  "visual_id"
        +]
    • Addedpbi_sharepoint_download_folder
    • Addedpbi_sharepoint_list_folder
    • Changedpbi_validate_desktop_render2 fields changed
      • addedInput schema / properties / fit_to_page
        Added value: +{
        +  "default": true,
        +  "title": "Fit To Page",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / page
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Page"
        +}
  4. 1 tool updatev1.3.0
    • Addedpbi_reflow_pages
  5. 13 tool updatesv1.2.0
    • Changedpbi_add_table_from_file1 field changed
      • addedInput schema / properties / skip_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Skip Rows"
        +}
    • Addedpbi_add_table_from_source
    • Changedpbi_apply_theme2 fields changed
      • addedInput schema / properties / fonts
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Fonts"
        +}
      • addedInput schema / properties / theme_json
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Theme Json"
        +}
    • Addedpbi_check_contract
    • Addedpbi_close_desktop
    • Addedpbi_define_brief
    • Addedpbi_define_port_contract
    • Addedpbi_diagnose_data
    • Addedpbi_get_brief
    • Changedpbi_list_measures2 fields changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "default": "full",
        +  "title": "Detail",
        +  "type": "string"
        +}
      • addedInput schema / properties / tables
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Tables"
        +}
    • Changedpbi_list_tables2 fields changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "default": "full",
        +  "title": "Detail",
        +  "type": "string"
        +}
      • addedInput schema / properties / tables
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Tables"
        +}
    • Addedpbi_open_and_refresh
    • Addedpbi_rename_measure
  6. 118 tool updatesv1.0.1
    • First observedpbi_add_custom_visual
    • First observedpbi_add_image_resource
    • First observedpbi_add_table_from_file
    • First observedpbi_align_visuals
    • First observedpbi_analyze_model_quality
    • First observedpbi_apply_audit_fixes
    • First observedpbi_apply_design_system
    • First observedpbi_apply_page_spec
    • First observedpbi_apply_plan
    • First observedpbi_apply_theme
    • First observedpbi_arrange_visuals
    • First observedpbi_audit_model
    • First observedpbi_audit_project
    • First observedpbi_audit_report_only
    • First observedpbi_backup_pbip_project
    • First observedpbi_build_dashboard
    • First observedpbi_build_evm_page
    • First observedpbi_build_executive_page
    • First observedpbi_capabilities
    • First observedpbi_column_dependencies
    • First observedpbi_compare_live_to_pbip
    • First observedpbi_compose_page
    • First observedpbi_convert_pbix_to_pbip
    • First observedpbi_copy_visual_format
    • First observedpbi_create_bookmark
    • First observedpbi_create_calculated_column
    • First observedpbi_create_calculated_table
    • First observedpbi_create_hierarchy
    • First observedpbi_create_html_visual
    • First observedpbi_create_measure
    • First observedpbi_create_page_from_spec
    • First observedpbi_create_pbip_project
    • First observedpbi_create_relationship
    • First observedpbi_create_visual
    • First observedpbi_delete_bookmark
    • First observedpbi_delete_measure
    • First observedpbi_delete_page
    • First observedpbi_delete_visual
    • First observedpbi_detect_layout_issues
    • First observedpbi_diff_page_spec
    • First observedpbi_disable_auto_date_time
    • First observedpbi_distribute_visuals
    • First observedpbi_document_model
    • First observedpbi_document_report_layout
    • First observedpbi_duplicate_page
    • First observedpbi_duplicate_visual
    • First observedpbi_export_page_html
    • First observedpbi_generate_page_spec
    • First observedpbi_generate_report_page
    • First observedpbi_generate_technical_documentation
    • First observedpbi_get_object
    • First observedpbi_get_visual
    • First observedpbi_health_check
    • First observedpbi_hide_columns
    • First observedpbi_inspect_journal
    • First observedpbi_inspect_pbix
    • First observedpbi_list_audit_rules
    • First observedpbi_list_autofix_rules
    • First observedpbi_list_bookmarks
    • First observedpbi_list_convertible_pbix
    • First observedpbi_list_design_systems
    • First observedpbi_list_desktop_models
    • First observedpbi_list_hierarchies
    • First observedpbi_list_measures
    • First observedpbi_list_page_presets
    • First observedpbi_list_partitions
    • First observedpbi_list_pending_journals
    • First observedpbi_list_perspectives
    • First observedpbi_list_relationships
    • First observedpbi_list_report_pages
    • First observedpbi_list_report_resources
    • First observedpbi_list_roles
    • First observedpbi_list_tables
    • First observedpbi_list_themes
    • First observedpbi_list_visuals
    • First observedpbi_measure_dependencies
    • First observedpbi_model_summary
    • First observedpbi_normalize_page_layout
    • First observedpbi_normalize_report
    • First observedpbi_open_in_desktop
    • First observedpbi_open_pbip_project
    • First observedpbi_page_building_blocks
    • First observedpbi_plan_audit_fixes
    • First observedpbi_plan_change
    • First observedpbi_prepare_delivery
    • First observedpbi_preview_page_spec
    • First observedpbi_preview_spec_html
    • First observedpbi_profile_data
    • First observedpbi_propose_dashboard
    • First observedpbi_purge_backups
    • First observedpbi_recover_from_journal
    • First observedpbi_refresh_model
    • First observedpbi_rename_page
    • First observedpbi_reorder_pages
    • First observedpbi_repair_broken_references
    • First observedpbi_replace_visual_field
    • First observedpbi_report_capabilities
    • First observedpbi_run_dax
    • First observedpbi_search_model
    • First observedpbi_select_model
    • First observedpbi_session_info
    • First observedpbi_set_column_visibility
    • First observedpbi_set_conditional_format
    • First observedpbi_set_relationship_direction
    • First observedpbi_set_storage_mode
    • First observedpbi_set_visual_filter
    • First observedpbi_set_visual_title
    • First observedpbi_set_visual_z_order
    • First observedpbi_start_here
    • First observedpbi_test_connection
    • First observedpbi_update_measure
    • First observedpbi_update_visual_position
    • First observedpbi_validate_desktop_render
    • First observedpbi_validate_generated_page
    • First observedpbi_validate_measures
    • First observedpbi_validate_page_spec
    • First observedpbi_validate_pbip_project
    • First observedpbi_validate_tmdl

TDQS

B3.1/5.0
Disambiguation2/5

Multiple tools have overlapping purposes: three HTML preview tools (pbi_export_page_html, pbi_preview_spec_html, pbi_preview_page_spec), several audit/diagnostic tools (pbi_audit_project, pbi_audit_model, pbi_diagnose_data, pbi_profile_data), and numerous page/visual creation tools (pbi_create_visual, pbi_create_page_from_spec, pbi_compose_page, pbi_build_dashboard). Despite detailed descriptions, an agent could easily select the wrong tool.

Naming Consistency4/5

The vast majority of tools follow the consistent pbi_verb_noun snake_case pattern (e.g., pbi_create_measure, pbi_list_tables, pbi_apply_theme). A few exceptions like pbi_start_here, pbi_capabilities, and pbi_health_check break the verb-object convention, but they are minor deviations.

Tool Count1/5

127 tools is an extreme count, far beyond the recommended 3-15 and even beyond the 25+ threshold for 'too many'. This places an enormous cognitive burden on an agent and makes the tool set unwieldy, despite the comprehensive coverage.

Completeness4/5

The tool set covers the full lifecycle of Power BI projects: model objects (tables, measures, columns, relationships), report pages and visuals, themes, bookmarks, plus auditing, validation, backups, and documentation. Minor gaps exist (e.g., no direct editing of Power Query M steps), but the surface is remarkably complete for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/HorizunGroup/horizun-pbi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server