Skip to main content
Glama
HorizunGroup

Horizun PBI MCP

Official
by HorizunGroup

pbi_convert_pbix_to_pbip

Convert Power BI .pbix files to .pbip projects (PBIR + TMDL), preserving the original file. Extracts the report and serializes the model via Power BI Desktop, with support for folders, recursion, and live connections.

Instructions

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.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
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.

Install Server

Other Tools

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