@einlogic/mcp-fabric-api 1.0.0

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.
Files changed (107) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +241 -0
  3. package/build/auth/oauth-handler.d.ts +14 -0
  4. package/build/auth/oauth-handler.d.ts.map +1 -0
  5. package/build/auth/oauth-handler.js +32 -0
  6. package/build/auth/oauth-handler.js.map +1 -0
  7. package/build/auth/token-manager.d.ts +15 -0
  8. package/build/auth/token-manager.d.ts.map +1 -0
  9. package/build/auth/token-manager.js +61 -0
  10. package/build/auth/token-manager.js.map +1 -0
  11. package/build/client/fabric-client.d.ts +24 -0
  12. package/build/client/fabric-client.d.ts.map +1 -0
  13. package/build/client/fabric-client.js +91 -0
  14. package/build/client/fabric-client.js.map +1 -0
  15. package/build/client/powerbi-client.d.ts +15 -0
  16. package/build/client/powerbi-client.d.ts.map +1 -0
  17. package/build/client/powerbi-client.js +62 -0
  18. package/build/client/powerbi-client.js.map +1 -0
  19. package/build/core/errors.d.ts +14 -0
  20. package/build/core/errors.d.ts.map +1 -0
  21. package/build/core/errors.js +33 -0
  22. package/build/core/errors.js.map +1 -0
  23. package/build/core/job-scheduler.d.ts +7 -0
  24. package/build/core/job-scheduler.d.ts.map +1 -0
  25. package/build/core/job-scheduler.js +20 -0
  26. package/build/core/job-scheduler.js.map +1 -0
  27. package/build/core/lro.d.ts +9 -0
  28. package/build/core/lro.d.ts.map +1 -0
  29. package/build/core/lro.js +35 -0
  30. package/build/core/lro.js.map +1 -0
  31. package/build/core/pagination.d.ts +3 -0
  32. package/build/core/pagination.d.ts.map +1 -0
  33. package/build/core/pagination.js +27 -0
  34. package/build/core/pagination.js.map +1 -0
  35. package/build/core/types.d.ts +86 -0
  36. package/build/core/types.d.ts.map +1 -0
  37. package/build/core/types.js +2 -0
  38. package/build/core/types.js.map +1 -0
  39. package/build/index.d.ts +3 -0
  40. package/build/index.d.ts.map +1 -0
  41. package/build/index.js +85 -0
  42. package/build/index.js.map +1 -0
  43. package/build/server.d.ts +7 -0
  44. package/build/server.d.ts.map +1 -0
  45. package/build/server.js +42 -0
  46. package/build/server.js.map +1 -0
  47. package/build/tools/auth.d.ts +4 -0
  48. package/build/tools/auth.d.ts.map +1 -0
  49. package/build/tools/auth.js +119 -0
  50. package/build/tools/auth.js.map +1 -0
  51. package/build/tools/dataflow.d.ts +4 -0
  52. package/build/tools/dataflow.d.ts.map +1 -0
  53. package/build/tools/dataflow.js +100 -0
  54. package/build/tools/dataflow.js.map +1 -0
  55. package/build/tools/eventhouse.d.ts +4 -0
  56. package/build/tools/eventhouse.d.ts.map +1 -0
  57. package/build/tools/eventhouse.js +80 -0
  58. package/build/tools/eventhouse.js.map +1 -0
  59. package/build/tools/eventstream.d.ts +4 -0
  60. package/build/tools/eventstream.d.ts.map +1 -0
  61. package/build/tools/eventstream.js +135 -0
  62. package/build/tools/eventstream.js.map +1 -0
  63. package/build/tools/graphql-api.d.ts +5 -0
  64. package/build/tools/graphql-api.d.ts.map +1 -0
  65. package/build/tools/graphql-api.js +124 -0
  66. package/build/tools/graphql-api.js.map +1 -0
  67. package/build/tools/lakehouse.d.ts +4 -0
  68. package/build/tools/lakehouse.d.ts.map +1 -0
  69. package/build/tools/lakehouse.js +138 -0
  70. package/build/tools/lakehouse.js.map +1 -0
  71. package/build/tools/notebook.d.ts +4 -0
  72. package/build/tools/notebook.d.ts.map +1 -0
  73. package/build/tools/notebook.js +186 -0
  74. package/build/tools/notebook.js.map +1 -0
  75. package/build/tools/pipeline.d.ts +4 -0
  76. package/build/tools/pipeline.d.ts.map +1 -0
  77. package/build/tools/pipeline.js +214 -0
  78. package/build/tools/pipeline.js.map +1 -0
  79. package/build/tools/reflex.d.ts +4 -0
  80. package/build/tools/reflex.d.ts.map +1 -0
  81. package/build/tools/reflex.js +101 -0
  82. package/build/tools/reflex.js.map +1 -0
  83. package/build/tools/report.d.ts +5 -0
  84. package/build/tools/report.d.ts.map +1 -0
  85. package/build/tools/report.js +191 -0
  86. package/build/tools/report.js.map +1 -0
  87. package/build/tools/semantic-model.d.ts +5 -0
  88. package/build/tools/semantic-model.d.ts.map +1 -0
  89. package/build/tools/semantic-model.js +225 -0
  90. package/build/tools/semantic-model.js.map +1 -0
  91. package/build/tools/sql-endpoint.d.ts +4 -0
  92. package/build/tools/sql-endpoint.d.ts.map +1 -0
  93. package/build/tools/sql-endpoint.js +44 -0
  94. package/build/tools/sql-endpoint.js.map +1 -0
  95. package/build/tools/workspace.d.ts +4 -0
  96. package/build/tools/workspace.d.ts.map +1 -0
  97. package/build/tools/workspace.js +84 -0
  98. package/build/tools/workspace.js.map +1 -0
  99. package/build/utils/base64.d.ts +3 -0
  100. package/build/utils/base64.d.ts.map +1 -0
  101. package/build/utils/base64.js +7 -0
  102. package/build/utils/base64.js.map +1 -0
  103. package/build/utils/tmdl.d.ts +13 -0
  104. package/build/utils/tmdl.d.ts.map +1 -0
  105. package/build/utils/tmdl.js +21 -0
  106. package/build/utils/tmdl.js.map +1 -0
  107. package/package.json +35 -0
