mcp-dataverse 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +35 -25
  2. package/dist/doctor.d.ts +7 -0
  3. package/dist/doctor.d.ts.map +1 -0
  4. package/dist/doctor.js +103 -0
  5. package/dist/doctor.js.map +1 -0
  6. package/dist/http-server.d.ts +3 -0
  7. package/dist/http-server.d.ts.map +1 -0
  8. package/dist/http-server.js +61 -0
  9. package/dist/http-server.js.map +1 -0
  10. package/dist/install.d.ts.map +1 -1
  11. package/dist/install.js +111 -51
  12. package/dist/install.js.map +1 -1
  13. package/dist/server.js +112 -110
  14. package/dist/server.js.map +1 -1
  15. package/dist/tools/actions.tools.d.ts +36 -0
  16. package/dist/tools/actions.tools.d.ts.map +1 -1
  17. package/dist/tools/actions.tools.js +53 -18
  18. package/dist/tools/actions.tools.js.map +1 -1
  19. package/dist/tools/annotations.tools.d.ts +12 -0
  20. package/dist/tools/annotations.tools.d.ts.map +1 -1
  21. package/dist/tools/annotations.tools.js +24 -25
  22. package/dist/tools/annotations.tools.js.map +1 -1
  23. package/dist/tools/audit.tools.d.ts +6 -0
  24. package/dist/tools/audit.tools.d.ts.map +1 -1
  25. package/dist/tools/audit.tools.js +8 -8
  26. package/dist/tools/audit.tools.js.map +1 -1
  27. package/dist/tools/auth.tools.d.ts +6 -0
  28. package/dist/tools/auth.tools.d.ts.map +1 -1
  29. package/dist/tools/auth.tools.js +17 -13
  30. package/dist/tools/auth.tools.js.map +1 -1
  31. package/dist/tools/batch.tools.d.ts +6 -0
  32. package/dist/tools/batch.tools.d.ts.map +1 -1
  33. package/dist/tools/batch.tools.js +11 -8
  34. package/dist/tools/batch.tools.js.map +1 -1
  35. package/dist/tools/crud.tools.d.ts +36 -0
  36. package/dist/tools/crud.tools.d.ts.map +1 -1
  37. package/dist/tools/crud.tools.js +58 -52
  38. package/dist/tools/crud.tools.js.map +1 -1
  39. package/dist/tools/customization.tools.d.ts +18 -0
  40. package/dist/tools/customization.tools.d.ts.map +1 -1
  41. package/dist/tools/customization.tools.js +27 -29
  42. package/dist/tools/customization.tools.js.map +1 -1
  43. package/dist/tools/environment.tools.d.ts +12 -0
  44. package/dist/tools/environment.tools.d.ts.map +1 -1
  45. package/dist/tools/environment.tools.js +15 -6
  46. package/dist/tools/environment.tools.js.map +1 -1
  47. package/dist/tools/file.tools.d.ts +12 -0
  48. package/dist/tools/file.tools.d.ts.map +1 -1
  49. package/dist/tools/file.tools.js +29 -30
  50. package/dist/tools/file.tools.js.map +1 -1
  51. package/dist/tools/impersonate.tools.d.ts +6 -0
  52. package/dist/tools/impersonate.tools.d.ts.map +1 -1
  53. package/dist/tools/impersonate.tools.js +12 -12
  54. package/dist/tools/impersonate.tools.js.map +1 -1
  55. package/dist/tools/metadata.tools.d.ts +42 -0
  56. package/dist/tools/metadata.tools.d.ts.map +1 -1
  57. package/dist/tools/metadata.tools.js +92 -47
  58. package/dist/tools/metadata.tools.js.map +1 -1
  59. package/dist/tools/org.tools.d.ts +6 -0
  60. package/dist/tools/org.tools.d.ts.map +1 -1
  61. package/dist/tools/org.tools.js +10 -8
  62. package/dist/tools/org.tools.js.map +1 -1
  63. package/dist/tools/output.utils.d.ts +21 -0
  64. package/dist/tools/output.utils.d.ts.map +1 -0
  65. package/dist/tools/output.utils.js +31 -0
  66. package/dist/tools/output.utils.js.map +1 -0
  67. package/dist/tools/quality.tools.d.ts +6 -0
  68. package/dist/tools/quality.tools.d.ts.map +1 -1
  69. package/dist/tools/quality.tools.js +8 -3
  70. package/dist/tools/quality.tools.js.map +1 -1
  71. package/dist/tools/query.tools.d.ts +18 -0
  72. package/dist/tools/query.tools.d.ts.map +1 -1
  73. package/dist/tools/query.tools.js +42 -9
  74. package/dist/tools/query.tools.js.map +1 -1
  75. package/dist/tools/relations.tools.d.ts +12 -0
  76. package/dist/tools/relations.tools.d.ts.map +1 -1
  77. package/dist/tools/relations.tools.js +15 -20
  78. package/dist/tools/relations.tools.js.map +1 -1
  79. package/dist/tools/search.tools.d.ts +6 -0
  80. package/dist/tools/search.tools.d.ts.map +1 -1
  81. package/dist/tools/search.tools.js +11 -3
  82. package/dist/tools/search.tools.js.map +1 -1
  83. package/dist/tools/solution.tools.d.ts +18 -0
  84. package/dist/tools/solution.tools.d.ts.map +1 -1
  85. package/dist/tools/solution.tools.js +29 -14
  86. package/dist/tools/solution.tools.js.map +1 -1
  87. package/dist/tools/teams.tools.d.ts +6 -0
  88. package/dist/tools/teams.tools.d.ts.map +1 -1
  89. package/dist/tools/teams.tools.js +8 -8
  90. package/dist/tools/teams.tools.js.map +1 -1
  91. package/dist/tools/tool-registry.d.ts +34 -0
  92. package/dist/tools/tool-registry.d.ts.map +1 -0
  93. package/dist/tools/tool-registry.js +31 -0
  94. package/dist/tools/tool-registry.js.map +1 -0
  95. package/dist/tools/trace.tools.d.ts +12 -0
  96. package/dist/tools/trace.tools.d.ts.map +1 -1
  97. package/dist/tools/trace.tools.js +17 -6
  98. package/dist/tools/trace.tools.js.map +1 -1
  99. package/dist/tools/tracking.tools.d.ts +6 -0
  100. package/dist/tools/tracking.tools.d.ts.map +1 -1
  101. package/dist/tools/tracking.tools.js +13 -3
  102. package/dist/tools/tracking.tools.js.map +1 -1
  103. package/dist/tools/users.tools.d.ts +12 -0
  104. package/dist/tools/users.tools.d.ts.map +1 -1
  105. package/dist/tools/users.tools.js +21 -22
  106. package/dist/tools/users.tools.js.map +1 -1
  107. package/dist/tools/views.tools.d.ts +6 -0
  108. package/dist/tools/views.tools.d.ts.map +1 -1
  109. package/dist/tools/views.tools.js +15 -16
  110. package/dist/tools/views.tools.js.map +1 -1
  111. package/dist/transport.d.ts +6 -0
  112. package/dist/transport.d.ts.map +1 -0
  113. package/dist/transport.js +21 -0
  114. package/dist/transport.js.map +1 -0
  115. package/package.json +2 -1
  116. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.tools.d.ts","sourceRoot":"","sources":["../../src/tools/metadata.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqHzB,CAAC;AA8CF,wBAAsB,kBAAkB,CACtC,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,CAqH7D"}
