本项目是一个Model Context Protocol (MCP) 服务器,可让AI助手通过自然语言与Power BI数据集进行交互。你可以直接在AI助手中查询数据、生成DAX查询并获取数据洞察,无需在不同工具之间频繁切换。
转变你的Power BI使用体验——用自然语言提问,即刻从数据中获取洞察。
提出如“各地区的总销售额是多少?”这样的问题,即可从你的Power BI数据中立即获得洞察。
git clone https://github.com/yourusername/powerbi-mcp-server.git
cd powerbi-mcp-server
pip install -r requirements.txt
cp .env.example .env
# 使用你的凭证编辑.env文件
python quickstart.py
将以下内容添加到你的Claude Desktop配置文件中:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"powerbi": {
"command": "python",
"args": ["C:/path/to/powerbi-mcp-server/src/server.py"],
"env": {
"PYTHONPATH": "C:/path/to/powerbi-mcp-server",
"OPENAI_API_KEY": "your-openai-api-key"
}
}
}
}
构建容器镜像:
docker build -t powerbi-mcp .
运行服务器:
docker run -it --rm -e OPENAI_API_KEY= powerbi-mcp
容器默认监听端口8000。可以使用环境变量或命令行参数覆盖主机或端口:
docker run -it --rm -e OPENAI_API_KEY= -p 7000:7000 powerbi-mcp \
python src/server.py --host 0.0.0.0 --port 7000
容器包含pythonnet和pyadomd所需的.NET运行时。它设置了PYTHONNET_RUNTIME=coreclr和DOTNET_ROOT=/usr/share/dotnet,因此可以自动检测.NET运行时。环境变量与.env.example中的变量相对应;可以使用-e VAR=value传递它们,或者在构建上下文中提供一个.env文件。
配置完成后,你可以通过Claude与你的Power BI数据进行交互:
Connect to Power BI dataset at powerbi://api.powerbi.com/v1.0/myorg/YourWorkspace
What tables are available?
Show me the structure of the Sales table
What are the total sales by product category?
Show me the trend of revenue over the last 12 months
Which store has the highest gross margin?
Execute DAX: EVALUATE SUMMARIZE(Sales, Product[Category], "Total", SUM(Sales[Amount]))
powerbi://api.powerbi.com/v1.0/myorg/WorkspaceNamegpt - 4o - mini(比GPT - 4便宜200倍)创建一个.env文件(OpenAI设置可选):
# OpenAI配置(可选)
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4o-mini # 默认使用gpt-4o-mini
# 可选:默认Power BI凭证
# 当`connect_powerbi`操作未提供tenant_id、client_id或client_secret时使用这些值。
DEFAULT_TENANT_ID=your_tenant_id
DEFAULT_CLIENT_ID=your_client_id
DEFAULT_CLIENT_SECRET=your_client_secret
# 日志记录
LOG_LEVEL=INFO
powerbi-mcp-server/
├── src/
│ └── server.py # 主要的MCP服务器实现
├── docs/ # 文档
├── examples/ # 示例查询和用例
├── tests/ # 测试套件
├── .env.example # 环境变量模板
├── requirements.txt # Python依赖项
├── quickstart.py # 快速测试脚本
└── README.md # 本文件
.env文件,并将其添加到.gitignore中。运行测试套件:
python -m pytest tests/
测试特定功能:
python tests/test_connection.py
python tests/test_dax_generation.py
我们欢迎贡献!详情请参阅CONTRIBUTING.md。
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)详细解决方案请参阅故障排除文档。
本项目采用MIT许可证 - 详情请参阅LICENSE文件。