@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,100 @@
1
+ import { z } from "zod";
2
+ import { formatToolError } from "../core/errors.js";
3
+ import { paginateAll } from "../core/pagination.js";
4
+ import { runOnDemandJob, getJobInstance } from "../core/job-scheduler.js";
5
+ export function registerDataflowTools(server, fabricClient) {
6
+ server.tool("dataflow_list", "List all Dataflow Gen2 items in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
7
+ try {
8
+ const items = await paginateAll(fabricClient, `/workspaces/${workspaceId}/items?type=DataflowGen2`);
9
+ return { content: [{ type: "text", text: JSON.stringify(items, null, 2) }] };
10
+ }
11
+ catch (error) {
12
+ return formatToolError(error);
13
+ }
14
+ });
15
+ server.tool("dataflow_get", "Get details of a specific Dataflow Gen2 item", {
16
+ workspaceId: z.string().describe("The workspace ID"),
17
+ dataflowId: z.string().describe("The dataflow ID"),
18
+ }, async ({ workspaceId, dataflowId }) => {
19
+ try {
20
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/items/${dataflowId}`);
21
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
22
+ }
23
+ catch (error) {
24
+ return formatToolError(error);
25
+ }
26
+ });
27
+ server.tool("dataflow_create", "Create a new Dataflow Gen2 item in a workspace", {
28
+ workspaceId: z.string().describe("The workspace ID"),
29
+ displayName: z.string().describe("Display name for the dataflow"),
30
+ description: z.string().optional().describe("Description of the dataflow"),
31
+ }, async ({ workspaceId, displayName, description }) => {
32
+ try {
33
+ const body = { displayName, type: "DataflowGen2" };
34
+ if (description)
35
+ body.description = description;
36
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/items`, body);
37
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
38
+ }
39
+ catch (error) {
40
+ return formatToolError(error);
41
+ }
42
+ });
43
+ server.tool("dataflow_update", "Update a Dataflow Gen2 item's name or description", {
44
+ workspaceId: z.string().describe("The workspace ID"),
45
+ dataflowId: z.string().describe("The dataflow ID"),
46
+ displayName: z.string().optional().describe("New display name"),
47
+ description: z.string().optional().describe("New description"),
48
+ }, async ({ workspaceId, dataflowId, displayName, description }) => {
49
+ try {
50
+ const body = {};
51
+ if (displayName !== undefined)
52
+ body.displayName = displayName;
53
+ if (description !== undefined)
54
+ body.description = description;
55
+ const response = await fabricClient.patch(`/workspaces/${workspaceId}/items/${dataflowId}`, body);
56
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
57
+ }
58
+ catch (error) {
59
+ return formatToolError(error);
60
+ }
61
+ });
62
+ server.tool("dataflow_delete", "Delete a Dataflow Gen2 item", {
63
+ workspaceId: z.string().describe("The workspace ID"),
64
+ dataflowId: z.string().describe("The dataflow ID"),
65
+ }, async ({ workspaceId, dataflowId }) => {
66
+ try {
67
+ await fabricClient.delete(`/workspaces/${workspaceId}/items/${dataflowId}`);
68
+ return { content: [{ type: "text", text: `Dataflow ${dataflowId} deleted successfully` }] };
69
+ }
70
+ catch (error) {
71
+ return formatToolError(error);
72
+ }
73
+ });
74
+ server.tool("dataflow_refresh", "Trigger a refresh of a Dataflow Gen2 item", {
75
+ workspaceId: z.string().describe("The workspace ID"),
76
+ dataflowId: z.string().describe("The dataflow ID"),
77
+ }, async ({ workspaceId, dataflowId }) => {
78
+ try {
79
+ const job = await runOnDemandJob(fabricClient, workspaceId, dataflowId, "Refresh");
80
+ return { content: [{ type: "text", text: JSON.stringify(job, null, 2) }] };
81
+ }
82
+ catch (error) {
83
+ return formatToolError(error);
84
+ }
85
+ });
86
+ server.tool("dataflow_get_refresh_status", "Get the status of a dataflow refresh job", {
87
+ workspaceId: z.string().describe("The workspace ID"),
88
+ dataflowId: z.string().describe("The dataflow ID"),
89
+ jobInstanceId: z.string().describe("The job instance ID from dataflow_refresh"),
90
+ }, async ({ workspaceId, dataflowId, jobInstanceId }) => {
91
+ try {
92
+ const job = await getJobInstance(fabricClient, workspaceId, dataflowId, jobInstanceId);
93
+ return { content: [{ type: "text", text: JSON.stringify(job, null, 2) }] };
94
+ }
95
+ catch (error) {
96
+ return formatToolError(error);
97
+ }
98
+ });
99
+ }
100
+ //# sourceMappingURL=dataflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/tools/dataflow.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 registerEventhouseTools(server: McpServer, fabricClient: FabricClient): void;
4
+ //# sourceMappingURL=eventhouse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhouse.d.ts","sourceRoot":"","sources":["../../src/tools/eventhouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,QA+FpF"}
@@ -0,0 +1,80 @@
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
+ export function registerEventhouseTools(server, fabricClient) {
6
+ server.tool("eventhouse_list", "List all eventhouses in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
7
+ try {
8
+ const eventhouses = await paginateAll(fabricClient, `/workspaces/${workspaceId}/eventhouses`);
9
+ return { content: [{ type: "text", text: JSON.stringify(eventhouses, null, 2) }] };
10
+ }
11
+ catch (error) {
12
+ return formatToolError(error);
13
+ }
14
+ });
15
+ server.tool("eventhouse_get", "Get details of a specific eventhouse", {
16
+ workspaceId: z.string().describe("The workspace ID"),
17
+ eventhouseId: z.string().describe("The eventhouse ID"),
18
+ }, async ({ workspaceId, eventhouseId }) => {
19
+ try {
20
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/eventhouses/${eventhouseId}`);
21
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
22
+ }
23
+ catch (error) {
24
+ return formatToolError(error);
25
+ }
26
+ });
27
+ server.tool("eventhouse_create", "Create a new eventhouse in a workspace (long-running operation)", {
28
+ workspaceId: z.string().describe("The workspace ID"),
29
+ displayName: z.string().describe("Display name for the eventhouse"),
30
+ description: z.string().optional().describe("Description of the eventhouse"),
31
+ }, async ({ workspaceId, displayName, description }) => {
32
+ try {
33
+ const body = { displayName };
34
+ if (description)
35
+ body.description = description;
36
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/eventhouses`, body);
37
+ if (response.lro) {
38
+ const state = await pollOperation(fabricClient, response.lro.operationId);
39
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
40
+ return { content: [{ type: "text", text: JSON.stringify({ operation: state, item: result ?? response.data }, null, 2) }] };
41
+ }
42
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
43
+ }
44
+ catch (error) {
45
+ return formatToolError(error);
46
+ }
47
+ });
48
+ server.tool("eventhouse_update", "Update an eventhouse's name or description", {
49
+ workspaceId: z.string().describe("The workspace ID"),
50
+ eventhouseId: z.string().describe("The eventhouse ID"),
51
+ displayName: z.string().optional().describe("New display name"),
52
+ description: z.string().optional().describe("New description"),
53
+ }, async ({ workspaceId, eventhouseId, displayName, description }) => {
54
+ try {
55
+ const body = {};
56
+ if (displayName !== undefined)
57
+ body.displayName = displayName;
58
+ if (description !== undefined)
59
+ body.description = description;
60
+ const response = await fabricClient.patch(`/workspaces/${workspaceId}/eventhouses/${eventhouseId}`, body);
61
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
62
+ }
63
+ catch (error) {
64
+ return formatToolError(error);
65
+ }
66
+ });
67
+ server.tool("eventhouse_delete", "Delete an eventhouse", {
68
+ workspaceId: z.string().describe("The workspace ID"),
69
+ eventhouseId: z.string().describe("The eventhouse ID"),
70
+ }, async ({ workspaceId, eventhouseId }) => {
71
+ try {
72
+ await fabricClient.delete(`/workspaces/${workspaceId}/eventhouses/${eventhouseId}`);
73
+ return { content: [{ type: "text", text: `Eventhouse ${eventhouseId} deleted successfully` }] };
74
+ }
75
+ catch (error) {
76
+ return formatToolError(error);
77
+ }
78
+ });
79
+ }
80
+ //# sourceMappingURL=eventhouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhouse.js","sourceRoot":"","sources":["../../src/tools/eventhouse.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 registerEventstreamTools(server: McpServer, fabricClient: FabricClient): void;
4
+ //# sourceMappingURL=eventstream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventstream.d.ts","sourceRoot":"","sources":["../../src/tools/eventstream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,QAoKrF"}
@@ -0,0 +1,135 @@
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, encodeBase64 } from "../utils/base64.js";
6
+ export function registerEventstreamTools(server, fabricClient) {
7
+ server.tool("eventstream_list", "List all eventstreams in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
8
+ try {
9
+ const eventstreams = await paginateAll(fabricClient, `/workspaces/${workspaceId}/eventstreams`);
10
+ return { content: [{ type: "text", text: JSON.stringify(eventstreams, null, 2) }] };
11
+ }
12
+ catch (error) {
13
+ return formatToolError(error);
14
+ }
15
+ });
16
+ server.tool("eventstream_get", "Get details of a specific eventstream", {
17
+ workspaceId: z.string().describe("The workspace ID"),
18
+ eventstreamId: z.string().describe("The eventstream ID"),
19
+ }, async ({ workspaceId, eventstreamId }) => {
20
+ try {
21
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/eventstreams/${eventstreamId}`);
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("eventstream_create", "Create a new eventstream in a workspace (long-running operation)", {
29
+ workspaceId: z.string().describe("The workspace ID"),
30
+ displayName: z.string().describe("Display name for the eventstream"),
31
+ description: z.string().optional().describe("Description of the eventstream"),
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}/eventstreams`, 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("eventstream_update", "Update an eventstream's name or description", {
50
+ workspaceId: z.string().describe("The workspace ID"),
51
+ eventstreamId: z.string().describe("The eventstream ID"),
52
+ displayName: z.string().optional().describe("New display name"),
53
+ description: z.string().optional().describe("New description"),
54
+ }, async ({ workspaceId, eventstreamId, 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}/eventstreams/${eventstreamId}`, 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("eventstream_delete", "Delete an eventstream", {
69
+ workspaceId: z.string().describe("The workspace ID"),
70
+ eventstreamId: z.string().describe("The eventstream ID"),
71
+ }, async ({ workspaceId, eventstreamId }) => {
72
+ try {
73
+ await fabricClient.delete(`/workspaces/${workspaceId}/eventstreams/${eventstreamId}`);
74
+ return { content: [{ type: "text", text: `Eventstream ${eventstreamId} deleted successfully` }] };
75
+ }
76
+ catch (error) {
77
+ return formatToolError(error);
78
+ }
79
+ });
80
+ server.tool("eventstream_get_definition", "Get the definition of an eventstream (long-running, returns decoded content)", {
81
+ workspaceId: z.string().describe("The workspace ID"),
82
+ eventstreamId: z.string().describe("The eventstream ID"),
83
+ }, async ({ workspaceId, eventstreamId }) => {
84
+ try {
85
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/eventstreams/${eventstreamId}/getDefinition`);
86
+ if (response.lro) {
87
+ await pollOperation(fabricClient, response.lro.operationId);
88
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
89
+ if (result?.definition) {
90
+ const definition = result.definition;
91
+ const decoded = definition.parts.map((part) => ({
92
+ path: part.path,
93
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
94
+ payloadType: part.payloadType,
95
+ }));
96
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
97
+ }
98
+ }
99
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
100
+ }
101
+ catch (error) {
102
+ return formatToolError(error);
103
+ }
104
+ });
105
+ server.tool("eventstream_update_definition", "Update the definition of an eventstream (long-running, accepts raw content that will be base64 encoded)", {
106
+ workspaceId: z.string().describe("The workspace ID"),
107
+ eventstreamId: z.string().describe("The eventstream ID"),
108
+ content: z.string().describe("The eventstream definition content (will be base64 encoded)"),
109
+ path: z.string().optional().describe("The definition part path (default: eventstream.json)"),
110
+ }, async ({ workspaceId, eventstreamId, content, path }) => {
111
+ try {
112
+ const body = {
113
+ definition: {
114
+ parts: [
115
+ {
116
+ path: path ?? "eventstream.json",
117
+ payload: encodeBase64(content),
118
+ payloadType: "InlineBase64",
119
+ },
120
+ ],
121
+ },
122
+ };
123
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/eventstreams/${eventstreamId}/updateDefinition`, body);
124
+ if (response.lro) {
125
+ const state = await pollOperation(fabricClient, response.lro.operationId);
126
+ return { content: [{ type: "text", text: JSON.stringify(state, null, 2) }] };
127
+ }
128
+ return { content: [{ type: "text", text: "Eventstream definition updated successfully" }] };
129
+ }
130
+ catch (error) {
131
+ return formatToolError(error);
132
+ }
133
+ });
134
+ }
135
+ //# sourceMappingURL=eventstream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventstream.js","sourceRoot":"","sources":["../../src/tools/eventstream.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 registerGraphQLApiTools(server: McpServer, fabricClient: FabricClient, powerBIClient: PowerBIClient): void;
5
+ //# sourceMappingURL=graphql-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-api.d.ts","sourceRoot":"","sources":["../../src/tools/graphql-api.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,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,QAwJlH"}
@@ -0,0 +1,124 @@
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 registerGraphQLApiTools(server, fabricClient, powerBIClient) {
7
+ server.tool("graphql_api_list", "List all GraphQL API items in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
8
+ try {
9
+ const items = await paginateAll(fabricClient, `/workspaces/${workspaceId}/graphQLApis`);
10
+ return { content: [{ type: "text", text: JSON.stringify(items, null, 2) }] };
11
+ }
12
+ catch (error) {
13
+ return formatToolError(error);
14
+ }
15
+ });
16
+ server.tool("graphql_api_get", "Get details of a specific GraphQL API item", {
17
+ workspaceId: z.string().describe("The workspace ID"),
18
+ graphqlApiId: z.string().describe("The GraphQL API ID"),
19
+ }, async ({ workspaceId, graphqlApiId }) => {
20
+ try {
21
+ const response = await fabricClient.get(`/workspaces/${workspaceId}/graphQLApis/${graphqlApiId}`);
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("graphql_api_create", "Create a new GraphQL API item in a workspace", {
29
+ workspaceId: z.string().describe("The workspace ID"),
30
+ displayName: z.string().describe("Display name for the GraphQL API"),
31
+ description: z.string().optional().describe("Description of the GraphQL API"),
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}/graphQLApis`, 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("graphql_api_update", "Update a GraphQL API item's name or description", {
50
+ workspaceId: z.string().describe("The workspace ID"),
51
+ graphqlApiId: z.string().describe("The GraphQL API ID"),
52
+ displayName: z.string().optional().describe("New display name"),
53
+ description: z.string().optional().describe("New description"),
54
+ }, async ({ workspaceId, graphqlApiId, 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}/graphQLApis/${graphqlApiId}`, 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("graphql_api_delete", "Delete a GraphQL API item", {
69
+ workspaceId: z.string().describe("The workspace ID"),
70
+ graphqlApiId: z.string().describe("The GraphQL API ID"),
71
+ }, async ({ workspaceId, graphqlApiId }) => {
72
+ try {
73
+ await fabricClient.delete(`/workspaces/${workspaceId}/graphQLApis/${graphqlApiId}`);
74
+ return { content: [{ type: "text", text: `GraphQL API ${graphqlApiId} deleted successfully` }] };
75
+ }
76
+ catch (error) {
77
+ return formatToolError(error);
78
+ }
79
+ });
80
+ server.tool("graphql_api_get_definition", "Get the GraphQL schema definition of a GraphQL API item (long-running, returns decoded .graphql content)", {
81
+ workspaceId: z.string().describe("The workspace ID"),
82
+ graphqlApiId: z.string().describe("The GraphQL API ID"),
83
+ }, async ({ workspaceId, graphqlApiId }) => {
84
+ try {
85
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/graphQLApis/${graphqlApiId}/getDefinition`);
86
+ if (response.lro) {
87
+ await pollOperation(fabricClient, response.lro.operationId);
88
+ const result = await getOperationResult(fabricClient, response.lro.operationId);
89
+ if (result?.definition) {
90
+ const definition = result.definition;
91
+ const decoded = definition.parts.map((part) => ({
92
+ path: part.path,
93
+ payload: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
94
+ payloadType: part.payloadType,
95
+ }));
96
+ return { content: [{ type: "text", text: JSON.stringify(decoded, null, 2) }] };
97
+ }
98
+ }
99
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
100
+ }
101
+ catch (error) {
102
+ return formatToolError(error);
103
+ }
104
+ });
105
+ server.tool("graphql_api_execute_query", "Execute a GraphQL query against a GraphQL API endpoint. Uses the Power BI scope token.", {
106
+ workspaceId: z.string().describe("The workspace ID"),
107
+ graphqlApiId: z.string().describe("The GraphQL API ID"),
108
+ query: z.string().describe("The GraphQL query string"),
109
+ variables: z.record(z.unknown()).optional().describe("GraphQL query variables"),
110
+ }, async ({ workspaceId, graphqlApiId, query, variables }) => {
111
+ try {
112
+ const body = { query };
113
+ if (variables)
114
+ body.variables = variables;
115
+ // GraphQL API endpoint uses the Fabric base URL with Power BI scope
116
+ const response = await fabricClient.post(`/workspaces/${workspaceId}/graphQLApis/${graphqlApiId}/graphql`, body);
117
+ return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
118
+ }
119
+ catch (error) {
120
+ return formatToolError(error);
121
+ }
122
+ });
123
+ }
124
+ //# sourceMappingURL=graphql-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-api.js","sourceRoot":"","sources":["../../src/tools/graphql-api.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 registerLakehouseTools(server: McpServer, fabricClient: FabricClient): void;
4
+ //# sourceMappingURL=lakehouse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lakehouse.d.ts","sourceRoot":"","sources":["../../src/tools/lakehouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,QAyKnF"}