mcp-dataverse 0.1.5 → 0.1.7

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 (146) hide show
  1. package/CAPABILITIES.md +1049 -992
  2. package/README.md +92 -80
  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.js +25 -28
  16. package/dist/config/config.loader.js.map +1 -1
  17. package/dist/config/config.schema.d.ts +1 -4
  18. package/dist/config/config.schema.d.ts.map +1 -1
  19. package/dist/config/config.schema.js +11 -11
  20. package/dist/config/config.schema.js.map +1 -1
  21. package/dist/dataverse/dataverse-client-advanced.d.ts +1 -1
  22. package/dist/dataverse/dataverse-client-advanced.d.ts.map +1 -1
  23. package/dist/dataverse/dataverse-client-advanced.js +70 -39
  24. package/dist/dataverse/dataverse-client-advanced.js.map +1 -1
  25. package/dist/dataverse/dataverse-client.actions.d.ts +11 -0
  26. package/dist/dataverse/dataverse-client.actions.d.ts.map +1 -0
  27. package/dist/dataverse/dataverse-client.actions.js +25 -0
  28. package/dist/dataverse/dataverse-client.actions.js.map +1 -0
  29. package/dist/dataverse/dataverse-client.batch.d.ts +2 -2
  30. package/dist/dataverse/dataverse-client.batch.d.ts.map +1 -1
  31. package/dist/dataverse/dataverse-client.batch.js +12 -12
  32. package/dist/dataverse/dataverse-client.batch.js.map +1 -1
  33. package/dist/dataverse/dataverse-client.d.ts +5 -8
  34. package/dist/dataverse/dataverse-client.d.ts.map +1 -1
  35. package/dist/dataverse/dataverse-client.js +81 -81
  36. package/dist/dataverse/dataverse-client.js.map +1 -1
  37. package/dist/dataverse/dataverse-client.metadata.d.ts +3 -3
  38. package/dist/dataverse/dataverse-client.metadata.d.ts.map +1 -1
  39. package/dist/dataverse/dataverse-client.metadata.js +45 -45
  40. package/dist/dataverse/dataverse-client.metadata.js.map +1 -1
  41. package/dist/dataverse/dataverse-client.utils.d.ts.map +1 -1
  42. package/dist/dataverse/dataverse-client.utils.js +5 -5
  43. package/dist/dataverse/dataverse-client.utils.js.map +1 -1
  44. package/dist/dataverse/http-client.d.ts +1 -1
  45. package/dist/dataverse/http-client.d.ts.map +1 -1
  46. package/dist/dataverse/http-client.js +25 -18
  47. package/dist/dataverse/http-client.js.map +1 -1
  48. package/dist/dataverse/types.d.ts +5 -5
  49. package/dist/server.js +57 -57
  50. package/dist/server.js.map +1 -1
  51. package/dist/setup-auth.js +8 -8
  52. package/dist/setup-auth.js.map +1 -1
  53. package/dist/tools/actions.tools.d.ts +2 -2
  54. package/dist/tools/actions.tools.d.ts.map +1 -1
  55. package/dist/tools/actions.tools.js +108 -65
  56. package/dist/tools/actions.tools.js.map +1 -1
  57. package/dist/tools/annotations.tools.d.ts +2 -2
  58. package/dist/tools/annotations.tools.d.ts.map +1 -1
  59. package/dist/tools/annotations.tools.js +79 -70
  60. package/dist/tools/annotations.tools.js.map +1 -1
  61. package/dist/tools/audit.tools.d.ts +2 -2
  62. package/dist/tools/audit.tools.d.ts.map +1 -1
  63. package/dist/tools/audit.tools.js +51 -48
  64. package/dist/tools/audit.tools.js.map +1 -1
  65. package/dist/tools/auth.tools.d.ts +2 -2
  66. package/dist/tools/auth.tools.d.ts.map +1 -1
  67. package/dist/tools/auth.tools.js +9 -7
  68. package/dist/tools/auth.tools.js.map +1 -1
  69. package/dist/tools/batch.tools.d.ts +2 -2
  70. package/dist/tools/batch.tools.d.ts.map +1 -1
  71. package/dist/tools/batch.tools.js +39 -26
  72. package/dist/tools/batch.tools.js.map +1 -1
  73. package/dist/tools/crud.tools.d.ts +2 -2
  74. package/dist/tools/crud.tools.d.ts.map +1 -1
  75. package/dist/tools/crud.tools.js +140 -83
  76. package/dist/tools/crud.tools.js.map +1 -1
  77. package/dist/tools/customization.tools.d.ts +2 -2
  78. package/dist/tools/customization.tools.d.ts.map +1 -1
  79. package/dist/tools/customization.tools.js +72 -62
  80. package/dist/tools/customization.tools.js.map +1 -1
  81. package/dist/tools/environment.tools.d.ts +2 -2
  82. package/dist/tools/environment.tools.d.ts.map +1 -1
  83. package/dist/tools/environment.tools.js +62 -55
  84. package/dist/tools/environment.tools.js.map +1 -1
  85. package/dist/tools/file.tools.d.ts +2 -2
  86. package/dist/tools/file.tools.d.ts.map +1 -1
  87. package/dist/tools/file.tools.js +63 -44
  88. package/dist/tools/file.tools.js.map +1 -1
  89. package/dist/tools/impersonate.tools.d.ts +3 -3
  90. package/dist/tools/impersonate.tools.d.ts.map +1 -1
  91. package/dist/tools/impersonate.tools.js +22 -20
  92. package/dist/tools/impersonate.tools.js.map +1 -1
  93. package/dist/tools/metadata.tools.d.ts +2 -2
  94. package/dist/tools/metadata.tools.d.ts.map +1 -1
  95. package/dist/tools/metadata.tools.js +110 -75
  96. package/dist/tools/metadata.tools.js.map +1 -1
  97. package/dist/tools/org.tools.d.ts +2 -2
  98. package/dist/tools/org.tools.d.ts.map +1 -1
  99. package/dist/tools/org.tools.js +21 -15
  100. package/dist/tools/org.tools.js.map +1 -1
  101. package/dist/tools/quality.tools.d.ts +2 -2
  102. package/dist/tools/quality.tools.d.ts.map +1 -1
  103. package/dist/tools/quality.tools.js +19 -17
  104. package/dist/tools/quality.tools.js.map +1 -1
  105. package/dist/tools/query.tools.d.ts +2 -2
  106. package/dist/tools/query.tools.d.ts.map +1 -1
  107. package/dist/tools/query.tools.js +81 -58
  108. package/dist/tools/query.tools.js.map +1 -1
  109. package/dist/tools/relations.tools.d.ts +2 -2
  110. package/dist/tools/relations.tools.d.ts.map +1 -1
  111. package/dist/tools/relations.tools.js +62 -26
  112. package/dist/tools/relations.tools.js.map +1 -1
  113. package/dist/tools/search.tools.d.ts +2 -2
  114. package/dist/tools/search.tools.d.ts.map +1 -1
  115. package/dist/tools/search.tools.js +45 -45
  116. package/dist/tools/search.tools.js.map +1 -1
  117. package/dist/tools/solution.tools.d.ts +2 -2
  118. package/dist/tools/solution.tools.d.ts.map +1 -1
  119. package/dist/tools/solution.tools.js +89 -55
  120. package/dist/tools/solution.tools.js.map +1 -1
  121. package/dist/tools/teams.tools.d.ts +2 -2
  122. package/dist/tools/teams.tools.d.ts.map +1 -1
  123. package/dist/tools/teams.tools.js +33 -29
  124. package/dist/tools/teams.tools.js.map +1 -1
  125. package/dist/tools/trace.tools.d.ts +2 -2
  126. package/dist/tools/trace.tools.d.ts.map +1 -1
  127. package/dist/tools/trace.tools.js +111 -101
  128. package/dist/tools/trace.tools.js.map +1 -1
  129. package/dist/tools/tracking.tools.d.ts +2 -2
  130. package/dist/tools/tracking.tools.d.ts.map +1 -1
  131. package/dist/tools/tracking.tools.js +16 -14
  132. package/dist/tools/tracking.tools.js.map +1 -1
  133. package/dist/tools/users.tools.d.ts +2 -2
  134. package/dist/tools/users.tools.d.ts.map +1 -1
  135. package/dist/tools/users.tools.js +62 -57
  136. package/dist/tools/users.tools.js.map +1 -1
  137. package/dist/tools/validation.utils.d.ts +1 -1
  138. package/dist/tools/validation.utils.d.ts.map +1 -1
  139. package/dist/tools/validation.utils.js +9 -3
  140. package/dist/tools/validation.utils.js.map +1 -1
  141. package/dist/tools/views.tools.d.ts +2 -2
  142. package/dist/tools/views.tools.d.ts.map +1 -1
  143. package/dist/tools/views.tools.js +32 -24
  144. package/dist/tools/views.tools.js.map +1 -1
  145. package/package.json +81 -81
  146. package/server.json +59 -4
