mcp-dataverse 0.1.9 → 0.2.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/CAPABILITIES.md CHANGED
@@ -46,7 +46,7 @@
46
46
  | ------------------------- | ------------------------------------------------------------- |
47
47
  | **Node.js** | v20+ |
48
48
  | **Dataverse Environment** | Active URL (`https://<org>.crm<N>.dynamics.com`) |
49
- | **Authentication** | PAC CLI (interactive) or Entra ID App Registration (headless) |
49
+ | **Authentication** | Device code flow (interactive) via MSAL |
50
50
 
51
51
  ### Installation & Configuration
52
52
 
@@ -59,11 +59,6 @@ Create `config.json` (see `config.example.json`):
59
59
  ```json
60
60
  {
61
61
  "environmentUrl": "https://yourorg.crm.dynamics.com",
62
- "authMode": "pac",
63
- "pacProfileName": "default",
64
- "tenantId": "",
65
- "clientId": "",
66
- "clientSecret": "",
67
62
  "requestTimeoutMs": 30000,
68
63
  "maxRetries": 3
69
64
  }
@@ -72,19 +67,14 @@ Create `config.json` (see `config.example.json`):
72
67
  | Field | Type | Description |
73
68
  | ---------------------------------------- | --------------- | ------------------------------------------------------- |
74
69
  | `environmentUrl` | `string` | Dataverse environment URL (**required**, must be HTTPS) |
75
- | `authMode` | `"pac"\|"msal"` | Auth strategy (default: `"pac"`) |
76
- | `pacProfileName` | `string` | PAC CLI profile (default: `"default"`) |
77
- | `tenantId` / `clientId` / `clientSecret` | `string` | Required for `authMode: "msal"` |
78
70
  | `requestTimeoutMs` | `number` | HTTP timeout ms (default: `30000`) |
79
71
  | `maxRetries` | `number` | Max retry attempts 0–10 (default: `3`) |
80
72
 
81
- Env vars override config: `DATAVERSE_ENV_URL`, `AUTH_MODE`, `PAC_PROFILE_NAME`, `TENANT_ID`, `CLIENT_ID`, `REQUEST_TIMEOUT_MS`, `MAX_RETRIES`.
73
+ Env vars override config: `DATAVERSE_ENV_URL`, `REQUEST_TIMEOUT_MS`, `MAX_RETRIES`.
82
74
 
83
75
  ### Authentication
84
76
 
85
- **PAC (interactive):** `npm run auth:setup` then `npm run start`. Uses Microsoft's public Platform CLI App ID no registration required. Tokens cached in `.msal-cache.json`.
86
-
87
- **MSAL (headless/CI):** Set `authMode: "msal"` with `tenantId`, `clientId`, `clientSecret`. Tokens acquired via OAuth2 `client_credentials`.
77
+ The server uses Microsoft’s device code flow (MSAL Public Client). On first launch, a sign-in code is displayed in the VS Code Output panel. Open `https://microsoft.com/devicelogin`, paste the code, and sign in with your Power Platform work account. Tokens are cached in `~/.mcp-dataverse/` (encrypted) and renewed automatically.
88
78
 
89
79
  ### Running
90
80
 
@@ -983,12 +973,12 @@ Dataverse error bodies are formatted as `Dataverse error <code>: <message>`. Tim
983
973
 
984
974
  ## Security
985
975
 
986
- | Mode | Flow | Use Case |
987
- | -------- | ------------------------------------------------- | ---------------------- |
988
- | **pac** | MSAL Public Client → device code + silent refresh | Local dev, interactive |
989
- | **msal** | MSAL Confidential Client → `client_credentials` | CI/CD, headless |
976
+ | Mode | Flow | Use Case |
977
+ | ----------------- | ------------------------------------------------- | ---------------------- |
978
+ | **Device Code** | MSAL Public Client → device code + silent refresh | Local dev, interactive |
990
979
 
991
980
  - `clientSecret` is never logged or returned in tool responses.
981
+ - Token cache is encrypted (AES-256-GCM) at `~/.mcp-dataverse/` and should not be shared.
992
982
  - OData path segments use `esc()` (single-quote doubling) to prevent OData injection.
993
983
  - `columnName` in file tools is validated against `/^[a-zA-Z0-9_]+$/` to prevent path traversal.
994
984
  - `MSCRMCallerId` for impersonation is set per-call and cleaned up in a `finally` block regardless of outcome.
@@ -1026,9 +1016,7 @@ Dataverse error bodies are formatted as `Dataverse error <code>: <message>`. Tim
1026
1016
 
1027
1017
  | Limitation | Details |
1028
1018
  | ----------------------- | ---------------------------------------------------------------- |
1029
- | **No certificate auth** | MSAL `clientSecret` only; certificate credentials not supported. |
1030
- | **PAC token expiry** | If the refresh token expires, re-run `npm run auth:setup`. |
1031
- | **MSAL multi-tenant** | Requires explicit `tenantId`; no `common` authority support. |
1019
+ | **Token expiry** | If the refresh token expires (~90 days), re-run `npm run auth:setup`. |
1032
1020
 
1033
1021
  ### Dependencies & Solutions
1034
1022
 
package/README.md CHANGED
@@ -8,29 +8,45 @@ MCP server that exposes the Microsoft Dataverse Web API as **50 AI-callable tool
8
8
 
9
9
  ## Install
10
10
 
11
- ### One-click (VS Code)
11
+ ### Recommended — VS Code Command Palette
12
12
 