1
+ {"version":3,"file":"metadata.tools.d.ts","sourceRoot":"","sources":["../../src/tools/metadata.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGzF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+JzB,CAAC;AA8CF,wBAAsB,kBAAkB,CACtC,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,CAuI7D"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { formatData, formatList } from "./output.utils.js";
2
3
  export const metadataTools = [
3
4
  {
4
5
  name: "dataverse_list_tables",
@@ -13,6 +14,12 @@ export const metadataTools = [
13
14
  },
14
15
  required: [],
15
16
  },
17
+ annotations: {
18
+ readOnlyHint: true,
19
+ destructiveHint: false,
20
+ idempotentHint: true,
21
+ openWorldHint: true,
22
+ },
16
23
  },
17
24
  {
18
25
  name: "dataverse_get_table_metadata",
@@ -31,6 +38,12 @@ export const metadataTools = [
31
38
  },
32
39
  required: ["logicalName"],
33
40
  },
41
+ annotations: {
42
+ readOnlyHint: true,
43
+ destructiveHint: false,
44
+ idempotentHint: true,
45
+ openWorldHint: true,
46
+ },
34
47
  },
35
48
  {
36
49
  name: "dataverse_get_relationships",
@@ -50,6 +63,12 @@ export const metadataTools = [
50
63
  },
51
64
  required: ["logicalName"],
52
65
  },
66
+ annotations: {
67
+ readOnlyHint: true,
68
+ destructiveHint: false,
69
+ idempotentHint: true,
70
+ openWorldHint: true,
71
+ },
53
72
  },