@@ -1,103 +1,106 @@
1
- import { z } from 'zod';
2
- import { safeEntitySetName } from './validation.utils.js';
1
+ import { z } from "zod";
2
+ import { safeEntitySetName } from "./validation.utils.js";
3
3
  /**
4
4
  * Dataverse entities whose EntitySetName does not follow the simple <logicalName>+s pattern.
5
5
  * Used to resolve the correct entity set name when auto-extracting from FetchXML.
6
6
  */
7
7
  const IRREGULAR_ENTITY_SET_NAMES = {
8
- opportunity: 'opportunities',
9
- territory: 'territories',
10
- category: 'categories',
11
- activityparty: 'activityparties',
12
- activitymimeattachment: 'activitymimeattachments',
13
- queue: 'queues',
14
- queueitem: 'queueitems',
15
- dependency: 'dependencies',
16
- salesliteratureitem: 'salesliteratureitems',
17
- contractdetail: 'contractdetails',
18
- discounttype: 'discounttypes',
19
- entitlementtemplate: 'entitlementtemplates',
20
- pricelevel: 'pricelevels',
8
+ opportunity: "opportunities",
9
+ territory: "territories",
10
+ category: "categories",
11
+ activityparty: "activityparties",
12
+ activitymimeattachment: "activitymimeattachments",
13
+ queue: "queues",
14
+ queueitem: "queueitems",
15
+ dependency: "dependencies",
16
+ salesliteratureitem: "salesliteratureitems",
17
+ contractdetail: "contractdetails",
18
+ discounttype: "discounttypes",
19
+ entitlementtemplate: "entitlementtemplates",
20
+ pricelevel: "pricelevels",
21
21
  };