13
- [![Install in VS Code](https://img.shields.io/badge/VS%20Code-Install-0078d4?logo=visualstudiocode)](https://vscode.dev/redirect/mcp/install?name=mcp-dataverse&config=%7B%22args%22%3A%5B%22-y%22%2C%22mcp-dataverse%22%5D%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22env%22%3A%7B%22DATAVERSE_ENV_URL%22%3A%22%24%7Binput%3Adataverse_env_url%7D%22%2C%22AUTH_MODE%22%3A%22%24%7Binput%3Adataverse_auth_mode%7D%22%2C%22PAC_PROFILE_NAME%22%3A%22%24%7Binput%3Adataverse_pac_profile%7D%22%7D%7D&inputs=%5B%7B%22id%22%3A%22dataverse_env_url%22%2C%22password%22%3Afalse%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Dataverse%20URL%20%28e.g.%20https%3A%2F%2Fyourorg.crm.dynamics.com%29%22%7D%2C%7B%22default%22%3A%22pac%22%2C%22id%22%3A%22dataverse_auth_mode%22%2C%22password%22%3Afalse%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Auth%20mode%3A%20pac%20%28default%29%20or%20msal%22%7D%2C%7B%22default%22%3A%22default%22%2C%22id%22%3A%22dataverse_pac_profile%22%2C%22password%22%3Afalse%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22PAC%20CLI%20profile%20name%20%28default%3A%20default%29%22%7D%5D) [![Install in VS Code Insiders](https://img.shields.io/badge/VS%20Code%20Insiders-Install-24bfa5?logo=visualstudiocode)](https://insiders.vscode.dev/redirect/mcp/install?name=mcp-dataverse&config=%7B%22args%22%3A%5B%22-y%22%2C%22mcp-dataverse%22%5D%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22env%22%3A%7B%22DATAVERSE_ENV_URL%22%3A%22%24%7Binput%3Adataverse_env_url%7D%22%2C%22AUTH_MODE%22%3A%22%24%7Binput%3Adataverse_auth_mode%7D%22%2C%22PAC_PROFILE_NAME%22%3A%22%24%7Binput%3Adataverse_pac_profile%7D%22%7D%7D&inputs=%5B%7B%22id%22%3A%22dataverse_env_url%22%2C%22password%22%3Afalse%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Dataverse%20URL%20%28e.g.%20https%3A%2F%2Fyourorg.crm.dynamics.com%29%22%7D%2C%7B%22default%22%3A%22pac%22%2C%22id%22%3A%22dataverse_auth_mode%22%2C%22password%22%3Afalse%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Auth%20mode%3A%20pac%20%28default%29%20or%20msal%22%7D%2C%7B%22default%22%3A%22default%22%2C%22id%22%3A%22dataverse_pac_profile%22%2C%22password%22%3Afalse%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22PAC%20CLI%20profile%20name%20%28default%3A%20default%29%22%7D%5D)
13
+ This is the most reliable installation method, confirmed working on both VS Code and VS Code Insiders.
14
14
 
15
- > VS Code will prompt for your Dataverse URL, auth mode, and PAC profile during installation.
15
+ 1. Open VS Code
16
+ 2. Press **Ctrl+Shift+P** (or **Cmd+Shift+P** on macOS)
17
+ 3. Type **`MCP: Add Server`** and select it
18
+ 4. Choose **`NPM Package`**
19
+ 5. Enter the package name: **`mcp-dataverse`**
20
+ 6. Choose the scope: **User** (available in all workspaces) or **Workspace** (current project only)
16
21
 
17
- ### Command line
22
+ VS Code will create or update `mcp.json` automatically. Then **edit the generated entry** to add your environment URL:
18
23
 
19
- ```bash
20
- # VS Code
21
- code --add-mcp '{"name":"dataverse","type":"stdio","command":"npx","args":["-y","mcp-dataverse"],"env":{"DATAVERSE_ENV_URL":"https://yourorg.crm.dynamics.com","AUTH_MODE":"pac"}}'
22
-
23
- # VS Code Insiders
24
- code-insiders --add-mcp '{"name":"dataverse","type":"stdio","command":"npx","args":["-y","mcp-dataverse"],"env":{"DATAVERSE_ENV_URL":"https://yourorg.crm.dynamics.com","AUTH_MODE":"pac"}}'
24
+ ```jsonc
25
+ // ~/.config/Code/User/mcp.json (User scope)
26
+ // or .vscode/mcp.json (Workspace scope)
27
+ {
28
+ "servers": {
29
+ "mcp-dataverse": {
30
+ "type": "stdio",
31
+ "command": "npx",
32
+ "args": ["-y", "mcp-dataverse"],
33
+ "env": {
34
+ "DATAVERSE_ENV_URL": "https://yourorg.crm.dynamics.com",
35
+ },
36
+ },
37
+ },
38
+ }
25
39
  ```
26
40
 
27
- > Replace `https://yourorg.crm.dynamics.com` with your actual Dataverse environment URL.
41
+ Replace `https://yourorg.crm.dynamics.com` with your actual Dataverse environment URL.
42
+
43
+ ---
28
44
 
29
45
  ### Manual (mcp.json)
30
46
 
31
- Add to your `.vscode/mcp.json` (or user settings):
47
+ Create or edit `.vscode/mcp.json` in your project (workspace scope) or the user-level `mcp.json`:
32
48
 
33
- ```json
49
+ ```jsonc
34
50
  {
35
51
  "servers": {
36
52
  "dataverse": {
@@ -39,18 +55,117 @@ Add to your `.vscode/mcp.json` (or user settings):
39
55
  "args": ["-y", "mcp-dataverse"],
40
56
  "env": {
41
57
  "DATAVERSE_ENV_URL": "https://yourorg.crm.dynamics.com",
42
- "AUTH_MODE": "pac"
43
- }
44
- }
45
- }
58
+ },
59
+ },
60
+ },
46
61
  }
