The framing of the semantic model as the thing the AI should reason about is the right starting point. One suggestion for Part 2: split the tool surface into read-only (list tables, list measures, return metadata) and write paths, and ship the read-only half first. In practice the read-only tools are safe to hand to an agent immediately, while DAX-writing tools need a human-review gate, and mixing the two in one server is what makes teams turn the whole thing off. Also curious whether Part 1 ran against an existing community Power BI MCP server or something you wrote yourself. The "some examples are conceptual" note suggests the latter, and that difference matters to anyone trying to reproduce this.
The framing of the semantic model as the thing the AI should reason about is the right starting point. One suggestion for Part 2: split the tool surface into read-only (list tables, list measures, return metadata) and write paths, and ship the read-only half first. In practice the read-only tools are safe to hand to an agent immediately, while DAX-writing tools need a human-review gate, and mixing the two in one server is what makes teams turn the whole thing off. Also curious whether Part 1 ran against an existing community Power BI MCP server or something you wrote yourself. The "some examples are conceptual" note suggests the latter, and that difference matters to anyone trying to reproduce this.