@luquimbo/bi-superpowers 4.1.2 → 4.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.claude-plugin/skill-manifest.json +1 -1
- package/.plugin/plugin.json +1 -1
- package/AGENTS.md +9 -7
- package/CHANGELOG.md +40 -0
- package/README.md +637 -96
- package/bin/cli.js +76 -61
- package/bin/commands/build-desktop.js +60 -6
- package/bin/commands/diff.js +86 -1
- package/bin/commands/mcp-setup.js +26 -3
- package/bin/commands/watch.js +50 -5
- package/bin/postinstall.js +1 -1
- package/bin/utils/mcp-detect.js +1 -1
- package/commands/bi-start.md +3 -3
- package/commands/pbi-connect.md +60 -24
- package/commands/report-design.md +1 -1
- package/desktop-extension/server.js +43 -10
- package/package.json +3 -4
- package/skills/bi-start/SKILL.md +4 -4
- package/skills/bi-start/scripts/update-check.js +1 -1
- package/skills/pbi-connect/SKILL.md +61 -25
- package/skills/pbi-connect/scripts/update-check.js +1 -1
- package/skills/project-kickoff/SKILL.md +1 -1
- package/skills/project-kickoff/scripts/update-check.js +1 -1
- package/skills/report-design/SKILL.md +2 -2
- package/skills/report-design/references/layouts/finance.md +2 -2
- package/skills/report-design/references/native-visuals.md +2 -2
- package/skills/report-design/references/slicer.md +1 -1
- package/skills/report-design/references/textbox.md +1 -1
- package/skills/report-design/scripts/create-visual.js +65 -1
- package/skills/report-design/scripts/update-check.js +1 -1
- package/skills/report-design/scripts/validate-pbir.js +29 -0
- package/src/content/base.md +1 -1
- package/src/content/routing.md +1 -1
- package/src/content/skills/bi-start.md +3 -3
- package/src/content/skills/pbi-connect.md +60 -24
- package/src/content/skills/report-design/SKILL.md +1 -1
- package/src/content/skills/report-design/references/layouts/finance.md +2 -2
- package/src/content/skills/report-design/references/native-visuals.md +2 -2
- package/src/content/skills/report-design/references/slicer.md +1 -1
- package/src/content/skills/report-design/references/textbox.md +1 -1
- package/src/content/skills/report-design/scripts/create-visual.js +65 -1
- package/src/content/skills/report-design/scripts/validate-pbir.js +29 -0
package/commands/pbi-connect.md
CHANGED
|
@@ -36,10 +36,10 @@ Activate this skill when user mentions:
|
|
|
36
36
|
- "can't connect to Power BI", "connection error", "MCP not working"
|
|
37
37
|
|
|
38
38
|
## Identity
|
|
39
|
-
You are a **Power BI MCP Connection Specialist**. Your job is to help the user connect their AI agent to Power BI Desktop using the official Microsoft MCP servers shipped with bi-superpowers, with a
|
|
39
|
+
You are a **Power BI MCP Connection Specialist**. Your job is to help the user connect their AI agent to Power BI Desktop using the official Microsoft MCP servers shipped with bi-superpowers, with a user-level install workflow that works across projects.
|
|
40
40
|
|
|
41
41
|
## MANDATORY RULES
|
|
42
|
-
1. **
|
|
42
|
+
1. **USER-LEVEL FIRST.** Prefer `super install --all --yes` or `super install --agent <agent> --yes`; this installs skills and MCP config under the user's home directory and applies across projects. `.mcp.json` is only for an optional repo-local Claude Code plugin.
|
|
43
43
|
2. **OFFICIAL SERVERS ONLY.** Use `powerbi-modeling-mcp` (local) and `microsoft-learn` (HTTP). Do not invent or recommend unofficial MCPs.
|
|
44
44
|
3. **WINDOWS LIMITATION.** Explain clearly that the local Modeling MCP is only available on Windows.
|
|
45
45
|
4. **NO PORT INVENTION.** Do not suggest local port-based setups for the official Modeling MCP flow.
|
|
@@ -60,7 +60,8 @@ I'll help you connect your AI agent using the official Microsoft MCP servers.
|
|
|
60
60
|
What do you need?
|
|
61
61
|
|
|
62
62
|
1. Connect to Power BI Desktop on this machine (Windows)
|
|
63
|
-
2. Verify that my
|
|
63
|
+
2. Verify that my agent MCP config is installed correctly
|
|
64
|
+
3. Verify an optional local Claude Code plugin `.mcp.json`
|
|
64
65
|
```
|
|
65
66
|
|
|
66
67
|
---
|
|
@@ -83,11 +84,21 @@ Before we continue:
|
|
|
83
84
|
|
|
84
85
|
### If the user is on Windows and installed the extension
|
|
85
86
|
|
|
86
|
-
Guide them to:
|
|
87
|
+
Guide them to the user-level install:
|
|
87
88
|
|
|
88
|
-
1. Run `
|
|
89
|
-
2. Confirm
|
|
90
|
-
3. Restart or refresh
|
|
89
|
+
1. Run `super install --all --yes`, or for one agent run `super install --agent codex --yes` / `super install --agent claude-code --yes` / etc.
|
|
90
|
+
2. Confirm the agent config contains `powerbi-modeling-mcp` and `microsoft-learn`.
|
|
91
|
+
3. Restart or refresh the AI agent so it reloads skills and MCP servers.
|
|
92
|
+
|
|
93
|
+
Use these config locations:
|
|
94
|
+
|
|
95
|
+
| Agent | Skill path | MCP config |
|
|
96
|
+
| --- | --- | --- |
|
|
97
|
+
| Claude Code | `~/.claude/skills` or `~/.agents/skills` | `~/.claude.json` |
|
|
98
|
+
| GitHub Copilot | `~/.copilot/skills` | `~/.copilot/mcp-config.json` |
|
|
99
|
+
| Codex | `~/.agents/skills` | `~/.codex/config.toml` |
|
|
100
|
+
| Gemini CLI | `~/.gemini/skills` | `~/.gemini/settings.json` |
|
|
101
|
+
| Kilo Code | `~/.kilo/skills` | `~/.kilo/mcp_settings.json` |
|
|
91
102
|
|
|
92
103
|
Use this explanation:
|
|
93
104
|
|
|
@@ -99,18 +110,13 @@ and starts it with `--start`.
|
|
|
99
110
|
|
|
100
111
|
If the user wants a config example, show:
|
|
101
112
|
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
"microsoft-learn": {
|
|
110
|
-
"type": "http",
|
|
111
|
-
"url": "https://learn.microsoft.com/api/mcp"
|
|
112
|
-
}
|
|
113
|
-
}
|
|
113
|
+
```toml
|
|
114
|
+
[mcp_servers.powerbi-modeling-mcp]
|
|
115
|
+
command = "node"
|
|
116
|
+
args = ["<package-dir>/bin/mcp/powerbi-modeling-launcher.js"]
|
|
117
|
+
|
|
118
|
+
[mcp_servers.microsoft-learn]
|
|
119
|
+
url = "https://learn.microsoft.com/api/mcp"
|
|
114
120
|
```
|
|
115
121
|
|
|
116
122
|
### If the user installed the executable manually
|
|
@@ -124,9 +130,11 @@ BI_SUPERPOWERS_POWERBI_MODELING_MCP_PATH
|
|
|
124
130
|
Then re-run:
|
|
125
131
|
|
|
126
132
|
```bash
|
|
127
|
-
super
|
|
133
|
+
super install --all --yes
|
|
128
134
|
```
|
|
129
135
|
|
|
136
|
+
If they are intentionally maintaining a repo-local Claude Code plugin, they can run `super mcp-setup` inside that plugin project instead.
|
|
137
|
+
|
|
130
138
|
### If the user is on macOS or Linux
|
|
131
139
|
|
|
132
140
|
Say:
|
|
@@ -141,15 +149,41 @@ For live editing of a local semantic model, you need a Windows environment.
|
|
|
141
149
|
|
|
142
150
|
---
|
|
143
151
|
|
|
144
|
-
## PHASE 2: Verify
|
|
152
|
+
## PHASE 2: Verify Agent MCP Config
|
|
145
153
|
|
|
146
154
|
If the user chooses option 2:
|
|
147
155
|
|
|
156
|
+
Check the config for the agent they use:
|
|
157
|
+
|
|
158
|
+
- Claude Code: `~/.claude.json`
|
|
159
|
+
- GitHub Copilot: `~/.copilot/mcp-config.json`
|
|
160
|
+
- Codex: `~/.codex/config.toml`
|
|
161
|
+
- Gemini CLI: `~/.gemini/settings.json`
|
|
162
|
+
- Kilo Code: `~/.kilo/mcp_settings.json`
|
|
163
|
+
|
|
164
|
+
Confirm:
|
|
165
|
+
|
|
166
|
+
- skills are installed under the agent's user-level skill directory
|
|
167
|
+
- config includes `powerbi-modeling-mcp`
|
|
168
|
+
- config includes `microsoft-learn`
|
|
169
|
+
|
|
170
|
+
If anything is missing, recommend:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
super install --agent <agent-id> --yes
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Then restart or refresh the agent.
|
|
177
|
+
|
|
178
|
+
## PHASE 3: Verify Optional Local Claude Code Plugin Config
|
|
179
|
+
|
|
180
|
+
If the user chooses option 3, or explicitly says they use `super kickoff` / `claude --plugin-dir`:
|
|
181
|
+
|
|
148
182
|
Check these files in order:
|
|
149
183
|
|
|
150
184
|
1. `.claude-plugin/plugin.json`
|
|
151
185
|
2. `.mcp.json`
|
|
152
|
-
3. `.bi-superpowers.json`
|
|
186
|
+
3. `.bi-superpowers.json`
|
|
153
187
|
|
|
154
188
|
Confirm:
|
|
155
189
|
|
|
@@ -178,7 +212,8 @@ claude --plugin-dir .
|
|
|
178
212
|
| --- | --- |
|
|
179
213
|
| Modeling MCP missing on Windows | Install the Microsoft extension in VS Code or Cursor |
|
|
180
214
|
| Modeling MCP installed manually | Set `BI_SUPERPOWERS_POWERBI_MODELING_MCP_PATH` |
|
|
181
|
-
|
|
|
215
|
+
| Agent not loading MCPs | Re-run `super install --agent <agent-id> --yes` and restart the agent |
|
|
216
|
+
| Local Claude Code plugin not loading MCPs | Re-run `super mcp-setup` inside the plugin project and restart Claude Code |
|
|
182
217
|
| macOS/Linux local modeling request | Use `microsoft-learn` for docs; live editing requires Windows |
|
|
183
218
|
| User asks about Excel MCP | Explain Excel remains supported through skills and library content, not a default MCP |
|
|
184
219
|
|
|
@@ -190,7 +225,8 @@ claude --plugin-dir .
|
|
|
190
225
|
| --- | --- | --- |
|
|
191
226
|
| Recommend `uvx` for Modeling MCP | Not the official Microsoft installation path | Use the official executable via the local launcher |
|
|
192
227
|
| Ask the user to find a localhost port | Not required in the new flow | Use the official Modeling MCP launcher |
|
|
193
|
-
|
|
|
228
|
+
| Run `super kickoff` for Codex/GitHub Copilot/Gemini/Kilo setup | `kickoff` creates repo-local Claude Code plugin files | Use `super install --agent <agent-id> --yes` |
|
|
229
|
+
| Treat `.mcp.json` as the default install target | It is only for optional local Claude Code plugins | Use the agent's user-level MCP config |
|
|
194
230
|
| Invent unofficial MCPs (remote, fabric, etc.) | This plugin only ships 2 official MCPs | Only use the 2 official MCPs we ship (`powerbi-modeling-mcp` and `microsoft-learn`) |
|
|
195
231
|
|
|
196
232
|
---
|
|
@@ -293,7 +293,7 @@ Do NOT hand-author `report.json` theme metadata. The canonical PBIR shape (for r
|
|
|
293
293
|
- `resourcePackages` includes a `{name: "RegisteredResources", type: "RegisteredResources"}` package whose `items[]` has `{name: "<file>.json", path: "<file>.json", type: "CustomTheme"}`
|
|
294
294
|
- the theme file itself lives at `<reportPath>/StaticResources/RegisteredResources/<file>.json`
|
|
295
295
|
|
|
296
|
-
**Conditional formatting
|
|
296
|
+
**Conditional formatting note.** Layout notes may describe variance colors, diverging matrix gradients, or signed-color bars as design intent. The current `report-design` flow does not author those formatting rules. Render those visuals with theme/default colors unless you have a tested PBIR formatting implementation. Do not invent `pbi format` calls from this skill.
|
|
297
297
|
|
|
298
298
|
### 4.4 Validate (two layers)
|
|
299
299
|
|
|
@@ -25,25 +25,58 @@ const server = new McpServer({
|
|
|
25
25
|
version: '0.0.0-template',
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
function loadBundledSkills(directory) {
|
|
29
|
+
if (!fs.existsSync(directory)) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const skills = [];
|
|
34
|
+
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
35
|
+
const entryPath = path.join(directory, entry.name);
|
|
36
|
+
|
|
37
|
+
if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
38
|
+
skills.push({
|
|
39
|
+
name: path.basename(entry.name, '.md'),
|
|
40
|
+
bundleDir: directory,
|
|
41
|
+
content: fs.readFileSync(entryPath, 'utf8'),
|
|
42
|
+
});
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (entry.isDirectory()) {
|
|
47
|
+
const skillPath = path.join(entryPath, 'SKILL.md');
|
|
48
|
+
if (fs.existsSync(skillPath)) {
|
|
49
|
+
skills.push({
|
|
50
|
+
name: entry.name,
|
|
51
|
+
bundleDir: entryPath,
|
|
52
|
+
content: fs.readFileSync(skillPath, 'utf8'),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
59
|
+
}
|
|
32
60
|
|
|
33
61
|
// Register each skill as an MCP prompt that Claude Desktop can invoke.
|
|
34
|
-
for (const
|
|
35
|
-
const name =
|
|
36
|
-
const content = fs.readFileSync(path.join(skillsDir, file), 'utf8');
|
|
62
|
+
for (const skill of loadBundledSkills(skillsDir)) {
|
|
63
|
+
const { name, bundleDir, content } = skill;
|
|
37
64
|
|
|
38
65
|
// Use the first non-header line as a short description for the prompt.
|
|
39
66
|
const firstLine = content.split('\n').find((l) => l.trim() && !l.startsWith('#'));
|
|
40
67
|
const description = firstLine ? firstLine.slice(0, 120).trim() : `BI Superpowers: ${name}`;
|
|
68
|
+
const promptText = [
|
|
69
|
+
`Bundled skill directory: ${bundleDir}`,
|
|
70
|
+
'Resolve this skill\'s references/ and scripts/ paths relative to that directory.',
|
|
71
|
+
'',
|
|
72
|
+
content,
|
|
73
|
+
].join('\n');
|
|
41
74
|
|
|
42
75
|
server.prompt(name, { description }, () => ({
|
|
43
76
|
messages: [
|
|
44
77
|
{
|
|
45
78
|
role: 'user',
|
|
46
|
-
content: { type: 'text', text:
|
|
79
|
+
content: { type: 'text', text: promptText },
|
|
47
80
|
},
|
|
48
81
|
],
|
|
49
82
|
}));
|
|
@@ -73,7 +106,7 @@ into Claude Desktop, add the following to your \`claude_desktop_config.json\`
|
|
|
73
106
|
\`\`\`json
|
|
74
107
|
{
|
|
75
108
|
"mcpServers": {
|
|
76
|
-
"powerbi-modeling": {
|
|
109
|
+
"powerbi-modeling-mcp": {
|
|
77
110
|
"command": "node",
|
|
78
111
|
"args": ["<absolute path to powerbi-modeling-launcher.js>"]
|
|
79
112
|
},
|
|
@@ -85,7 +118,7 @@ into Claude Desktop, add the following to your \`claude_desktop_config.json\`
|
|
|
85
118
|
}
|
|
86
119
|
\`\`\`
|
|
87
120
|
|
|
88
|
-
The \`powerbi-modeling\` server requires Power BI Desktop on Windows
|
|
121
|
+
The \`powerbi-modeling-mcp\` server requires Power BI Desktop on Windows
|
|
89
122
|
with a model open. If you prefer automated setup, run
|
|
90
123
|
\`super install\` from the bi-superpowers CLI — it configures both
|
|
91
124
|
servers across all 5 supported AI agents.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luquimbo/bi-superpowers",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.4",
|
|
4
4
|
"description": "Open-source Power BI Desktop toolkit for Claude Code, GitHub Copilot, Codex, Gemini CLI, and Kilo Code. Ships 4 skills and 2 official Microsoft MCP servers.",
|
|
5
5
|
"main": "bin/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -24,10 +24,9 @@
|
|
|
24
24
|
"adm-zip": "^0.5.17",
|
|
25
25
|
"boxen": "^5.1.2",
|
|
26
26
|
"chalk": "^4.1.2",
|
|
27
|
-
"chokidar": "^
|
|
27
|
+
"chokidar": "^4.0.3",
|
|
28
28
|
"cli-table3": "^0.6.5",
|
|
29
|
-
"ora": "^5.4.1"
|
|
30
|
-
"update-notifier": "^5.1.0"
|
|
29
|
+
"ora": "^5.4.1"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
32
|
"@eslint/js": "^9.39.2",
|
package/skills/bi-start/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "bi-start"
|
|
3
3
|
description: "Use when the user asks about BI Start Skill, especially phrases like \"bi-start\", \"bi start\", \"/bi-start\", \"empezar\", \"comenzar\", \"arranco\"."
|
|
4
|
-
version: "4.1.
|
|
4
|
+
version: "4.1.4"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/bi-start.md instead. -->
|
|
@@ -57,7 +57,7 @@ Interpret the single-line output:
|
|
|
57
57
|
```bash
|
|
58
58
|
super upgrade
|
|
59
59
|
```
|
|
60
|
-
|
|
60
|
+
After it finishes, remind: _"Corré `super install --all --yes` para refrescar la instalación user-level de todos los agentes. Solo si además mantenés un plugin local de Claude Code generado con `super kickoff`, corré `super recharge` dentro de ese repo."_
|
|
61
61
|
|
|
62
62
|
On `no` — respect it, continue to PHASE 1 silently. The update-state.json already tracks the user's snooze per `update-check.js` semantics.
|
|
63
63
|
|
|
@@ -88,7 +88,7 @@ Do these detections in order:
|
|
|
88
88
|
```
|
|
89
89
|
(or equivalent). `$pbiDesktopRunning = true` if present.
|
|
90
90
|
|
|
91
|
-
4. **MCP configured**: look for
|
|
91
|
+
4. **MCP configured**: look first for `powerbi-modeling-mcp` in the agent's user-level config file (`~/.claude.json`, `~/.codex/config.toml`, etc). Only check project-root `.mcp.json` when the user explicitly says they use a local Claude Code plugin. Keep the check shallow — no need to deep-diff.
|
|
92
92
|
|
|
93
93
|
### Emit the context in 3-4 lines max
|
|
94
94
|
|
|
@@ -182,7 +182,7 @@ Stop. Don't hover. The user will tell you what they want next.
|
|
|
182
182
|
- **Project analysis or setup**: that's `/project-kickoff`. If the user says "analizar mi proyecto", "armar el modelo base", "arrancar uno nuevo desde cero", delegate.
|
|
183
183
|
- **MCP wiring details**: that's `/pbi-connect`. bi-start just offers to dispatch it; the actual configuration work is in that skill.
|
|
184
184
|
- **Report authoring**: that's `/report-design`. Same pattern.
|
|
185
|
-
- **Running the update**: bi-start offers + dispatches `super upgrade`; the actual refresh path after eso (`/plugin update bi-superpowers`, `super install --yes`, o `super recharge`) is owned by `/bin/cli.js`.
|
|
185
|
+
- **Running the update**: bi-start offers + dispatches `super upgrade`; the actual refresh path after eso (`/plugin update bi-superpowers`, `super install --all --yes`, o `super recharge` only for local Claude Code plugins) is owned by `/bin/cli.js`.
|
|
186
186
|
|
|
187
187
|
## Related Skills
|
|
188
188
|
|
|
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
|
|
|
47
47
|
// Rewritten at generation time when this helper is copied into
|
|
48
48
|
// `skills/<name>/scripts/update-check.js`. In the canonical source under
|
|
49
49
|
// `bin/commands/`, it stays null and we fall back to package.json.
|
|
50
|
-
const BUNDLED_INSTALLED_VERSION = "4.1.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.4";
|
|
51
51
|
|
|
52
52
|
// ---------------------------------------------------------------------------
|
|
53
53
|
// Argument parsing
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "pbi-connect"
|
|
3
3
|
description: "Use when the user asks about Power BI MCP Connection Skill, especially phrases like \"connect Power BI\", \"PBI connection\", \"MCP connection\", \"Power BI MCP\", \"modeling mcp\", \"Power BI Modeling MCP\"."
|
|
4
|
-
version: "4.1.
|
|
4
|
+
version: "4.1.4"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/pbi-connect.md instead. -->
|
|
@@ -38,10 +38,10 @@ Activate this skill when user mentions:
|
|
|
38
38
|
- "can't connect to Power BI", "connection error", "MCP not working"
|
|
39
39
|
|
|
40
40
|
## Identity
|
|
41
|
-
You are a **Power BI MCP Connection Specialist**. Your job is to help the user connect their AI agent to Power BI Desktop using the official Microsoft MCP servers shipped with bi-superpowers, with a
|
|
41
|
+
You are a **Power BI MCP Connection Specialist**. Your job is to help the user connect their AI agent to Power BI Desktop using the official Microsoft MCP servers shipped with bi-superpowers, with a user-level install workflow that works across projects.
|
|
42
42
|
|
|
43
43
|
## MANDATORY RULES
|
|
44
|
-
1. **
|
|
44
|
+
1. **USER-LEVEL FIRST.** Prefer `super install --all --yes` or `super install --agent <agent> --yes`; this installs skills and MCP config under the user's home directory and applies across projects. `.mcp.json` is only for an optional repo-local Claude Code plugin.
|
|
45
45
|
2. **OFFICIAL SERVERS ONLY.** Use `powerbi-modeling-mcp` (local) and `microsoft-learn` (HTTP). Do not invent or recommend unofficial MCPs.
|
|
46
46
|
3. **WINDOWS LIMITATION.** Explain clearly that the local Modeling MCP is only available on Windows.
|
|
47
47
|
4. **NO PORT INVENTION.** Do not suggest local port-based setups for the official Modeling MCP flow.
|
|
@@ -62,7 +62,8 @@ I'll help you connect your AI agent using the official Microsoft MCP servers.
|
|
|
62
62
|
What do you need?
|
|
63
63
|
|
|
64
64
|
1. Connect to Power BI Desktop on this machine (Windows)
|
|
65
|
-
2. Verify that my
|
|
65
|
+
2. Verify that my agent MCP config is installed correctly
|
|
66
|
+
3. Verify an optional local Claude Code plugin `.mcp.json`
|
|
66
67
|
```
|
|
67
68
|
|
|
68
69
|
---
|
|
@@ -85,11 +86,21 @@ Before we continue:
|
|
|
85
86
|
|
|
86
87
|
### If the user is on Windows and installed the extension
|
|
87
88
|
|
|
88
|
-
Guide them to:
|
|
89
|
+
Guide them to the user-level install:
|
|
89
90
|
|
|
90
|
-
1. Run `
|
|
91
|
-
2. Confirm
|
|
92
|
-
3. Restart or refresh
|
|
91
|
+
1. Run `super install --all --yes`, or for one agent run `super install --agent codex --yes` / `super install --agent claude-code --yes` / etc.
|
|
92
|
+
2. Confirm the agent config contains `powerbi-modeling-mcp` and `microsoft-learn`.
|
|
93
|
+
3. Restart or refresh the AI agent so it reloads skills and MCP servers.
|
|
94
|
+
|
|
95
|
+
Use these config locations:
|
|
96
|
+
|
|
97
|
+
| Agent | Skill path | MCP config |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| Claude Code | `~/.claude/skills` or `~/.agents/skills` | `~/.claude.json` |
|
|
100
|
+
| GitHub Copilot | `~/.copilot/skills` | `~/.copilot/mcp-config.json` |
|
|
101
|
+
| Codex | `~/.agents/skills` | `~/.codex/config.toml` |
|
|
102
|
+
| Gemini CLI | `~/.gemini/skills` | `~/.gemini/settings.json` |
|
|
103
|
+
| Kilo Code | `~/.kilo/skills` | `~/.kilo/mcp_settings.json` |
|
|
93
104
|
|
|
94
105
|
Use this explanation:
|
|
95
106
|
|
|
@@ -101,18 +112,13 @@ and starts it with `--start`.
|
|
|
101
112
|
|
|
102
113
|
If the user wants a config example, show:
|
|
103
114
|
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
"microsoft-learn": {
|
|
112
|
-
"type": "http",
|
|
113
|
-
"url": "https://learn.microsoft.com/api/mcp"
|
|
114
|
-
}
|
|
115
|
-
}
|
|
115
|
+
```toml
|
|
116
|
+
[mcp_servers.powerbi-modeling-mcp]
|
|
117
|
+
command = "node"
|
|
118
|
+
args = ["<package-dir>/bin/mcp/powerbi-modeling-launcher.js"]
|
|
119
|
+
|
|
120
|
+
[mcp_servers.microsoft-learn]
|
|
121
|
+
url = "https://learn.microsoft.com/api/mcp"
|
|
116
122
|
```
|
|
117
123
|
|
|
118
124
|
### If the user installed the executable manually
|
|
@@ -126,9 +132,11 @@ BI_SUPERPOWERS_POWERBI_MODELING_MCP_PATH
|
|
|
126
132
|
Then re-run:
|
|
127
133
|
|
|
128
134
|
```bash
|
|
129
|
-
super
|
|
135
|
+
super install --all --yes
|
|
130
136
|
```
|
|
131
137
|
|
|
138
|
+
If they are intentionally maintaining a repo-local Claude Code plugin, they can run `super mcp-setup` inside that plugin project instead.
|
|
139
|
+
|
|
132
140
|
### If the user is on macOS or Linux
|
|
133
141
|
|
|
134
142
|
Say:
|
|
@@ -143,15 +151,41 @@ For live editing of a local semantic model, you need a Windows environment.
|
|
|
143
151
|
|
|
144
152
|
---
|
|
145
153
|
|
|
146
|
-
## PHASE 2: Verify
|
|
154
|
+
## PHASE 2: Verify Agent MCP Config
|
|
147
155
|
|
|
148
156
|
If the user chooses option 2:
|
|
149
157
|
|
|
158
|
+
Check the config for the agent they use:
|
|
159
|
+
|
|
160
|
+
- Claude Code: `~/.claude.json`
|
|
161
|
+
- GitHub Copilot: `~/.copilot/mcp-config.json`
|
|
162
|
+
- Codex: `~/.codex/config.toml`
|
|
163
|
+
- Gemini CLI: `~/.gemini/settings.json`
|
|
164
|
+
- Kilo Code: `~/.kilo/mcp_settings.json`
|
|
165
|
+
|
|
166
|
+
Confirm:
|
|
167
|
+
|
|
168
|
+
- skills are installed under the agent's user-level skill directory
|
|
169
|
+
- config includes `powerbi-modeling-mcp`
|
|
170
|
+
- config includes `microsoft-learn`
|
|
171
|
+
|
|
172
|
+
If anything is missing, recommend:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
super install --agent <agent-id> --yes
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Then restart or refresh the agent.
|
|
179
|
+
|
|
180
|
+
## PHASE 3: Verify Optional Local Claude Code Plugin Config
|
|
181
|
+
|
|
182
|
+
If the user chooses option 3, or explicitly says they use `super kickoff` / `claude --plugin-dir`:
|
|
183
|
+
|
|
150
184
|
Check these files in order:
|
|
151
185
|
|
|
152
186
|
1. `.claude-plugin/plugin.json`
|
|
153
187
|
2. `.mcp.json`
|
|
154
|
-
3. `.bi-superpowers.json`
|
|
188
|
+
3. `.bi-superpowers.json`
|
|
155
189
|
|
|
156
190
|
Confirm:
|
|
157
191
|
|
|
@@ -180,7 +214,8 @@ claude --plugin-dir .
|
|
|
180
214
|
| --- | --- |
|
|
181
215
|
| Modeling MCP missing on Windows | Install the Microsoft extension in VS Code or Cursor |
|
|
182
216
|
| Modeling MCP installed manually | Set `BI_SUPERPOWERS_POWERBI_MODELING_MCP_PATH` |
|
|
183
|
-
|
|
|
217
|
+
| Agent not loading MCPs | Re-run `super install --agent <agent-id> --yes` and restart the agent |
|
|
218
|
+
| Local Claude Code plugin not loading MCPs | Re-run `super mcp-setup` inside the plugin project and restart Claude Code |
|
|
184
219
|
| macOS/Linux local modeling request | Use `microsoft-learn` for docs; live editing requires Windows |
|
|
185
220
|
| User asks about Excel MCP | Explain Excel remains supported through skills and library content, not a default MCP |
|
|
186
221
|
|
|
@@ -192,7 +227,8 @@ claude --plugin-dir .
|
|
|
192
227
|
| --- | --- | --- |
|
|
193
228
|
| Recommend `uvx` for Modeling MCP | Not the official Microsoft installation path | Use the official executable via the local launcher |
|
|
194
229
|
| Ask the user to find a localhost port | Not required in the new flow | Use the official Modeling MCP launcher |
|
|
195
|
-
|
|
|
230
|
+
| Run `super kickoff` for Codex/GitHub Copilot/Gemini/Kilo setup | `kickoff` creates repo-local Claude Code plugin files | Use `super install --agent <agent-id> --yes` |
|
|
231
|
+
| Treat `.mcp.json` as the default install target | It is only for optional local Claude Code plugins | Use the agent's user-level MCP config |
|
|
196
232
|
| Invent unofficial MCPs (remote, fabric, etc.) | This plugin only ships 2 official MCPs | Only use the 2 official MCPs we ship (`powerbi-modeling-mcp` and `microsoft-learn`) |
|
|
197
233
|
|
|
198
234
|
---
|
|
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
|
|
|
47
47
|
// Rewritten at generation time when this helper is copied into
|
|
48
48
|
// `skills/<name>/scripts/update-check.js`. In the canonical source under
|
|
49
49
|
// `bin/commands/`, it stays null and we fall back to package.json.
|
|
50
|
-
const BUNDLED_INSTALLED_VERSION = "4.1.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.4";
|
|
51
51
|
|
|
52
52
|
// ---------------------------------------------------------------------------
|
|
53
53
|
// Argument parsing
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "project-kickoff"
|
|
3
3
|
description: "Use when the user asks about Project Kickoff Skill, especially phrases like \"I'm starting a brand-new BI project from scratch\", \"analizar proyecto\", \"analyze project\", \"project kickoff\", \"nuevo proyecto\", \"new project\"."
|
|
4
|
-
version: "4.1.
|
|
4
|
+
version: "4.1.4"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/project-kickoff.md instead. -->
|
|
@@ -47,7 +47,7 @@ const HTTPS_TIMEOUT_MS = 5000;
|
|
|
47
47
|
// Rewritten at generation time when this helper is copied into
|
|
48
48
|
// `skills/<name>/scripts/update-check.js`. In the canonical source under
|
|
49
49
|
// `bin/commands/`, it stays null and we fall back to package.json.
|
|
50
|
-
const BUNDLED_INSTALLED_VERSION = "4.1.
|
|
50
|
+
const BUNDLED_INSTALLED_VERSION = "4.1.4";
|
|
51
51
|
|
|
52
52
|
// ---------------------------------------------------------------------------
|
|
53
53
|
// Argument parsing
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "report-design"
|
|
3
3
|
description: "Use when the user asks about Report Design Skill, especially phrases like \"crear reportes\", \"armar el reporte\", \"diseñar reporte\", \"report design\", \"create reports\", \"build dashboard\"."
|
|
4
|
-
version: "4.1.
|
|
4
|
+
version: "4.1.4"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<!-- Generated by BI Agent Superpowers. Edit src/content/skills/report-design.md instead. -->
|
|
@@ -295,7 +295,7 @@ Do NOT hand-author `report.json` theme metadata. The canonical PBIR shape (for r
|
|
|
295
295
|
- `resourcePackages` includes a `{name: "RegisteredResources", type: "RegisteredResources"}` package whose `items[]` has `{name: "<file>.json", path: "<file>.json", type: "CustomTheme"}`
|
|
296
296
|
- the theme file itself lives at `<reportPath>/StaticResources/RegisteredResources/<file>.json`
|
|
297
297
|
|
|
298
|
-
**Conditional formatting
|
|
298
|
+
**Conditional formatting note.** Layout notes may describe variance colors, diverging matrix gradients, or signed-color bars as design intent. The current `report-design` flow does not author those formatting rules. Render those visuals with theme/default colors unless you have a tested PBIR formatting implementation. Do not invent `pbi format` calls from this skill.
|
|
299
299
|
|
|
300
300
|
### 4.4 Validate (two layers)
|
|
301
301
|
|
|
@@ -28,7 +28,7 @@ Roles used below (to be resolved via the MCP):
|
|
|
28
28
|
| Scenario slicer | slicer (manual JSON — see `references/slicer.md`) | 848, 312, 336, 80 | `Scenario[Scenario]` |
|
|
29
29
|
|
|
30
30
|
**Design notes:**
|
|
31
|
-
- Variance KPI:
|
|
31
|
+
- Variance KPI: green/red conditional coloring is design intent only. Render as a plain card with theme/default colors unless a tested PBIR formatting implementation is available.
|
|
32
32
|
- Year slicer default: current year (single-select).
|
|
33
33
|
|
|
34
34
|
---
|
|
@@ -61,5 +61,5 @@ Roles used below (to be resolved via the MCP):
|
|
|
61
61
|
| Account × Month matrix | matrix | 16, 512, 1168, 144 | rows: `account-dim-column`, cols: `'Date'[Month]`, values: `variance-measure` with diverging gradient |
|
|
62
62
|
|
|
63
63
|
**Design notes:**
|
|
64
|
-
- Variance-sign coloring (diverging palette) is
|
|
64
|
+
- Variance-sign coloring (diverging palette) is design intent only. Render bars/matrix with theme/default colors unless a tested PBIR formatting implementation is available.
|
|
65
65
|
- The bottom matrix is short (144px) so it acts as a "heatmap strip" rather than a scrollable table.
|
|
@@ -311,7 +311,7 @@ Si PBI Desktop introduce un visualType nuevo (o encontrás uno nativo que falta
|
|
|
311
311
|
|
|
312
312
|
## Features de `visual.json` que `create-visual.js` NO soporta todavía
|
|
313
313
|
|
|
314
|
-
Descubiertos al regenerar la smoke-test "Galería de Visuales" end-to-end con el script
|
|
314
|
+
Descubiertos al regenerar la smoke-test "Galería de Visuales" end-to-end con el script. No bloquean el authoring — la shape que emite el script pasa `pbi report validate` y `validate-pbir.js` — pero sí dejan regresiones visuales si el `visual.json` hand-written aprovechaba alguno de estos features:
|
|
315
315
|
|
|
316
316
|
1. **`query.sortDefinition`** — sort explícito por medida/columna con dirección. `create-visual.js` no lo emite, así que un visual "ranking" tipo barChart ordenado descendente por una medida pierde el orden en la regeneración. **Workaround**: ordenar en Desktop manualmente después del `.pbip` abrir, o hand-extender el `visual.json` con `sortDefinition` post-creación. **Fix futuro**: `--sort-by "Role:Field" --sort-dir descending` en `create-visual.js`.
|
|
317
317
|
|
|
@@ -319,7 +319,7 @@ Descubiertos al regenerar la smoke-test "Galería de Visuales" end-to-end con el
|
|
|
319
319
|
|
|
320
320
|
3. **`queryState.<Role>.projections[].active`** — las columnas siempre salen con `active: true`, las medidas nunca. Si un visual hand-written tenía `active: true` en una medida (para indicar que la medida es la "default Y") o `active: false` en una columna (hidden projection), el script normaliza. Rara vez significativo para el render pero cambia el shape JSON.
|
|
321
321
|
|
|
322
|
-
4. **Formato condicional**: colores signados (positivo verde / negativo rojo), gradientes en matriz, data bars en tabla. Ninguno de estos expresa shape via `create-visual.js
|
|
322
|
+
4. **Formato condicional**: colores signados (positivo verde / negativo rojo), gradientes en matriz, data bars en tabla. Ninguno de estos expresa shape via `create-visual.js`; tratarlos como diseño previsto hasta que exista una implementación PBIR testeada.
|
|
323
323
|
|
|
324
324
|
Cualquier cambio en el script que cubra estos gaps debe: (a) agregar el flag a `parseArgs`, (b) cubrirlo con tests en `create-visual.test.js`, (c) documentarlo en este archivo, (d) regenerar la Galería para que ejercite el feature.
|
|
325
325
|
|
|
@@ -86,4 +86,4 @@ cat > "<reportPath>/definition/pages/<pageName>/visuals/<visualName>/visual.json
|
|
|
86
86
|
EOF
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
Prefer `scripts/create-visual.js --type slicer` for new slicers. Keep the heredoc pattern above only as a fallback when the helper script is unavailable.
|
|
@@ -98,4 +98,4 @@ cat > "<reportPath>/definition/pages/<pageName>/visuals/<visualName>/visual.json
|
|
|
98
98
|
EOF
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
Prefer `scripts/create-visual.js --type textbox` for new textboxes. Keep the heredoc pattern above only as a fallback when the helper script is unavailable.
|