PBIXRay MCP 서버
PBIXRay용 MCP( Model Context Protocol ) 서버.
이 MCP 서버는 LLM 클라이언트가 Power BI(.pbix) 파일과 상호 작용할 수 있는 도구 및 리소스로서 PBIXRay 의 기능을 제공합니다.
특징
[x] PBIX 파일 로딩 및 분석
[x] 데이터 모델 탐색
[x] 모델에 테이블 나열
[x] 모델 메타데이터 검색
[x] 모델 크기 확인
[x] 모델 통계 가져오기
[x] 포괄적인 모델 요약 얻기
[x] 쿼리 언어 접근
[x] Power Query(M) 코드 보기
[x] M 매개변수 액세스
[x] DAX 계산 테이블 탐색
[x] DAX 측정값 보기
[x] DAX 계산 열 검사
[x] 데이터 구조 분석
[x] 스키마 정보 검색
[x] 테이블 관계 분석
[x] 페이지 매김을 통한 테이블 내용 접근
도구 목록은 구성 가능하므로 MCP 클라이언트에서 사용할 도구를 선택할 수 있습니다. 특정 기능을 사용하지 않거나 민감한 정보를 노출하고 싶지 않을 때 유용합니다.
Related MCP server: MCP MySQL Server
도구
도구 | 범주 | 설명 |
| 핵심 | 분석을 위해 Power BI(.pbix) 파일을 로드합니다. |
| 모델 | 모델의 모든 테이블 나열 |
| 모델 | Power BI 구성에 대한 메타데이터 가져오기 |
| 질문 | 데이터 변환에 사용된 모든 M/Power Query 코드 표시 |
| 질문 | 모든 M 매개변수 값 표시 |
| 모델 | 모델 크기를 바이트 단위로 가져옵니다. |
| 질문 | DAX 계산된 테이블 보기 |
| 질문 | 테이블 또는 측정값 이름으로 필터링하여 DAX 측정값에 액세스 |
| 질문 | 필터링 옵션을 사용하여 계산된 열 DAX 표현식에 액세스 |
| 구조 | 데이터 모델 스키마 및 열 유형에 대한 세부 정보를 얻으세요 |
| 구조 | 데이터 모델 관계에 대한 세부 정보를 얻으세요 |
| 데이터 | 페이지 매김을 사용하여 지정된 테이블의 내용을 검색합니다. |
| 모델 | 선택적 필터링을 사용하여 모델에 대한 통계를 얻으세요 |
| 모델 | 현재 Power BI 모델에 대한 포괄적인 요약을 얻으세요 |
용법
WSL(권장)
클라이언트 설정 파일에 서버 설정을 추가하세요. 예를 들어, Claude Desktop의 경우:
지엑스피1
WSL 경로 변환(예: Claude Project 지침)
Windows에서 Claude Desktop과 함께 WSL에서 PBIXRay MCP 서버를 사용할 때 PBIX 파일을 로드할 때 경로 차이를 인지해야 합니다. Windows 경로(예 C:\Users\name\file.pbix )는 WSL에서 직접 액세스할 수 없습니다. AI 비서에게 패턴 간 변환 방법을 알려주려면 "mcp 서버가 wsl에서 실행 중입니다. Windows 경로(예: C:\Users\name\file.pbix)는 WSL에서 직접 액세스할 수 없습니다. 대신 파일을 참조할 때 WSL 경로를 사용하세요. Windows: C:\Users\name\Downloads\file.pbix" WSL: /mnt/c/Users/name/Downloads/file.pbix"를 프로젝트 명령어 등에 추가하세요.
명령줄 옵션
서버는 여러 가지 명령줄 옵션을 지원합니다.
--disallow [tool_names]: 보안상의 이유로 특정 도구를 비활성화합니다.--max-rows N: 반환되는 최대 행 수를 설정합니다(기본값: 100)--page-size N: 페이지 분할 결과에 대한 기본 페이지 크기를 설정합니다(기본값: 20)
필요에 따라 config json에 명령줄 옵션을 추가할 수 있습니다.
{
"mcpServers": {
"pbixray": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"source ~/dev/pbixray-mcp/venv/bin/activate && python ~/dev/pbixray-mcp/src/pbixray_server.py --max-rows 100 --page-size 50 --disallow get_power_query"
],
"env": {}
}
}
}쿼리 옵션
도구는 필터링 및 페이지 매김을 위한 추가 매개변수를 지원합니다.
이름으로 필터링
get_dax_measures , get_dax_columns , get_schema 등과 같은 도구는 특정 이름으로 필터링하는 기능을 지원합니다.
# Get measures from a specific table
get_dax_measures(table_name="Sales")
# Get a specific measure
get_dax_measures(table_name="Sales", measure_name="Total Sales")대형 테이블에 대한 페이지 매김
get_table_contents 도구는 대용량 테이블을 효율적으로 처리하기 위한 페이지 분할을 지원합니다.
# Get first page of Customer table (default 20 rows per page)
get_table_contents(table_name="Customer")
# Get second page with 50 rows per page
get_table_contents(table_name="Customer", page=2, page_size=50)개발 및 테스트
PBIXRay MCP 서버를 설치할 수 있습니다.
pip install pbixray-mcp-server개발 설치
이 프로젝트에 참여하는 개발자를 위해:
저장소를 복제합니다.
git clone https://github.com/username/pbixray-mcp.git cd pbixray-mcp개발 모드로 설치:
pip install -e .소스에서 설치하는 경우 가상 환경을 만들고 종속성을 설치합니다.
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install mcp pbixray numpy
샘플 파일로 테스트하기
저장소에는 시작하는 데 도움이 되는 샘플 파일과 테스트 스크립트가 포함되어 있습니다.
# Test with sample AdventureWorks Sales.pbix file in demo/ folder
python tests/test_with_sample.py
# Try the interactive demo
python examples/demo.py
# For isolated tests of specific features
python test_pagination.py
python test_metadata_fix.py테스트 스크립트는 demo/ 디렉토리에 제공된 샘플 PBIX 파일을 사용하여 서버와 상호 작용하는 방법을 이해하는 데 도움이 됩니다.
개발 모드
개발 중에 서버를 테스트하려면 MCP Inspector를 사용하세요.
# Activate your environment first
source venv/bin/activate
# Run the MCP Inspector
mcp dev src/pbixray_server.py도구를 호출하고 응답을 테스트할 수 있는 대화형 세션이 시작됩니다.
프로젝트 구조
pbixray-mcp/
├── README.md - This file
├── INSTALLATION.md - Detailed installation instructions
├── src/ - Source code
│ ├── __init__.py
│ └── pbixray_server.py
├── tests/ - Test scripts
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_server.py
│ └── test_with_sample.py
├── examples/ - Example scripts and configs
│ ├── demo.py
│ └── config/
├── demo/ - Sample PBIX files
│ ├── README.md
│ └── AdventureWorks Sales.pbix
└── docs/ - Additional documentation
└── ROADMAP.md기여
여러분의 기여를 환영합니다!