Power BI MCP助手
Power BI的自然语言界面,由Claude和 模型上下文协议用简单的英语询问有关Power BI数据的问题——其余的由Claude处理。
同时提供基于浏览器的聊天UI(Streamlit)和终端REPL。
______________________________________________________________________
运作原理
此应用程序将Claude连接到微软的Power BI MCP服务器。当你问问题时,Claude会发现可用的Power BI工具,决定调用哪些工具,执行它们,并返回答案——通常是自动呈现的图表。整个循环是代理的:Claude可以将多个工具调用链接在一起,以回答复杂的问题,而无需编写任何DAX。
特性
- 自然语言查询 --不需要DAX
- 能动循环 --Claude迭代地调用工具,直到得到完整的答案
- 自动渲染图表 --根据查询结果生成的条形图、折线图、饼图和度量卡
- 两个接口 --流线型web UI和终端CLI(REPL)
- Microsoft身份验证 --带本地令牌缓存的SOAP设备代码流
- 对话记忆 --会话中的完整多回合上下文
先决条件
- Python 3.10+
- A. API密钥
- 可以访问Power BI工作区的Microsoft帐户
- 访问微软的Power BI MCP服务器(
https://api.fabric.microsoft.com/v1/mcp/powerbi)
安装
git clone https://github.com/your-username/Connecting_PowerBI_MCP.git
cd Connecting_PowerBI_MCP
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# or
.venv\Scripts\activate # Windows
pip install -r requirements.txt配置
cp .env.example .env编辑 .env 并设定你的价值观:
CLAUDE_API_KEY=sk-ant-...
# Optional — leave blank to use device code flow (recommended)
AZURE_TENANT_ID=
AZURE_CLIENT_ID=这就是大多数设置所需的一切。该应用程序默认为设备代码身份验证,这意味着不需要Azure应用程序注册——您只需在第一次运行时通过浏览器登录即可。
如果您需要自定义Azure应用程序注册(例如服务帐户或特定租户),请参阅 docs/azure setup.md.
用法
流线型UI
streamlit run streamlit_app.py打开 http://localhost:8501 在您的浏览器中。首次运行时,系统将提示您通过设备代码流向Microsoft进行身份验证。
命令行界面
python main.pyREPL中的可用命令:
| 命令 | 描述 |
|---|---|
/help | 显示帮助 |
/tools | 列出可用的Power BI工具 |
/clear | 清除对话历史记录 |
/history | 显示对话长度 |
/exit | 退出 |
项目结构
├── streamlit_app.py # Streamlit entry point
├── main.py # CLI entry point
├── core/
│ └── orchestrator.py # Agentic loop
├── clients/
│ ├── claude_client.py # Anthropic API wrapper
│ ├── simple_mcp_client.py # Power BI MCP client
│ ├── http_transport.py # JSON-RPC over HTTP POST
│ └── tool_converter.py # MCP ↔ Claude format conversion
├── auth/
│ ├── manager.py # MSAL device code flow
│ └── token_cache.py # Encrypted local token cache
├── config/
│ └── settings.py # Pydantic-based configuration
├── streamlit_ui/
│ ├── session_manager.py # Streamlit session lifecycle
│ ├── async_runner.py # Thread-safe async bridge
│ ├── components.py # UI components
│ └── charts/ # Chart detection and rendering
├── cli/ # CLI interface
├── docs/ # Setup and troubleshooting guides
├── .env.example # Environment variable template
└── requirements.txt认证
首次运行时,应用程序会显示设备代码和URL:
To sign in, visit https://microsoft.com/devicelogin and enter the code: XXXXX-XXXXX通过浏览器登录后,令牌将在本地缓存在 ~/.powerbi-mcp/token_cache.bin 并在后续运行中自动刷新。
故障排除
看 docs/故障排除.md 对于常见问题。
许可证
麻省理工学院——见 许可证.