54
73
  {
55
74
  name: "dataverse_list_global_option_sets",
@@ -59,6 +78,12 @@ export const metadataTools = [
59
78
  properties: {},
60
79
  required: [],
61
80
  },
81
+ annotations: {
82
+ readOnlyHint: true,
83
+ destructiveHint: false,
84
+ idempotentHint: true,
85
+ openWorldHint: true,
86
+ },
62
87
  },
63
88
  {
64
89
  name: "dataverse_get_option_set",
@@ -73,6 +98,12 @@ export const metadataTools = [
73
98
  },
74
99
  required: ["name"],
75
100
  },
101
+ annotations: {
102
+ readOnlyHint: true,
103
+ destructiveHint: false,
104
+ idempotentHint: true,
105
+ openWorldHint: true,
106
+ },
76
107
  },
77
108
  {
78
109
  name: "dataverse_get_entity_key",
@@ -87,6 +118,12 @@ export const metadataTools = [
87
118
  },
88
119
  required: ["tableName"],
89
120
  },
121
+ annotations: {
122
+ readOnlyHint: true,
123
+ destructiveHint: false,
124
+ idempotentHint: true,
125
+ openWorldHint: true,
126
+ },
90
127
  },
91
128
  {
92
129
  name: "dataverse_get_attribute_option_set",
@@ -105,6 +142,12 @@ export const metadataTools = [
105
142
  },
106
143
  required: ["entityLogicalName", "attributeLogicalName"],
107
144
  },
145
+ annotations: {
146
+ readOnlyHint: true,
147
+ destructiveHint: false,
148
+ idempotentHint: true,
149
+ openWorldHint: true,
150
+ },
108
151
  },
109
152
  ];
