Attribution: Sourced from github/awesome-copilot by GitHub Community.
Power BI Semantic Modeling
Guide users in building optimized, well-documented Power BI semantic models following Microsoft best practices.
When to Use This Skill
Use this skill when users ask about:
- Creating or optimizing Power BI semantic models
- Designing star schemas (dimension/fact tables)
- Writing DAX measures or calculated columns
- Configuring table relationships (cardinality, cross-filter)
- Implementing row-level security (RLS)
- Naming conventions for tables, columns, measures
- Adding descriptions and documentation to models
- Performance tuning and optimization
- Calculation groups and field parameters
- Model validation and best practice checks
Trigger phrases: "create a measure", "add relationship", "star schema", "optimize model", "DAX formula", "RLS", "naming convention", "model documentation", "cardinality", "cross-filter"
Prerequisites
Required Tools
- Power BI Modeling MCP Server: Required for connecting to and modifying semantic models
- Enables: connection_operations, table_operations, measure_operations, relationship_operations, etc.
- Must be configured and running to interact with models
Optional Dependencies
- Microsoft Learn MCP Server: Recommended for researching latest best practices
- Enables: microsoft_docs_search, microsoft_docs_fetch
- Use for complex scenarios, new features, and official documentation
Workflow
1. Connect and Analyze First
Before providing any modeling guidance, always examine the current model state:
1. List connections: connection_operations(operation: "ListConnections")
2. If no connection, check for local instances: connection_operations(operation: "ListLocalInstances")
3. Connect to the model (Desktop or Fabric)
4. Get model overview: model_operations(operation: "Get")
5. List tables: table_operations(operation: "List")
6. List relationships: relationship_operations(operation: "List")
7. List measures: measure_operations(operation: "List")
2. Evaluate Model Health
After connecting, assess the model against best practices:
- Star Schema: Are tables properly classified as dimension or fact?
- Relationships: Correct cardinality? Minimal bidirectional filters?
- Naming: Human-readable, consistent naming conventions?
- Documentation: Do tables, columns, measures have descriptions?
- Measures: Explicit measures for key calculations?
- Hidden Fields: Are technical columns hidden from report view?
3. Provide Targeted Guidance
Based on analysis, guide improvements using references:
- Star schema design: See STAR-SCHEMA.md
- Relationship configuration: See RELATIONSHIPS.md
- DAX measures and naming: See MEASURES-DAX.md
- Performance optimization: See PERFORMANCE.md
- Row-level security: See RLS.md
Quick Reference: Model Quality Checklist
| Area |
Best Practice |
| Tables |
Clear dimension vs fact classification |
| Naming |
Human-readable: Customer Name not CUST_NM |
| Descriptions |
All tables, columns, measures documented |
| Measures |
Explicit DAX measures for business metrics |
| Relationships |
One-to-many from dimension to fact |
| Cross-filter |
Single direction unless specifically needed |
| Hidden fields |
Hide technical keys, IDs from report view |
| Date table |
Dedicated marked date table |
MCP Tools Reference
Use these Power BI Modeling MCP operations:
| Operation Category |
Key Operations |
connection_operations |
Connect, ListConnections, ListLocalInstances, ConnectFabric |
model_operations |
Get, GetStats, ExportTMDL |
table_operations |
List, Get, Create, Update, GetSchema |
column_operations |
List, Get, Create, Update (descriptions, hidden, format) |
measure_operations |
List, Get, Create, Update, Move |
relationship_operations |
List, Get, Create, Update, Activate, Deactivate |
dax_query_operations |
Execute, Validate |
calculation_group_operations |
List, Create, Update |
security_role_operations |
List, Create, Update, GetEffectivePermissions |
Common Tasks
Add Measure with Description
measure_operations(
operation: "Create",
definitions: [{
name: "Total Sales",
tableName: "Sales",
expression: "SUM(Sales[Amount])",
formatString: "$#,##0",
description: "Sum of all sales amounts"
}]
)
Update Column Description
column_operations(
operation: "Update",
definitions: [{
tableName: "Customer",
name: "CustomerKey",
description: "Unique identifier for customer dimension",
isHidden: true
}]
)
Create Relationship
relationship_operations(
operation: "Create",
definitions: [{
fromTable: "Sales",
fromColumn: "CustomerKey",
toTable: "Customer",
toColumn: "CustomerKey",
crossFilteringBehavior: "OneDirection"
}]
)
When to Use Microsoft Learn MCP
Research current best practices using microsoft_docs_search for:
- Latest DAX function documentation
- New Power BI features and capabilities
- Complex modeling scenarios (SCD Type 2, many-to-many)
- Performance optimization techniques
- Security implementation patterns
1---2name: powerbi-modeling3description: Power BI semantic modeling — building optimized data models4---56> **Attribution:** Sourced from [github/awesome-copilot](https://github.com/github/awesome-copilot) by [GitHub Community](https://github.com/github).78# Power BI Semantic Modeling910Guide users in building optimized, well-documented Power BI semantic models following Microsoft best practices.1112## When to Use This Skill1314Use this skill when users ask about:15- Creating or optimizing Power BI semantic models16- Designing star schemas (dimension/fact tables)17- Writing DAX measures or calculated columns18- Configuring table relationships (cardinality, cross-filter)19- Implementing row-level security (RLS)20- Naming conventions for tables, columns, measures21- Adding descriptions and documentation to models22- Performance tuning and optimization23- Calculation groups and field parameters24- Model validation and best practice checks2526**Trigger phrases:** "create a measure", "add relationship", "star schema", "optimize model", "DAX formula", "RLS", "naming convention", "model documentation", "cardinality", "cross-filter"2728## Prerequisites2930### Required Tools31- **Power BI Modeling MCP Server**: Required for connecting to and modifying semantic models32 - Enables: connection_operations, table_operations, measure_operations, relationship_operations, etc.33 - Must be configured and running to interact with models3435### Optional Dependencies36- **Microsoft Learn MCP Server**: Recommended for researching latest best practices37 - Enables: microsoft_docs_search, microsoft_docs_fetch38 - Use for complex scenarios, new features, and official documentation3940## Workflow4142### 1. Connect and Analyze First4344Before providing any modeling guidance, always examine the current model state:4546```471. List connections: connection_operations(operation: "ListConnections")482. If no connection, check for local instances: connection_operations(operation: "ListLocalInstances")493. Connect to the model (Desktop or Fabric)504. Get model overview: model_operations(operation: "Get")515. List tables: table_operations(operation: "List")526. List relationships: relationship_operations(operation: "List")537. List measures: measure_operations(operation: "List")54```5556### 2. Evaluate Model Health5758After connecting, assess the model against best practices:5960- **Star Schema**: Are tables properly classified as dimension or fact?61- **Relationships**: Correct cardinality? Minimal bidirectional filters?62- **Naming**: Human-readable, consistent naming conventions?63- **Documentation**: Do tables, columns, measures have descriptions?64- **Measures**: Explicit measures for key calculations?65- **Hidden Fields**: Are technical columns hidden from report view?6667### 3. Provide Targeted Guidance6869Based on analysis, guide improvements using references:70- Star schema design: See [STAR-SCHEMA.md](references/STAR-SCHEMA.md)71- Relationship configuration: See [RELATIONSHIPS.md](references/RELATIONSHIPS.md)72- DAX measures and naming: See [MEASURES-DAX.md](references/MEASURES-DAX.md)73- Performance optimization: See [PERFORMANCE.md](references/PERFORMANCE.md)74- Row-level security: See [RLS.md](references/RLS.md)7576## Quick Reference: Model Quality Checklist7778| Area | Best Practice |79|------|--------------|80| Tables | Clear dimension vs fact classification |81| Naming | Human-readable: `Customer Name` not `CUST_NM` |82| Descriptions | All tables, columns, measures documented |83| Measures | Explicit DAX measures for business metrics |84| Relationships | One-to-many from dimension to fact |85| Cross-filter | Single direction unless specifically needed |86| Hidden fields | Hide technical keys, IDs from report view |87| Date table | Dedicated marked date table |8889## MCP Tools Reference9091Use these Power BI Modeling MCP operations:9293| Operation Category | Key Operations |94|-------------------|----------------|95| `connection_operations` | Connect, ListConnections, ListLocalInstances, ConnectFabric |96| `model_operations` | Get, GetStats, ExportTMDL |97| `table_operations` | List, Get, Create, Update, GetSchema |98| `column_operations` | List, Get, Create, Update (descriptions, hidden, format) |99| `measure_operations` | List, Get, Create, Update, Move |100| `relationship_operations` | List, Get, Create, Update, Activate, Deactivate |101| `dax_query_operations` | Execute, Validate |102| `calculation_group_operations` | List, Create, Update |103| `security_role_operations` | List, Create, Update, GetEffectivePermissions |104105## Common Tasks106107### Add Measure with Description108```109measure_operations(110 operation: "Create",111 definitions: [{112 name: "Total Sales",113 tableName: "Sales",114 expression: "SUM(Sales[Amount])",115 formatString: "$#,##0",116 description: "Sum of all sales amounts"117 }]118)119```120121### Update Column Description122```123column_operations(124 operation: "Update",125 definitions: [{126 tableName: "Customer",127 name: "CustomerKey",128 description: "Unique identifier for customer dimension",129 isHidden: true130 }]131)132```133134### Create Relationship135```136relationship_operations(137 operation: "Create",138 definitions: [{139 fromTable: "Sales",140 fromColumn: "CustomerKey",141 toTable: "Customer",142 toColumn: "CustomerKey",143 crossFilteringBehavior: "OneDirection"144 }]145)146```147148## When to Use Microsoft Learn MCP149150Research current best practices using `microsoft_docs_search` for:151- Latest DAX function documentation152- New Power BI features and capabilities153- Complex modeling scenarios (SCD Type 2, many-to-many)154- Performance optimization techniques155- Security implementation patterns