22
22
  export const queryTools = [
23
23
  {
24
- name: 'dataverse_query',
25
- description: 'Queries a Dataverse table using OData ($filter, $select, $orderby, $top, $expand, $count). Use for simple to moderate reads on a single table or with shallow $expand for related fields. Always specify $select to minimize payload. For complex aggregations (count, sum, avg), multi-entity joins, many-to-many traversal, or advanced FetchXML-only operators, use dataverse_execute_fetchxml instead.',
24
+ name: "dataverse_query",
25
+ description: "Queries a Dataverse table using OData ($filter, $select, $orderby, $top, $expand, $count). Use for simple to moderate reads on a single table or with shallow $expand for related fields. Always specify $select to minimize payload. For complex aggregations (count, sum, avg), multi-entity joins, many-to-many traversal, or advanced FetchXML-only operators, use dataverse_execute_fetchxml instead.",
26
26
  inputSchema: {
27
- type: 'object',
27
+ type: "object",
28
28
  properties: {
29
29
  entitySetName: {
30
- type: 'string',
30
+ type: "string",
31
31
  description: 'The OData entity set name (e.g., "accounts", "contacts", "new_mytables")',
32
32
  },
33
33
  select: {
34
- type: 'array',
35
- items: { type: 'string' },
36
- description: 'Columns to return. Always specify to minimize payload.',
34
+ type: "array",
35
+ items: { type: "string" },
36
+ description: "Columns to return. Always specify to minimize payload.",
37
37
  },
38
38
  filter: {
39
- type: 'string',
39
+ type: "string",
40
40
  description: 'OData $filter expression (e.g., "statecode eq 0 and new_amount gt 1000")',
41
41
  },
42
42
  orderby: {
43
- type: 'string',
43
+ type: "string",
44
44
  description: 'OData $orderby expression (e.g., "createdon desc")',
45
45
  },
46
46
  top: {
47
- type: 'number',
48
- description: 'Maximum number of records to return (default: 50)',
47
+ type: "number",
48
+ description: "Maximum number of records to return (default: 50)",
49
49
  },
50
50
  expand: {
51
- type: 'string',
51
+ type: "string",
52
52
  description: 'OData $expand for related entities (e.g., "parentaccountid($select=name)")',
53
53
  },
54
54
  count: {
55
- type: 'boolean',
56
- description: 'Include total record count in response',
55
+ type: "boolean",
56
+ description: "Include total record count in response",
57
57
  },
58
58
  apply: {
59
- type: 'string',
59
+ type: "string",
60
60
  description: 'OData $apply for server-side aggregation (e.g., "groupby((statuscode),aggregate($count as count))")',
61
61
  },
62
62
  },
63
- required: ['entitySetName'],
63
+ required: ["entitySetName"],
64
64
  },
65
65
  },
66
66
  {
67
- name: 'dataverse_execute_fetchxml',
67
+ name: "dataverse_execute_fetchxml",
68
68
  description: 'Executes a FetchXML query against Dataverse — use for complex scenarios requiring aggregations (count, sum, avg, min, max with grouping), linked-entity joins across multiple tables, many-to-many relationship traversal, or advanced filtering not expressible in OData. Returns a typed array of records. entitySetName is optional — if omitted it is extracted from the <entity name="..."> element in the FetchXML.',
69
69
  inputSchema: {
70
- type: 'object',
70
+ type: "object",
71
71
  properties: {
72
72
  entitySetName: {
73
- type: 'string',
73
+ type: "string",
74
74
  description: 'OData entity set name of the root entity (e.g., "accounts"). If omitted, extracted from the <entity name="..."> element in the FetchXML.',
75
75
  },
76
76
  fetchXml: {
77
- type: 'string',
78
- description: 'The complete FetchXML query string',
77
+ type: "string",
78
+ description: "The complete FetchXML query string",
79
79
  },
80
80
  },
81
- required: ['fetchXml'],
81
+ required: ["fetchXml"],
82
82
  },
83
83
  },
84
84
  {
85
- name: 'dataverse_retrieve_multiple_with_paging',
86
- description: 'Retrieves ALL records matching a query by automatically following OData nextLink pages. Use instead of dataverse_query when you need more than 5000 records or all records in a table. Returns totalRetrieved count. Set maxTotal to cap retrieval (default 5000, max 50000) to avoid overwhelming the context.',
85
+ name: "dataverse_retrieve_multiple_with_paging",
86
+ description: "Retrieves ALL records matching a query by automatically following OData nextLink pages. Use instead of dataverse_query when you need more than 5000 records or all records in a table. Returns totalRetrieved count. Set maxTotal to cap retrieval (default 5000, max 50000) to avoid overwhelming the context.",
87
87
  inputSchema: {
88
- type: 'object',
88
+ type: "object",
89
89
  properties: {
90
- entitySetName: { type: 'string', description: 'OData entity set name (e.g., "accounts")' },
91
- select: { type: 'array', items: { type: 'string' } },
92
- filter: { type: 'string' },
93
- orderby: { type: 'string' },
94
- expand: { type: 'string' },
90
+ entitySetName: {
91
+ type: "string",
92
+ description: 'OData entity set name (e.g., "accounts")',
93
+ },
94
+ select: { type: "array", items: { type: "string" } },
95
+ filter: { type: "string" },
96
+ orderby: { type: "string" },
97
+ expand: { type: "string" },
95
98
  maxTotal: {
96
- type: 'number',
97
- description: 'Maximum records to retrieve (default: 5000, max: 50000)',
99
+ type: "number",
100
+ description: "Maximum records to retrieve (default: 5000, max: 50000)",
98
101
  },
99
102
  },
100
- required: ['entitySetName'],
103
+ required: ["entitySetName"],
101
104
  },
102
105
  },
103
106
  ];