110
153
  const GetTableMetadataInput = z.object({
@@ -150,16 +193,21 @@ export async function handleMetadataTool(name, args, client) {
150
193
  const { includeSystemTables = false } = ListTablesInput.parse(args ?? {});
151
194
  const customOnly = !includeSystemTables;
152
195
  const result = await client.listTables(customOnly);
153
- return {
154
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
155
- };
196
+ const tables = Array.isArray(result) ? result : [];
197
+ return formatList(`tables (${customOnly ? "custom only" : "including system"})`, tables, [
198
+ "Use dataverse_get_table_metadata to inspect a specific table's columns and types",
199
+ ]);
156
200
  }
157
201
  case "dataverse_get_table_metadata": {
158
202
  const { logicalName, includeAttributes } = GetTableMetadataInput.parse(args);
159
203
  const result = await client.getTableMetadata(logicalName, includeAttributes);
160
- return {
161
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
162
- };
204
+ const attributeCount = Array.isArray(result?.Attributes)
205
+ ? result.Attributes.length
206
+ : 0;
207
+ return formatData(`Metadata for ${logicalName}: ${attributeCount} attributes`, result, [
208
+ "Use dataverse_query to read records from this table",
209
+ "Use dataverse_get_relationships to see related tables",
210
+ ]);
163
211
  }
164
212
  case "dataverse_get_relationships": {
165
213
  const { logicalName, relationshipType } = GetRelationshipsInput.parse(args);
@@ -171,62 +219,59 @@ export async function handleMetadataTool(name, args, client) {
171
219
  r.ReferencingEntity?.toLowerCase() === lname);
172
220
  const manyToMany = rawRelationships.filter((r) => r.RelationshipType === "ManyToManyRelationship");
173
221
  const includeAll = !relationshipType || relationshipType === "All";
174
- return {
175
- content: [
176
- {
177
- type: "text",
178
- text: JSON.stringify({
179
- tableName: logicalName,
180
- oneToMany: includeAll || relationshipType === "OneToMany"
181
- ? oneToMany
182
- : undefined,
183
- manyToOne: includeAll || relationshipType === "ManyToOne"
184
- ? manyToOne
185
- : undefined,
186
- manyToMany: includeAll || relationshipType === "ManyToMany"
187
- ? manyToMany
188
- : undefined,
189
- }, null, 2),
190
- },
191
- ],
192
- };
222
+ const allRels = [
223
+ ...(includeAll || relationshipType === "OneToMany" ? oneToMany : []),
224
+ ...(includeAll || relationshipType === "ManyToOne" ? manyToOne : []),
225
+ ...(includeAll || relationshipType === "ManyToMany" ? manyToMany : []),
226
+ ];
227
+ return formatData(`${allRels.length} relationships found for ${logicalName}`, {
228
+ tableName: logicalName,
229
+ oneToMany: includeAll || relationshipType === "OneToMany"
230
+ ? oneToMany
231
+ : undefined,
232
+ manyToOne: includeAll || relationshipType === "ManyToOne"
233
+ ? manyToOne
234
+ : undefined,
235
+ manyToMany: includeAll || relationshipType === "ManyToMany"
236
+ ? manyToMany
237
+ : undefined,
238
+ }, [
239
+ "Use dataverse_associate or dataverse_disassociate to manage N:N relationships",
240
+ ]);
193
241
  }
194
242
  case "dataverse_list_global_option_sets": {
195
243
  const result = await client.listGlobalOptionSets();
196
- return {
197
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
198
- };
244
+ const items = Array.isArray(result) ? result : [];
245
+ return formatList("global option sets", items, [
246
+ "Use dataverse_get_option_set with a name to see the values",
247
+ ]);
199
248
  }
200
249
  case "dataverse_get_option_set": {
201
250
  const { name: optionSetName } = GetOptionSetInput.parse(args);
202
251
  const result = await client.getOptionSet(optionSetName);
203
- return {
204
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
205
- };
252
+ const options = Array.isArray(result?.Options)
253
+ ? result.Options
254
+ : [];
255
+ return formatData(`Option set '${optionSetName}': ${options.length} options`, result, [
256
+ "Use these values in $filter expressions or when creating/updating records",
257
+ ]);
206
258
  }
207
259
  case "dataverse_get_entity_key": {
208
260
  const { tableName } = GetEntityKeyInput.parse(args);
209
261
  const keys = await client.getEntityKeys(tableName);
210
- return {
211
- content: [
212
- {
213
- type: "text",
214
- text: JSON.stringify({ tableName, keys, count: keys.length }, null, 2),
215
- },
216
- ],
217
- };
262
+ return formatData(`${keys.length} alternate keys for ${tableName}`, { tableName, keys, count: keys.length }, [
263
+ "Use dataverse_upsert with these keys for create-or-update operations",
264
+ ]);
218
265
  }
219
266
  case "dataverse_get_attribute_option_set": {
220
267
  const { entityLogicalName, attributeLogicalName } = GetAttributeOptionSetInput.parse(args);
221
268
  const result = await client.getAttributeOptionSet(entityLogicalName, attributeLogicalName);
222
- return {
223
- content: [
224
- {
225
- type: "text",
226
- text: JSON.stringify(result, null, 2),
227
- },
228
- ],
229
- };
269
+ const options = Array.isArray(result?.Options)
270
+ ? result.Options
271
+ : [];
272
+ return formatData(`Attribute '${attributeLogicalName}' on '${entityLogicalName}': ${options.length} options`, result, [
273
+ "Use these integer values in $filter or when creating/updating records",
274
+ ]);
230
275
  }
231
276
  default:
232
277
  throw new Error(`Unknown metadata tool: ${name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.tools.js","sourceRoot":"","sources":["../../src/tools/metadata.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.tools.js","sourceRoot":"","sources":["../../src/tools/metadata.tools.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,12 @@ export declare const orgTools: {
16
16
  };
17
17
  required: never[];
18
18
  };
19
+ annotations: {
20
+ readOnlyHint: boolean;
21
+ destructiveHint: boolean;
22
+ idempotentHint: boolean;
23
+ openWorldHint: boolean;
24
+ };
19
25
  }[];
20
26
  export declare function handleOrgTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
21
27
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"org.tools.d.ts","sourceRoot":"","sources":["../../src/tools/org.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAOzF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;GAoBpB,CAAC;AAUF,wBAAsB,aAAa,CACjC,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,CA6C7D"}
1
+ {"version":3,"file":"org.tools.d.ts","sourceRoot":"","sources":["../../src/tools/org.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAQzF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GA0BpB,CAAC;AAUF,wBAAsB,aAAa,CACjC,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,CAwC7D"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { formatData } from "./output.utils.js";
2
3
  const ListBusinessUnitsInput = z.object({
3
4
  top: z.number().int().positive().max(200).optional().default(50),
4
5
  includeDisabled: z.boolean().optional().default(false),
@@ -21,6 +22,12 @@ export const orgTools = [
21
22
  },
22
23
  required: [],
23
24
  },
25
+ annotations: {
26
+ readOnlyHint: true,
27
+ destructiveHint: false,
28
+ idempotentHint: true,
29
+ openWorldHint: true,
30
+ },
24
31
  },
25
32
  ];
26
33
  export async function handleOrgTool(name, args, client) {
@@ -47,14 +54,9 @@ export async function handleOrgTool(name, args, client) {
47
54
  isDisabled: bu.isdisabled,
48
55
  createdOn: bu.createdon,
49
56
  }));
50
- return {
51
- content: [
52
- {
53
- type: "text",
54
- text: JSON.stringify({ businessUnits: units, count: units.length }, null, 2),
55
- },
56
- ],
57
- };
57
+ return formatData(`${units.length} business units found`, { businessUnits: units, count: units.length }, [
58
+ "Use business unit IDs for user management or security role assignment",
59
+ ]);
58
60
  }
59
61
  default:
60
62
  throw new Error(`Unknown org tool: ${name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"org.tools.js","sourceRoot":"","sources":["../../src/tools/org.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,uLAAuL;QACzL,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAa,EACb,MAA+B;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,+BAA+B,CAAC,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAE1E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAEnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAe,eAAe,EAAE;gBAC/D,MAAM,EAAE;oBACN,gBAAgB;oBAChB,MAAM;oBACN,sBAAsB;oBACtB,YAAY;oBACZ,WAAW;iBACZ;gBACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,UAAU;gBACnB,GAAG;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,EAAE,CAAC,cAAc;gBACrB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,IAAI,IAAI;gBACrD,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,SAAS,EAAE,EAAE,CAAC,SAAS;aACxB,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAC7C,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"org.tools.js","sourceRoot":"","sources":["../../src/tools/org.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,uLAAuL;QACzL,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;aACF;YACD,QAAQ,EAAE,EAAE;SACb;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;CACF,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAa,EACb,MAA+B;IAE/B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,+BAA+B,CAAC,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAE1E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAEnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAe,eAAe,EAAE;gBAC/D,MAAM,EAAE;oBACN,gBAAgB;oBAChB,MAAM;oBACN,sBAAsB;oBACtB,YAAY;oBACZ,WAAW;iBACZ;gBACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,UAAU;gBACnB,GAAG;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,EAAE,CAAC,cAAc;gBACrB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,IAAI,IAAI;gBACrD,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,SAAS,EAAE,EAAE,CAAC,SAAS;aACxB,CAAC,CAAC,CAAC;YAEJ,OAAO,UAAU,CACf,GAAG,KAAK,CAAC,MAAM,uBAAuB,EACtC,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAC7C;gBACE,uEAAuE;aACxE,CACF,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ToolResult } from "./tool-registry.js";
2
+ interface StructuredOutput {
3
+ summary: string;
4
+ data: unknown;
5
+ suggestions?: string[] | undefined;
6
+ }
7
+ /**
8
+ * Wraps a structured output into the MCP tool result format.
9
+ * Every tool handler should use this for consistent, LLM-friendly responses.
10
+ */
11
+ export declare function formatToolOutput(output: StructuredOutput): ToolResult;
12
+ /**
13
+ * Convenience: wrap raw data with a summary line and optional suggestions.
14
+ */
15
+ export declare function formatData(summary: string, data: unknown, suggestions?: string[]): ToolResult;
16
+ /**
17
+ * Format a count-based result (list of items).
18
+ */
19
+ export declare function formatList(label: string, items: unknown[], suggestions?: string[]): ToolResult;
20
+ export {};
21
+ //# sourceMappingURL=output.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.utils.d.ts","sourceRoot":"","sources":["../../src/tools/output.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CASrE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,UAAU,CAMZ"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Wraps a structured output into the MCP tool result format.
3
+ * Every tool handler should use this for consistent, LLM-friendly responses.
4
+ */
5
+ export function formatToolOutput(output) {
6
+ return {
7
+ content: [
8
+ {
9
+ type: "text",
10
+ text: JSON.stringify(output, null, 2),
11
+ },
12
+ ],
13
+ };
14
+ }
15
+ /**
16
+ * Convenience: wrap raw data with a summary line and optional suggestions.
17
+ */
18
+ export function formatData(summary, data, suggestions) {
19
+ return formatToolOutput({ summary, data, suggestions });
20
+ }
21
+ /**
22
+ * Format a count-based result (list of items).
23
+ */
24
+ export function formatList(label, items, suggestions) {
25
+ return formatToolOutput({
26
+ summary: `${items.length} ${label} found.`,
27
+ data: items,
28
+ suggestions,
29
+ });
30
+ }
31
+ //# sourceMappingURL=output.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.utils.js","sourceRoot":"","sources":["../../src/tools/output.utils.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,IAAa,EACb,WAAsB;IAEtB,OAAO,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,KAAgB,EAChB,WAAsB;IAEtB,OAAO,gBAAgB,CAAC;QACtB,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,SAAS;QAC1C,IAAI,EAAE,KAAK;QACX,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -20,6 +20,12 @@ export declare const qualityTools: {
20
20
  };
21
21
  required: string[];
22
22
  };
23
+ annotations: {
24
+ readOnlyHint: boolean;
25
+ destructiveHint: boolean;
26
+ idempotentHint: boolean;
27
+ openWorldHint: boolean;
28
+ };
23
29
  }[];
24
30
  export declare function handleQualityTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
25
31
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"quality.tools.d.ts","sourceRoot":"","sources":["../../src/tools/quality.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;GAyBxB,CAAC;AAWF,wBAAsB,iBAAiB,CACrC,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,CA2C7D"}
1
+ {"version":3,"file":"quality.tools.d.ts","sourceRoot":"","sources":["../../src/tools/quality.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGzF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BxB,CAAC;AAWF,wBAAsB,iBAAiB,CACrC,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,CA6C7D"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { formatData } from "./output.utils.js";
2
3
  export const qualityTools = [
3
4
  {
4
5
  name: "dataverse_detect_duplicates",
@@ -21,6 +22,12 @@ export const qualityTools = [
21
22
  },
22
23
  required: ["entityLogicalName", "record"],
23
24
  },
25
+ annotations: {
26
+ readOnlyHint: true,
27
+ destructiveHint: false,
28
+ idempotentHint: true,
29
+ openWorldHint: true,
30
+ },
24
31
  },
25
32
  ];
26
33
  const DetectDuplicatesInput = z.object({
@@ -60,9 +67,7 @@ export async function handleQualityTool(name, args, client) {
60
67
  return clean;
61
68
  }),
62
69
  };
63
- return {
64
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
65
- };
70
+ return formatData(`Duplicate detection: ${result.hasDuplicates ? "duplicates found" : "no duplicates"}`, result, ["Review duplicate records before creating new ones"]);
66
71
  }
67
72
  default:
68
73
  throw new Error(`Unknown quality tool: ${name}`);
@@ -1 +1 @@
1
- {"version":3,"file":"quality.tools.js","sourceRoot":"","sources":["../../src/tools/quality.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality.tools.js","sourceRoot":"","sources":["../../src/tools/quality.tools.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,12 @@ export declare const queryTools: ({
45
45
  };
46
46
  required: string[];
47
47
  };
48
+ annotations: {
49
+ readOnlyHint: boolean;
50
+ destructiveHint: boolean;
51
+ idempotentHint: boolean;
52
+ openWorldHint: boolean;
53
+ };
48
54
  } | {
49
55
  name: string;
50
56
  description: string;
@@ -70,6 +76,12 @@ export declare const queryTools: ({
70
76
  };
71
77
  required: string[];
72
78
  };
79
+ annotations: {
80
+ readOnlyHint: boolean;
81
+ destructiveHint: boolean;
82
+ idempotentHint: boolean;
83
+ openWorldHint: boolean;
84
+ };
73
85
  } | {
74
86
  name: string;
75
87
  description: string;
@@ -110,6 +122,12 @@ export declare const queryTools: ({
110
122
  };
111
123
  required: string[];
112
124
  };
125
+ annotations: {
126
+ readOnlyHint: boolean;
127
+ destructiveHint: boolean;
128
+ idempotentHint: boolean;
129
+ openWorldHint: boolean;
130
+ };
113
131
  })[];