47
62
  ```
48
63
 
64
+ ---
65
+
66
+ ### Command line (`code --add-mcp`)
67
+
68
+ > ⚠️ **PowerShell on Windows**: The single-quote JSON syntax is broken in PowerShell 5.1 (double quotes get stripped). Use one of the workarounds below.
69
+
70
+ **Bash / Git Bash / macOS / Linux:**
71
+
72
+ ```bash
73
+ code --add-mcp '{"name":"dataverse","type":"stdio","command":"npx","args":["-y","mcp-dataverse"],"env":{"DATAVERSE_ENV_URL":"https://yourorg.crm.dynamics.com"}}'
74
+ ```
75
+
76
+ **PowerShell (Windows) — use escaped quotes:**
77
+
78
+ ```powershell
79
+ code --add-mcp '{\"name\":\"dataverse\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"mcp-dataverse\"],\"env\":{\"DATAVERSE_ENV_URL\":\"https://yourorg.crm.dynamics.com\"}}'
80
+ ```
81
+
82
+ **PowerShell — alternative using a variable:**
83
+
84
+ ```powershell
85
+ $cfg = '{"name":"dataverse","type":"stdio","command":"npx","args":["-y","mcp-dataverse"],"env":{"DATAVERSE_ENV_URL":"https://yourorg.crm.dynamics.com"}}'
86
+ code --add-mcp $cfg
87
+ ```
88
+
89
+ Replace `https://yourorg.crm.dynamics.com` with your actual Dataverse environment URL.
90
+
91
+ ---
92
+
93
+ ## Authentication — automatic, no setup required
94
+
95
+ **No PAC CLI, no Azure AD app registration, no credentials to configure.**
96
+
97
+ The server uses Microsoft's device code flow (MSAL Public Client) — the same mechanism used by Power Platform CLI. Zero pre-configuration: just set your environment URL and the server handles the rest.
98
+
99
+ ### First connection — what you'll see
100
+
101
+ Authentication is triggered on the **first tool call** after the server starts (e.g. asking Copilot _"Who am I in Dataverse?"_). Here is the exact sequence:
102
+
103
+ **Step 1 — Open the Output panel**
104
+
105
+ In VS Code: **View → Output** → select **MCP** in the dropdown.
106
+
107
+ **Step 2 — The sign-in prompt appears**
108
+
109
+ ```
110
+ [mcp-dataverse] First-time authentication required.
111
+ Environment: https://yourorg.crm.dynamics.com
112
+ Open the URL below in your browser to sign in.
113
+
114
+ [mcp-dataverse] Sign in required
115
+
116
+ 1. Open https://microsoft.com/devicelogin in your browser
117
+ (use the browser profile linked to your Power Platform account)
118
+ 2. Paste the code: ABCD-1234 (already copied to your clipboard)
119
+ 3. Sign in with your work account
120
+ ```
121
+
122
+ **Step 3 — Sign in**
123
+
124
+ 1. Open `https://microsoft.com/devicelogin` in the browser/profile linked to your **Power Platform work account**
125
+ 2. Paste the code — it's already in your clipboard
126
+ 3. Complete Microsoft sign-in with your work account
127
+
128
+ **Step 4 — Confirmation in the Output panel**
129
+
130
+ ```
131
+ [mcp-dataverse] Authenticated ✓ Token cached — no sign-in needed next time.
132
+ ```
133
+
134
+ The tool call that triggered auth now completes. All 50 tools are ready to use.
135
+
136
+ > ⏱ The code expires after **5 minutes**. If it times out, retry the tool call — a new code will be generated.
137
+
138
+ > **Why not auto-open the browser?** Consultants often work with multiple browser profiles (personal vs. work). Device code flow intentionally lets _you_ choose the right browser and profile.
139
+
140
+ ### Subsequent launches
141
+
142
+ The token is cached encrypted (AES-256-GCM) in `~/.mcp-dataverse/`. On all future server starts, renewal is **completely silent** — no prompt, no browser.
143
+
144
+ You only need to re-authenticate if the refresh token expires (~90 days of inactivity) or you reset it manually:
145
+
146
+ ```bash
147
+ npx mcp-dataverse-auth https://yourorg.crm.dynamics.com
148
+ ```
149
+
150
+ When re-auth is needed, the Output panel shows:
151
+
152
+ ```
153
+ [mcp-dataverse] Session expired — re-authenticating.
154
+ Open the URL below in your browser to sign in again.
155
+
156
+ [mcp-dataverse] Sign in required
157
+ ...
158
+ ```
159
+
160
+ The same device code process applies.
161
+
162
+ ---
163
+
49
164
  ## Prerequisites
50
165
 
51
166
  - Node.js 20+
52
- - PAC CLI installed & authenticated → [aka.ms/PowerAppsCLI](https://aka.ms/PowerAppsCLI)
53
167
  - VS Code + GitHub Copilot (Agent mode)
168
+ - A Dataverse environment with a licensed user account
54
169
 
55
170
  ## Quick Start (< 5 min)
56
171
 
@@ -72,8 +187,6 @@ Edit `config.json`:
72
187
  | Field | Description |
73
188
  | ------------------ | ----------------------------------------------------- |
74
189
  | `environmentUrl` | Your org URL, e.g. `https://yourorg.crm.dynamics.com` |
75
- | `authMode` | `"pac"` (recommended) or `"msal"` |
76
- | `pacProfileName` | PAC CLI profile name (default: `"default"`) |
77
190
  | `requestTimeoutMs` | HTTP timeout in ms (default: `30000`) |
78
191
  | `maxRetries` | Retry count on transient errors (default: `3`) |
79
192
 
@@ -83,9 +196,7 @@ Edit `config.json`:
83
196
  npm run auth:setup
84
197
  ```
85
198
 
86
- Runs device code authentication. Follow the URL printed to the terminal — sign in with your Power Platform account. Token is cached in `.msal-cache.json` for silent reuse.
87
-
88
- > Only required for `authMode: "pac"`. Skip if PAC CLI (`pac auth create`) is already authenticated.
199
+ Runs device code authentication. Follow the URL printed to the terminal — sign in with your Power Platform account. Token is cached and silently renewed.
89
200
 
90
201
  ### 4. Build
91
202
 
@@ -185,24 +296,6 @@ WhoAmI result: { UserId: 'xxxxxxxx-...', BusinessUnitId: 'xxxxxxxx-...', Organiz
185
296
 
186
297
  ---
187
298
 
188
- ## Advanced Configuration (MSAL)
189
-
190
- For service-principal auth (CI/CD, unattended), set `authMode: "msal"` in `config.json`:
191
-
192
- ```json
193
- {
194
- "environmentUrl": "https://yourorg.crm.dynamics.com",
195
- "authMode": "msal",
196
- "tenantId": "<azure-ad-tenant-id>",
197
- "clientId": "<app-registration-client-id>",
198
- "clientSecret": "<client-secret>"
199
- }
200
- ```
201
-
202
- > The app registration must have the **Dynamics CRM → user_impersonation** API permission and the corresponding Dataverse security role.
203
-
204
- ---
205
-
206
299
  ## Scripts
207
300
 
208
301
  | Command | Description |
@@ -221,29 +314,31 @@ For service-principal auth (CI/CD, unattended), set `authMode: "msal"` in `confi
221
314
 
222
315
  ## Architecture
223
316
 
224
- TypeScript MCP server over **stdio** transport. An `AuthProvider` (PAC CLI or MSAL) injects Bearer tokens into a native-`fetch`-based `HttpClient` wrapped by `DataverseClient`. Each tool module registers handlers with the MCP `Server` instance.
317
+ TypeScript MCP server over **stdio** transport. The `DeviceCodeAuthProvider` (MSAL device code flow) injects Bearer tokens into a native-`fetch`-based `HttpClient` wrapped by `DataverseClient`. Each tool module registers handlers with the MCP `Server` instance.
225
318
 
226
319
  ```
227
320
  GitHub Copilot → stdio → MCP Server → Tool Router → DataverseClient → Dataverse Web API v9.2
228
- └── AuthProvider (PAC CLI | MSAL)
321
+ └── DeviceCodeAuthProvider (MSAL)
229
322
  ```
230
323
 
231
324
  ---
232
325
 
233
326
  ## Security
234
327
 
235
- - **Never commit `config.json`** or `.msal-cache.json` both are in `.gitignore`
328
+ - **Never commit `config.json`** — it is in `.gitignore`
329
+ - Token cache (`~/.mcp-dataverse/`) is encrypted (AES-256-GCM) and should not be shared
236
330
  - Tokens are never logged; only diagnostic messages are written to stderr
237
- - PAC CLI tokens are scoped to the authenticated user — no privilege escalation
238
- - Service principal (`msal`) should be assigned the least-privilege Dataverse security role
331
+ - Tokens are scoped to the authenticated user — no privilege escalation
239
332
 
240
333
  ---
241
334
 
242
335
  ## Troubleshooting
243
336
 
244
- | Symptom | Fix |
245
- | ------------------------------------------ | -------------------------------------------------------------------- |
246
- | `No MSAL accounts found` | Run `npm run auth:setup` to re-authenticate |
247
- | `"https://" is required` | Check `environmentUrl` in `config.json` must start with `https://` |
248
- | `pac: command not found` | Install PAC CLI and run `pac auth create --environment <url>` |
249
- | Server not appearing in Copilot Agent mode | Restart VS Code; check **Output MCP** panel for errors |
337
+ | Symptom | Fix |
338
+ | ------------------------------------------ | -------------------------------------------------------------------------------- |
339
+ | No sign-in prompt appeared | Open **View Output MCP** in VS Code — the device code is displayed there |
340
+ | Browser didn't open automatically | Copy the URL from the Output panel manually: `https://microsoft.com/devicelogin` |
341
+ | `No MSAL accounts found` | Run `npx mcp-dataverse-auth` to re-authenticate, then restart the server |
342
+ | `Authentication timed out` | The 5-minute window expired restart the MCP server to get a new code |
343
+ | `"https://" is required` | Check `DATAVERSE_ENV_URL` in your `mcp.json` — must start with `https://` |
344
+ | Server not appearing in Copilot Agent mode | Restart VS Code; check **Output → MCP** panel for errors |
@@ -1 +1 @@
1
- {"version":3,"file":"auth-provider.factory.d.ts","sourceRoot":"","sources":["../../src/auth/auth-provider.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAW/D"}
1
+ {"version":3,"file":"auth-provider.factory.d.ts","sourceRoot":"","sources":["../../src/auth/auth-provider.factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAE/D"}
@@ -1,15 +1,5 @@
1
- import { PacAuthProvider } from "./pac-auth-provider.js";
2
- import { MsalAuthProvider } from "./msal-auth-provider.js";
1
+ import { DeviceCodeAuthProvider } from "./device-code-auth-provider.js";
3
2
  export function createAuthProvider(config) {
4
- switch (config.authMode) {
5
- case "pac":
6
- return new PacAuthProvider(config.environmentUrl);
7
- case "msal":
8
- return new MsalAuthProvider(config);
9
- default: {
10
- const _exhaustive = config.authMode;
11
- throw new Error(`Unknown auth mode: ${_exhaustive}`);
12
- }
13
- }
3
+ return new DeviceCodeAuthProvider(config.environmentUrl);
14
4
  }
15
5
  //# sourceMappingURL=auth-provider.factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-provider.factory.js","sourceRoot":"","sources":["../../src/auth/auth-provider.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM;YACT,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,MAAM,CAAC,QAAQ,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth-provider.factory.js","sourceRoot":"","sources":["../../src/auth/auth-provider.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AuthProvider } from "./auth-provider.interface.js";
2
+ export declare class DeviceCodeAuthProvider implements AuthProvider {
3
+ readonly environmentUrl: string;
4
+ private readonly pca;
5
+ private cachedToken;
6
+ private tokenExpiresAt;
7
+ private pendingAuth;
8
+ constructor(environmentUrl: string);
9
+ getToken(): Promise<string>;
10
+ invalidateToken(): void;
11
+ isAuthenticated(): Promise<boolean>;
12
+ setupViaDeviceCode(): Promise<void>;
13
+ private refreshToken;
14
+ private acquireSilently;
15
+ private runDeviceCodeFlow;
16
+ private cacheResult;
17
+ }
18
+ //# sourceMappingURL=device-code-auth-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-code-auth-provider.d.ts","sourceRoot":"","sources":["../../src/auth/device-code-auth-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA+DjE,qBAAa,sBAAuB,YAAW,YAAY;IACzD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAC9C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAgC;gBAEvC,cAAc,EAAE,MAAM;IAQ5B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjC,eAAe,IAAI,IAAI;IAEjB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;YAE3B,YAAY;YAsBZ,eAAe;YASf,iBAAiB;IAuB/B,OAAO,CAAC,WAAW;CAIpB"}
@@ -0,0 +1,167 @@
1
+ import { PublicClientApplication, } from "@azure/msal-node";
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
3
+ import { homedir } from "os";
4
+ import { join } from "path";
5
+ import { exec } from "child_process";
6
+ import { platform } from "process";
7
+ import { createCipheriv, createDecipheriv, createHash, randomBytes, } from "crypto";
8
+ function copyToClipboard(text) {
9
+ const cmd = platform === "win32" ? `echo|set /p="${text}"| clip`
10
+ : platform === "darwin" ? `printf '%s' '${text}' | pbcopy`
11
+ : `printf '%s' '${text}' | xclip -selection clipboard 2>/dev/null || printf '%s' '${text}' | xsel --clipboard 2>/dev/null`;
12
+ exec(cmd, () => { });
13
+ }
14
+ const PLATFORM_CLIENT_ID = "1950a258-227b-4e31-a9cf-717495945fc2";
15
+ const CACHE_DIR = join(homedir(), ".mcp-dataverse");
16
+ const TOKEN_CACHE_FILE = join(CACHE_DIR, "msal-cache.json");
17
+ const DEVICE_CODE_TIMEOUT_MS = 5 * 60 * 1000;
18
+ function getDerivedKey() {
19
+ const seed = [
20
+ process.env["COMPUTERNAME"] ?? process.env["HOSTNAME"] ?? "",
21
+ process.env["USERNAME"] ?? process.env["USER"] ?? "",
22
+ "mcp-dataverse-cache-v1",
23
+ ].join(".");
24
+ return createHash("sha256").update(seed).digest();
25
+ }
26
+ function encryptForDisk(plaintext) {
27
+ const key = getDerivedKey();
28
+ const iv = randomBytes(16);
29
+ const cipher = createCipheriv("aes-256-gcm", key, iv);
30
+ const encrypted = Buffer.concat([cipher.update(plaintext, "utf-8"), cipher.final()]);
31
+ return JSON.stringify({ v: 1, iv: iv.toString("hex"), tag: cipher.getAuthTag().toString("hex"), d: encrypted.toString("hex") });
32
+ }
33
+ function decryptFromDisk(raw) {
34
+ const parsed = JSON.parse(raw);
35
+ if (parsed["v"] !== 1)
36
+ throw new Error("Unknown cache format version");
37
+ const iv = Buffer.from(parsed["iv"], "hex");
38
+ const tag = Buffer.from(parsed["tag"], "hex");
39
+ const encrypted = Buffer.from(parsed["d"], "hex");
40
+ const decipher = createDecipheriv("aes-256-gcm", getDerivedKey(), iv);
41
+ decipher.setAuthTag(tag);
42
+ return decipher.update(encrypted).toString("utf-8") + decipher.final("utf-8");
43
+ }
44
+ function createCachePlugin() {
45
+ return {
46
+ beforeCacheAccess: async (cacheContext) => {
47
+ if (existsSync(TOKEN_CACHE_FILE)) {
48
+ try {
49
+ const raw = readFileSync(TOKEN_CACHE_FILE, "utf-8");
50
+ let serialized;
51
+ try {
52
+ serialized = decryptFromDisk(raw);
53
+ }
54
+ catch {
55
+ serialized = raw;
56
+ }
57
+ cacheContext.tokenCache.deserialize(serialized);
58
+ }
59
+ catch { /* corrupt cache — re-auth automatically */ }
60
+ }
61
+ },
62
+ afterCacheAccess: async (cacheContext) => {
63
+ if (cacheContext.cacheHasChanged) {
64
+ mkdirSync(CACHE_DIR, { recursive: true });
65
+ writeFileSync(TOKEN_CACHE_FILE, encryptForDisk(cacheContext.tokenCache.serialize()), { encoding: "utf-8", mode: 0o600 });
66
+ }
67
+ },
68
+ };
69
+ }
70
+ export class DeviceCodeAuthProvider {
71
+ environmentUrl;
72
+ pca;
73
+ cachedToken = null;
74
+ tokenExpiresAt = 0;
75
+ pendingAuth = null;
76
+ constructor(environmentUrl) {
77
+ this.environmentUrl = environmentUrl.replace(/\/$/, "");
78
+ this.pca = new PublicClientApplication({
79
+ auth: { clientId: PLATFORM_CLIENT_ID, authority: "https://login.microsoftonline.com/common" },
80
+ cache: { cachePlugin: createCachePlugin() },
81
+ });
82
+ }
83
+ async getToken() {
84
+ const now = Date.now();
85
+ if (this.cachedToken !== null && this.tokenExpiresAt > now + 60_000)
86
+ return this.cachedToken;
87
+ if (this.pendingAuth !== null)
88
+ return this.pendingAuth;
89
+ this.pendingAuth = this.refreshToken().finally(() => { this.pendingAuth = null; });
90
+ return this.pendingAuth;
91
+ }
92
+ invalidateToken() { this.cachedToken = null; this.tokenExpiresAt = 0; }
93
+ async isAuthenticated() {
94
+ try {
95
+ await this.getToken();
96
+ return true;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ async setupViaDeviceCode() { await this.runDeviceCodeFlow(); }
103
+ async refreshToken() {
104
+ const accounts = await this.pca.getAllAccounts();
105
+ if (accounts.length === 0) {
106
+ process.stderr.write("\n[mcp-dataverse] First-time authentication required.\n" + `Environment: ${this.environmentUrl}\n` + "Open the URL below in your browser to sign in.\n\n");
107
+ try {
108
+ await this.runDeviceCodeFlow();
109
+ return await this.acquireSilently();
110
+ }
111
+ catch (err) {
112
+ const detail = err instanceof Error ? err.message : String(err);
113
+ throw new Error(`Authentication setup failed: ${detail}\n\nYou can also authenticate manually:\n npx mcp-dataverse-auth ${this.environmentUrl}\nThen restart the MCP server in VS Code.`);
114
+ }
115
+ }
116
+ try {
117
+ return await this.acquireSilently();
118
+ }
119
+ catch {
120
+ process.stderr.write("\n[mcp-dataverse] Session expired — re-authenticating.\nOpen the URL below in your browser to sign in again.\n\n");
121
+ try {
122
+ await this.runDeviceCodeFlow();
123
+ return await this.acquireSilently();
124
+ }
125
+ catch (err) {
126
+ this.cachedToken = null;
127
+ const detail = err instanceof Error ? err.message : String(err);
128
+ throw new Error(`Re-authentication failed: ${detail}\n\nTo authenticate manually:\n npx mcp-dataverse-auth ${this.environmentUrl}\nThen restart the MCP server in VS Code.`);
129
+ }
130
+ }
131
+ }
132
+ async acquireSilently() {
133
+ const accounts = await this.pca.getAllAccounts();
134
+ if (accounts.length === 0)
135
+ throw new Error("No account found in cache after authentication.");
136
+ const result = await this.pca.acquireTokenSilent({ scopes: [`${this.environmentUrl}/.default`], account: accounts[0] });
137
+ if (!result?.accessToken)
138
+ throw new Error("Token acquisition returned an empty access token.");
139
+ this.cacheResult(result);
140
+ return result.accessToken;
141
+ }
142
+ async runDeviceCodeFlow() {
143
+ const result = await Promise.race([
144
+ this.pca.acquireTokenByDeviceCode({
145
+ scopes: [`${this.environmentUrl}/.default`],
146
+ deviceCodeCallback: (response) => {
147
+ copyToClipboard(response.userCode);
148
+ process.stderr.write(`\n[mcp-dataverse] Sign in required\n` +
149
+ `\n 1. Open ${response.verificationUri} in your browser\n` +
150
+ ` (use the browser profile linked to your Power Platform account)\n` +
151
+ ` 2. Paste the code: ${response.userCode} (already copied to your clipboard)\n` +
152
+ ` 3. Sign in with your work account\n\n`);
153
+ },
154
+ }),
155
+ new Promise((_, reject) => setTimeout(() => reject(new Error("Authentication timed out after 5 minutes. Please try again.")), DEVICE_CODE_TIMEOUT_MS)),
156
+ ]);
157
+ if (result) {
158
+ this.cacheResult(result);
159
+ process.stderr.write("\n[mcp-dataverse] Authenticated ✓ Token cached — no sign-in needed next time.\n\n");
160
+ }
161
+ }
162
+ cacheResult(result) {
163
+ this.cachedToken = result.accessToken;
164
+ this.tokenExpiresAt = result.expiresOn?.getTime() ?? Date.now() + 55 * 60 * 1000;
165
+ }
166
+ }
167
+ //# sourceMappingURL=device-code-auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-code-auth-provider.js","sourceRoot":"","sources":["../../src/auth/device-code-auth-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pac-auth-provider.d.ts","sourceRoot":"","sources":["../../src/auth/pac-auth-provider.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAwDjE,qBAAa,eAAgB,YAAW,YAAY;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAC9C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAgC;gBAEvC,cAAc,EAAE,MAAM;IAQ5B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjC,eAAe,IAAI,IAAI;IAEjB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;YAE3B,YAAY;YAsBZ,eAAe;YASf,iBAAiB;IAW/B,OAAO,CAAC,WAAW;CAIpB"}
1
+ {"version":3,"file":"pac-auth-provider.d.ts","sourceRoot":"","sources":["../../src/auth/pac-auth-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAsEjE,qBAAa,eAAgB,YAAW,YAAY;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAC9C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAgC;gBAEvC,cAAc,EAAE,MAAM;IAQ5B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjC,eAAe,IAAI,IAAI;IAEjB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;YAE3B,YAAY;YAsBZ,eAAe;YASf,iBAAiB;IAqB/B,OAAO,CAAC,WAAW;CAIpB"}
@@ -2,7 +2,21 @@ import { PublicClientApplication, } from "@azure/msal-node";
2
2
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
3
3
  import { homedir } from "os";
4
4
  import { join } from "path";
5
+ import { exec } from "child_process";
6
+ import { platform } from "process";
5
7
  import { createCipheriv, createDecipheriv, createHash, randomBytes, } from "crypto";
8
+ function openBrowser(url) {
9
+ const cmd = platform === "win32" ? `start "" "${url}"`
10
+ : platform === "darwin" ? `open "${url}"`
11
+ : `xdg-open "${url}"`;
12
+ exec(cmd, () => { });
13
+ }
14
+ function copyToClipboard(text) {
15
+ const cmd = platform === "win32" ? `echo|set /p="${text}"| clip`
16
+ : platform === "darwin" ? `printf '%s' '${text}' | pbcopy`
17
+ : `printf '%s' '${text}' | xclip -selection clipboard 2>/dev/null || printf '%s' '${text}' | xsel --clipboard 2>/dev/null`;
18
+ exec(cmd, () => { });
19
+ }
6
20
  const PLATFORM_CLIENT_ID = "1950a258-227b-4e31-a9cf-717495945fc2";
7
21
  const CACHE_DIR = join(homedir(), ".mcp-dataverse");
8
22
  const TOKEN_CACHE_FILE = join(CACHE_DIR, "msal-cache.json");
@@ -135,7 +149,15 @@ export class PacAuthProvider {
135
149
  const result = await Promise.race([
136
150
  this.pca.acquireTokenByDeviceCode({
137
151
  scopes: [`${this.environmentUrl}/.default`],
138
- deviceCodeCallback: (response) => { process.stderr.write(`${response.message}\n\n`); },
152
+ deviceCodeCallback: (response) => {
153
+ process.stderr.write(`\n[mcp-dataverse] Sign in required\n` +
154
+ `Code: ${response.userCode}\n` +
155
+ `URL: ${response.verificationUri}\n` +
156
+ `\n→ Browser opened automatically. Paste the code and sign in.\n` +
157
+ ` (code copied to clipboard)\n\n`);
158
+ copyToClipboard(response.userCode);
159
+ openBrowser(response.verificationUri);
160
+ },
139
161
  }),
140
162
  new Promise((_, reject) => setTimeout(() => reject(new Error("Authentication timed out after 5 minutes. Please try again.")), DEVICE_CODE_TIMEOUT_MS)),
141
163
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"pac-auth-provider.js","sourceRoot":"","sources":["../../src/auth/pac-auth-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pac-auth-provider.js","sourceRoot":"","sources":["../../src/auth/pac-auth-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.loader.d.ts","sourceRoot":"","sources":["../../src/config/config.loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI/D,wBAAgB,UAAU,IAAI,MAAM,CAuDnC"}
1
+ {"version":3,"file":"config.loader.d.ts","sourceRoot":"","sources":["../../src/config/config.loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI/D,wBAAgB,UAAU,IAAI,MAAM,CAwCnC"}
@@ -21,21 +21,6 @@ export function loadConfig() {
21
21
  const envUrl = process.env["DATAVERSE_ENV_URL"] ?? process.env["environmentUrl"];
22
22
  if (envUrl)
23
23
  rawConfig["environmentUrl"] = envUrl;
24
- const authMode = process.env["AUTH_MODE"] ?? process.env["authMode"];
25
- if (authMode)
26
- rawConfig["authMode"] = authMode;
27
- const pacProfile = process.env["PAC_PROFILE_NAME"] ?? process.env["pacProfileName"];
28
- if (pacProfile)
29
- rawConfig["pacProfileName"] = pacProfile;
30
- const tenantId = process.env["TENANT_ID"] ?? process.env["tenantId"];
31
- if (tenantId)
32
- rawConfig["tenantId"] = tenantId;
33
- const clientId = process.env["CLIENT_ID"] ?? process.env["clientId"];
34
- if (clientId)
35
- rawConfig["clientId"] = clientId;
36
- const clientSecret = process.env["CLIENT_SECRET"] ?? process.env["clientSecret"];
37
- if (clientSecret)
38
- rawConfig["clientSecret"] = clientSecret;
39
24
  const timeoutMs = process.env["REQUEST_TIMEOUT_MS"] ?? process.env["requestTimeoutMs"];
40
25
  if (timeoutMs)
41
26
  rawConfig["requestTimeoutMs"] = Number(timeoutMs);
@@ -1 +1 @@
1
- {"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/config/config.loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/config/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAE/D,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAEvC,MAAM,UAAU,UAAU;IACxB,yEAAyE;IACzE,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAE1E,IAAI,SAAS,GAA4B,EAAE,CAAC;IAE5C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA4B,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,8DAA8D,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,4EAA4E;IAC5E,iFAAiF;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjF,IAAI,MAAM;QAAE,SAAS,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;IAEjD,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACvE,IAAI,SAAS;QAAE,SAAS,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3E,IAAI,UAAU;QAAE,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -1,29 +1,14 @@
1
1
  import { z } from "zod";
2
2
  export declare const ConfigSchema: z.ZodObject<{
3
3
  environmentUrl: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
4
- authMode: z.ZodDefault<z.ZodEnum<["pac", "msal"]>>;
5
- pacProfileName: z.ZodDefault<z.ZodString>;
6
- tenantId: z.ZodOptional<z.ZodString>;
7
- clientId: z.ZodOptional<z.ZodString>;
8
- clientSecret: z.ZodOptional<z.ZodString>;
9
4
  requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
10
5
  maxRetries: z.ZodDefault<z.ZodNumber>;
11
6
  }, "strip", z.ZodTypeAny, {
12
7
  environmentUrl: string;
13
- authMode: "pac" | "msal";
14
- pacProfileName: string;
15
8
  requestTimeoutMs: number;
16
9
  maxRetries: number;
17
- tenantId?: string | undefined;
18
- clientId?: string | undefined;
19
- clientSecret?: string | undefined;
20
10
  }, {
21
11
  environmentUrl: string;
22
- authMode?: "pac" | "msal" | undefined;
23
- pacProfileName?: string | undefined;
24
- tenantId?: string | undefined;
25
- clientId?: string | undefined;
26
- clientSecret?: string | undefined;
27
12
  requestTimeoutMs?: number | undefined;
28
13
  maxRetries?: number | undefined;
29
14
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;;;;;;;;EAmBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -14,11 +14,6 @@ export const ConfigSchema = z.object({
14
14
  return false;
15
15
  }
16
16
  }, { message: "environmentUrl must be a *.dynamics.com host" }),
17
- authMode: z.enum(["pac", "msal"]).default("pac"),
18
- pacProfileName: z.string().default("default"),
19
- tenantId: z.string().optional(),
20
- clientId: z.string().optional(),
21
- clientSecret: z.string().optional(),
22
17
  requestTimeoutMs: z.number().positive().default(30000),
23
18
  maxRetries: z.number().min(0).max(10).default(3),
24
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,2CAA2C,CAAC;SAChD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC3C,OAAO,EAAE,0CAA0C;KACpD,CAAC;SACD,MAAM,CACL,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAC5D;IACH,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC,CAAC"}
1
+ {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,2CAA2C,CAAC;SAChD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC3C,OAAO,EAAE,0CAA0C;KACpD,CAAC;SACD,MAAM,CACL,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EACD,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAC5D;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC,CAAC"}
package/dist/server.js CHANGED
@@ -157,6 +157,15 @@ async function main() {
157
157
  await server.connect(transport);
158
158
  // Do not log to stdout — stdio transport uses stdout for protocol messages
159
159
  process.stderr.write("MCP Dataverse server started\n");
160
+ // Proactively trigger authentication at startup so the device-code prompt
161
+ // appears immediately in the VS Code MCP Output panel (View → Output → MCP),
162
+ // rather than only on the first tool call.
163
+ authProvider.getToken().then(() => {
164
+ process.stderr.write("[mcp-dataverse] Authenticated ✓\n");
165
+ }).catch((err) => {
166
+ const msg = err instanceof Error ? err.message : String(err);
167
+ process.stderr.write(`[mcp-dataverse] Authentication failed: ${msg}\n`);
168
+ });
160
169
  }
161
170
  main().catch((error) => {
162
171
  process.stderr.write(`Fatal error: ${error instanceof Error ? error.message : String(error)}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * The token is cached in ~/.mcp-dataverse/msal-cache.json and reused silently.
8
8
  */
9
9
  import { loadConfig } from "./config/config.loader.js";
10
- import { PacAuthProvider } from "./auth/pac-auth-provider.js";
10
+ import { DeviceCodeAuthProvider } from "./auth/device-code-auth-provider.js";
11
11
  async function main() {
12
12
  process.stderr.write("MCP Dataverse — One-time Authentication Setup\n");
13
13
  process.stderr.write("──────────────────────────────────────────────\n");
@@ -26,14 +26,10 @@ async function main() {
26
26
  "Or set DATAVERSE_ENV_URL before running.\n");
27
27
  process.exit(1);
28
28
  }
29
- if (config.authMode !== "pac") {
30
- process.stderr.write(`Auth mode is "${config.authMode}" — setup only needed for "pac" mode.\n`);
31
- process.exit(0);
32
- }
33
29
  process.stderr.write(`Environment : ${config.environmentUrl}\n`);
34
30
  process.stderr.write(`Token cache : ~/.mcp-dataverse/msal-cache.json\n\n`);
35
31
  process.stderr.write("A browser window will open. Sign in with your Microsoft account.\n\n");
36
- const provider = new PacAuthProvider(config.environmentUrl);
32
+ const provider = new DeviceCodeAuthProvider(config.environmentUrl);
37
33
  await provider.setupViaDeviceCode();
38
34
  process.stderr.write("\n✓ Authentication successful!\n" +
39
35
  " Token cached in ~/.mcp-dataverse/msal-cache.json\n\n" +
@@ -1 +1 @@
1
- {"version":3,"file":"setup-auth.js","sourceRoot":"","sources":["../src/setup-auth.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAEzE,8FAA8F;IAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC;YAC9B,kEAAkE;YAClE,4CAA4C,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iBAAiB,MAAM,CAAC,QAAQ,yCAAyC,CAC1E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oDAAoD,CACrD,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAE7F,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5D,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAEpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kCAAkC;QAChC,wDAAwD;QACxD,iDAAiD,CACpD,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC9E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"setup-auth.js","sourceRoot":"","sources":["../src/setup-auth.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAEzE,8FAA8F;IAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC;YAC9B,kEAAkE;YAClE,4CAA4C,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oDAAoD,CACrD,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAE7F,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACnE,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAEpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kCAAkC;QAChC,wDAAwD;QACxD,iDAAiD,CACpD,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC9E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-dataverse",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "description": "MCP Server for Microsoft Dataverse Web API",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",
package/server.json CHANGED
@@ -39,43 +39,6 @@
39
39
  "isRequired": false,
40
40
  "format": "string",
41
41
  "isSecret": false
42
- },
43
- {
44
- "name": "AUTH_MODE",
45
- "description": "Authentication mode: 'pac' (Power Platform CLI, default) or 'msal' (client credentials)",
46
- "placeholder": "pac",
47
- "isRequired": false,
48
- "format": "string",
49
- "isSecret": false
50
- },
51
- {
52
- "name": "PAC_PROFILE_NAME",
53
- "description": "Power Platform CLI profile name (only when AUTH_MODE=pac)",
54
- "placeholder": "default",
55
- "isRequired": false,
56
- "format": "string",
57
- "isSecret": false
58
- },
59
- {
60
- "name": "TENANT_ID",
61
- "description": "Azure AD tenant ID (only when AUTH_MODE=msal)",
62
- "isRequired": false,
63
- "format": "string",
64
- "isSecret": false
65
- },
66
- {
67
- "name": "CLIENT_ID",
68
- "description": "Azure AD application (client) ID (only when AUTH_MODE=msal)",
69
- "isRequired": false,
70
- "format": "string",
71
- "isSecret": false
72
- },
73
- {
74
- "name": "CLIENT_SECRET",
75
- "description": "Azure AD client secret (only when AUTH_MODE=msal)",
76
- "isRequired": false,
77
- "format": "string",
78
- "isSecret": true
79
42
  }
80
43
  ]
81
44
  }