@@ -112,8 +115,11 @@ const QueryInput = z.object({
112
115
  apply: z.string().optional(),
113
116
  });
114
117
  const FetchXmlInput = z.object({
115
- fetchXml: z.string().min(1).describe('Complete FetchXML query string'),
116
- entitySetName: z.string().optional().describe('OData entity set name (e.g., "accounts"). If omitted, extracted from the <entity name="..."> element in the FetchXML.'),
118
+ fetchXml: z.string().min(1).describe("Complete FetchXML query string"),
119
+ entitySetName: z
120
+ .string()
121
+ .optional()
122
+ .describe('OData entity set name (e.g., "accounts"). If omitted, extracted from the <entity name="..."> element in the FetchXML.'),
117
123
  });
118
124
  const RetrieveWithPagingInput = z.object({
119
125
  entitySetName: safeEntitySetName,
@@ -125,7 +131,7 @@ const RetrieveWithPagingInput = z.object({
125
131
  });
126
132
  export async function handleQueryTool(name, args, client) {
127
133
  switch (name) {
128
- case 'dataverse_query': {
134
+ case "dataverse_query": {
129
135
  const params = QueryInput.parse(args);
130
136
  const queryOptions = {};
131
137
  if (params.select !== undefined)
@@ -143,24 +149,39 @@ export async function handleQueryTool(name, args, client) {
143
149
  if (params.apply !== undefined)
144
150
  queryOptions.apply = params.apply;
145
151
  const result = await client.query(params.entitySetName, queryOptions);
146
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
152
+ return {
153
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
154
+ };
147
155
  }
148
- case 'dataverse_execute_fetchxml': {
156
+ case "dataverse_execute_fetchxml": {
149
157
  const parsed = FetchXmlInput.parse(args);
150
158
  let entitySetName = parsed.entitySetName;
151
159
  const { fetchXml } = parsed;
152
160
  if (!entitySetName) {
153
161
  const match = fetchXml.match(/<entity\s+name=["']([^"']+)["']/i);
154
162
  if (!match) {
155
- return { content: [{ type: 'text', text: JSON.stringify({ isError: true, error: 'entitySetName is required when not present in FetchXML <entity> element' }) }] };
163
+ return {
164
+ content: [
165
+ {
166
+ type: "text",
167
+ text: JSON.stringify({
168
+ isError: true,
169
+ error: "entitySetName is required when not present in FetchXML <entity> element",
170
+ }),
171
+ },
172
+ ],
173
+ };
156
174
  }
157
175
  const logicalName = match[1];
158
- entitySetName = IRREGULAR_ENTITY_SET_NAMES[logicalName] ?? (logicalName + 's');
176
+ entitySetName =
177
+ IRREGULAR_ENTITY_SET_NAMES[logicalName] ?? logicalName + "s";
159
178
  }
160
179
  const result = await client.executeFetchXml(entitySetName, fetchXml);
161
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
180
+ return {
181
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
182
+ };
162
183
  }
163
- case 'dataverse_retrieve_multiple_with_paging': {
184
+ case "dataverse_retrieve_multiple_with_paging": {
164
185
  const params = RetrieveWithPagingInput.parse(args);
165
186
  const pagingOptions = {};
166
187
  if (params.select !== undefined)
@@ -174,7 +195,9 @@ export async function handleQueryTool(name, args, client) {
174
195
  if (params.maxTotal !== undefined)
175
196
  pagingOptions.maxTotal = params.maxTotal;
176
197
  const result = await client.queryWithPaging(params.entitySetName, pagingOptions);
177
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
198
+ return {
199
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
200
+ };
178
201
  }
179
202
  default:
180
203
  throw new Error(`Unknown query tool: ${name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"query.tools.js","sourceRoot":"","sources":["../../src/tools/query.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.tools.js","sourceRoot":"","sources":["../../src/tools/query.tools.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DataverseClient } from '../dataverse/dataverse-client.js';
1
+ import type { DataverseClient } from "../dataverse/dataverse-client.js";
2
2
  export declare const relationTools: ({
3
3
  name: string;
4
4
  description: string;
@@ -58,7 +58,7 @@ export declare const relationTools: ({
58
58
  })[];
59
59
  export declare function handleRelationTool(name: string, args: unknown, client: DataverseClient): Promise<{
60
60
  content: Array<{
61
- type: 'text';
61
+ type: "text";
62
62
  text: string;
63
63
  }>;
64
64
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"relations.tools.d.ts","sourceRoot":"","sources":["../../src/tools/relations.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BzB,CAAC;AAkBF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgB7D"}
1
+ {"version":3,"file":"relations.tools.d.ts","sourceRoot":"","sources":["../../src/tools/relations.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoDzB,CAAC;AAkBF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyD7D"}
@@ -1,34 +1,52 @@
1
- import { z } from 'zod';
2
- import { safeEntitySetName, safeRelationshipName } from './validation.utils.js';
1
+ import { z } from "zod";
2
+ import { safeEntitySetName, safeRelationshipName } from "./validation.utils.js";
3
3
  export const relationTools = [
4
4
  {
5
- name: 'dataverse_associate',
6
- description: 'Creates an association between two Dataverse records via a named N:N or 1:N relationship. Requires the relationship schema name obtainable from dataverse_get_relationships. Use for N:N relationships or to link records without modifying a lookup field directly — for simple 1:N lookups, setting the lookup field in dataverse_update is simpler.',
5
+ name: "dataverse_associate",
6
+ description: "Creates an association between two Dataverse records via a named N:N or 1:N relationship. Requires the relationship schema name obtainable from dataverse_get_relationships. Use for N:N relationships or to link records without modifying a lookup field directly — for simple 1:N lookups, setting the lookup field in dataverse_update is simpler.",
7
7
  inputSchema: {
8
- type: 'object',
8
+ type: "object",
9
9
  properties: {
10
- entitySetName: { type: 'string' },
11
- id: { type: 'string', description: 'Source record GUID' },
12
- relationshipName: { type: 'string', description: 'Relationship schema name' },
13
- relatedEntitySetName: { type: 'string', description: 'Related entity set name' },
14
- relatedId: { type: 'string', description: 'Related record GUID' },
10
+ entitySetName: { type: "string" },
11
+ id: { type: "string", description: "Source record GUID" },
12
+ relationshipName: {
13
+ type: "string",
14
+ description: "Relationship schema name",
15
+ },
16
+ relatedEntitySetName: {
17
+ type: "string",
18
+ description: "Related entity set name",
19
+ },
20
+ relatedId: { type: "string", description: "Related record GUID" },
15
21
  },
16
- required: ['entitySetName', 'id', 'relationshipName', 'relatedEntitySetName', 'relatedId'],
22
+ required: [
23
+ "entitySetName",
24
+ "id",
25
+ "relationshipName",
26
+ "relatedEntitySetName",
27
+ "relatedId",
28
+ ],
17
29
  },
18
30
  },
19
31
  {
20
- name: 'dataverse_disassociate',
21
- description: 'Removes an existing association between two Dataverse records on a named relationship. For N:N relationships, provide relatedId and relatedEntitySetName to build the correct $id URL. For 1:N relationships, relatedId and relatedEntitySetName are optional. Use dataverse_get_relationships to find the correct relationship schema name.',
32
+ name: "dataverse_disassociate",
33
+ description: "Removes an existing association between two Dataverse records on a named relationship. For N:N relationships, provide relatedId and relatedEntitySetName to build the correct $id URL. For 1:N relationships, relatedId and relatedEntitySetName are optional. Use dataverse_get_relationships to find the correct relationship schema name.",
22
34
  inputSchema: {
23
- type: 'object',
35
+ type: "object",
24
36
  properties: {
25
- entitySetName: { type: 'string' },
26
- id: { type: 'string' },
27
- relationshipName: { type: 'string' },
28
- relatedId: { type: 'string', description: 'Required for N:N relationships' },
29
- relatedEntitySetName: { type: 'string', description: 'Entity set name of the related record (required for N:N). E.g., "contacts"' },
37
+ entitySetName: { type: "string" },
38
+ id: { type: "string" },
39
+ relationshipName: { type: "string" },
40
+ relatedId: {
41
+ type: "string",
42
+ description: "Required for N:N relationships",
43
+ },
44
+ relatedEntitySetName: {
45
+ type: "string",
46
+ description: 'Entity set name of the related record (required for N:N). E.g., "contacts"',
47
+ },
30
48
  },
31
- required: ['entitySetName', 'id', 'relationshipName'],
49
+ required: ["entitySetName", "id", "relationshipName"],
32
50
  },
33
51
  },
34
52
  ];
@@ -48,15 +66,33 @@ const DisassociateInput = z.object({
48
66
  });
49
67
  export async function handleRelationTool(name, args, client) {
50
68
  switch (name) {
51
- case 'dataverse_associate': {
52
- const { entitySetName, id, relationshipName, relatedEntitySetName, relatedId } = AssociateInput.parse(args);
69
+ case "dataverse_associate": {
70
+ const { entitySetName, id, relationshipName, relatedEntitySetName, relatedId, } = AssociateInput.parse(args);
53
71
  await client.associate(entitySetName, id, relationshipName, relatedEntitySetName, relatedId);
54
- return { content: [{ type: 'text', text: JSON.stringify({ message: 'Records associated successfully' }) }] };
72
+ return {
73
+ content: [
74
+ {
75
+ type: "text",
76
+ text: JSON.stringify({
77
+ message: "Records associated successfully",
78
+ }),
79
+ },
80
+ ],
81
+ };
55
82
  }
56
- case 'dataverse_disassociate': {
57
- const { entitySetName, id, relationshipName, relatedId, relatedEntitySetName } = DisassociateInput.parse(args);
83
+ case "dataverse_disassociate": {
84
+ const { entitySetName, id, relationshipName, relatedId, relatedEntitySetName, } = DisassociateInput.parse(args);
58
85
  await client.disassociate(entitySetName, id, relationshipName, relatedId, relatedEntitySetName);
59
- return { content: [{ type: 'text', text: JSON.stringify({ message: 'Records disassociated successfully' }) }] };
86
+ return {
87
+ content: [
88
+ {
89
+ type: "text",
90
+ text: JSON.stringify({
91
+ message: "Records disassociated successfully",
92
+ }),
93
+ },
94
+ ],
95
+ };
60
96
  }
61
97
  default:
62
98
  throw new Error(`Unknown relation tool: ${name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"relations.tools.js","sourceRoot":"","sources":["../../src/tools/relations.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.tools.js","sourceRoot":"","sources":["../../src/tools/relations.tools.ts"],"names":[],"mappings":"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"}
@@ -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 searchTools: {
3
3
  name: string;
4
4
  description: string;
@@ -61,7 +61,7 @@ export declare const searchTools: {
61
61
  }[];
62
62
  export declare function handleSearchTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
63
63
  content: Array<{
64
- type: 'text';
64
+ type: "text";
65
65
  text: string;
66
66
  }>;
67
67
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"search.tools.d.ts","sourceRoot":"","sources":["../../src/tools/search.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDvB,CAAC;AAcF,wBAAsB,gBAAgB,CACpC,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,CAuE7D"}
1
+ {"version":3,"file":"search.tools.d.ts","sourceRoot":"","sources":["../../src/tools/search.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DvB,CAAC;AAcF,wBAAsB,gBAAgB,CACpC,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,CAsE7D"}
@@ -1,55 +1,55 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  export const searchTools = [
3
3
  {
4
- name: 'dataverse_search',
5
- description: 'Full-text Relevance Search across all configured Dataverse tables. Returns ranked results with entity name, record ID, score, and matched fields. Requires Relevance Search to be enabled in Dataverse admin settings. Use when you need to find records without knowing which table they belong to.',
4
+ name: "dataverse_search",
5
+ description: "Full-text Relevance Search across all configured Dataverse tables. Returns ranked results with entity name, record ID, score, and matched fields. Requires Relevance Search to be enabled in Dataverse admin settings. Use when you need to find records without knowing which table they belong to.",
6
6
  inputSchema: {
7
- type: 'object',
7
+ type: "object",
8
8
  properties: {
9
9
  query: {
10
- type: 'string',
11
- description: 'Full-text search string (supports Lucene syntax with searchType=full)',
10
+ type: "string",
11
+ description: "Full-text search string (supports Lucene syntax with searchType=full)",
12
12
  },
13
13
  entities: {
14
- type: 'array',
15
- items: { type: 'string' },
16
- description: 'Restrict to specific table logical names (omit to search all configured tables)',
14
+ type: "array",
15
+ items: { type: "string" },
16
+ description: "Restrict to specific table logical names (omit to search all configured tables)",
17
17
  },
18
18
  top: {
19
- type: 'number',
20
- description: 'Max results (default 10, max 50)',
19
+ type: "number",
20
+ description: "Max results (default 10, max 50)",
21
21
  },
22
22
  searchMode: {
23
- type: 'string',
24
- enum: ['any', 'all'],
25
- description: 'Match any or all terms (default: any)',
23
+ type: "string",
24
+ enum: ["any", "all"],
25
+ description: "Match any or all terms (default: any)",
26
26
  },
27
27
  searchType: {
28
- type: 'string',
29
- enum: ['simple', 'full'],
30
- description: 'Search mode: simple (default) or full (enables Lucene syntax: AND, OR, NOT, wildcards, fuzzy)',
28
+ type: "string",
29
+ enum: ["simple", "full"],
30
+ description: "Search mode: simple (default) or full (enables Lucene syntax: AND, OR, NOT, wildcards, fuzzy)",
31
31
  },
32
32
  filter: {
33
- type: 'string',
33
+ type: "string",
34
34
  description: 'OData $filter to apply on search results (e.g., "statecode eq 0")',
35
35
  },
36
36
  facets: {
37
- type: 'array',
38
- items: { type: 'string' },
37
+ type: "array",
38
+ items: { type: "string" },
39
39
  description: 'Fields to return faceted counts for (e.g., ["@search.entityname","statecode"])',
40
40
  },
41
41
  orderby: {
42
- type: 'array',
43
- items: { type: 'string' },
42
+ type: "array",
43
+ items: { type: "string" },
44
44
  description: 'OData $orderby for result sorting (e.g., ["@search.score desc","name asc"])',
45
45
  },
46
46
  select: {
47
- type: 'array',
48
- items: { type: 'string' },
49
- description: 'Fields to return in each result (default: all indexed fields)',
47
+ type: "array",
48
+ items: { type: "string" },
49
+ description: "Fields to return in each result (default: all indexed fields)",
50
50
  },
51
51
  },
52
- required: ['query'],
52
+ required: ["query"],
53
53
  },
54
54
  },
55
55
  ];
@@ -57,8 +57,8 @@ const SearchInput = z.object({
57
57
  query: z.string().min(1),
58
58
  entities: z.array(z.string()).optional(),
59
59
  top: z.number().int().positive().max(50).optional().default(10),
60
- searchMode: z.enum(['any', 'all']).optional().default('any'),
61
- searchType: z.enum(['simple', 'full']).optional(),
60
+ searchMode: z.enum(["any", "all"]).optional().default("any"),
61
+ searchType: z.enum(["simple", "full"]).optional(),
62
62
  filter: z.string().optional(),
63
63
  facets: z.array(z.string()).optional(),
64
64
  orderby: z.array(z.string()).optional(),
@@ -66,7 +66,7 @@ const SearchInput = z.object({
66
66
  });
67
67
  export async function handleSearchTool(name, args, client) {
68
68
  switch (name) {
69
- case 'dataverse_search': {
69
+ case "dataverse_search": {
70
70
  const params = SearchInput.parse(args);
71
71
  const body = {
72
72
  search: params.query,
@@ -89,20 +89,20 @@ export async function handleSearchTool(name, args, client) {
89
89
  body.select = params.select;
90
90
  let raw;
91
91
  try {
92
- raw = (await client.executeAction('../../search/v1.0/query', body));
92
+ raw = (await client.executeAction("../../search/v1.0/query", body));
93
93
  }
94
94
  catch (err) {
95
95
  const message = err instanceof Error ? err.message : String(err);
96
- if (message.includes('404') || message.includes('Not Found')) {
96
+ if (message.includes("404") || message.includes("Not Found")) {
97
97
  return {
98
98
  content: [
99
99
  {
100
- type: 'text',
100
+ type: "text",
101
101
  text: JSON.stringify({
102
102
  isError: true,
103
- error: 'Relevance Search is not enabled for this Dataverse environment. ' +
104
- 'An administrator must enable it in the Power Platform admin center ' +
105
- 'under Environment → Settings → Product → Features → Dataverse Search.',
103
+ error: "Relevance Search is not enabled for this Dataverse environment. " +
104
+ "An administrator must enable it in the Power Platform admin center " +
105
+ "under Environment → Settings → Product → Features → Dataverse Search.",
106
106
  }),
107
107
  },
108
108
  ],
@@ -110,21 +110,21 @@ export async function handleSearchTool(name, args, client) {
110
110
  }
111
111
  throw err;
112
112
  }
113
- const results = (raw['value'] ?? []).map((r) => ({
114
- entityName: r['entityname'] ?? '',
115
- objectId: r['objectid'] ?? '',
116
- score: r['score'] ?? 0,
117
- highlights: r['highlights'] ?? {},
118
- fields: r['attributes'] ?? {},
113
+ const results = (raw["value"] ?? []).map((r) => ({
114
+ entityName: r["entityname"] ?? "",
115
+ objectId: r["objectid"] ?? "",
116
+ score: r["score"] ?? 0,
117
+ highlights: r["highlights"] ?? {},
118
+ fields: r["attributes"] ?? {},
119
119
  }));
120
120
  const output = {
121
- totalRecordCount: raw['totalrecordcount'] ?? 0,
121
+ totalRecordCount: raw["totalrecordcount"] ?? 0,
122
122
  results,
123
123
  };
124
- if (raw['facets'])
125
- output.facets = raw['facets'];
124
+ if (raw["facets"])
125
+ output.facets = raw["facets"];
126
126
  return {
127
- content: [{ type: 'text', text: JSON.stringify(output, null, 2) }],
127
+ content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
128
128
  };
129
129
  }
130
130
  default: