mcp-dataverse 0.2.0 → 0.2.3

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 CHANGED
@@ -63,33 +63,6 @@ Create or edit `.vscode/mcp.json` in your project (workspace scope) or the user-
63
63
 
64
64
  ---
65
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
66
  ## Authentication — automatic, no setup required
94
67
 
95
68
  **No PAC CLI, no Azure AD app registration, no credentials to configure.**
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export declare function runInstall(): Promise<void>;
3
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AA4GA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA8EhD"}
@@ -0,0 +1,174 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Interactive installer for mcp-dataverse.
4
+ * Invoked via: npx mcp-dataverse install
5
+ *
6
+ * Steps:
7
+ * 1. Prompt for Dataverse environment URL
8
+ * 2. Save config to ~/.mcp-dataverse/config.json
9
+ * 3. Register the server in VS Code user mcp.json
10
+ * 4. Authenticate via Microsoft device code flow
11
+ */
12
+ import { createInterface } from "readline/promises";
13
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
14
+ import { homedir } from "os";
15
+ import { dirname, join } from "path";
16
+ import { DeviceCodeAuthProvider } from "./auth/device-code-auth-provider.js";
17
+ // ── Constants ─────────────────────────────────────────────────────────────────
18
+ const CACHE_DIR = join(homedir(), ".mcp-dataverse");
19
+ const CONFIG_FILE = join(CACHE_DIR, "config.json");
20
+ // ── Output helpers ─────────────────────────────────────────────────────────────
21
+ const out = (msg) => process.stdout.write(msg + "\n");
22
+ const hr = () => process.stdout.write("─".repeat(58) + "\n");
23
+ // ── VS Code mcp.json locations ─────────────────────────────────────────────────
24
+ function getVSCodeUserDirs() {
25
+ const home = homedir();
26
+ if (process.platform === "win32") {
27
+ const appData = process.env["APPDATA"] ?? join(home, "AppData", "Roaming");
28
+ return [
29
+ { label: "VS Code Insiders", mcpJson: join(appData, "Code - Insiders", "User", "mcp.json") },
30
+ { label: "VS Code Stable", mcpJson: join(appData, "Code", "User", "mcp.json") },
31
+ ];
32
+ }
33
+ if (process.platform === "darwin") {
34
+ const base = join(home, "Library", "Application Support");
35
+ return [
36
+ { label: "VS Code Insiders", mcpJson: join(base, "Code - Insiders", "User", "mcp.json") },
37
+ { label: "VS Code Stable", mcpJson: join(base, "Code", "User", "mcp.json") },
38
+ ];
39
+ }
40
+ const base = join(home, ".config");
41
+ return [
42
+ { label: "VS Code Insiders", mcpJson: join(base, "Code - Insiders", "User", "mcp.json") },
43
+ { label: "VS Code Stable", mcpJson: join(base, "Code", "User", "mcp.json") },
44
+ ];
45
+ }
46
+ // ── mcp.json patching ─────────────────────────────────────────────────────────
47
+ function patchVSCodeMcpJson(configFilePath) {
48
+ const updated = [];
49
+ const serverEntry = {
50
+ type: "stdio",
51
+ command: "npx",
52
+ args: ["-y", "mcp-dataverse"],
53
+ env: { MCP_CONFIG_PATH: configFilePath },
54
+ };
55
+ for (const { label, mcpJson } of getVSCodeUserDirs()) {
56
+ // Only act when the VS Code User/ directory exists (VS Code variant is installed)
57
+ if (!existsSync(dirname(mcpJson)))
58
+ continue;
59
+ let data = {};
60
+ if (existsSync(mcpJson)) {
61
+ try {
62
+ data = JSON.parse(readFileSync(mcpJson, "utf-8"));
63
+ }
64
+ catch { /* start fresh */ }
65
+ }
66
+ if (!data["servers"] || typeof data["servers"] !== "object")
67
+ data["servers"] = {};
68
+ data["servers"]["mcp-dataverse"] = serverEntry;
69
+ writeFileSync(mcpJson, JSON.stringify(data, null, 2) + "\n", "utf-8");
70
+ updated.push({ label, path: mcpJson });
71
+ }
72
+ return updated;
73
+ }
74
+ // ── URL validation ─────────────────────────────────────────────────────────────
75
+ function isValidDataverseUrl(raw) {
76
+ if (!raw.startsWith("https://"))
77
+ return "URL must start with https://";
78
+ try {
79
+ const hostname = new URL(raw).hostname.toLowerCase();
80
+ if (!hostname.endsWith(".dynamics.com"))
81
+ return "Must be a *.dynamics.com URL (your Power Platform environment)";
82
+ }
83
+ catch {
84
+ return "Invalid URL format";
85
+ }
86
+ return null;
87
+ }
88
+ // ── Manual mcp.json snippet ────────────────────────────────────────────────────
89
+ function printManualSnippet(configFilePath) {
90
+ out(" Add this to your VS Code user mcp.json (Ctrl+Shift+P → Open User MCP Configuration):");
91
+ out("");
92
+ out(' "mcp-dataverse": {');
93
+ out(' "type": "stdio",');
94
+ out(' "command": "npx",');
95
+ out(' "args": ["-y", "mcp-dataverse"],');
96
+ out(` "env": { "MCP_CONFIG_PATH": "${configFilePath.replace(/\\/g, "\\\\")}" }`);
97
+ out(" }");
98
+ }
99
+ // ── Main export ────────────────────────────────────────────────────────────────
100
+ export async function runInstall() {
101
+ out("");
102
+ out("╔════════════════════════════════════════════════════════╗");
103
+ out("║ MCP Dataverse — Interactive Setup ║");
104
+ out("╚════════════════════════════════════════════════════════╝");
105
+ out("");
106
+ out("This wizard will:");
107
+ out(" 1. Ask for your Dataverse environment URL");
108
+ out(" 2. Save configuration to ~/.mcp-dataverse/config.json");
109
+ out(" 3. Register the server in VS Code (user mcp.json)");
110
+ out(" 4. Authenticate with your Microsoft account");
111
+ out("");
112
+ hr();
113
+ // ── Step 1: Prompt for environment URL ──────────────────────────────────────
114
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
115
+ let environmentUrl = "";
116
+ while (!environmentUrl) {
117
+ const raw = (await rl.question("Dataverse environment URL\n e.g. https://contoso.crm.dynamics.com\n› ")).trim().replace(/\/$/, "");
118
+ const error = isValidDataverseUrl(raw);
119
+ if (error) {
120
+ out(` ✗ ${error}\n`);
121
+ continue;
122
+ }
123
+ environmentUrl = raw;
124
+ }
125
+ rl.close();
126
+ out("");
127
+ // ── Step 2: Write config ─────────────────────────────────────────────────────
128
+ out("Saving configuration…");
129
+ mkdirSync(CACHE_DIR, { recursive: true });
130
+ writeFileSync(CONFIG_FILE, JSON.stringify({ environmentUrl }, null, 2) + "\n", "utf-8");
131
+ out(` ✓ ${CONFIG_FILE}`);
132
+ out("");
133
+ // ── Step 3: Patch VS Code mcp.json ───────────────────────────────────────────
134
+ out("Registering in VS Code…");
135
+ const patched = patchVSCodeMcpJson(CONFIG_FILE);
136
+ if (patched.length > 0) {
137
+ for (const { label, path } of patched)
138
+ out(` ✓ ${label}: ${path}`);
139
+ }
140
+ else {
141
+ out(" ℹ No VS Code installation detected — configure manually:");
142
+ out("");
143
+ printManualSnippet(CONFIG_FILE);
144
+ }
145
+ out("");
146
+ hr();
147
+ // ── Step 4: Authenticate ─────────────────────────────────────────────────────
148
+ out("Authenticating with Microsoft…");
149
+ out("(A prompt will appear below — open the URL and enter the code)");
150
+ out("");
151
+ try {
152
+ const auth = new DeviceCodeAuthProvider(environmentUrl);
153
+ await auth.setupViaDeviceCode();
154
+ hr();
155
+ out("");
156
+ out(" ✓ Setup complete!");
157
+ out("");
158
+ out("Next steps:");
159
+ out(" • Reload VS Code: Ctrl+Shift+P → Reload Window");
160
+ out(" • MCP Dataverse tools will appear in GitHub Copilot chat (🔧)");
161
+ out("");
162
+ }
163
+ catch (err) {
164
+ const msg = err instanceof Error ? err.message : String(err);
165
+ hr();
166
+ out(` ✗ Authentication failed: ${msg}`);
167
+ out("");
168
+ out(" Configuration was saved. Authenticate later with:");
169
+ out(` npx mcp-dataverse-auth ${environmentUrl}`);
170
+ out("");
171
+ process.exit(1);
172
+ }
173
+ }
174
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -167,7 +167,15 @@ async function main() {
167
167
  process.stderr.write(`[mcp-dataverse] Authentication failed: ${msg}\n`);
168
168
  });
169
169
  }
170
- main().catch((error) => {
170
+ async function entry() {
171
+ if (process.argv[2] === "install") {
172
+ const { runInstall } = await import("./install.js");
173
+ await runInstall();
174
+ process.exit(0);
175
+ }
176
+ await main();
177
+ }
178
+ entry().catch((error) => {
171
179
  process.stderr.write(`Fatal error: ${error instanceof Error ? error.message : String(error)}\n`);
172
180
  process.exit(1);
173
181
  });
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-dataverse",
3
- "version": "0.2.0",
3
+ "version": "0.2.3",
4
4
  "description": "MCP Server for Microsoft Dataverse Web API",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",
@@ -38,7 +38,8 @@
38
38
  "publish:npm": "node scripts/publish.mjs --npm",
39
39
  "publish:mcp": "node scripts/publish.mjs --mcp",
40
40
  "publish:dry": "node scripts/publish.mjs --dry",
41
- "build": "tsc",
41
+ "clean": "node -e \"const {rmSync}=require('fs'); try{rmSync('dist',{recursive:true})}catch{}\"",
42
+ "build": "npm run clean && tsc",
42
43
  "dev": "tsx watch src/server.ts",
43
44
  "start": "node dist/server.js",
44
45
  "auth:setup": "node dist/setup-auth.js",
package/server.json CHANGED
@@ -15,12 +15,14 @@
15
15
  "url": "https://github.com/codeurali/mcp-dataverse",
16
16
  "source": "github"
17
17
  },
18
- "version": "0.1.9",
18
+ "version": "0.2.3",
19
+ "packages": [
19
20
  {
20
21
  "registryType": "npm",
21
22
  "registryBaseUrl": "https://registry.npmjs.org",
22
23
  "identifier": "mcp-dataverse",
23
- "version": "0.1.9", {
24
+ "version": "0.2.3",
25
+ "transport": {
24
26
  "type": "stdio"
25
27
  },
26
28
  "environmentVariables": [
@@ -1,14 +0,0 @@
1
- import type { AuthProvider } from "./auth-provider.interface.js";
2
- import type { Config } from "../config/config.schema.js";
3
- export declare class MsalAuthProvider implements AuthProvider {
4
- readonly environmentUrl: string;
5
- private readonly msalApp;
6
- private readonly scope;
7
- private cachedToken;
8
- private tokenExpiresAt;
9
- constructor(config: Config);
10
- getToken(): Promise<string>;
11
- invalidateToken(): void;
12
- isAuthenticated(): Promise<boolean>;
13
- }
14
- //# sourceMappingURL=msal-auth-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"msal-auth-provider.d.ts","sourceRoot":"","sources":["../../src/auth/msal-auth-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAqB;gBAE/B,MAAM,EAAE,MAAM;IAgCpB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BjC,eAAe,IAAI,IAAI;IAKjB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;CAQ1C"}
@@ -1,64 +0,0 @@
1
- import { ConfidentialClientApplication } from "@azure/msal-node";
2
- export class MsalAuthProvider {
3
- environmentUrl;
4
- msalApp;
5
- scope;
6
- cachedToken = null;
7
- tokenExpiresAt = null;
8
- constructor(config) {
9
- this.environmentUrl = config.environmentUrl;
10
- if (!config.tenantId) {
11
- throw new Error("MsalAuthProvider requires config.tenantId for client_credentials flow");
12
- }
13
- if (!config.clientId) {
14
- throw new Error("MsalAuthProvider requires config.clientId for client_credentials flow");
15
- }
16
- if (!config.clientSecret) {
17
- throw new Error("MsalAuthProvider requires config.clientSecret for client_credentials flow");
18
- }
19
- this.msalApp = new ConfidentialClientApplication({
20
- auth: {
21
- clientId: config.clientId,
22
- clientSecret: config.clientSecret,
23
- authority: `https://login.microsoftonline.com/${config.tenantId}`,
24
- },
25
- });
26
- // Scope for Dataverse client_credentials: <environmentUrl>/.default
27
- const baseUrl = config.environmentUrl.replace(/\/$/, "");
28
- this.scope = `${baseUrl}/.default`;
29
- }
30
- async getToken() {
31
- // Return cached token if still valid (60-second buffer before expiry)
32
- if (this.cachedToken !== null &&
33
- this.tokenExpiresAt !== null &&
34
- new Date() < this.tokenExpiresAt) {
35
- return this.cachedToken;
36
- }
37
- const result = await this.msalApp.acquireTokenByClientCredential({
38
- scopes: [this.scope],
39
- });
40
- if (result === null || !result.accessToken) {
41
- throw new Error("MSAL: acquireTokenByClientCredential returned no access token");
42
- }
43
- this.cachedToken = result.accessToken;
44
- // Subtract 60 seconds from expiry to avoid using a token that is about to expire
45
- this.tokenExpiresAt = result.expiresOn
46
- ? new Date(result.expiresOn.getTime() - 60_000)
47
- : new Date(Date.now() + 3_540_000); // fallback: 59 minutes
48
- return this.cachedToken;
49
- }
50
- invalidateToken() {
51
- this.cachedToken = null;
52
- this.tokenExpiresAt = null;
53
- }
54
- async isAuthenticated() {
55
- try {
56
- await this.getToken();
57
- return true;
58
- }
59
- catch {
60
- return false;
61
- }
62
- }
63
- }
64
- //# sourceMappingURL=msal-auth-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"msal-auth-provider.js","sourceRoot":"","sources":["../../src/auth/msal-auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAIjE,MAAM,OAAO,gBAAgB;IAClB,cAAc,CAAS;IACf,OAAO,CAAgC;IACvC,KAAK,CAAS;IACvB,WAAW,GAAkB,IAAI,CAAC;IAClC,cAAc,GAAgB,IAAI,CAAC;IAE3C,YAAY,MAAc;QACxB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,6BAA6B,CAAC;YAC/C,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,qCAAqC,MAAM,CAAC,QAAQ,EAAE;aAClE;SACF,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,GAAG,OAAO,WAAW,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,sEAAsE;QACtE,IACE,IAAI,CAAC,WAAW,KAAK,IAAI;YACzB,IAAI,CAAC,cAAc,KAAK,IAAI;YAC5B,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,EAChC,CAAC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC;YAC/D,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,iFAAiF;QACjF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS;YACpC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;YAC/C,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB;QAE7D,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -1,18 +0,0 @@
1
- import type { AuthProvider } from "./auth-provider.interface.js";
2
- export declare class PacAuthProvider 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=pac-auth-provider.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,172 +0,0 @@
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 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
- }
20
- const PLATFORM_CLIENT_ID = "1950a258-227b-4e31-a9cf-717495945fc2";
21
- const CACHE_DIR = join(homedir(), ".mcp-dataverse");
22
- const TOKEN_CACHE_FILE = join(CACHE_DIR, "msal-cache.json");
23
- const DEVICE_CODE_TIMEOUT_MS = 5 * 60 * 1000;
24
- function getDerivedKey() {
25
- const seed = [
26
- process.env["COMPUTERNAME"] ?? process.env["HOSTNAME"] ?? "",
27
- process.env["USERNAME"] ?? process.env["USER"] ?? "",
28
- "mcp-dataverse-cache-v1",
29
- ].join(".");
30
- return createHash("sha256").update(seed).digest();
31
- }
32
- function encryptForDisk(plaintext) {
33
- const key = getDerivedKey();
34
- const iv = randomBytes(16);
35
- const cipher = createCipheriv("aes-256-gcm", key, iv);
36
- const encrypted = Buffer.concat([cipher.update(plaintext, "utf-8"), cipher.final()]);
37
- return JSON.stringify({ v: 1, iv: iv.toString("hex"), tag: cipher.getAuthTag().toString("hex"), d: encrypted.toString("hex") });
38
- }
39
- function decryptFromDisk(raw) {
40
- const parsed = JSON.parse(raw);
41
- if (parsed["v"] !== 1)
42
- throw new Error("Unknown cache format version");
43
- const iv = Buffer.from(parsed["iv"], "hex");
44
- const tag = Buffer.from(parsed["tag"], "hex");
45
- const encrypted = Buffer.from(parsed["d"], "hex");
46
- const decipher = createDecipheriv("aes-256-gcm", getDerivedKey(), iv);
47
- decipher.setAuthTag(tag);
48
- return decipher.update(encrypted).toString("utf-8") + decipher.final("utf-8");
49
- }
50
- function createCachePlugin() {
51
- return {
52
- beforeCacheAccess: async (cacheContext) => {
53
- if (existsSync(TOKEN_CACHE_FILE)) {
54
- try {
55
- const raw = readFileSync(TOKEN_CACHE_FILE, "utf-8");
56
- let serialized;
57
- try {
58
- serialized = decryptFromDisk(raw);
59
- }
60
- catch {
61
- serialized = raw;
62
- }
63
- cacheContext.tokenCache.deserialize(serialized);
64
- }
65
- catch { /* corrupt cache — re-auth automatically */ }
66
- }
67
- },
68
- afterCacheAccess: async (cacheContext) => {
69
- if (cacheContext.cacheHasChanged) {
70
- mkdirSync(CACHE_DIR, { recursive: true });
71
- writeFileSync(TOKEN_CACHE_FILE, encryptForDisk(cacheContext.tokenCache.serialize()), { encoding: "utf-8", mode: 0o600 });
72
- }
73
- },
74
- };
75
- }
76
- export class PacAuthProvider {
77
- environmentUrl;
78
- pca;
79
- cachedToken = null;
80
- tokenExpiresAt = 0;
81
- pendingAuth = null;
82
- constructor(environmentUrl) {
83
- this.environmentUrl = environmentUrl.replace(/\/$/, "");
84
- this.pca = new PublicClientApplication({
85
- auth: { clientId: PLATFORM_CLIENT_ID, authority: "https://login.microsoftonline.com/common" },
86
- cache: { cachePlugin: createCachePlugin() },
87
- });
88
- }
89
- async getToken() {
90
- const now = Date.now();
91
- if (this.cachedToken !== null && this.tokenExpiresAt > now + 60_000)
92
- return this.cachedToken;
93
- if (this.pendingAuth !== null)
94
- return this.pendingAuth;
95
- this.pendingAuth = this.refreshToken().finally(() => { this.pendingAuth = null; });
96
- return this.pendingAuth;
97
- }
98
- invalidateToken() { this.cachedToken = null; this.tokenExpiresAt = 0; }
99
- async isAuthenticated() {
100
- try {
101
- await this.getToken();
102
- return true;
103
- }
104
- catch {
105
- return false;
106
- }
107
- }
108
- async setupViaDeviceCode() { await this.runDeviceCodeFlow(); }
109
- async refreshToken() {
110
- const accounts = await this.pca.getAllAccounts();
111
- if (accounts.length === 0) {
112
- 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");
113
- try {
114
- await this.runDeviceCodeFlow();
115
- return await this.acquireSilently();
116
- }
117
- catch (err) {
118
- const detail = err instanceof Error ? err.message : String(err);
119
- 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.`);
120
- }
121
- }
122
- try {
123
- return await this.acquireSilently();
124
- }
125
- catch {
126
- process.stderr.write("\n[mcp-dataverse] Session expired — re-authenticating.\nOpen the URL below in your browser to sign in again.\n\n");
127
- try {
128
- await this.runDeviceCodeFlow();
129
- return await this.acquireSilently();
130
- }
131
- catch (err) {
132
- this.cachedToken = null;
133
- const detail = err instanceof Error ? err.message : String(err);
134
- 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.`);
135
- }
136
- }
137
- }
138
- async acquireSilently() {
139
- const accounts = await this.pca.getAllAccounts();
140
- if (accounts.length === 0)
141
- throw new Error("No account found in cache after authentication.");
142
- const result = await this.pca.acquireTokenSilent({ scopes: [`${this.environmentUrl}/.default`], account: accounts[0] });
143
- if (!result?.accessToken)
144
- throw new Error("Token acquisition returned an empty access token.");
145
- this.cacheResult(result);
146
- return result.accessToken;
147
- }
148
- async runDeviceCodeFlow() {
149
- const result = await Promise.race([
150
- this.pca.acquireTokenByDeviceCode({
151
- scopes: [`${this.environmentUrl}/.default`],
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
- },
161
- }),
162
- new Promise((_, reject) => setTimeout(() => reject(new Error("Authentication timed out after 5 minutes. Please try again.")), DEVICE_CODE_TIMEOUT_MS)),
163
- ]);
164
- if (result)
165
- this.cacheResult(result);
166
- }
167
- cacheResult(result) {
168
- this.cachedToken = result.accessToken;
169
- this.tokenExpiresAt = result.expiresOn?.getTime() ?? Date.now() + 55 * 60 * 1000;
170
- }
171
- }
172
- //# sourceMappingURL=pac-auth-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pac-auth-provider.js","sourceRoot":"","sources":["../../src/auth/pac-auth-provider.ts"],"names":[],"mappings":"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"}