@einlogic/mcp-fabric-api 1.2.1 → 1.4.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.
- package/README.md +128 -10
- package/build/core/workspace-guard.d.ts +10 -0
- package/build/core/workspace-guard.d.ts.map +1 -0
- package/build/core/workspace-guard.js +39 -0
- package/build/core/workspace-guard.js.map +1 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +15 -13
- package/build/server.js.map +1 -1
- package/build/tools/dataflow.d.ts +2 -1
- package/build/tools/dataflow.d.ts.map +1 -1
- package/build/tools/dataflow.js +4 -1
- package/build/tools/dataflow.js.map +1 -1
- package/build/tools/eventhouse.d.ts +2 -1
- package/build/tools/eventhouse.d.ts.map +1 -1
- package/build/tools/eventhouse.js +4 -1
- package/build/tools/eventhouse.js.map +1 -1
- package/build/tools/eventstream.d.ts +2 -1
- package/build/tools/eventstream.d.ts.map +1 -1
- package/build/tools/eventstream.js +12 -5
- package/build/tools/eventstream.js.map +1 -1
- package/build/tools/graphql-api.d.ts +2 -1
- package/build/tools/graphql-api.d.ts.map +1 -1
- package/build/tools/graphql-api.js +4 -1
- package/build/tools/graphql-api.js.map +1 -1
- package/build/tools/lakehouse.d.ts +2 -1
- package/build/tools/lakehouse.d.ts.map +1 -1
- package/build/tools/lakehouse.js +91 -3
- package/build/tools/lakehouse.js.map +1 -1
- package/build/tools/notebook.d.ts +2 -1
- package/build/tools/notebook.d.ts.map +1 -1
- package/build/tools/notebook.js +12 -5
- package/build/tools/notebook.js.map +1 -1
- package/build/tools/pipeline.d.ts +2 -1
- package/build/tools/pipeline.d.ts.map +1 -1
- package/build/tools/pipeline.js +7 -1
- package/build/tools/pipeline.js.map +1 -1
- package/build/tools/reflex.d.ts +2 -1
- package/build/tools/reflex.d.ts.map +1 -1
- package/build/tools/reflex.js +4 -1
- package/build/tools/reflex.js.map +1 -1
- package/build/tools/report.d.ts +2 -1
- package/build/tools/report.d.ts.map +1 -1
- package/build/tools/report.js +13 -5
- package/build/tools/report.js.map +1 -1
- package/build/tools/semantic-model.d.ts +2 -1
- package/build/tools/semantic-model.d.ts.map +1 -1
- package/build/tools/semantic-model.js +34 -19
- package/build/tools/semantic-model.js.map +1 -1
- package/build/tools/warehouse.d.ts +2 -1
- package/build/tools/warehouse.d.ts.map +1 -1
- package/build/tools/warehouse.js +4 -1
- package/build/tools/warehouse.js.map +1 -1
- package/build/tools/workspace.d.ts +2 -1
- package/build/tools/workspace.d.ts.map +1 -1
- package/build/tools/workspace.js +3 -1
- package/build/tools/workspace.js.map +1 -1
- package/build/utils/file-reader.d.ts +9 -0
- package/build/utils/file-reader.d.ts.map +1 -0
- package/build/utils/file-reader.js +67 -0
- package/build/utils/file-reader.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
MCP (Model Context Protocol) server for the Microsoft Fabric REST APIs. Built for data engineers and data analysts who want to use AI assistants beyond Copilot — such as Claude, Claude Code, or any MCP-compatible client — to build and manage their Fabric components. Covers workspaces, lakehouses, warehouses, notebooks, pipelines, semantic models, reports, dataflows, eventhouses, eventstreams, reflexes, GraphQL APIs, and SQL endpoints.
|
|
4
4
|
|
|
5
|
+
> **Safe by default:** This server blocks all destructive operations (create, update, delete) until you explicitly configure the `WRITABLE_WORKSPACES` environment variable. Read operations always work. Set `WRITABLE_WORKSPACES="*"` to allow writes to all workspaces, or use patterns to limit access. See [Workspace Safety Guard](#workspace-safety-guard) for details.
|
|
6
|
+
|
|
5
7
|
## Prerequisites
|
|
6
8
|
|
|
7
9
|
- Node.js 18+
|
|
@@ -73,6 +75,121 @@ The server exposes:
|
|
|
73
75
|
- `DELETE /mcp` — Session cleanup
|
|
74
76
|
- `GET /.well-known/oauth-protected-resource` — OAuth metadata
|
|
75
77
|
|
|
78
|
+
### Workspace Safety Guard
|
|
79
|
+
|
|
80
|
+
Control which workspaces allow write operations (create, update, delete) via the `WRITABLE_WORKSPACES` environment variable. Only workspaces matching the configured name patterns will permit CUD (Create, Update, Delete) operations. Read operations are never restricted.
|
|
81
|
+
|
|
82
|
+
> **Default behavior: When `WRITABLE_WORKSPACES` is not set or empty, all destructive operations are blocked.** You must explicitly configure this variable to enable writes.
|
|
83
|
+
|
|
84
|
+
| `WRITABLE_WORKSPACES` value | Behavior |
|
|
85
|
+
|------------------------------|----------|
|
|
86
|
+
| Not set / empty | **All writes blocked** (safe default) |
|
|
87
|
+
| `*` | All workspaces writable |
|
|
88
|
+
| `*-Dev,*-Test,Sandbox*` | Only matching workspaces writable |
|
|
89
|
+
|
|
90
|
+
Set comma-separated glob patterns:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
WRITABLE_WORKSPACES=*-Dev,*-Test,Sandbox*
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Wildcard examples:**
|
|
97
|
+
- `*` matches all workspaces (allow everything)
|
|
98
|
+
- `*-Dev` matches "Sales-Dev", "Finance-Dev"
|
|
99
|
+
- `Sandbox*` matches "Sandbox-123", "Sandbox-Mike"
|
|
100
|
+
- `Exact-Name` matches only "Exact-Name" (case-insensitive)
|
|
101
|
+
|
|
102
|
+
**Guarded tools (47 total)** — every tool that creates, updates, or deletes workspace items:
|
|
103
|
+
|
|
104
|
+
| Domain | Guarded tools |
|
|
105
|
+
|--------|--------------|
|
|
106
|
+
| Workspace | `workspace_update`, `workspace_delete` |
|
|
107
|
+
| Lakehouse | `lakehouse_create`, `lakehouse_update`, `lakehouse_delete`, `lakehouse_load_table`, `lakehouse_create_shortcut` |
|
|
108
|
+
| Warehouse | `warehouse_create`, `warehouse_update`, `warehouse_delete` |
|
|
109
|
+
| Notebook | `notebook_create`, `notebook_update`, `notebook_delete`, `notebook_update_definition` |
|
|
110
|
+
| Pipeline | `pipeline_create`, `pipeline_update`, `pipeline_delete`, `pipeline_create_schedule`, `pipeline_update_schedule`, `pipeline_delete_schedule` |
|
|
111
|
+
| Semantic Model | `semantic_model_create`, `semantic_model_create_tmdl`, `semantic_model_update`, `semantic_model_delete`, `semantic_model_update_definition`, `semantic_model_update_tmdl` |
|
|
112
|
+
| Report | `report_create`, `report_update`, `report_delete`, `report_clone`, `report_update_definition` |
|
|
113
|
+
| Dataflow | `dataflow_create`, `dataflow_update`, `dataflow_delete` |
|
|
114
|
+
| Eventhouse | `eventhouse_create`, `eventhouse_update`, `eventhouse_delete` |
|
|
115
|
+
| Eventstream | `eventstream_create`, `eventstream_update`, `eventstream_delete`, `eventstream_update_definition` |
|
|
116
|
+
| Reflex | `reflex_create`, `reflex_update`, `reflex_delete` |
|
|
117
|
+
| GraphQL API | `graphql_api_create`, `graphql_api_update`, `graphql_api_delete` |
|
|
118
|
+
|
|
119
|
+
**Not guarded:** Read operations (list, get, get_definition, get_status), query execution (DAX, KQL, SQL, GraphQL), run/refresh/cancel operations, and export operations.
|
|
120
|
+
|
|
121
|
+
**Claude Desktop config with guard:**
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"fabric": {
|
|
126
|
+
"command": "npx",
|
|
127
|
+
"args": ["-y", "@einlogic/mcp-fabric-api"],
|
|
128
|
+
"env": {
|
|
129
|
+
"WRITABLE_WORKSPACES": "*-Dev,*-Test,Sandbox*"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Claude Code CLI with guard:**
|
|
137
|
+
```bash
|
|
138
|
+
WRITABLE_WORKSPACES="*-Dev,*-Test" claude mcp add fabric -- npx -y @einlogic/mcp-fabric-api
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Error when not configured:**
|
|
142
|
+
```
|
|
143
|
+
WRITABLE_WORKSPACES is not configured. Destructive actions are blocked by default. Set WRITABLE_WORKSPACES to a comma-separated list of workspace name patterns, or "*" to allow all.
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Error when workspace not in allow list:**
|
|
147
|
+
```
|
|
148
|
+
Workspace "Production-Analytics" is not in the writable workspaces list. Allowed patterns: *-Dev, *-Test, Sandbox*
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### File Path References
|
|
152
|
+
|
|
153
|
+
Some tools accept large payloads (notebook code, model.bim JSON, TMDL files, report definitions) that may exceed message size limits. Instead of passing content inline, you can write payloads to local files and pass file paths.
|
|
154
|
+
|
|
155
|
+
**Single-content tools** — use `contentFilePath` or `definitionFilePath` instead of inline content:
|
|
156
|
+
|
|
157
|
+
| Tool | File path parameter |
|
|
158
|
+
|------|-------------------|
|
|
159
|
+
| `notebook_update_definition` | `contentFilePath` |
|
|
160
|
+
| `semantic_model_create` | `definitionFilePath` |
|
|
161
|
+
| `semantic_model_update_definition` | `definitionFilePath` |
|
|
162
|
+
| `eventstream_update_definition` | `contentFilePath` |
|
|
163
|
+
|
|
164
|
+
**Multi-file tools** — use `filesDirectoryPath` or `partsDirectoryPath` instead of inline file arrays:
|
|
165
|
+
|
|
166
|
+
| Tool | Directory path parameter | Extension filter |
|
|
167
|
+
|------|------------------------|-----------------|
|
|
168
|
+
| `semantic_model_create_tmdl` | `filesDirectoryPath` | `.tmdl`, `.pbism` |
|
|
169
|
+
| `semantic_model_update_tmdl` | `filesDirectoryPath` | `.tmdl`, `.pbism` |
|
|
170
|
+
| `report_update_definition` | `partsDirectoryPath` | all files |
|
|
171
|
+
|
|
172
|
+
**Example — inline vs file path:**
|
|
173
|
+
```json
|
|
174
|
+
// Inline (may hit size limits)
|
|
175
|
+
{ "content": "# Notebook code\nprint('hello')" }
|
|
176
|
+
|
|
177
|
+
// File path reference
|
|
178
|
+
{ "contentFilePath": "/tmp/notebook-content.py" }
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**TMDL directory structure example:**
|
|
182
|
+
```
|
|
183
|
+
/tmp/my-model/
|
|
184
|
+
model.tmdl
|
|
185
|
+
definition.pbism
|
|
186
|
+
definition/
|
|
187
|
+
tables/
|
|
188
|
+
Sales.tmdl
|
|
189
|
+
Product.tmdl
|
|
190
|
+
relationships.tmdl
|
|
191
|
+
```
|
|
192
|
+
|
|
76
193
|
## Development
|
|
77
194
|
|
|
78
195
|
```bash
|
|
@@ -85,7 +202,7 @@ npm run dev # Watch mode
|
|
|
85
202
|
npm run inspect # Launch MCP Inspector
|
|
86
203
|
```
|
|
87
204
|
|
|
88
|
-
## Tools (
|
|
205
|
+
## Tools (98 total)
|
|
89
206
|
|
|
90
207
|
### Auth (4 tools)
|
|
91
208
|
| Tool | Description |
|
|
@@ -105,16 +222,17 @@ npm run inspect # Launch MCP Inspector
|
|
|
105
222
|
| `workspace_delete` | Delete a workspace |
|
|
106
223
|
| `workspace_list_items` | List all items in a workspace (with optional type filter) |
|
|
107
224
|
|
|
108
|
-
### Lakehouse (
|
|
225
|
+
### Lakehouse (9 tools)
|
|
109
226
|
| Tool | Description |
|
|
110
227
|
|------|-------------|
|
|
111
228
|
| `lakehouse_list` | List all lakehouses in a workspace |
|
|
112
229
|
| `lakehouse_get` | Get lakehouse details (SQL endpoint, OneLake paths) |
|
|
113
|
-
| `lakehouse_create` | Create a new lakehouse (LRO) |
|
|
230
|
+
| `lakehouse_create` | Create a new lakehouse (LRO, schemas enabled by default) |
|
|
114
231
|
| `lakehouse_update` | Update lakehouse name or description |
|
|
115
232
|
| `lakehouse_delete` | Delete a lakehouse |
|
|
116
233
|
| `lakehouse_list_tables` | List all tables in a lakehouse |
|
|
117
234
|
| `lakehouse_load_table` | Load data into a table from OneLake (LRO) |
|
|
235
|
+
| `lakehouse_create_shortcut` | Create a OneLake shortcut (file, folder, table, or schema level) with support for multiple target types |
|
|
118
236
|
| `lakehouse_get_sql_endpoint` | Get SQL endpoint details |
|
|
119
237
|
|
|
120
238
|
### Warehouse (7 tools)
|
|
@@ -137,7 +255,7 @@ npm run inspect # Launch MCP Inspector
|
|
|
137
255
|
| `notebook_update` | Update notebook name or description |
|
|
138
256
|
| `notebook_delete` | Delete a notebook |
|
|
139
257
|
| `notebook_get_definition` | Get notebook content (decoded from base64) |
|
|
140
|
-
| `notebook_update_definition` | Update notebook content |
|
|
258
|
+
| `notebook_update_definition` | Update notebook content (supports file path reference) |
|
|
141
259
|
| `notebook_run` | Run a notebook on demand |
|
|
142
260
|
| `notebook_get_run_status` | Get notebook run status |
|
|
143
261
|
| `notebook_cancel_run` | Cancel a running notebook |
|
|
@@ -164,16 +282,16 @@ npm run inspect # Launch MCP Inspector
|
|
|
164
282
|
|------|-------------|
|
|
165
283
|
| `semantic_model_list` | List all semantic models |
|
|
166
284
|
| `semantic_model_get` | Get semantic model details |
|
|
167
|
-
| `semantic_model_create` | Create a semantic model with a BIM/JSON definition (LRO) |
|
|
168
|
-
| `semantic_model_create_tmdl` | Create a semantic model with a TMDL definition (LRO) |
|
|
285
|
+
| `semantic_model_create` | Create a semantic model with a BIM/JSON definition (LRO, supports file path reference) |
|
|
286
|
+
| `semantic_model_create_tmdl` | Create a semantic model with a TMDL definition (LRO, supports directory path reference) |
|
|
169
287
|
| `semantic_model_update` | Update semantic model name or description |
|
|
170
288
|
| `semantic_model_delete` | Delete a semantic model |
|
|
171
289
|
| `semantic_model_refresh` | Trigger a model refresh (Power BI API) |
|
|
172
290
|
| `semantic_model_execute_dax` | Execute a DAX query (Power BI API) |
|
|
173
291
|
| `semantic_model_get_definition` | Get model definition in TMSL/BIM JSON format (LRO) |
|
|
174
292
|
| `semantic_model_get_tmdl` | Get model definition in TMDL format (LRO) |
|
|
175
|
-
| `semantic_model_update_definition` | Update model definition from TMSL/BIM JSON (LRO) |
|
|
176
|
-
| `semantic_model_update_tmdl` | Update model definition from TMDL files (LRO) |
|
|
293
|
+
| `semantic_model_update_definition` | Update model definition from TMSL/BIM JSON (LRO, supports file path reference) |
|
|
294
|
+
| `semantic_model_update_tmdl` | Update model definition from TMDL files (LRO, supports directory path reference) |
|
|
177
295
|
|
|
178
296
|
### Report (10 tools)
|
|
179
297
|
| Tool | Description |
|
|
@@ -187,7 +305,7 @@ npm run inspect # Launch MCP Inspector
|
|
|
187
305
|
| `report_export` | Export report to file format (Power BI API) |
|
|
188
306
|
| `report_get_export_status` | Check report export status |
|
|
189
307
|
| `report_get_definition` | Get report definition in PBIR or PBIR-Legacy format (LRO) |
|
|
190
|
-
| `report_update_definition` | Update report definition from parts (LRO) |
|
|
308
|
+
| `report_update_definition` | Update report definition from parts (LRO, supports directory path reference) |
|
|
191
309
|
|
|
192
310
|
### Dataflow Gen2 (7 tools)
|
|
193
311
|
| Tool | Description |
|
|
@@ -220,7 +338,7 @@ npm run inspect # Launch MCP Inspector
|
|
|
220
338
|
| `eventstream_update` | Update eventstream name or description |
|
|
221
339
|
| `eventstream_delete` | Delete an eventstream |
|
|
222
340
|
| `eventstream_get_definition` | Get eventstream definition (decoded) |
|
|
223
|
-
| `eventstream_update_definition` | Update eventstream definition |
|
|
341
|
+
| `eventstream_update_definition` | Update eventstream definition (supports file path reference) |
|
|
224
342
|
|
|
225
343
|
### Reflex / Activator (6 tools)
|
|
226
344
|
| Tool | Description |
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FabricClient } from "../client/fabric-client.js";
|
|
2
|
+
export declare class WorkspaceGuard {
|
|
3
|
+
private patterns;
|
|
4
|
+
private allowAll;
|
|
5
|
+
private nameCache;
|
|
6
|
+
constructor();
|
|
7
|
+
assertWorkspaceAllowed(fabricClient: FabricClient, workspaceId: string): Promise<void>;
|
|
8
|
+
private matchesPattern;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=workspace-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-guard.d.ts","sourceRoot":"","sources":["../../src/core/workspace-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAA6B;;IAUxC,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5F,OAAO,CAAC,cAAc;CAIvB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export class WorkspaceGuard {
|
|
2
|
+
patterns;
|
|
3
|
+
allowAll;
|
|
4
|
+
nameCache = new Map();
|
|
5
|
+
constructor() {
|
|
6
|
+
const env = process.env.WRITABLE_WORKSPACES?.trim();
|
|
7
|
+
this.patterns = env
|
|
8
|
+
? env.split(",").map((p) => p.trim()).filter((p) => p.length > 0)
|
|
9
|
+
: [];
|
|
10
|
+
this.allowAll = this.patterns.includes("*");
|
|
11
|
+
}
|
|
12
|
+
async assertWorkspaceAllowed(fabricClient, workspaceId) {
|
|
13
|
+
if (this.allowAll)
|
|
14
|
+
return;
|
|
15
|
+
if (this.patterns.length === 0) {
|
|
16
|
+
throw new Error("WRITABLE_WORKSPACES is not configured. Destructive actions are blocked by default. " +
|
|
17
|
+
"Set WRITABLE_WORKSPACES to a comma-separated list of workspace name patterns, or \"*\" to allow all.");
|
|
18
|
+
}
|
|
19
|
+
let name = this.nameCache.get(workspaceId);
|
|
20
|
+
if (!name) {
|
|
21
|
+
const response = await fabricClient.get(`/workspaces/${workspaceId}`);
|
|
22
|
+
name = response.data.displayName;
|
|
23
|
+
this.nameCache.set(workspaceId, name);
|
|
24
|
+
}
|
|
25
|
+
for (const pattern of this.patterns) {
|
|
26
|
+
if (this.matchesPattern(name, pattern))
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
throw new Error(`Workspace "${name}" is not in the writable workspaces list. Allowed patterns: ${this.patterns.join(", ")}`);
|
|
30
|
+
}
|
|
31
|
+
matchesPattern(name, pattern) {
|
|
32
|
+
const regexStr = "^" + pattern.split("*").map(escapeRegExp).join(".*") + "$";
|
|
33
|
+
return new RegExp(regexStr, "i").test(name);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function escapeRegExp(str) {
|
|
37
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=workspace-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-guard.js","sourceRoot":"","sources":["../../src/core/workspace-guard.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IACjB,QAAQ,CAAW;IACnB,QAAQ,CAAU;IAClB,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C;QACE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,GAAG;YACjB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,YAA0B,EAAE,WAAmB;QAC1E,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,qFAAqF;gBACrF,sGAAsG,CACvG,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAA0B,eAAe,WAAW,EAAE,CAAC,CAAC;YAC/F,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;gBAAE,OAAO;QACjD,CAAC;QAED,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,+DAA+D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5G,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,OAAe;QAClD,MAAM,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAC7E,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
|
package/build/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAqBvD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CA8BrE"}
|
package/build/server.js
CHANGED
|
@@ -18,29 +18,31 @@ import { registerSqlEndpointTools } from "./tools/sql-endpoint.js";
|
|
|
18
18
|
import { registerAuthTools } from "./tools/auth.js";
|
|
19
19
|
import { SqlClient } from "./client/sql-client.js";
|
|
20
20
|
import { KustoClient } from "./client/kusto-client.js";
|
|
21
|
+
import { WorkspaceGuard } from "./core/workspace-guard.js";
|
|
21
22
|
export function createServer(options) {
|
|
22
23
|
const server = new McpServer({
|
|
23
24
|
name: "mcp-fabric-api",
|
|
24
|
-
version: "1.
|
|
25
|
+
version: "1.3.0",
|
|
25
26
|
});
|
|
26
27
|
const tokenManager = options?.tokenManager ?? new TokenManager();
|
|
27
28
|
const fabricClient = new FabricClient(tokenManager);
|
|
28
29
|
const powerBIClient = new PowerBIClient(tokenManager);
|
|
29
30
|
const sqlClient = new SqlClient(tokenManager);
|
|
30
31
|
const kustoClient = new KustoClient(tokenManager);
|
|
32
|
+
const workspaceGuard = new WorkspaceGuard();
|
|
31
33
|
// Register all domain tools
|
|
32
|
-
registerWorkspaceTools(server, fabricClient);
|
|
33
|
-
registerLakehouseTools(server, fabricClient);
|
|
34
|
-
registerWarehouseTools(server, fabricClient);
|
|
35
|
-
registerNotebookTools(server, fabricClient);
|
|
36
|
-
registerPipelineTools(server, fabricClient);
|
|
37
|
-
registerSemanticModelTools(server, fabricClient, powerBIClient);
|
|
38
|
-
registerReportTools(server, fabricClient, powerBIClient);
|
|
39
|
-
registerDataflowTools(server, fabricClient);
|
|
40
|
-
registerEventhouseTools(server, fabricClient, kustoClient);
|
|
41
|
-
registerEventstreamTools(server, fabricClient);
|
|
42
|
-
registerReflexTools(server, fabricClient);
|
|
43
|
-
registerGraphQLApiTools(server, fabricClient, powerBIClient);
|
|
34
|
+
registerWorkspaceTools(server, fabricClient, workspaceGuard);
|
|
35
|
+
registerLakehouseTools(server, fabricClient, workspaceGuard);
|
|
36
|
+
registerWarehouseTools(server, fabricClient, workspaceGuard);
|
|
37
|
+
registerNotebookTools(server, fabricClient, workspaceGuard);
|
|
38
|
+
registerPipelineTools(server, fabricClient, workspaceGuard);
|
|
39
|
+
registerSemanticModelTools(server, fabricClient, powerBIClient, workspaceGuard);
|
|
40
|
+
registerReportTools(server, fabricClient, powerBIClient, workspaceGuard);
|
|
41
|
+
registerDataflowTools(server, fabricClient, workspaceGuard);
|
|
42
|
+
registerEventhouseTools(server, fabricClient, kustoClient, workspaceGuard);
|
|
43
|
+
registerEventstreamTools(server, fabricClient, workspaceGuard);
|
|
44
|
+
registerReflexTools(server, fabricClient, workspaceGuard);
|
|
45
|
+
registerGraphQLApiTools(server, fabricClient, powerBIClient, workspaceGuard);
|
|
44
46
|
registerSqlEndpointTools(server, fabricClient, sqlClient);
|
|
45
47
|
registerAuthTools(server, tokenManager);
|
|
46
48
|
return server;
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAM3D,MAAM,UAAU,YAAY,CAAC,OAA6B;IACxD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,YAAY,EAAE,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,4BAA4B;IAC5B,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5D,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5D,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAChF,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACzE,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5D,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC3E,wBAAwB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC/D,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC1D,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAC7E,wBAAwB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC1D,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAExC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { FabricClient } from "../client/fabric-client.js";
|
|
3
|
-
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export declare function registerDataflowTools(server: McpServer, fabricClient: FabricClient, workspaceGuard: WorkspaceGuard): void;
|
|
4
5
|
//# sourceMappingURL=dataflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QAgIlH"}
|
package/build/tools/dataflow.js
CHANGED
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { formatToolError } from "../core/errors.js";
|
|
3
3
|
import { paginateAll } from "../core/pagination.js";
|
|
4
4
|
import { runOnDemandJob, getJobInstance } from "../core/job-scheduler.js";
|
|
5
|
-
export function registerDataflowTools(server, fabricClient) {
|
|
5
|
+
export function registerDataflowTools(server, fabricClient, workspaceGuard) {
|
|
6
6
|
server.tool("dataflow_list", "List all Dataflow Gen2 items in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
|
|
7
7
|
try {
|
|
8
8
|
const items = await paginateAll(fabricClient, `/workspaces/${workspaceId}/items?type=DataflowGen2`);
|
|
@@ -30,6 +30,7 @@ export function registerDataflowTools(server, fabricClient) {
|
|
|
30
30
|
description: z.string().optional().describe("Description of the dataflow"),
|
|
31
31
|
}, async ({ workspaceId, displayName, description }) => {
|
|
32
32
|
try {
|
|
33
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
33
34
|
const body = { displayName, type: "DataflowGen2" };
|
|
34
35
|
if (description)
|
|
35
36
|
body.description = description;
|
|
@@ -47,6 +48,7 @@ export function registerDataflowTools(server, fabricClient) {
|
|
|
47
48
|
description: z.string().optional().describe("New description"),
|
|
48
49
|
}, async ({ workspaceId, dataflowId, displayName, description }) => {
|
|
49
50
|
try {
|
|
51
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
50
52
|
const body = {};
|
|
51
53
|
if (displayName !== undefined)
|
|
52
54
|
body.displayName = displayName;
|
|
@@ -64,6 +66,7 @@ export function registerDataflowTools(server, fabricClient) {
|
|
|
64
66
|
dataflowId: z.string().describe("The dataflow ID"),
|
|
65
67
|
}, async ({ workspaceId, dataflowId }) => {
|
|
66
68
|
try {
|
|
69
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
67
70
|
await fabricClient.delete(`/workspaces/${workspaceId}/items/${dataflowId}`);
|
|
68
71
|
return { content: [{ type: "text", text: `Dataflow ${dataflowId} deleted successfully` }] };
|
|
69
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { FabricClient } from "../client/fabric-client.js";
|
|
3
3
|
import { KustoClient } from "../client/kusto-client.js";
|
|
4
|
-
|
|
4
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
5
|
+
export declare function registerEventhouseTools(server: McpServer, fabricClient: FabricClient, kustoClient: KustoClient, workspaceGuard: WorkspaceGuard): void;
|
|
5
6
|
//# sourceMappingURL=eventhouse.d.ts.map
|
|
@@ -1 +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;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
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;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,QA2J9I"}
|
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { formatToolError } from "../core/errors.js";
|
|
3
3
|
import { paginateAll } from "../core/pagination.js";
|
|
4
4
|
import { pollOperation, getOperationResult } from "../core/lro.js";
|
|
5
|
-
export function registerEventhouseTools(server, fabricClient, kustoClient) {
|
|
5
|
+
export function registerEventhouseTools(server, fabricClient, kustoClient, workspaceGuard) {
|
|
6
6
|
server.tool("eventhouse_list", "List all eventhouses in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
|
|
7
7
|
try {
|
|
8
8
|
const eventhouses = await paginateAll(fabricClient, `/workspaces/${workspaceId}/eventhouses`);
|
|
@@ -30,6 +30,7 @@ export function registerEventhouseTools(server, fabricClient, kustoClient) {
|
|
|
30
30
|
description: z.string().optional().describe("Description of the eventhouse"),
|
|
31
31
|
}, async ({ workspaceId, displayName, description }) => {
|
|
32
32
|
try {
|
|
33
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
33
34
|
const body = { displayName };
|
|
34
35
|
if (description)
|
|
35
36
|
body.description = description;
|
|
@@ -52,6 +53,7 @@ export function registerEventhouseTools(server, fabricClient, kustoClient) {
|
|
|
52
53
|
description: z.string().optional().describe("New description"),
|
|
53
54
|
}, async ({ workspaceId, eventhouseId, displayName, description }) => {
|
|
54
55
|
try {
|
|
56
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
55
57
|
const body = {};
|
|
56
58
|
if (displayName !== undefined)
|
|
57
59
|
body.displayName = displayName;
|
|
@@ -69,6 +71,7 @@ export function registerEventhouseTools(server, fabricClient, kustoClient) {
|
|
|
69
71
|
eventhouseId: z.string().describe("The eventhouse ID"),
|
|
70
72
|
}, async ({ workspaceId, eventhouseId }) => {
|
|
71
73
|
try {
|
|
74
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
72
75
|
await fabricClient.delete(`/workspaces/${workspaceId}/eventhouses/${eventhouseId}`);
|
|
73
76
|
return { content: [{ type: "text", text: `Eventhouse ${eventhouseId} deleted successfully` }] };
|
|
74
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventhouse.js","sourceRoot":"","sources":["../../src/tools/eventhouse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"eventhouse.js","sourceRoot":"","sources":["../../src/tools/eventhouse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { FabricClient } from "../client/fabric-client.js";
|
|
3
|
-
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export declare function registerEventstreamTools(server: McpServer, fabricClient: FabricClient, workspaceGuard: WorkspaceGuard): void;
|
|
4
5
|
//# sourceMappingURL=eventstream.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAK1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QA0KrH"}
|
|
@@ -3,7 +3,8 @@ import { formatToolError } from "../core/errors.js";
|
|
|
3
3
|
import { paginateAll } from "../core/pagination.js";
|
|
4
4
|
import { pollOperation, getOperationResult } from "../core/lro.js";
|
|
5
5
|
import { decodeBase64, encodeBase64 } from "../utils/base64.js";
|
|
6
|
-
|
|
6
|
+
import { resolveContentOrFile } from "../utils/file-reader.js";
|
|
7
|
+
export function registerEventstreamTools(server, fabricClient, workspaceGuard) {
|
|
7
8
|
server.tool("eventstream_list", "List all eventstreams in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
|
|
8
9
|
try {
|
|
9
10
|
const eventstreams = await paginateAll(fabricClient, `/workspaces/${workspaceId}/eventstreams`);
|
|
@@ -31,6 +32,7 @@ export function registerEventstreamTools(server, fabricClient) {
|
|
|
31
32
|
description: z.string().optional().describe("Description of the eventstream"),
|
|
32
33
|
}, async ({ workspaceId, displayName, description }) => {
|
|
33
34
|
try {
|
|
35
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
34
36
|
const body = { displayName };
|
|
35
37
|
if (description)
|
|
36
38
|
body.description = description;
|
|
@@ -53,6 +55,7 @@ export function registerEventstreamTools(server, fabricClient) {
|
|
|
53
55
|
description: z.string().optional().describe("New description"),
|
|
54
56
|
}, async ({ workspaceId, eventstreamId, displayName, description }) => {
|
|
55
57
|
try {
|
|
58
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
56
59
|
const body = {};
|
|
57
60
|
if (displayName !== undefined)
|
|
58
61
|
body.displayName = displayName;
|
|
@@ -70,6 +73,7 @@ export function registerEventstreamTools(server, fabricClient) {
|
|
|
70
73
|
eventstreamId: z.string().describe("The eventstream ID"),
|
|
71
74
|
}, async ({ workspaceId, eventstreamId }) => {
|
|
72
75
|
try {
|
|
76
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
73
77
|
await fabricClient.delete(`/workspaces/${workspaceId}/eventstreams/${eventstreamId}`);
|
|
74
78
|
return { content: [{ type: "text", text: `Eventstream ${eventstreamId} deleted successfully` }] };
|
|
75
79
|
}
|
|
@@ -102,19 +106,22 @@ export function registerEventstreamTools(server, fabricClient) {
|
|
|
102
106
|
return formatToolError(error);
|
|
103
107
|
}
|
|
104
108
|
});
|
|
105
|
-
server.tool("eventstream_update_definition", "Update the definition of an eventstream (long-running
|
|
109
|
+
server.tool("eventstream_update_definition", "Update the definition of an eventstream (long-running). Accepts raw content inline or a file path reference.", {
|
|
106
110
|
workspaceId: z.string().describe("The workspace ID"),
|
|
107
111
|
eventstreamId: z.string().describe("The eventstream ID"),
|
|
108
|
-
content: z.string().describe("The eventstream definition content (will be base64 encoded)"),
|
|
112
|
+
content: z.string().optional().describe("The eventstream definition content (will be base64 encoded)"),
|
|
113
|
+
contentFilePath: z.string().optional().describe("Path to a file containing the eventstream definition (alternative to inline content)"),
|
|
109
114
|
path: z.string().optional().describe("The definition part path (default: eventstream.json)"),
|
|
110
|
-
}, async ({ workspaceId, eventstreamId, content, path }) => {
|
|
115
|
+
}, async ({ workspaceId, eventstreamId, content, contentFilePath, path }) => {
|
|
111
116
|
try {
|
|
117
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
118
|
+
const resolved = await resolveContentOrFile(content, contentFilePath, "content");
|
|
112
119
|
const body = {
|
|
113
120
|
definition: {
|
|
114
121
|
parts: [
|
|
115
122
|
{
|
|
116
123
|
path: path ?? "eventstream.json",
|
|
117
|
-
payload: encodeBase64(
|
|
124
|
+
payload: encodeBase64(resolved),
|
|
118
125
|
payloadType: "InlineBase64",
|
|
119
126
|
},
|
|
120
127
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventstream.js","sourceRoot":"","sources":["../../src/tools/eventstream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,YAA0B;
|
|
1
|
+
{"version":3,"file":"eventstream.js","sourceRoot":"","sources":["../../src/tools/eventstream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { FabricClient } from "../client/fabric-client.js";
|
|
3
3
|
import { PowerBIClient } from "../client/powerbi-client.js";
|
|
4
|
-
|
|
4
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
5
|
+
export declare function registerGraphQLApiTools(server: McpServer, fabricClient: FabricClient, powerBIClient: PowerBIClient, workspaceGuard: WorkspaceGuard): void;
|
|
5
6
|
//# sourceMappingURL=graphql-api.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAK5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,QA2JlJ"}
|