114
132
  export declare function handleQueryTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
115
133
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"query.tools.d.ts","sourceRoot":"","sources":["../../src/tools/query.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAuBzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6FtB,CAAC;AAgCF,wBAAsB,eAAe,CACnC,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,CAkE7D"}
1
+ {"version":3,"file":"query.tools.d.ts","sourceRoot":"","sources":["../../src/tools/query.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAwBzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+GtB,CAAC;AAgCF,wBAAsB,eAAe,CACnC,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,CA6F7D"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { safeEntitySetName } from "./validation.utils.js";
3
+ import { formatData } from "./output.utils.js";
3
4
  /**
4
5
  * Dataverse entities whose EntitySetName does not follow the simple <logicalName>+s pattern.
5
6
  * Used to resolve the correct entity set name when auto-extracting from FetchXML.
@@ -62,6 +63,12 @@ export const queryTools = [
62
63
  },
63
64
  required: ["entitySetName"],
64
65
  },
66
+ annotations: {
67
+ readOnlyHint: true,
68
+ destructiveHint: false,
69
+ idempotentHint: true,
70
+ openWorldHint: true,
71
+ },
65
72
  },
66
73
  {
67
74
  name: "dataverse_execute_fetchxml",
@@ -80,6 +87,12 @@ export const queryTools = [
80
87
  },
81
88
  required: ["fetchXml"],
82
89
  },
90
+ annotations: {
91
+ readOnlyHint: true,
92
+ destructiveHint: false,
93
+ idempotentHint: true,
94
+ openWorldHint: true,
95
+ },
83
96
  },
84
97
  {
85
98
  name: "dataverse_retrieve_multiple_with_paging",
@@ -102,6 +115,12 @@ export const queryTools = [
102
115
  },
103
116
  required: ["entitySetName"],
104
117
  },
118
+ annotations: {
119
+ readOnlyHint: true,
120
+ destructiveHint: false,
121
+ idempotentHint: true,
122
+ openWorldHint: true,
123
+ },
105
124
  },
106
125
  ];
107
126
  const QueryInput = z.object({
@@ -149,9 +168,11 @@ export async function handleQueryTool(name, args, client) {
149
168
  if (params.apply !== undefined)
150
169
  queryOptions.apply = params.apply;
151
170
  const result = await client.query(params.entitySetName, queryOptions);
152
- return {
153
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
154
- };
171
+ const records = Array.isArray(result?.value) ? result.value : [];
172
+ return formatData(`${records.length} records returned from ${params.entitySetName}`, result, [
173
+ "Use dataverse_execute_fetchxml for complex joins or aggregations",
174
+ "Add $select to minimize payload",
175
+ ]);
155
176
  }
156
177
  case "dataverse_execute_fetchxml": {
157
178
  const parsed = FetchXmlInput.parse(args);
@@ -177,9 +198,15 @@ export async function handleQueryTool(name, args, client) {
177
198
  IRREGULAR_ENTITY_SET_NAMES[logicalName] ?? logicalName + "s";
178
199
  }
179
200
  const result = await client.executeFetchXml(entitySetName, fetchXml);
180
- return {
181
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
182
- };
201
+ const records = Array.isArray(result)
202
+ ? result
203
+ : Array.isArray(result?.value)
204
+ ? result.value
205
+ : [];
206
+ return formatData(`${records.length} records returned via FetchXML`, result, [
207
+ "Use dataverse_query for simple OData reads",
208
+ "Add page/count attributes for large result sets",
209
+ ]);
183
210
  }
184
211
  case "dataverse_retrieve_multiple_with_paging": {
185
212
  const params = RetrieveWithPagingInput.parse(args);
@@ -195,9 +222,15 @@ export async function handleQueryTool(name, args, client) {
195
222
  if (params.maxTotal !== undefined)
196
223
  pagingOptions.maxTotal = params.maxTotal;
197
224
  const result = await client.queryWithPaging(params.entitySetName, pagingOptions);
198
- return {
199
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
200
- };
225
+ const totalRetrieved = result?.totalRetrieved ??
226
+ (Array.isArray(result?.value)
227
+ ? result.value.length
228
+ : 0);
229
+ const pages = result?.pages ?? 1;
230
+ return formatData(`${totalRetrieved} records retrieved across ${pages} pages from ${params.entitySetName}`, result, [
231
+ "Set maxTotal to limit retrieval",
232
+ "Use $select to minimize payload size",
233
+ ]);
201
234
  }
202
235
  default:
203
236
  throw new Error(`Unknown query tool: ${name}`);