mcp-dataverse 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CAPABILITIES.md +1049 -992
  2. package/README.md +80 -78
  3. package/config.example.json +0 -1
  4. package/dist/auth/auth-provider.factory.d.ts +2 -2
  5. package/dist/auth/auth-provider.factory.js +4 -4
  6. package/dist/auth/msal-auth-provider.d.ts +2 -2
  7. package/dist/auth/msal-auth-provider.d.ts.map +1 -1
  8. package/dist/auth/msal-auth-provider.js +9 -7
  9. package/dist/auth/msal-auth-provider.js.map +1 -1
  10. package/dist/auth/pac-auth-provider.d.ts +1 -1
  11. package/dist/auth/pac-auth-provider.d.ts.map +1 -1
  12. package/dist/auth/pac-auth-provider.js +39 -35
  13. package/dist/auth/pac-auth-provider.js.map +1 -1
  14. package/dist/config/config.loader.d.ts +1 -1
  15. package/dist/config/config.loader.d.ts.map +1 -1
  16. package/dist/config/config.loader.js +22 -25
  17. package/dist/config/config.loader.js.map +1 -1
  18. package/dist/config/config.schema.d.ts +1 -4
  19. package/dist/config/config.schema.d.ts.map +1 -1
  20. package/dist/config/config.schema.js +11 -11
  21. package/dist/config/config.schema.js.map +1 -1
  22. package/dist/dataverse/dataverse-client-advanced.d.ts +1 -1
  23. package/dist/dataverse/dataverse-client-advanced.d.ts.map +1 -1
  24. package/dist/dataverse/dataverse-client-advanced.js +70 -39
  25. package/dist/dataverse/dataverse-client-advanced.js.map +1 -1
  26. package/dist/dataverse/dataverse-client.actions.d.ts +11 -0
  27. package/dist/dataverse/dataverse-client.actions.d.ts.map +1 -0
  28. package/dist/dataverse/dataverse-client.actions.js +25 -0
  29. package/dist/dataverse/dataverse-client.actions.js.map +1 -0
  30. package/dist/dataverse/dataverse-client.batch.d.ts +2 -2
  31. package/dist/dataverse/dataverse-client.batch.d.ts.map +1 -1
  32. package/dist/dataverse/dataverse-client.batch.js +12 -12
  33. package/dist/dataverse/dataverse-client.batch.js.map +1 -1
  34. package/dist/dataverse/dataverse-client.d.ts +5 -8
  35. package/dist/dataverse/dataverse-client.d.ts.map +1 -1
  36. package/dist/dataverse/dataverse-client.js +81 -81
  37. package/dist/dataverse/dataverse-client.js.map +1 -1
  38. package/dist/dataverse/dataverse-client.metadata.d.ts +3 -3
  39. package/dist/dataverse/dataverse-client.metadata.d.ts.map +1 -1
  40. package/dist/dataverse/dataverse-client.metadata.js +45 -45
  41. package/dist/dataverse/dataverse-client.metadata.js.map +1 -1
  42. package/dist/dataverse/dataverse-client.utils.d.ts.map +1 -1
  43. package/dist/dataverse/dataverse-client.utils.js +5 -5
  44. package/dist/dataverse/dataverse-client.utils.js.map +1 -1
  45. package/dist/dataverse/http-client.d.ts +1 -1
  46. package/dist/dataverse/http-client.d.ts.map +1 -1
  47. package/dist/dataverse/http-client.js +25 -18
  48. package/dist/dataverse/http-client.js.map +1 -1
  49. package/dist/dataverse/types.d.ts +5 -5
  50. package/dist/server.js +57 -57
  51. package/dist/server.js.map +1 -1
  52. package/dist/setup-auth.js +8 -8
  53. package/dist/setup-auth.js.map +1 -1
  54. package/dist/tools/actions.tools.d.ts +2 -2
  55. package/dist/tools/actions.tools.d.ts.map +1 -1
  56. package/dist/tools/actions.tools.js +108 -65
  57. package/dist/tools/actions.tools.js.map +1 -1
  58. package/dist/tools/annotations.tools.d.ts +2 -2
  59. package/dist/tools/annotations.tools.d.ts.map +1 -1
  60. package/dist/tools/annotations.tools.js +79 -70
  61. package/dist/tools/annotations.tools.js.map +1 -1
  62. package/dist/tools/audit.tools.d.ts +2 -2
  63. package/dist/tools/audit.tools.d.ts.map +1 -1
  64. package/dist/tools/audit.tools.js +51 -48
  65. package/dist/tools/audit.tools.js.map +1 -1
  66. package/dist/tools/auth.tools.d.ts +2 -2
  67. package/dist/tools/auth.tools.d.ts.map +1 -1
  68. package/dist/tools/auth.tools.js +9 -7
  69. package/dist/tools/auth.tools.js.map +1 -1
  70. package/dist/tools/batch.tools.d.ts +2 -2
  71. package/dist/tools/batch.tools.d.ts.map +1 -1
  72. package/dist/tools/batch.tools.js +39 -26
  73. package/dist/tools/batch.tools.js.map +1 -1
  74. package/dist/tools/crud.tools.d.ts +2 -2
  75. package/dist/tools/crud.tools.d.ts.map +1 -1
  76. package/dist/tools/crud.tools.js +140 -83
  77. package/dist/tools/crud.tools.js.map +1 -1
  78. package/dist/tools/customization.tools.d.ts +2 -2
  79. package/dist/tools/customization.tools.d.ts.map +1 -1
  80. package/dist/tools/customization.tools.js +72 -62
  81. package/dist/tools/customization.tools.js.map +1 -1
  82. package/dist/tools/environment.tools.d.ts +2 -2
  83. package/dist/tools/environment.tools.d.ts.map +1 -1
  84. package/dist/tools/environment.tools.js +62 -55
  85. package/dist/tools/environment.tools.js.map +1 -1
  86. package/dist/tools/file.tools.d.ts +2 -2
  87. package/dist/tools/file.tools.d.ts.map +1 -1
  88. package/dist/tools/file.tools.js +63 -44
  89. package/dist/tools/file.tools.js.map +1 -1
  90. package/dist/tools/impersonate.tools.d.ts +3 -3
  91. package/dist/tools/impersonate.tools.d.ts.map +1 -1
  92. package/dist/tools/impersonate.tools.js +22 -20
  93. package/dist/tools/impersonate.tools.js.map +1 -1
  94. package/dist/tools/metadata.tools.d.ts +2 -2
  95. package/dist/tools/metadata.tools.d.ts.map +1 -1
  96. package/dist/tools/metadata.tools.js +110 -75
  97. package/dist/tools/metadata.tools.js.map +1 -1
  98. package/dist/tools/org.tools.d.ts +2 -2
  99. package/dist/tools/org.tools.d.ts.map +1 -1
  100. package/dist/tools/org.tools.js +21 -15
  101. package/dist/tools/org.tools.js.map +1 -1
  102. package/dist/tools/quality.tools.d.ts +2 -2
  103. package/dist/tools/quality.tools.d.ts.map +1 -1
  104. package/dist/tools/quality.tools.js +19 -17
  105. package/dist/tools/quality.tools.js.map +1 -1
  106. package/dist/tools/query.tools.d.ts +2 -2
  107. package/dist/tools/query.tools.d.ts.map +1 -1
  108. package/dist/tools/query.tools.js +81 -58
  109. package/dist/tools/query.tools.js.map +1 -1
  110. package/dist/tools/relations.tools.d.ts +2 -2
  111. package/dist/tools/relations.tools.d.ts.map +1 -1
  112. package/dist/tools/relations.tools.js +62 -26
  113. package/dist/tools/relations.tools.js.map +1 -1
  114. package/dist/tools/search.tools.d.ts +2 -2
  115. package/dist/tools/search.tools.d.ts.map +1 -1
  116. package/dist/tools/search.tools.js +45 -45
  117. package/dist/tools/search.tools.js.map +1 -1
  118. package/dist/tools/solution.tools.d.ts +2 -2
  119. package/dist/tools/solution.tools.d.ts.map +1 -1
  120. package/dist/tools/solution.tools.js +89 -55
  121. package/dist/tools/solution.tools.js.map +1 -1
  122. package/dist/tools/teams.tools.d.ts +2 -2
  123. package/dist/tools/teams.tools.d.ts.map +1 -1
  124. package/dist/tools/teams.tools.js +33 -29
  125. package/dist/tools/teams.tools.js.map +1 -1
  126. package/dist/tools/trace.tools.d.ts +2 -2
  127. package/dist/tools/trace.tools.d.ts.map +1 -1
  128. package/dist/tools/trace.tools.js +111 -101
  129. package/dist/tools/trace.tools.js.map +1 -1
  130. package/dist/tools/tracking.tools.d.ts +2 -2
  131. package/dist/tools/tracking.tools.d.ts.map +1 -1
  132. package/dist/tools/tracking.tools.js +16 -14
  133. package/dist/tools/tracking.tools.js.map +1 -1
  134. package/dist/tools/users.tools.d.ts +2 -2
  135. package/dist/tools/users.tools.d.ts.map +1 -1
  136. package/dist/tools/users.tools.js +62 -57
  137. package/dist/tools/users.tools.js.map +1 -1
  138. package/dist/tools/validation.utils.d.ts +1 -1
  139. package/dist/tools/validation.utils.d.ts.map +1 -1
  140. package/dist/tools/validation.utils.js +9 -3
  141. package/dist/tools/validation.utils.js.map +1 -1
  142. package/dist/tools/views.tools.d.ts +2 -2
  143. package/dist/tools/views.tools.d.ts.map +1 -1
  144. package/dist/tools/views.tools.js +32 -24
  145. package/dist/tools/views.tools.js.map +1 -1
  146. package/package.json +81 -81
  147. package/server.json +51 -4
@@ -1,55 +1,59 @@
1
- import { z } from 'zod';
2
- import { esc } from '../dataverse/dataverse-client.utils.js';
1
+ import { z } from "zod";
2
+ import { esc } from "../dataverse/dataverse-client.utils.js";
3
3
  const GetUserRolesInput = z.object({
4
4
  userId: z.string().uuid(),
5
5
  });
6
- const ListUsersInput = z.object({
6
+ const ListUsersInput = z
7
+ .object({
7
8
  search: z.string().optional(),
8
9
  businessUnitId: z.string().optional(),
9
10
  includeDisabled: z.boolean().optional().default(false),
10
11
  includeApplicationUsers: z.boolean().optional().default(false),
11
12
  top: z.number().int().positive().max(100).optional().default(20),
12
- }).refine(data => data.search || data.businessUnitId, { message: 'At least one of search or businessUnitId is required' });
13
+ })
14
+ .refine((data) => data.search || data.businessUnitId, {
15
+ message: "At least one of search or businessUnitId is required",
16
+ });
13
17
  export const userTools = [
14
18
  {
15
- name: 'dataverse_get_user_roles',
16
- description: 'Returns all security roles assigned to a Dataverse system user. Provide the user GUID to retrieve full name, domain name (UPN), and the list of roles with role ID, name, and managed status.',
19
+ name: "dataverse_get_user_roles",
20
+ description: "Returns all security roles assigned to a Dataverse system user. Provide the user GUID to retrieve full name, domain name (UPN), and the list of roles with role ID, name, and managed status.",
17
21
  inputSchema: {
18
- type: 'object',
22
+ type: "object",
19
23
  properties: {
20
24
  userId: {
21
- type: 'string',
22
- description: 'The system user GUID',
25
+ type: "string",
26
+ description: "The system user GUID",
23
27
  },
24
28
  },
25
- required: ['userId'],
29
+ required: ["userId"],
26
30
  },
27
31
  },
28
32
  {
29
- name: 'dataverse_list_users',
30
- description: 'Searches Dataverse system users by name or email. Returns user ID, full name, domain name (UPN), email, business unit, and disabled status. Excludes application users and disabled users by default.',
33
+ name: "dataverse_list_users",
34
+ description: "Searches Dataverse system users by name or email. Returns user ID, full name, domain name (UPN), email, business unit, and disabled status. Excludes application users and disabled users by default.",
31
35
  inputSchema: {
32
- type: 'object',
36
+ type: "object",
33
37
  properties: {
34
38
  search: {
35
- type: 'string',
36
- description: 'Full-name or email contains-search',
39
+ type: "string",
40
+ description: "Full-name or email contains-search",
37
41
  },
38
42
  businessUnitId: {
39
- type: 'string',
40
- description: 'Restrict to a business unit (GUID)',
43
+ type: "string",
44
+ description: "Restrict to a business unit (GUID)",
41
45
  },
42
46
  includeDisabled: {
43
- type: 'boolean',
44
- description: 'Include disabled users (default false)',
47
+ type: "boolean",
48
+ description: "Include disabled users (default false)",
45
49
  },
46
50
  includeApplicationUsers: {
47
- type: 'boolean',
48
- description: 'Include application/service users (default false)',
51
+ type: "boolean",
52
+ description: "Include application/service users (default false)",
49
53
  },
50
54
  top: {
51
- type: 'number',
52
- description: 'Maximum number of results (default 20, max 100)',
55
+ type: "number",
56
+ description: "Maximum number of results (default 20, max 100)",
53
57
  },
54
58
  },
55
59
  },
@@ -57,12 +61,12 @@ export const userTools = [
57
61
  ];
58
62
  export async function handleUserTool(name, args, client) {
59
63
  switch (name) {
60
- case 'dataverse_get_user_roles': {
64
+ case "dataverse_get_user_roles": {
61
65
  const { userId } = GetUserRolesInput.parse(args);
62
- const response = await client.query('systemusers', {
66
+ const response = await client.query("systemusers", {
63
67
  filter: `systemuserid eq ${userId}`,
64
- select: ['fullname', 'domainname'],
65
- expand: 'systemuserroles_association($select=name,roleid,ismanaged)',
68
+ select: ["fullname", "domainname"],
69
+ expand: "systemuserroles_association($select=name,roleid,ismanaged)",
66
70
  top: 1,
67
71
  });
68
72
  const rows = (response.value ?? []);
@@ -70,20 +74,20 @@ export async function handleUserTool(name, args, client) {
70
74
  throw new Error(`User with ID '${userId}' not found`);
71
75
  }
72
76
  const user = rows[0];
73
- const rawRoles = (user['systemuserroles_association'] ?? []);
74
- const roles = rawRoles.map(r => ({
75
- roleId: r['roleid'] ?? '',
76
- name: r['name'] ?? '',
77
- isManaged: r['ismanaged'] === true,
77
+ const rawRoles = (user["systemuserroles_association"] ?? []);
78
+ const roles = rawRoles.map((r) => ({
79
+ roleId: r["roleid"] ?? "",
80
+ name: r["name"] ?? "",
81
+ isManaged: r["ismanaged"] === true,
78
82
  }));
79
83
  return {
80
84
  content: [
81
85
  {
82
- type: 'text',
86
+ type: "text",
83
87
  text: JSON.stringify({
84
88
  userId,
85
- fullname: user['fullname'] ?? '',
86
- domainname: user['domainname'] ?? '',
89
+ fullname: user["fullname"] ?? "",
90
+ domainname: user["domainname"] ?? "",
87
91
  roles,
88
92
  roleCount: roles.length,
89
93
  }, null, 2),
@@ -91,14 +95,14 @@ export async function handleUserTool(name, args, client) {
91
95
  ],
92
96
  };
93
97
  }
94
- case 'dataverse_list_users': {
98
+ case "dataverse_list_users": {
95
99
  const params = ListUsersInput.parse(args);
96
100
  const filterParts = [];
97
101
  if (!params.includeDisabled) {
98
- filterParts.push('isdisabled eq false');
102
+ filterParts.push("isdisabled eq false");
99
103
  }
100
104
  if (!params.includeApplicationUsers) {
101
- filterParts.push('applicationid eq null');
105
+ filterParts.push("applicationid eq null");
102
106
  }
103
107
  if (params.search) {
104
108
  const escaped = esc(params.search);
@@ -107,34 +111,35 @@ export async function handleUserTool(name, args, client) {
107
111
  if (params.businessUnitId) {
108
112
  filterParts.push(`_businessunitid_value eq ${params.businessUnitId}`);
109
113
  }
110
- const response = await client.query('systemusers', {
114
+ const response = await client.query("systemusers", {
111
115
  select: [
112
- 'systemuserid',
113
- 'fullname',
114
- 'domainname',
115
- 'internalemailaddress',
116
- 'applicationid',
117
- 'isdisabled',
116
+ "systemuserid",
117
+ "fullname",
118
+ "domainname",
119
+ "internalemailaddress",
120
+ "applicationid",
121
+ "isdisabled",
118
122
  ],
119
- filter: filterParts.join(' and '),
120
- expand: 'businessunitid($select=name)',
121
- orderby: 'fullname asc',
123
+ filter: filterParts.join(" and "),
124
+ expand: "businessunitid($select=name)",
125
+ orderby: "fullname asc",
122
126
  top: params.top,
123
127
  });
124
128
  const rows = (response.value ?? []);
125
- const users = rows.map(row => ({
126
- id: row['systemuserid'] ?? '',
127
- fullName: row['fullname'] ?? '',
128
- domainName: row['domainname'] ?? '',
129
- email: row['internalemailaddress'] ?? '',
130
- businessUnit: row['businessunitid']?.['name'] ?? null,
131
- isDisabled: row['isdisabled'] === true,
132
- isApplicationUser: row['applicationid'] != null,
129
+ const users = rows.map((row) => ({
130
+ id: row["systemuserid"] ?? "",
131
+ fullName: row["fullname"] ?? "",
132
+ domainName: row["domainname"] ?? "",
133
+ email: row["internalemailaddress"] ?? "",
134
+ businessUnit: row["businessunitid"]?.["name"] ??
135
+ null,
136
+ isDisabled: row["isdisabled"] === true,
137
+ isApplicationUser: row["applicationid"] != null,
133
138
  }));
134
139
  return {
135
140
  content: [
136
141
  {
137
- type: 'text',
142
+ type: "text",
138
143
  text: JSON.stringify({ users, count: users.length }, null, 2),
139
144
  },
140
145
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"users.tools.js","sourceRoot":"","sources":["../../src/tools/users.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.tools.js","sourceRoot":"","sources":["../../src/tools/users.tools.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  /** Zod string schema for entity set names — blocks path traversal and injection. */
3
3
  export declare const safeEntitySetName: z.ZodString;
4
4
  /** Zod string schema for relationship names — blocks path traversal and injection. */
@@ -1 +1 @@
1
- {"version":3,"file":"validation.utils.d.ts","sourceRoot":"","sources":["../../src/tools/validation.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,aAG7B,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,aAGhC,CAAC"}
1
+ {"version":3,"file":"validation.utils.d.ts","sourceRoot":"","sources":["../../src/tools/validation.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,aAM3B,CAAC;AAEJ,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,aAM9B,CAAC"}
@@ -1,8 +1,14 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  /** Matches valid OData entity set names and Dataverse schema identifiers. */
3
3
  const SAFE_IDENTIFIER = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
4
4
  /** Zod string schema for entity set names — blocks path traversal and injection. */
5
- export const safeEntitySetName = z.string().min(1).regex(SAFE_IDENTIFIER, 'entitySetName must contain only letters, digits, or underscores');
5
+ export const safeEntitySetName = z
6
+ .string()
7
+ .min(1)
8
+ .regex(SAFE_IDENTIFIER, "entitySetName must contain only letters, digits, or underscores");
6
9
  /** Zod string schema for relationship names — blocks path traversal and injection. */
7
- export const safeRelationshipName = z.string().min(1).regex(SAFE_IDENTIFIER, 'relationshipName must contain only letters, digits, or underscores');
10
+ export const safeRelationshipName = z
11
+ .string()
12
+ .min(1)
13
+ .regex(SAFE_IDENTIFIER, "relationshipName must contain only letters, digits, or underscores");
8
14
  //# sourceMappingURL=validation.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.utils.js","sourceRoot":"","sources":["../../src/tools/validation.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6EAA6E;AAC7E,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CACtD,eAAe,EACf,iEAAiE,CAClE,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CACzD,eAAe,EACf,oEAAoE,CACrE,CAAC"}
1
+ {"version":3,"file":"validation.utils.js","sourceRoot":"","sources":["../../src/tools/validation.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6EAA6E;AAC7E,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CACJ,eAAe,EACf,iEAAiE,CAClE,CAAC;AAEJ,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CACJ,eAAe,EACf,oEAAoE,CACrE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DataverseAdvancedClient } from '../dataverse/dataverse-client-advanced.js';
1
+ import type { DataverseAdvancedClient } from "../dataverse/dataverse-client-advanced.js";
2
2
  export declare const viewTools: {
3
3
  name: string;
4
4
  description: string;
@@ -23,7 +23,7 @@ export declare const viewTools: {
23
23
  }[];
24
24
  export declare function handleViewTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
25
25
  content: Array<{
26
- type: 'text';
26
+ type: "text";
27
27
  text: string;
28
28
  }>;
29
29
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"views.tools.d.ts","sourceRoot":"","sources":["../../src/tools/views.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AASzF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;GAwBrB,CAAC;AAgBF,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgE7D"}
1
+ {"version":3,"file":"views.tools.d.ts","sourceRoot":"","sources":["../../src/tools/views.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AASzF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;GA2BrB,CAAC;AAgBF,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA6E7D"}
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
- import { esc } from '../dataverse/dataverse-client.utils.js';
1
+ import { z } from "zod";
2
+ import { esc } from "../dataverse/dataverse-client.utils.js";
3
3
  const ListViewsInput = z.object({
4
4
  entityLogicalName: z.string().min(1),
5
5
  includePersonal: z.boolean().optional().default(false),
@@ -7,72 +7,80 @@ const ListViewsInput = z.object({
7
7
  });
8
8
  export const viewTools = [
9
9
  {
10
- name: 'dataverse_list_views',
11
- description: 'Lists saved views (system and optionally personal) for a Dataverse table. System views come from savedqueries; personal views come from userqueries. Returns view name, ID, default flag, query type, and description.',
10
+ name: "dataverse_list_views",
11
+ description: "Lists saved views (system and optionally personal) for a Dataverse table. System views come from savedqueries; personal views come from userqueries. Returns view name, ID, default flag, query type, and description.",
12
12
  inputSchema: {
13
- type: 'object',
13
+ type: "object",
14
14
  properties: {
15
15
  entityLogicalName: {
16
- type: 'string',
16
+ type: "string",
17
17
  description: 'Logical name of the entity to list views for (e.g., "account")',
18
18
  },
19
19
  includePersonal: {
20
- type: 'boolean',
21
- description: 'Include personal (user) views in addition to system views (default false)',
20
+ type: "boolean",
21
+ description: "Include personal (user) views in addition to system views (default false)",
22
22
  },
23
23
  top: {
24
- type: 'number',
25
- description: 'Maximum number of results per category (default 20, max 100)',
24
+ type: "number",
25
+ description: "Maximum number of results per category (default 20, max 100)",
26
26
  },
27
27
  },
28
- required: ['entityLogicalName'],
28
+ required: ["entityLogicalName"],
29
29
  },
30
30
  },
31
31
  ];
32
32
  export async function handleViewTool(name, args, client) {
33
33
  switch (name) {
34
- case 'dataverse_list_views': {
34
+ case "dataverse_list_views": {
35
35
  const { entityLogicalName, includePersonal, top } = ListViewsInput.parse(args);
36
36
  const escaped = esc(entityLogicalName);
37
- const systemResult = await client.query('savedqueries', {
37
+ const systemResult = await client.query("savedqueries", {
38
38
  filter: `returnedtypecode eq '${escaped}' and statecode eq 0`,
39
- select: ['savedqueryid', 'name', 'isdefault', 'querytype', 'description'],
40
- orderby: 'name asc',
39
+ select: [
40
+ "savedqueryid",
41
+ "name",
42
+ "isdefault",
43
+ "querytype",
44
+ "description",
45
+ ],
46
+ orderby: "name asc",
41
47
  top,
42
48
  });
43
- const systemViews = systemResult.value.map(v => ({
49
+ const systemViews = systemResult.value.map((v) => ({
44
50
  id: v.savedqueryid,
45
51
  name: v.name,
46
52
  isDefault: v.isdefault,
47
53
  queryType: v.querytype,
48
54
  description: v.description ?? null,
49
- viewType: 'system',
55
+ viewType: "system",
50
56
  }));
51
57
  let personalViews = [];
52
58
  if (includePersonal) {
53
- const personalResult = await client.query('userqueries', {
59
+ const personalResult = await client.query("userqueries", {
54
60
  filter: `returnedtypecode eq '${escaped}'`,
55
- select: ['userqueryid', 'name', 'description'],
56
- orderby: 'name asc',
61
+ select: ["userqueryid", "name", "description"],
62
+ orderby: "name asc",
57
63
  top,
58
64
  });
59
- personalViews = personalResult.value.map(v => ({
65
+ personalViews = personalResult.value.map((v) => ({
60
66
  id: v.userqueryid,
61
67
  name: v.name,
62
68
  description: v.description ?? null,
63
- viewType: 'personal',
69
+ viewType: "personal",
64
70
  }));
65
71
  }
66
72
  return {
67
73
  content: [
68
74
  {
69
- type: 'text',
75
+ type: "text",
70
76
  text: JSON.stringify({
71
77
  entityLogicalName,
72
78
  systemViews,
73
79
  systemViewCount: systemViews.length,
74
80
  personalViews: includePersonal ? personalViews : undefined,
75
- personalViewCount: includePersonal ? personalViews.length : undefined,
81
+ personalViewCount: includePersonal
82
+ ? personalViews.length
83
+ : undefined,
76
84
  }, null, 2),
77
85
  },
78
86
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"views.tools.js","sourceRoot":"","sources":["../../src/tools/views.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views.tools.js","sourceRoot":"","sources":["../../src/tools/views.tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,81 +1,81 @@
1
- {
2
- "name": "mcp-dataverse",
3
- "version": "0.1.4",
4
- "description": "MCP Server for Microsoft Dataverse Web API",
5
- "type": "module",
6
- "main": "dist/server.js",
7
- "bin": {
8
- "mcp-dataverse": "dist/server.js"
9
- },
10
- "mcpName": "io.github.codeurali/dataverse",
11
- "license": "MIT",
12
- "engines": {
13
- "node": ">=20"
14
- },
15
- "keywords": [
16
- "mcp",
17
- "dataverse",
18
- "power-platform",
19
- "dynamics-365",
20
- "copilot",
21
- "model-context-protocol"
22
- ],
23
- "repository": {
24
- "type": "git",
25
- "url": "https://github.com/codeurali/mcp-dataverse.git"
26
- },
27
- "files": [
28
- "dist/**",
29
- "config.example.json",
30
- ".env.example",
31
- "README.md",
32
- "LICENSE",
33
- "CAPABILITIES.md",
34
- "server.json"
35
- ],
36
- "scripts": {
37
- "prepublishOnly": "npm run build",
38
- "publish:all": "node scripts/publish.mjs",
39
- "publish:npm": "node scripts/publish.mjs --npm",
40
- "publish:mcp": "node scripts/publish.mjs --mcp",
41
- "publish:dry": "node scripts/publish.mjs --dry",
42
- "build": "tsc",
43
- "dev": "tsx watch src/server.ts",
44
- "start": "node dist/server.js",
45
- "auth:setup": "node dist/setup-auth.js",
46
- "test": "jest",
47
- "test:unit": "jest --testPathPattern=tests/unit",
48
- "test:integration": "jest --testPathPattern=tests/integration",
49
- "test:coverage": "jest --coverage",
50
- "lint": "eslint src/**/*.ts tests/**/*.ts",
51
- "typecheck": "tsc --noEmit",
52
- "prepare": "husky"
53
- },
54
- "lint-staged": {
55
- "src/**/*.ts": [
56
- "eslint --fix"
57
- ],
58
- "tests/**/*.ts": [
59
- "eslint --fix"
60
- ]
61
- },
62
- "dependencies": {
63
- "@azure/msal-node": "^2.16.0",
64
- "@modelcontextprotocol/sdk": "^1.0.0",
65
- "zod": "^3.23.0"
66
- },
67
- "devDependencies": {
68
- "@types/jest": "^29.5.0",
69
- "@types/node": "^20.0.0",
70
- "@typescript-eslint/eslint-plugin": "^8.0.0",
71
- "@typescript-eslint/parser": "^8.0.0",
72
- "eslint": "^9.0.0",
73
- "husky": "^9.1.7",
74
- "jest": "^29.0.0",
75
- "lint-staged": "^16.2.7",
76
- "ts-jest": "^29.0.0",
77
- "tsx": "^4.0.0",
78
- "typescript": "^5.4.0",
79
- "typescript-eslint": "^8.56.0"
80
- }
81
- }
1
+ {
2
+ "name": "mcp-dataverse",
3
+ "version": "0.1.6",
4
+ "description": "MCP Server for Microsoft Dataverse Web API",
5
+ "type": "module",
6
+ "main": "dist/server.js",
7
+ "bin": {
8
+ "mcp-dataverse": "dist/server.js"
9
+ },
10
+ "mcpName": "io.github.codeurali/dataverse",
11
+ "license": "MIT",
12
+ "engines": {
13
+ "node": ">=20"
14
+ },
15
+ "keywords": [
16
+ "mcp",
17
+ "dataverse",
18
+ "power-platform",
19
+ "dynamics-365",
20
+ "copilot",
21
+ "model-context-protocol"
22
+ ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/codeurali/mcp-dataverse.git"
26
+ },
27
+ "files": [
28
+ "dist/**",
29
+ "config.example.json",
30
+ ".env.example",
31
+ "README.md",
32
+ "LICENSE",
33
+ "CAPABILITIES.md",
34
+ "server.json"
35
+ ],
36
+ "scripts": {
37
+ "prepublishOnly": "npm run build",
38
+ "publish:all": "node scripts/publish.mjs",
39
+ "publish:npm": "node scripts/publish.mjs --npm",
40
+ "publish:mcp": "node scripts/publish.mjs --mcp",
41
+ "publish:dry": "node scripts/publish.mjs --dry",
42
+ "build": "tsc",
43
+ "dev": "tsx watch src/server.ts",
44
+ "start": "node dist/server.js",
45
+ "auth:setup": "node dist/setup-auth.js",
46
+ "test": "jest",
47
+ "test:unit": "jest --testPathPattern=tests/unit",
48
+ "test:integration": "jest --testPathPattern=tests/integration",
49
+ "test:coverage": "jest --coverage",
50
+ "lint": "eslint src/**/*.ts tests/**/*.ts",
51
+ "typecheck": "tsc --noEmit",
52
+ "prepare": "husky"
53
+ },
54
+ "lint-staged": {
55
+ "src/**/*.ts": [
56
+ "eslint --fix"
57
+ ],
58
+ "tests/**/*.ts": [
59
+ "eslint --fix"
60
+ ]
61
+ },
62
+ "dependencies": {
63
+ "@azure/msal-node": "^2.16.0",
64
+ "@modelcontextprotocol/sdk": "^1.0.0",
65
+ "zod": "^3.23.0"
66
+ },
67
+ "devDependencies": {
68
+ "@types/jest": "^29.5.0",
69
+ "@types/node": "^20.0.0",
70
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
71
+ "@typescript-eslint/parser": "^8.0.0",
72
+ "eslint": "^9.0.0",
73
+ "husky": "^9.1.7",
74
+ "jest": "^29.0.0",
75
+ "lint-staged": "^16.2.7",
76
+ "ts-jest": "^29.0.0",
77
+ "tsx": "^4.0.0",
78
+ "typescript": "^5.4.0",
79
+ "typescript-eslint": "^8.56.0"
80
+ }
81
+ }