@@ -0,0 +1,101 @@
1
+ import { z } from "zod";
2
+ import { formatToolError } from "../core/errors.js";
3
+ import { paginateAll } from "../core/pagination.js";
4
+ import { pollOperation, getOperationResult } from "../core/lro.js";
5
+ import { decodeBase64 } from "../utils/base64.js";
6
+ export function registerReflexTools(server, fabricClient) {
7
+ server.tool("reflex_list", "List all Reflex (Activator) items in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
8
+ try {
9
+ const items = await paginateAll(fabricClient, `/workspaces/${workspaceId}/items?type=Reflex`);
10
+ return { content: [{ type: "text", text: JSON.stringify(items, null, 2) }] };
11
+ }
12
+ catch (error) {
13
+ return formatToolError(error);
14
+ }
15
+ });
16
+ server.tool("reflex_get", "Get details of a specific Reflex (Activator) item", {
17
+ workspaceId: z.string().describe("The workspace ID"),
18
+ reflexId: z.string().describe("The reflex/activator ID"),
19
+ }, async ({ workspaceId, reflexId }) => {
20
+ try {
21
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/items/${reflexId}`);
22
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
23
+ }
24
+ catch (error) {
25
+ return formatToolError(error);
26
+ }
27
+ });
28
+ server.tool("reflex_create", "Create a new Reflex (Activator) item in a workspace", {
29
+ workspaceId: z.string().describe("The workspace ID"),
30
+ displayName: z.string().describe("Display name for the reflex"),
31
+ description: z.string().optional().describe("Description of the reflex"),
32
+ }, async ({ workspaceId, displayName, description }) => {
33
+ try {
34
+ const body = { displayName, type: "Reflex" };
35
+ if (description)
36
+ body.description = description;
37
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/items`, body);
38
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
39
+ }
40
+ catch (error) {
41
+ return formatToolError(error);
42
+ }
43
+ });
44
+ server.tool("reflex_update", "Update a Reflex (Activator) item's name or description", {
45
+ workspaceId: z.string().describe("The workspace ID"),
46
+ reflexId: z.string().describe("The reflex/activator ID"),
47
+ displayName: z.string().optional().describe("New display name"),
48
+ description: z.string().optional().describe("New description"),
49
+ }, async ({ workspaceId, reflexId, displayName, description }) => {
50
+ try {
51
+ const body = {};
52
+ if (displayName !== undefined)
53
+ body.displayName = displayName;
54
+ if (description !== undefined)
55
+ body.description = description;
56
+ const response = await fabricClient.patch(`/workspaces/${workspaceId}/items/${reflexId}`, body);
57
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
58
+ }
59
+ catch (error) {
60
+ return formatToolError(error);
61
+ }
62
+ });
63
+ server.tool("reflex_delete", "Delete a Reflex (Activator) item", {
64
+ workspaceId: z.string().describe("The workspace ID"),
65
+ reflexId: z.string().describe("The reflex/activator ID"),
66
+ }, async ({ workspaceId, reflexId }) => {
67
+ try {
68
+ await fabricClient.delete(`/workspaces/${workspaceId}/items/${reflexId}`);
69
+ return { content: [{ type: "text", text: `Reflex ${reflexId} deleted successfully` }] };
70
+ }
71
+ catch (error) {
72
+ return formatToolError(error);
73
+ }
74
+ });
75
+ server.tool("reflex_get_definition", "Get the definition of a Reflex (Activator) item (long-running, returns decoded content)", {
76
+ workspaceId: z.string().describe("The workspace ID"),
77
+ reflexId: z.string().describe("The reflex/activator ID"),
78
+ }, async ({ workspaceId, reflexId }) => {
79
+ try {
80
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/items/${reflexId}/getDefinition`);
81
+ if (response.lro) {
82
+ await pollOperation(fabricClient, response.lro.operationId);
83
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
84
+ if (result?.definition) {
85
+ const definition = result.definition;
86
+ const decoded = definition.parts.map((part) => ({
87
+ path: part.path,
88
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
89
+ payloadType: part.payloadType,
90
+ }));
91
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
92
+ }
93
+ }
94
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
95
+ }
96
+ catch (error) {
97
+ return formatToolError(error);
98
+ }
99
+ });
100
+ }
101
+ //# sourceMappingURL=reflex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflex.js","sourceRoot":"","sources":["../../src/tools/reflex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { FabricClient } from "../client/fabric-client.js";
3
+ import { PowerBIClient } from "../client/powerbi-client.js";
4
+ export declare function registerReportTools(server: McpServer, fabricClient: FabricClient, powerBIClient: PowerBIClient): void;
5
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/tools/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,QAiP9G"}
@@ -0,0 +1,191 @@
1
+ import { z } from "zod";
2
+ import { formatToolError } from "../core/errors.js";
3
+ import { paginateAll } from "../core/pagination.js";
4
+ import { pollOperation, getOperationResult } from "../core/lro.js";
5
+ import { encodeBase64, decodeBase64 } from "../utils/base64.js";
6
+ export function registerReportTools(server, fabricClient, powerBIClient) {
7
+ server.tool("report_list", "List all reports in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
8
+ try {
9
+ const reports = await paginateAll(fabricClient, `/workspaces/${workspaceId}/reports`);
10
+ return { content: [{ type: "text", text: JSON.stringify(reports, null, 2) }] };
11
+ }
12
+ catch (error) {
13
+ return formatToolError(error);
14
+ }
15
+ });
16
+ server.tool("report_get", "Get details of a specific report", {
17
+ workspaceId: z.string().describe("The workspace ID"),
18
+ reportId: z.string().describe("The report ID"),
19
+ }, async ({ workspaceId, reportId }) => {
20
+ try {
21
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/reports/${reportId}`);
22
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
23
+ }
24
+ catch (error) {
25
+ return formatToolError(error);
26
+ }
27
+ });
28
+ server.tool("report_create", "Create a new report in a workspace (long-running operation)", {
29
+ workspaceId: z.string().describe("The workspace ID"),
30
+ displayName: z.string().describe("Display name for the report"),
31
+ description: z.string().optional().describe("Description of the report"),
32
+ }, async ({ workspaceId, displayName, description }) => {
33
+ try {
34
+ const body = { displayName };
35
+ if (description)
36
+ body.description = description;
37
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/reports`, body);
38
+ if (response.lro) {
39
+ const state = await pollOperation(fabricClient, response.lro.operationId);
40
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
41
+ return { content: [{ type: "text", text: JSON.stringify({ operation: state, item: result ?? response.data }, null, 2) }] };
42
+ }
43
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
44
+ }
45
+ catch (error) {
46
+ return formatToolError(error);
47
+ }
48
+ });
49
+ server.tool("report_update", "Update a report's name or description", {
50
+ workspaceId: z.string().describe("The workspace ID"),
51
+ reportId: z.string().describe("The report ID"),
52
+ displayName: z.string().optional().describe("New display name"),
53
+ description: z.string().optional().describe("New description"),
54
+ }, async ({ workspaceId, reportId, displayName, description }) => {
55
+ try {
56
+ const body = {};
57
+ if (displayName !== undefined)
58
+ body.displayName = displayName;
59
+ if (description !== undefined)
60
+ body.description = description;
61
+ const response = await fabricClient.patch(`/workspaces/${workspaceId}/reports/${reportId}`, body);
62
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
63
+ }
64
+ catch (error) {
65
+ return formatToolError(error);
66
+ }
67
+ });
68
+ server.tool("report_delete", "Delete a report", {
69
+ workspaceId: z.string().describe("The workspace ID"),
70
+ reportId: z.string().describe("The report ID"),
71
+ }, async ({ workspaceId, reportId }) => {
72
+ try {
73
+ await fabricClient.delete(`/workspaces/${workspaceId}/reports/${reportId}`);
74
+ return { content: [{ type: "text", text: `Report ${reportId} deleted successfully` }] };
75
+ }
76
+ catch (error) {
77
+ return formatToolError(error);
78
+ }
79
+ });
80
+ server.tool("report_clone", "Clone a report via the Power BI API", {
81
+ workspaceId: z.string().describe("The source workspace ID"),
82
+ reportId: z.string().describe("The report ID to clone"),
83
+ name: z.string().describe("Name for the cloned report"),
84
+ targetWorkspaceId: z.string().optional().describe("Target workspace ID (default: same workspace)"),
85
+ targetModelId: z.string().optional().describe("Target semantic model/dataset ID"),
86
+ }, async ({ workspaceId, reportId, name, targetWorkspaceId, targetModelId }) => {
87
+ try {
88
+ const body = { name };
89
+ if (targetWorkspaceId)
90
+ body.targetWorkspaceId = targetWorkspaceId;
91
+ if (targetModelId)
92
+ body.targetModelId = targetModelId;
93
+ const response = await powerBIClient.post(`/groups/${workspaceId}/reports/${reportId}/Clone`, body);
94
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
95
+ }
96
+ catch (error) {
97
+ return formatToolError(error);
98
+ }
99
+ });
100
+ server.tool("report_export", "Export a report to a file format (PDF, PPTX, PNG, etc.) via the Power BI API. Returns an export ID to check status.", {
101
+ workspaceId: z.string().describe("The workspace ID"),
102
+ reportId: z.string().describe("The report ID to export"),
103
+ format: z.enum(["PDF", "PPTX", "PNG", "XLSX", "DOCX", "CSV", "XML", "MHTML", "IMAGE", "ACCESSIBLEPDF"]).describe("Export format"),
104
+ }, async ({ workspaceId, reportId, format }) => {
105
+ try {
106
+ const response = await powerBIClient.post(`/groups/${workspaceId}/reports/${reportId}/ExportTo`, { format });
107
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
108
+ }
109
+ catch (error) {
110
+ return formatToolError(error);
111
+ }
112
+ });
113
+ server.tool("report_get_export_status", "Get the status of a report export operation via the Power BI API", {
114
+ workspaceId: z.string().describe("The workspace ID"),
115
+ reportId: z.string().describe("The report ID"),
116
+ exportId: z.string().describe("The export ID from report_export"),
117
+ }, async ({ workspaceId, reportId, exportId }) => {
118
+ try {
119
+ const response = await powerBIClient.get(`/groups/${workspaceId}/reports/${reportId}/exports/${exportId}`);
120
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
121
+ }
122
+ catch (error) {
123
+ return formatToolError(error);
124
+ }
125
+ });
126
+ server.tool("report_get_definition", "Get the full definition of a report (PBIR or PBIR-Legacy format, depending on how the report is stored). Returns all decoded definition parts including report.json, pages, visuals, etc.", {
127
+ workspaceId: z.string().describe("The workspace ID"),
128
+ reportId: z.string().describe("The report ID"),
129
+ }, async ({ workspaceId, reportId }) => {
130
+ try {
131
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/reports/${reportId}/getDefinition`);
132
+ if (response.lro) {
133
+ await pollOperation(fabricClient, response.lro.operationId);
134
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
135
+ if (result?.definition) {
136
+ const definition = result.definition;
137
+ const decoded = definition.parts.map((part) => ({
138
+ path: part.path,
139
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
140
+ payloadType: part.payloadType,
141
+ }));
142
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
143
+ }
144
+ }
145
+ const data = response.data;
146
+ if (data?.definition) {
147
+ const definition = data.definition;
148
+ const decoded = definition.parts.map((part) => ({
149
+ path: part.path,
150
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
151
+ payloadType: part.payloadType,
152
+ }));
153
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
154
+ }
155
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
156
+ }
157
+ catch (error) {
158
+ return formatToolError(error);
159
+ }
160
+ });
161
+ server.tool("report_update_definition", "Update a report's full definition (PBIR or PBIR-Legacy). Accepts an array of definition parts with path and content. Each part is base64-encoded and sent to the API.", {
162
+ workspaceId: z.string().describe("The workspace ID"),
163
+ reportId: z.string().describe("The report ID"),
164
+ parts: z.array(z.object({
165
+ path: z.string().describe("The definition part path (e.g., 'definition/report.json', 'definition/pages/pages.json', 'definition.pbir')"),
166
+ content: z.string().describe("The file content as a string"),
167
+ })).describe("Array of definition parts to upload"),
168
+ }, async ({ workspaceId, reportId, parts }) => {
169
+ try {
170
+ const body = {
171
+ definition: {
172
+ parts: parts.map((part) => ({
173
+ path: part.path,
174
+ payload: encodeBase64(part.content),
175
+ payloadType: "InlineBase64",
176
+ })),
177
+ },
178
+ };
179
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/reports/${reportId}/updateDefinition`, body);
180
+ if (response.lro) {
181
+ const state = await pollOperation(fabricClient, response.lro.operationId);
182
+ return { content: [{ type: "text", text: JSON.stringify(state, null, 2) }] };
183
+ }
184
+ return { content: [{ type: "text", text: "Report definition updated successfully" }] };
185
+ }
186
+ catch (error) {
187
+ return formatToolError(error);
188
+ }
189
+ });
190
+ }
191
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/tools/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { FabricClient } from "../client/fabric-client.js";
3
+ import { PowerBIClient } from "../client/powerbi-client.js";
4
+ export declare function registerSemanticModelTools(server: McpServer, fabricClient: FabricClient, powerBIClient: PowerBIClient): void;
5
+ //# sourceMappingURL=semantic-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-model.d.ts","sourceRoot":"","sources":["../../src/tools/semantic-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,QA4RrH"}
@@ -0,0 +1,225 @@
1
+ import { z } from "zod";
2
+ import { formatToolError } from "../core/errors.js";
3
+ import { paginateAll } from "../core/pagination.js";
4
+ import { pollOperation, getOperationResult } from "../core/lro.js";
5
+ import { encodeBase64, decodeBase64 } from "../utils/base64.js";
6
+ import { decodeTmdlParts, encodeTmdlParts, formatTmdlOutput } from "../utils/tmdl.js";
7
+ export function registerSemanticModelTools(server, fabricClient, powerBIClient) {
8
+ server.tool("semantic_model_list", "List all semantic models in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
9
+ try {
10
+ const models = await paginateAll(fabricClient, `/workspaces/${workspaceId}/semanticModels`);
11
+ return { content: [{ type: "text", text: JSON.stringify(models, null, 2) }] };
12
+ }
13
+ catch (error) {
14
+ return formatToolError(error);
15
+ }
16
+ });
17
+ server.tool("semantic_model_get", "Get details of a specific semantic model", {
18
+ workspaceId: z.string().describe("The workspace ID"),
19
+ semanticModelId: z.string().describe("The semantic model ID"),
20
+ }, async ({ workspaceId, semanticModelId }) => {
21
+ try {
22
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}`);
23
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
24
+ }
25
+ catch (error) {
26
+ return formatToolError(error);
27
+ }
28
+ });
29
+ server.tool("semantic_model_create", "Create a new semantic model in a workspace (long-running operation)", {
30
+ workspaceId: z.string().describe("The workspace ID"),
31
+ displayName: z.string().describe("Display name for the semantic model"),
32
+ description: z.string().optional().describe("Description of the semantic model"),
33
+ }, async ({ workspaceId, displayName, description }) => {
34
+ try {
35
+ const body = { displayName };
36
+ if (description)
37
+ body.description = description;
38
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/semanticModels`, body);
39
+ if (response.lro) {
40
+ const state = await pollOperation(fabricClient, response.lro.operationId);
41
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
42
+ return { content: [{ type: "text", text: JSON.stringify({ operation: state, item: result ?? response.data }, null, 2) }] };
43
+ }
44
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
45
+ }
46
+ catch (error) {
47
+ return formatToolError(error);
48
+ }
49
+ });
50
+ server.tool("semantic_model_update", "Update a semantic model's name or description", {
51
+ workspaceId: z.string().describe("The workspace ID"),
52
+ semanticModelId: z.string().describe("The semantic model ID"),
53
+ displayName: z.string().optional().describe("New display name"),
54
+ description: z.string().optional().describe("New description"),
55
+ }, async ({ workspaceId, semanticModelId, displayName, description }) => {
56
+ try {
57
+ const body = {};
58
+ if (displayName !== undefined)
59
+ body.displayName = displayName;
60
+ if (description !== undefined)
61
+ body.description = description;
62
+ const response = await fabricClient.patch(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}`, body);
63
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
64
+ }
65
+ catch (error) {
66
+ return formatToolError(error);
67
+ }
68
+ });
69
+ server.tool("semantic_model_delete", "Delete a semantic model", {
70
+ workspaceId: z.string().describe("The workspace ID"),
71
+ semanticModelId: z.string().describe("The semantic model ID"),
72
+ }, async ({ workspaceId, semanticModelId }) => {
73
+ try {
74
+ await fabricClient.delete(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}`);
75
+ return { content: [{ type: "text", text: `Semantic model ${semanticModelId} deleted successfully` }] };
76
+ }
77
+ catch (error) {
78
+ return formatToolError(error);
79
+ }
80
+ });
81
+ server.tool("semantic_model_refresh", "Trigger a refresh of a semantic model via the Power BI API", {
82
+ workspaceId: z.string().describe("The workspace ID (Power BI group ID)"),
83
+ semanticModelId: z.string().describe("The semantic model/dataset ID"),
84
+ }, async ({ workspaceId, semanticModelId }) => {
85
+ try {
86
+ const response = await powerBIClient.post(`/groups/${workspaceId}/datasets/${semanticModelId}/refreshes`, { notifyOption: "NoNotification" });
87
+ return { content: [{ type: "text", text: JSON.stringify({ message: "Refresh triggered successfully", status: response.status }, null, 2) }] };
88
+ }
89
+ catch (error) {
90
+ return formatToolError(error);
91
+ }
92
+ });
93
+ server.tool("semantic_model_execute_dax", "Execute a DAX query against a semantic model via the Power BI API", {
94
+ workspaceId: z.string().describe("The workspace ID (Power BI group ID)"),
95
+ semanticModelId: z.string().describe("The semantic model/dataset ID"),
96
+ query: z.string().describe("The DAX query to execute (e.g., 'EVALUATE Sales')"),
97
+ }, async ({ workspaceId, semanticModelId, query }) => {
98
+ try {
99
+ const response = await powerBIClient.post(`/groups/${workspaceId}/datasets/${semanticModelId}/executeQueries`, {
100
+ queries: [{ query }],
101
+ serializerSettings: { includeNulls: true },
102
+ });
103
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
104
+ }
105
+ catch (error) {
106
+ return formatToolError(error);
107
+ }
108
+ });
109
+ server.tool("semantic_model_get_definition", "Get the full definition of a semantic model in TMSL/BIM JSON format (long-running, returns decoded model.bim)", {
110
+ workspaceId: z.string().describe("The workspace ID"),
111
+ semanticModelId: z.string().describe("The semantic model ID"),
112
+ }, async ({ workspaceId, semanticModelId }) => {
113
+ try {
114
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}/getDefinition`);
115
+ if (response.lro) {
116
+ await pollOperation(fabricClient, response.lro.operationId);
117
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
118
+ if (result?.definition) {
119
+ const definition = result.definition;
120
+ const decoded = definition.parts.map((part) => ({
121
+ path: part.path,
122
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
123
+ payloadType: part.payloadType,
124
+ }));
125
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
126
+ }
127
+ }
128
+ const data = response.data;
129
+ if (data?.definition) {
130
+ const definition = data.definition;
131
+ const decoded = definition.parts.map((part) => ({
132
+ path: part.path,
133
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
134
+ payloadType: part.payloadType,
135
+ }));
136
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
137
+ }
138
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
139
+ }
140
+ catch (error) {
141
+ return formatToolError(error);
142
+ }
143
+ });
144
+ server.tool("semantic_model_get_tmdl", "Get the definition of a semantic model in TMDL format (human-readable, LLM-friendly). Returns all TMDL files (model.tmdl, tables/*.tmdl, etc.) as decoded text.", {
145
+ workspaceId: z.string().describe("The workspace ID"),
146
+ semanticModelId: z.string().describe("The semantic model ID"),
147
+ }, async ({ workspaceId, semanticModelId }) => {
148
+ try {
149
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}/getDefinition?format=TMDL`);
150
+ if (response.lro) {
151
+ await pollOperation(fabricClient, response.lro.operationId);
152
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
153
+ if (result?.definition) {
154
+ const definition = result.definition;
155
+ const files = decodeTmdlParts(definition.parts);
156
+ return { content: [{ type: "text", text: formatTmdlOutput(files) }] };
157
+ }
158
+ }
159
+ const data = response.data;
160
+ if (data?.definition) {
161
+ const definition = data.definition;
162
+ const files = decodeTmdlParts(definition.parts);
163
+ return { content: [{ type: "text", text: formatTmdlOutput(files) }] };
164
+ }
165
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
166
+ }
167
+ catch (error) {
168
+ return formatToolError(error);
169
+ }
170
+ });
171
+ server.tool("semantic_model_update_definition", "Update a semantic model's full definition from TMSL/BIM JSON (long-running). Accepts the raw model.bim JSON string.", {
172
+ workspaceId: z.string().describe("The workspace ID"),
173
+ semanticModelId: z.string().describe("The semantic model ID"),
174
+ definition: z.string().describe("The full model.bim JSON content as a string"),
175
+ }, async ({ workspaceId, semanticModelId, definition }) => {
176
+ try {
177
+ const body = {
178
+ definition: {
179
+ parts: [
180
+ {
181
+ path: "definition/model.bim",
182
+ payload: encodeBase64(definition),
183
+ payloadType: "InlineBase64",
184
+ },
185
+ ],
186
+ },
187
+ };
188
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}/updateDefinition`, body);
189
+ if (response.lro) {
190
+ const state = await pollOperation(fabricClient, response.lro.operationId);
191
+ return { content: [{ type: "text", text: JSON.stringify(state, null, 2) }] };
192
+ }
193
+ return { content: [{ type: "text", text: "Semantic model definition updated successfully" }] };
194
+ }
195
+ catch (error) {
196
+ return formatToolError(error);
197
+ }
198
+ });
199
+ server.tool("semantic_model_update_tmdl", "Update a semantic model's definition from TMDL files (long-running). Accepts an array of TMDL files with path and content. This is the primary tool for LLMs to create/modify semantic models.", {
200
+ workspaceId: z.string().describe("The workspace ID"),
201
+ semanticModelId: z.string().describe("The semantic model ID"),
202
+ files: z.array(z.object({
203
+ path: z.string().describe("The TMDL file path (e.g., 'model.tmdl', 'definition/tables/Sales.tmdl')"),
204
+ content: z.string().describe("The TMDL file content"),
205
+ })).describe("Array of TMDL files to upload"),
206
+ }, async ({ workspaceId, semanticModelId, files }) => {
207
+ try {
208
+ const body = {
209
+ definition: {
210
+ parts: encodeTmdlParts(files),
211
+ },
212
+ };
213
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/semanticModels/${semanticModelId}/updateDefinition?format=TMDL`, body);
214
+ if (response.lro) {
215
+ const state = await pollOperation(fabricClient, response.lro.operationId);
216
+ return { content: [{ type: "text", text: JSON.stringify(state, null, 2) }] };
217
+ }
218
+ return { content: [{ type: "text", text: "Semantic model TMDL definition updated successfully" }] };
219
+ }
220
+ catch (error) {
221
+ return formatToolError(error);
222
+ }
223
+ });
224
+ }
225
+ //# sourceMappingURL=semantic-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-model.js","sourceRoot":"","sources":["../../src/tools/semantic-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { FabricClient } from "../client/fabric-client.js";
3
+ export declare function registerSqlEndpointTools(server: McpServer, fabricClient: FabricClient): void;
4
+ //# sourceMappingURL=sql-endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-endpoint.d.ts","sourceRoot":"","sources":["../../src/tools/sql-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,QAyDrF"}