Skip to content
| Marketplace
Sign in
Visual Studio Code>Data Science>Power BI Schema for CopilotNew to Visual Studio Code? Get it now.
Power BI Schema for Copilot

Power BI Schema for Copilot

Hồng Anh Trần

|
83 installs
| (0) | Free
Đọc cấu trúc semantic model Power BI (bảng, cột, measure) trong Copilot để viết DAX và code. Không chạy được truy vấn, nên dữ liệu không ra khỏi Power BI.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Power BI Schema for Copilot

Cho Copilot biết cấu trúc model Power BI của bạn, nhưng không đưa dữ liệu cho nó.

Extension này kết nối khung chat AI của VS Code (GitHub Copilot Chat ở chế độ Agent, hoặc bất kỳ chat nào hỗ trợ MCP) với các semantic model trên Power BI. AI đọc được cấu trúc model: tên bảng, tên cột, kiểu dữ liệu, measure và mô tả. Với chừng đó nó đã viết được DAX đúng tên cột, sinh code front-end bám sát model, hay lập tài liệu cho dataset.

Server không chạy được truy vấn. Không có tool nào trả về dòng dữ liệu, nên không một bản ghi khách hàng, dòng đơn hàng hay con số doanh thu nào rời khỏi Power BI qua đường này. Khi cần số liệu thật, bạn cầm đoạn DAX mà AI viết và tự chạy trong Power BI, nơi quyền truy cập của bạn vẫn được áp dụng đầy đủ.

Extension cộng đồng, không chính thức. Không liên kết với và không được Microsoft bảo trợ.


Vì sao chỉ cho đọc schema

Cách phổ biến là để AI chạy truy vấn rồi che thông tin cá nhân trong kết quả. Cách đó luôn có kẽ hở: che sót cột, tên người nằm trong ghi chú, hoặc AI tự viết truy vấn gom dữ liệu theo kiểu khó lường trước.

Không trả về dữ liệu thì không có gì để che. Ranh giới nằm ở chỗ dễ kiểm chứng: server không có tool chạy truy vấn, và đây là thứ đọc code là thấy ngay, không phụ thuộc vào việc bộ lọc có đủ thông minh hay không.

Đổi lại, AI không kiểm chứng được số liệu và không tự kiểm tra được câu DAX nó viết. Nếu công việc của bạn cần AI nhìn thấy dữ liệu thật, extension này không hợp.


Tính năng

🧱 Đọc cấu trúc semantic model

Danh sách app, dataset, bảng, cột (kèm kiểu dữ liệu và cờ khoá), measure (kèm mô tả và định dạng), cùng thông tin refresh gần đây.

✍️ Viết DAX đúng model

AI đọc tên bảng và tên cột có thật trước khi viết truy vấn, nên không bịa ra schema rồi đưa bạn câu DAX chạy là lỗi.

💻 Sinh code bám theo model

Làm dashboard, báo cáo nhúng hay API trên nền semantic model đều cần biết hình dạng model. AI đọc trực tiếp hình dạng đó rồi sinh code.

📚 Tự động lập tài liệu

"Liệt kê mọi measure trong dataset này và giải thích từng cái tính gì." AI duyệt schema và dựng thành từ điển dữ liệu.

🏠 Chạy hoàn toàn trên máy bạn

Không qua dịch vụ trung gian. Kết nối đi thẳng từ máy bạn tới Power BI REST API bằng chính tài khoản của bạn. Chỉ đọc, không tạo hay sửa được gì trong Power BI.


Yêu cầu

VS Code Bản 1.101 trở lên
AI chat GitHub Copilot Chat (chế độ Agent) hoặc extension chat khác có hỗ trợ MCP
uv Cài uv. uv tự tải Python nếu máy chưa có.
Power BI Giấy phép Pro, Premium Per User hoặc Premium capacity
Azure app registration Miễn phí, mất khoảng 5 phút, không cần client secret. Xem hướng dẫn bên dưới.

Bắt đầu sử dụng

1. Tạo Azure app registration (làm một lần, cả tổ chức dùng chung được)

  1. Vào portal.azure.com → Microsoft Entra ID → App registrations → New registration. Đặt tên, ví dụ Power BI Schema, rồi bấm Register.

  2. Authentication → Add a platform → Mobile and desktop applications → tích chọn https://login.microsoftonline.com/common/oauth2/nativeclient.

  3. Authentication → Advanced settings → đặt Allow public client flows thành Yes → Save.

  4. API permissions → Add a permission → Power BI Service → Delegated permissions, thêm:

    • Dataset.Read.All
    • Workspace.Read.All
    • App.Read.All

    Nếu tổ chức yêu cầu, nhờ admin bấm cấp quyền (grant consent).

  5. Ở trang Overview, sao chép Application (client) ID và Directory (tenant) ID.

Admin Power BI cũng phải bật cài đặt tenant Dataset Execute Queries REST API (Admin portal → Tenant settings → Integration settings). Các hàm INFO.VIEW.* dùng để đọc schema đi qua endpoint này. Câu lệnh gửi lên là cố định, nằm trong mã nguồn, AI không sửa được.

2. Cấu hình extension

Mở Command Palette (Ctrl+Shift+P / Cmd+Shift+P), chạy Power BI Schema: Open Settings rồi điền Client ID và Tenant ID lấy ở bước 1.

Hoặc thêm trực tiếp vào settings.json:

{
  "powerbiAnalyst.clientId": "00000000-0000-0000-0000-000000000000",
  "powerbiAnalyst.tenantId": "11111111-1111-1111-1111-111111111111"
}

3. Bắt đầu chat

  1. Mở Copilot Chat và chuyển sang chế độ Agent.
  2. Bấm biểu tượng tools, kiểm tra Power BI Analyst đã được bật.
  3. Hỏi: "Đăng nhập Power BI và liệt kê các app của tôi."
  4. AI trả về một đường link và một mã dùng một lần. Mở link, nhập mã, đăng nhập bằng tài khoản công ty, rồi báo lại cho AI là đã xong.

Các phiên sau không phải đăng nhập lại. Lần khởi động đầu tiên hơi lâu vì uv cần cài thư viện cho server.


Câu hỏi mẫu

  • "Tôi có quyền truy cập những app và dataset Power BI nào?"
  • "Liệt kê các bảng trong dataset Sales và giải thích từng measure."
  • "Viết DAX tính doanh thu theo thị trường và danh mục sản phẩm cho quý 1/2025."
  • "Dựng từ điển dữ liệu dạng Markdown cho dataset này."
  • "Sinh interface TypeScript cho các cột của bảng Orders."
  • "Tôi muốn đếm khách hàng mua nhiều hơn 3 lần. Model này có sẵn measure nào dùng được không, hay phải viết mới?"

Cài đặt của extension

Cài đặt Mặc định Mô tả
powerbiAnalyst.clientId (trống) Bắt buộc. Application (client) ID của Azure app registration.
powerbiAnalyst.tenantId organizations Directory (tenant) ID hoặc tên miền, ví dụ contoso.onmicrosoft.com. Nên đặt khi app là single-tenant (hầu hết các tổ chức).
powerbiAnalyst.uvPath uv Đường dẫn đầy đủ tới uv nếu uv không có trong PATH.

Extension tự nhận khi bạn đổi cài đặt; VS Code có thể hỏi bạn khởi động lại server.

Các tool AI được dùng

Tool Tác dụng
authenticate Đăng nhập bằng mã thiết bị (device code).
logout Xoá phiên đăng nhập đã lưu.
list_apps Các app Power BI bạn truy cập được. Đây là điểm bắt đầu.
list_datasets Các dataset (semantic model) trong workspace của một app.
get_dataset_info Thông tin dataset và lịch sử refresh gần đây.
list_tables Các bảng hiển thị trong dataset.
list_columns Các cột, kèm kiểu dữ liệu và cờ khoá.
list_measures Các measure, kèm bảng, mô tả và định dạng.

Hết. Không có tool nào chạy truy vấn hay đọc file kết quả.


Những gì AI vẫn nhìn thấy

Metadata là thứ được trả về, nên AI thấy tên bảng, tên cột, tên measure, mô tả, kiểu dữ liệu và công thức đặt trong phần mô tả. Một cột tên Customer Email cho AI biết cột đó tồn tại, nhưng không cho nó biết địa chỉ nào nằm trong đó.

Nếu ngay cả tên cột hay mô tả cũng là thông tin nhạy cảm, hãy dùng Object-Level Security của Power BI để ẩn hẳn chúng với tài khoản dùng cho AI.


Dữ liệu & quyền riêng tư

Dữ liệu Lưu ở đâu
Token đăng nhập ~/.powerbi_mcp_token_cache.bin, mã hoá bằng Keychain (macOS), DPAPI (Windows) hoặc LibSecret (Linux)
Client ID, Tenant ID Settings của VS Code

Server không ghi file kết quả, không ghi nhật ký truy vấn, và không ghi log token.


Xử lý sự cố

Vấn đề Cách khắc phục
Báo "set your Azure app Client ID" Điền powerbiAnalyst.clientId.
Báo "uv was not found" Cài uv, khởi động lại VS Code, hoặc đặt powerbiAnalyst.uvPath là đường dẫn đầy đủ tới uv.
Không thấy tool Power BI trong Copilot Chat Chuyển sang chế độ Agent và bật tool trong danh sách tools. Với tài khoản GitHub Enterprise/Business, admin phải cho phép MCP servers in Copilot.
Lỗi AADSTS50059 hoặc đăng nhập nhầm tổ chức Đặt powerbiAnalyst.tenantId là Directory (tenant) ID của bạn.
Lỗi AADSTS7000218 / invalid_client Trong app registration, đặt Allow public client flows thành Yes.
Lỗi AADSTS65001 / cần cấp quyền Admin phải grant consent cho các API permission.
Lỗi 403 khi đọc schema Bạn cần quyền Build trên dataset. Kiểm tra AI đã dùng workspace ID lấy từ list_apps.
Đọc schema lỗi với tất cả mọi người Admin Power BI phải bật Dataset Execute Queries REST API.
Server không khởi động được Chạy MCP: List Servers → Power BI Analyst → Show Output để xem log.

Giới hạn

  • Không có dữ liệu. Muốn xem số liệu thì tự chạy DAX trong Power BI.
  • Chỉ đọc. Không tạo hay sửa được nội dung Power BI.
  • list_tables, list_columns, list_measures dùng hàm DAX INFO.VIEW.*, yêu cầu model Import hoặc DirectQuery có bật quyền đọc XMLA.

Ghi công & giấy phép

Phát triển dựa trên powerbi-analyst-mcp của Martin Brummerstedt, sửa thành server chỉ đọc schema và tích hợp VS Code. Giấy phép MIT.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft