mcp-dataverse 0.1.7 → 0.1.8
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 +12 -4
- package/dist/config/config.loader.d.ts.map +1 -1
- package/dist/config/config.loader.js +27 -25
- package/dist/config/config.loader.js.map +1 -1
- package/package.json +1 -3
- package/server.json +2 -4
- package/.env.example +0 -15
- package/config.example.json +0 -10
package/README.md
CHANGED
|
@@ -10,18 +10,22 @@ MCP server that exposes the Microsoft Dataverse Web API as **50 AI-callable tool
|
|
|
10
10
|
|
|
11
11
|
### One-click (VS Code)
|
|
12
12
|
|
|
13
|
-
[](https://vscode.dev/redirect?
|
|
13
|
+
[](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) [](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)
|
|
14
|
+
|
|
15
|
+
> VS Code will prompt for your Dataverse URL, auth mode, and PAC profile during installation.
|
|
14
16
|
|
|
15
17
|
### Command line
|
|
16
18
|
|
|
17
19
|
```bash
|
|
18
20
|
# VS Code
|
|
19
|
-
code --add-mcp '{"name":"
|
|
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"}}'
|
|
20
22
|
|
|
21
23
|
# VS Code Insiders
|
|
22
|
-
code-insiders --add-mcp '{"name":"
|
|
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"}}'
|
|
23
25
|
```
|
|
24
26
|
|
|
27
|
+
> Replace `https://yourorg.crm.dynamics.com` with your actual Dataverse environment URL.
|
|
28
|
+
|
|
25
29
|
### Manual (mcp.json)
|
|
26
30
|
|
|
27
31
|
Add to your `.vscode/mcp.json` (or user settings):
|
|
@@ -32,7 +36,11 @@ Add to your `.vscode/mcp.json` (or user settings):
|
|
|
32
36
|
"dataverse": {
|
|
33
37
|
"type": "stdio",
|
|
34
38
|
"command": "npx",
|
|
35
|
-
"args": ["-y", "mcp-dataverse"]
|
|
39
|
+
"args": ["-y", "mcp-dataverse"],
|
|
40
|
+
"env": {
|
|
41
|
+
"DATAVERSE_ENV_URL": "https://yourorg.crm.dynamics.com",
|
|
42
|
+
"AUTH_MODE": "pac"
|
|
43
|
+
}
|
|
36
44
|
}
|
|
37
45
|
}
|
|
38
46
|
}
|
|
@@ -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,
|
|
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"}
|
|
@@ -15,31 +15,33 @@ export function loadConfig() {
|
|
|
15
15
|
throw new Error(`Invalid JSON in ${configPath}. Check for syntax errors (trailing commas, missing quotes).`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
// Override with env vars if present
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (
|
|
23
|
-
rawConfig["
|
|
24
|
-
|
|
25
|
-
if (
|
|
26
|
-
rawConfig["
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
rawConfig["
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
rawConfig["
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
rawConfig["
|
|
36
|
-
|
|
37
|
-
if (
|
|
38
|
-
rawConfig["
|
|
39
|
-
|
|
40
|
-
if (
|
|
41
|
-
rawConfig["
|
|
42
|
-
|
|
18
|
+
// Override with env vars if present.
|
|
19
|
+
// Accepts both SCREAMING_SNAKE_CASE (documented, server.json) and camelCase
|
|
20
|
+
// (generated by VS Code when it reads config.example.json from the npm package).
|
|
21
|
+
const envUrl = process.env["DATAVERSE_ENV_URL"] ?? process.env["environmentUrl"];
|
|
22
|
+
if (envUrl)
|
|
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
|
+
const timeoutMs = process.env["REQUEST_TIMEOUT_MS"] ?? process.env["requestTimeoutMs"];
|
|
40
|
+
if (timeoutMs)
|
|
41
|
+
rawConfig["requestTimeoutMs"] = Number(timeoutMs);
|
|
42
|
+
const maxRetries = process.env["MAX_RETRIES"] ?? process.env["maxRetries"];
|
|
43
|
+
if (maxRetries)
|
|
44
|
+
rawConfig["maxRetries"] = Number(maxRetries);
|
|
43
45
|
const result = ConfigSchema.safeParse(rawConfig);
|
|
44
46
|
if (!result.success) {
|
|
45
47
|
throw new Error(`Invalid configuration:\n${result.error.issues.map((i) => ` - ${i.path.join(".")}: ${i.message}`).join("\n")}`);
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/config/config.loader.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.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "MCP Server for Microsoft Dataverse Web API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
@@ -26,8 +26,6 @@
|
|
|
26
26
|
},
|
|
27
27
|
"files": [
|
|
28
28
|
"dist/**",
|
|
29
|
-
"config.example.json",
|
|
30
|
-
".env.example",
|
|
31
29
|
"README.md",
|
|
32
30
|
"LICENSE",
|
|
33
31
|
"CAPABILITIES.md",
|
package/server.json
CHANGED
|
@@ -15,14 +15,12 @@
|
|
|
15
15
|
"url": "https://github.com/codeurali/mcp-dataverse",
|
|
16
16
|
"source": "github"
|
|
17
17
|
},
|
|
18
|
-
"version": "0.1.
|
|
19
|
-
"packages": [
|
|
18
|
+
"version": "0.1.8",
|
|
20
19
|
{
|
|
21
20
|
"registryType": "npm",
|
|
22
21
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
23
22
|
"identifier": "mcp-dataverse",
|
|
24
|
-
"version": "0.1.
|
|
25
|
-
"transport": {
|
|
23
|
+
"version": "0.1.8", {
|
|
26
24
|
"type": "stdio"
|
|
27
25
|
},
|
|
28
26
|
"environmentVariables": [
|
package/.env.example
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# MCP Dataverse Configuration
|
|
2
|
-
# Set these environment variables (or use config.json for local dev)
|
|
3
|
-
|
|
4
|
-
DATAVERSE_ENV_URL=https://yourorg.crm.dynamics.com
|
|
5
|
-
AUTH_MODE=pac
|
|
6
|
-
PAC_PROFILE_NAME=default
|
|
7
|
-
|
|
8
|
-
# MSAL client credentials (required if AUTH_MODE=msal)
|
|
9
|
-
TENANT_ID=
|
|
10
|
-
CLIENT_ID=
|
|
11
|
-
CLIENT_SECRET=
|
|
12
|
-
|
|
13
|
-
# Tuning (optional)
|
|
14
|
-
# REQUEST_TIMEOUT_MS=30000
|
|
15
|
-
# MAX_RETRIES=3
|