Skip to main content
Glama

powerbi-mcp

Servicio interno de Node.js para acceso a Power BI MCP. Está diseñado para ejecutarse junto a una aplicación Next.js, generalmente bajo PM2, y ser llamado solo desde la capa del servidor de Next.js.

Este proyecto no replica el repositorio MCP de Google Ads. Sigue la misma idea de un backend MCP enfocado, pero está adaptado a Power BI/Fabric, llamadas JSON-RPC directas y la iteración de agente/herramienta ya probada en el POC del bot de PBI.

Qué hace

  • Llama al punto final MCP de Fabric Power BI con un token de portador (bearer token) de usuario.

  • Enumera y ejecuta herramientas MCP a través de JSON-RPC.

  • Descubre áreas de trabajo y modelos semánticos de Power BI para mejores prompts de modelo.

  • Ejecuta un bucle de agente compatible con OpenAI que puede llamar a herramientas MCP de Power BI.

  • Expone puntos finales HTTP internos para un backend de Next.js.

  • Se entrega con una configuración de proceso de PM2 llamada powerbi-mcp.

Puntos finales

  • GET /health

  • POST /internal/mcp/tools

  • POST /internal/mcp/call

  • POST /internal/powerbi/catalog

  • POST /internal/chat

  • POST /internal/chat/json

Las rutas de compatibilidad con navegador/proxy también están disponibles bajo /api/*:

  • GET /api/auth/status

  • GET /api/auth/login

  • GET /api/auth/callback

  • GET /api/auth/logout

  • POST /api/mcp/tools

  • POST /api/mcp/call

  • POST /api/powerbi/catalog

  • POST /api/chat

  • POST /api/chat/json

Todas las rutas internas aceptan el token de acceso de Power BI del usuario en una de estas formas:

  • Authorization: Bearer <power-bi-access-token>

  • x-powerbi-access-token: <power-bi-access-token>

  • Campo de cuerpo JSON accessToken

Si INTERNAL_API_KEY está configurado, envíe también:

x-internal-api-key: <your-internal-key>

Instalación

cd powerbi-mcp
npm install
cp .env.example .env
npm run check

Complete .env con la configuración de su pasarela compatible con LiteLLM/OpenAI. Para la ruta del navegador, establezca su URI de redirección de Azure al callback del proxy de Next.js, por ejemplo:

http://localhost:3000/api/powerbi-mcp/auth/callback

Ejecutar localmente

npm run dev

La URL del servicio predeterminada es http://127.0.0.1:3101.

Ejecutar con PM2

pm2 start ecosystem.config.js
pm2 status

Nombre de proceso esperado:

powerbi-mcp

Ruta de integración para Next.js

Mantenga los archivos de ruta de Next.js fuera de este repositorio de backend. En este espacio de trabajo viven en la carpeta hermana:

../powerbi-analyst-next-dropin/app

Copie esos archivos en el directorio real ads-next/app:

  • app/Power_BI_Analyst/page.tsx

  • app/api/powerbi-mcp/[...path]/route.ts

Luego navegue a:

/Power_BI_Analyst

El proxy de Next.js llama a este backend en:

http://127.0.0.1:3101/api/*

Ejemplo de servidor Next.js

Llame a esto solo desde una ruta de servidor, acción de servidor o manejador de API. No exponga el token de acceso de Power BI al código del lado del navegador más allá de su flujo de autenticación normal.

const response = await fetch("http://127.0.0.1:3101/internal/chat/json", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-internal-api-key": process.env.POWERBI_MCP_INTERNAL_API_KEY,
    "Authorization": `Bearer ${powerBiAccessToken}`
  },
  body: JSON.stringify({
    message: "Show total sales this month vs last month",
    history: []
  })
});

const data = await response.json();

Para respuestas de interfaz de usuario en streaming, llame a /internal/chat o /api/chat; devuelve eventos enviados por el servidor:

data: {"token":"..."}
data: [DONE]

Notas

  • Este servicio admite tanto el reenvío de tokens a través de /internal/* como el flujo de sesión del navegador a través de /api/auth/*.

  • Enlace a 127.0.0.1 en producción a menos que intencionalmente esté colocando esto detrás de un límite de red privada.

  • Establezca INTERNAL_API_KEY antes de implementar para que solo los llamadores internos de confianza puedan usar el servicio.

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/ketangupta1-ai/powerbi-mcp'

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