mcp-dataverse 0.3.8 → 0.3.9

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 (208) hide show
  1. package/CAPABILITIES.md +1039 -1039
  2. package/LICENSE +21 -21
  3. package/README.md +114 -105
  4. package/dist/auth-provider.factory-MSMLSOX3.js +1 -0
  5. package/dist/chunk-24RDOMG4.js +29 -0
  6. package/dist/chunk-OXKMMPM3.js +37 -0
  7. package/dist/chunk-PAX4NW5B.js +1 -0
  8. package/dist/chunk-SUDI4JM6.js +3 -0
  9. package/dist/config.loader-VTIKUDN7.js +1 -0
  10. package/dist/dataverse-client-advanced-T5ZJMRLK.js +1 -0
  11. package/dist/doctor.js +2 -102
  12. package/dist/http-server.js +3 -61
  13. package/dist/install.js +8 -233
  14. package/dist/server.js +43 -202
  15. package/dist/setup-auth.js +18 -41
  16. package/package.json +95 -94
  17. package/server.json +51 -50
  18. package/dist/auth/auth-provider.factory.d.ts +0 -4
  19. package/dist/auth/auth-provider.factory.d.ts.map +0 -1
  20. package/dist/auth/auth-provider.factory.js +0 -5
  21. package/dist/auth/auth-provider.factory.js.map +0 -1
  22. package/dist/auth/auth-provider.interface.d.ts +0 -21
  23. package/dist/auth/auth-provider.interface.d.ts.map +0 -1
  24. package/dist/auth/auth-provider.interface.js +0 -2
  25. package/dist/auth/auth-provider.interface.js.map +0 -1
  26. package/dist/auth/device-code-auth-provider.d.ts +0 -18
  27. package/dist/auth/device-code-auth-provider.d.ts.map +0 -1
  28. package/dist/auth/device-code-auth-provider.js +0 -167
  29. package/dist/auth/device-code-auth-provider.js.map +0 -1
  30. package/dist/config/config.loader.d.ts +0 -3
  31. package/dist/config/config.loader.d.ts.map +0 -1
  32. package/dist/config/config.loader.js +0 -39
  33. package/dist/config/config.loader.js.map +0 -1
  34. package/dist/config/config.schema.d.ts +0 -16
  35. package/dist/config/config.schema.d.ts.map +0 -1
  36. package/dist/config/config.schema.js +0 -20
  37. package/dist/config/config.schema.js.map +0 -1
  38. package/dist/dataverse/dataverse-client-advanced.d.ts +0 -53
  39. package/dist/dataverse/dataverse-client-advanced.d.ts.map +0 -1
  40. package/dist/dataverse/dataverse-client-advanced.js +0 -199
  41. package/dist/dataverse/dataverse-client-advanced.js.map +0 -1
  42. package/dist/dataverse/dataverse-client.actions.d.ts +0 -11
  43. package/dist/dataverse/dataverse-client.actions.d.ts.map +0 -1
  44. package/dist/dataverse/dataverse-client.actions.js +0 -25
  45. package/dist/dataverse/dataverse-client.actions.js.map +0 -1
  46. package/dist/dataverse/dataverse-client.batch.d.ts +0 -10
  47. package/dist/dataverse/dataverse-client.batch.d.ts.map +0 -1
  48. package/dist/dataverse/dataverse-client.batch.js +0 -74
  49. package/dist/dataverse/dataverse-client.batch.js.map +0 -1
  50. package/dist/dataverse/dataverse-client.d.ts +0 -46
  51. package/dist/dataverse/dataverse-client.d.ts.map +0 -1
  52. package/dist/dataverse/dataverse-client.js +0 -275
  53. package/dist/dataverse/dataverse-client.js.map +0 -1
  54. package/dist/dataverse/dataverse-client.metadata.d.ts +0 -41
  55. package/dist/dataverse/dataverse-client.metadata.d.ts.map +0 -1
  56. package/dist/dataverse/dataverse-client.metadata.js +0 -124
  57. package/dist/dataverse/dataverse-client.metadata.js.map +0 -1
  58. package/dist/dataverse/dataverse-client.utils.d.ts +0 -14
  59. package/dist/dataverse/dataverse-client.utils.d.ts.map +0 -1
  60. package/dist/dataverse/dataverse-client.utils.js +0 -65
  61. package/dist/dataverse/dataverse-client.utils.js.map +0 -1
  62. package/dist/dataverse/http-client.d.ts +0 -38
  63. package/dist/dataverse/http-client.d.ts.map +0 -1
  64. package/dist/dataverse/http-client.js +0 -111
  65. package/dist/dataverse/http-client.js.map +0 -1
  66. package/dist/dataverse/types.d.ts +0 -68
  67. package/dist/dataverse/types.d.ts.map +0 -1
  68. package/dist/dataverse/types.js +0 -2
  69. package/dist/dataverse/types.js.map +0 -1
  70. package/dist/doctor.d.ts +0 -7
  71. package/dist/doctor.d.ts.map +0 -1
  72. package/dist/doctor.js.map +0 -1
  73. package/dist/http-server.d.ts +0 -3
  74. package/dist/http-server.d.ts.map +0 -1
  75. package/dist/http-server.js.map +0 -1
  76. package/dist/install.d.ts +0 -3
  77. package/dist/install.d.ts.map +0 -1
  78. package/dist/install.js.map +0 -1
  79. package/dist/resources/resource-provider.d.ts +0 -11
  80. package/dist/resources/resource-provider.d.ts.map +0 -1
  81. package/dist/resources/resource-provider.js +0 -79
  82. package/dist/resources/resource-provider.js.map +0 -1
  83. package/dist/server.d.ts +0 -3
  84. package/dist/server.d.ts.map +0 -1
  85. package/dist/server.js.map +0 -1
  86. package/dist/setup-auth.d.ts +0 -3
  87. package/dist/setup-auth.d.ts.map +0 -1
  88. package/dist/setup-auth.js.map +0 -1
  89. package/dist/tools/actions.tools.d.ts +0 -206
  90. package/dist/tools/actions.tools.d.ts.map +0 -1
  91. package/dist/tools/actions.tools.js +0 -256
  92. package/dist/tools/actions.tools.js.map +0 -1
  93. package/dist/tools/annotations.tools.d.ts +0 -94
  94. package/dist/tools/annotations.tools.d.ts.map +0 -1
  95. package/dist/tools/annotations.tools.js +0 -225
  96. package/dist/tools/annotations.tools.js.map +0 -1
  97. package/dist/tools/audit.tools.d.ts +0 -51
  98. package/dist/tools/audit.tools.d.ts.map +0 -1
  99. package/dist/tools/audit.tools.js +0 -170
  100. package/dist/tools/audit.tools.js.map +0 -1
  101. package/dist/tools/auth.tools.d.ts +0 -23
  102. package/dist/tools/auth.tools.d.ts.map +0 -1
  103. package/dist/tools/auth.tools.js +0 -36
  104. package/dist/tools/auth.tools.js.map +0 -1
  105. package/dist/tools/batch.tools.d.ts +0 -52
  106. package/dist/tools/batch.tools.d.ts.map +0 -1
  107. package/dist/tools/batch.tools.js +0 -89
  108. package/dist/tools/batch.tools.js.map +0 -1
  109. package/dist/tools/crud.tools.d.ts +0 -260
  110. package/dist/tools/crud.tools.d.ts.map +0 -1
  111. package/dist/tools/crud.tools.js +0 -290
  112. package/dist/tools/crud.tools.js.map +0 -1
  113. package/dist/tools/customization.tools.d.ts +0 -127
  114. package/dist/tools/customization.tools.d.ts.map +0 -1
  115. package/dist/tools/customization.tools.js +0 -285
  116. package/dist/tools/customization.tools.js.map +0 -1
  117. package/dist/tools/environment.tools.d.ts +0 -106
  118. package/dist/tools/environment.tools.d.ts.map +0 -1
  119. package/dist/tools/environment.tools.js +0 -274
  120. package/dist/tools/environment.tools.js.map +0 -1
  121. package/dist/tools/file.tools.d.ts +0 -73
  122. package/dist/tools/file.tools.d.ts.map +0 -1
  123. package/dist/tools/file.tools.js +0 -160
  124. package/dist/tools/file.tools.js.map +0 -1
  125. package/dist/tools/guardrails.d.ts +0 -22
  126. package/dist/tools/guardrails.d.ts.map +0 -1
  127. package/dist/tools/guardrails.js +0 -56
  128. package/dist/tools/guardrails.js.map +0 -1
  129. package/dist/tools/impersonate.tools.d.ts +0 -44
  130. package/dist/tools/impersonate.tools.d.ts.map +0 -1
  131. package/dist/tools/impersonate.tools.js +0 -87
  132. package/dist/tools/impersonate.tools.js.map +0 -1
  133. package/dist/tools/metadata.tools.d.ts +0 -279
  134. package/dist/tools/metadata.tools.d.ts.map +0 -1
  135. package/dist/tools/metadata.tools.js +0 -400
  136. package/dist/tools/metadata.tools.js.map +0 -1
  137. package/dist/tools/org.tools.d.ts +0 -32
  138. package/dist/tools/org.tools.d.ts.map +0 -1
  139. package/dist/tools/org.tools.js +0 -65
  140. package/dist/tools/org.tools.js.map +0 -1
  141. package/dist/tools/output.utils.d.ts +0 -63
  142. package/dist/tools/output.utils.d.ts.map +0 -1
  143. package/dist/tools/output.utils.js +0 -78
  144. package/dist/tools/output.utils.js.map +0 -1
  145. package/dist/tools/progress.d.ts +0 -15
  146. package/dist/tools/progress.d.ts.map +0 -1
  147. package/dist/tools/progress.js +0 -29
  148. package/dist/tools/progress.js.map +0 -1
  149. package/dist/tools/quality.tools.d.ts +0 -36
  150. package/dist/tools/quality.tools.d.ts.map +0 -1
  151. package/dist/tools/quality.tools.js +0 -97
  152. package/dist/tools/quality.tools.js.map +0 -1
  153. package/dist/tools/query.tools.d.ts +0 -151
  154. package/dist/tools/query.tools.d.ts.map +0 -1
  155. package/dist/tools/query.tools.js +0 -293
  156. package/dist/tools/query.tools.js.map +0 -1
  157. package/dist/tools/relations.tools.d.ts +0 -77
  158. package/dist/tools/relations.tools.d.ts.map +0 -1
  159. package/dist/tools/relations.tools.js +0 -96
  160. package/dist/tools/relations.tools.js.map +0 -1
  161. package/dist/tools/router.tools.d.ts +0 -5
  162. package/dist/tools/router.tools.d.ts.map +0 -1
  163. package/dist/tools/router.tools.js +0 -247
  164. package/dist/tools/router.tools.js.map +0 -1
  165. package/dist/tools/search.tools.d.ts +0 -74
  166. package/dist/tools/search.tools.d.ts.map +0 -1
  167. package/dist/tools/search.tools.js +0 -142
  168. package/dist/tools/search.tools.js.map +0 -1
  169. package/dist/tools/solution.tools.d.ts +0 -113
  170. package/dist/tools/solution.tools.d.ts.map +0 -1
  171. package/dist/tools/solution.tools.js +0 -176
  172. package/dist/tools/solution.tools.js.map +0 -1
  173. package/dist/tools/teams.tools.d.ts +0 -65
  174. package/dist/tools/teams.tools.d.ts.map +0 -1
  175. package/dist/tools/teams.tools.js +0 -127
  176. package/dist/tools/teams.tools.js.map +0 -1
  177. package/dist/tools/tool-registry.d.ts +0 -35
  178. package/dist/tools/tool-registry.d.ts.map +0 -1
  179. package/dist/tools/tool-registry.js +0 -31
  180. package/dist/tools/tool-registry.js.map +0 -1
  181. package/dist/tools/trace.tools.d.ts +0 -75
  182. package/dist/tools/trace.tools.d.ts.map +0 -1
  183. package/dist/tools/trace.tools.js +0 -233
  184. package/dist/tools/trace.tools.js.map +0 -1
  185. package/dist/tools/tracking.tools.d.ts +0 -41
  186. package/dist/tools/tracking.tools.d.ts.map +0 -1
  187. package/dist/tools/tracking.tools.js +0 -76
  188. package/dist/tools/tracking.tools.js.map +0 -1
  189. package/dist/tools/users.tools.d.ts +0 -141
  190. package/dist/tools/users.tools.d.ts.map +0 -1
  191. package/dist/tools/users.tools.js +0 -321
  192. package/dist/tools/users.tools.js.map +0 -1
  193. package/dist/tools/validation.utils.d.ts +0 -6
  194. package/dist/tools/validation.utils.d.ts.map +0 -1
  195. package/dist/tools/validation.utils.js +0 -14
  196. package/dist/tools/validation.utils.js.map +0 -1
  197. package/dist/tools/views.tools.d.ts +0 -36
  198. package/dist/tools/views.tools.d.ts.map +0 -1
  199. package/dist/tools/views.tools.js +0 -92
  200. package/dist/tools/views.tools.js.map +0 -1
  201. package/dist/tools/workflow.tools.d.ts +0 -111
  202. package/dist/tools/workflow.tools.d.ts.map +0 -1
  203. package/dist/tools/workflow.tools.js +0 -449
  204. package/dist/tools/workflow.tools.js.map +0 -1
  205. package/dist/transport.d.ts +0 -6
  206. package/dist/transport.d.ts.map +0 -1
  207. package/dist/transport.js +0 -21
  208. package/dist/transport.js.map +0 -1
@@ -1,247 +0,0 @@
1
- import { formatData, formatList } from "./output.utils.js";
2
- // ── Tag Registry ───────────────────────────────────────────────────────────────
3
- const TOOL_TAGS = {
4
- dataverse_query: ["query", "read", "odata"],
5
- dataverse_execute_fetchxml: ["query", "read", "fetchxml", "aggregate"],
6
- dataverse_create: ["write", "crud", "create"],
7
- dataverse_update: ["write", "crud", "update"],
8
- dataverse_delete: ["write", "crud", "delete", "destructive"],
9
- dataverse_get: ["read", "crud", "get"],
10
- dataverse_search: ["search", "read", "fulltext"],
11
- dataverse_list_tables: ["metadata", "schema", "read"],
12
- dataverse_get_table_metadata: ["metadata", "schema", "read"],
13
- dataverse_get_relationships: ["metadata", "schema", "relations", "read"],
14
- dataverse_list_views: ["metadata", "views", "read"],
15
- dataverse_get_view_definition: ["metadata", "views", "read"],
16
- dataverse_batch_execute: ["write", "bulk", "batch"],
17
- dataverse_whoami: ["auth", "identity", "read"],
18
- dataverse_list_solutions: ["solutions", "read", "alm"],
19
- dataverse_get_solution_components: ["solutions", "read", "alm"],
20
- dataverse_export_solution: ["solutions", "write", "alm"],
21
- dataverse_import_solution: ["solutions", "write", "alm"],
22
- dataverse_track_changes: ["sync", "delta", "read"],
23
- dataverse_execute_action: ["actions", "write", "custom"],
24
- dataverse_execute_bound_action: ["actions", "write", "custom"],
25
- dataverse_publish_customizations: ["customization", "write"],
26
- dataverse_upsert: ["write", "crud", "upsert"],
27
- dataverse_count: ["query", "read", "count"],
28
- dataverse_retrieve_multiple_with_paging: ["query", "read", "paging"],
29
- dataverse_audit_get_history: ["audit", "read"],
30
- dataverse_audit_get_detail: ["audit", "read"],
31
- dataverse_list_users: ["admin", "users", "read"],
32
- dataverse_get_user_roles: ["admin", "users", "security", "read"],
33
- dataverse_get_user_teams: ["admin", "users", "teams", "read"],
34
- dataverse_list_teams: ["admin", "teams", "read"],
35
- dataverse_get_team_members: ["admin", "teams", "read"],
36
- dataverse_upload_file: ["files", "write", "upload"],
37
- dataverse_download_file: ["files", "read", "download"],
38
- dataverse_delete_file: ["files", "write", "delete"],
39
- dataverse_associate: ["relations", "write"],
40
- dataverse_disassociate: ["relations", "write"],
41
- dataverse_impersonate: ["security", "admin"],
42
- dataverse_impersonate_clear: ["security", "admin"],
43
- dataverse_list_environments: ["admin", "environments", "read"],
44
- dataverse_get_environment_details: ["admin", "environments", "read"],
45
- dataverse_get_environment_settings: ["admin", "environments", "read"],
46
- dataverse_get_trace_logs: ["debug", "trace", "read"],
47
- dataverse_get_plugin_types: ["debug", "plugins", "read"],
48
- dataverse_get_sdkmessageprocessingsteps: ["debug", "plugins", "read"],
49
- dataverse_get_workflow_definitions: ["debug", "workflows", "read"],
50
- dataverse_validate_entity: ["quality", "read", "validation"],
51
- dataverse_list_duplicate_rules: ["quality", "read"],
52
- dataverse_list_notes: ["notes", "read"],
53
- dataverse_create_note: ["notes", "write"],
54
- dataverse_get_org_details: ["admin", "org", "read"],
55
- dataverse_get_org_settings: ["admin", "org", "read"],
56
- dataverse_get_global_option_set: ["metadata", "schema", "read"],
57
- dataverse_publish_component: ["customization", "write"],
58
- dataverse_get_entity_xml: ["customization", "metadata", "read"],
59
- };
60
- // ── Tool descriptions (for matching without registry dependency) ────────────
61
- const TOOL_DESCRIPTIONS = {
62
- dataverse_query: "Query Dataverse tables using OData syntax",
63
- dataverse_execute_fetchxml: "Execute FetchXML queries with aggregation support",
64
- dataverse_create: "Create a new record in a Dataverse table",
65
- dataverse_update: "Update an existing Dataverse record",
66
- dataverse_delete: "Delete a Dataverse record",
67
- dataverse_get: "Retrieve a single record by ID",
68
- dataverse_search: "Full-text search across Dataverse tables",
69
- dataverse_list_tables: "List available Dataverse tables",
70
- dataverse_get_table_metadata: "Get column definitions for a table",
71
- dataverse_get_relationships: "Get relationships for a table",
72
- dataverse_list_views: "List saved views for a table",
73
- dataverse_get_view_definition: "Get the definition of a saved view",
74
- dataverse_batch_execute: "Execute multiple operations in a batch",
75
- dataverse_whoami: "Get current authenticated user context",
76
- dataverse_list_solutions: "List solutions in the environment",
77
- dataverse_get_solution_components: "Get components of a solution",
78
- dataverse_export_solution: "Export a solution as a ZIP file",
79
- dataverse_import_solution: "Import a solution from a ZIP file",
80
- dataverse_track_changes: "Track changes (delta sync) for a table",
81
- dataverse_execute_action: "Execute a custom unbound action",
82
- dataverse_execute_bound_action: "Execute a custom bound action",
83
- dataverse_publish_customizations: "Publish all customizations",
84
- dataverse_upsert: "Create or update a record by alternate key",
85
- dataverse_count: "Count records in a table",
86
- dataverse_retrieve_multiple_with_paging: "Query with automatic paging",
87
- dataverse_audit_get_history: "Get audit history for a record",
88
- dataverse_audit_get_detail: "Get audit detail for a specific change",
89
- dataverse_list_users: "List system users",
90
- dataverse_get_user_roles: "Get security roles for a user",
91
- dataverse_get_user_teams: "Get teams a user belongs to",
92
- dataverse_list_teams: "List teams in the environment",
93
- dataverse_get_team_members: "Get members of a team",
94
- dataverse_upload_file: "Upload a file to a record",
95
- dataverse_download_file: "Download a file from a record",
96
- dataverse_delete_file: "Delete a file from a record",
97
- dataverse_associate: "Associate two records via a relationship",
98
- dataverse_disassociate: "Remove association between two records",
99
- dataverse_impersonate: "Set impersonation for subsequent calls",
100
- dataverse_impersonate_clear: "Clear impersonation",
101
- dataverse_list_environments: "List available environments",
102
- dataverse_get_environment_details: "Get environment details",
103
- dataverse_get_environment_settings: "Get environment settings",
104
- dataverse_get_trace_logs: "Get plugin trace logs",
105
- dataverse_get_plugin_types: "Get registered plugin types",
106
- dataverse_get_sdkmessageprocessingsteps: "Get SDK message processing steps",
107
- dataverse_get_workflow_definitions: "Get workflow/flow definitions",
108
- dataverse_validate_entity: "Validate entity configuration quality",
109
- dataverse_list_duplicate_rules: "List duplicate detection rules",
110
- dataverse_list_notes: "List notes/annotations on a record",
111
- dataverse_create_note: "Create a note on a record",
112
- dataverse_get_org_details: "Get organization details",
113
- dataverse_get_org_settings: "Get organization settings",
114
- dataverse_get_global_option_set: "Get a global option set definition",
115
- dataverse_publish_component: "Publish a single component",
116
- dataverse_get_entity_xml: "Get entity customization XML",
117
- };
118
- // ── Matching logic ─────────────────────────────────────────────────────────────
119
- function tokenize(text) {
120
- return text
121
- .toLowerCase()
122
- .replace(/[^a-z0-9_]/g, " ")
123
- .split(/\s+/)
124
- .filter((t) => t.length > 1);
125
- }
126
- function scoreTool(toolName, tokens) {
127
- const tags = TOOL_TAGS[toolName] ?? [];
128
- const description = (TOOL_DESCRIPTIONS[toolName] ?? "").toLowerCase();
129
- const nameLower = toolName.toLowerCase();
130
- let score = 0;
131
- for (const token of tokens) {
132
- // Tag match (highest weight)
133
- if (tags.includes(token))
134
- score += 3;
135
- // Tool name contains token
136
- if (nameLower.includes(token))
137
- score += 2;
138
- // Description contains token
139
- if (description.includes(token))
140
- score += 1;
141
- }
142
- return score;
143
- }
144
- function suggestTools(intent) {
145
- const tokens = tokenize(intent);
146
- if (tokens.length === 0) {
147
- // Return general starter tools when intent is empty
148
- const starters = [
149
- "dataverse_whoami",
150
- "dataverse_list_tables",
151
- "dataverse_query",
152
- "dataverse_search",
153
- "dataverse_get_table_metadata",
154
- ];
155
- return starters.map((name) => ({
156
- name,
157
- description: TOOL_DESCRIPTIONS[name] ?? "",
158
- tags: TOOL_TAGS[name] ?? [],
159
- score: 1,
160
- }));
161
- }
162
- const scored = [];
163
- for (const toolName of Object.keys(TOOL_TAGS)) {
164
- const s = scoreTool(toolName, tokens);
165
- if (s > 0) {
166
- scored.push({
167
- name: toolName,
168
- description: TOOL_DESCRIPTIONS[toolName] ?? "",
169
- tags: TOOL_TAGS[toolName] ?? [],
170
- score: s,
171
- });
172
- }
173
- }
174
- scored.sort((a, b) => b.score - a.score);
175
- return scored.slice(0, 5);
176
- }
177
- function listTags() {
178
- const counts = new Map();
179
- for (const tags of Object.values(TOOL_TAGS)) {
180
- for (const tag of tags) {
181
- counts.set(tag, (counts.get(tag) ?? 0) + 1);
182
- }
183
- }
184
- return Array.from(counts.entries())
185
- .map(([tag, toolCount]) => ({ tag, toolCount }))
186
- .sort((a, b) => b.toolCount - a.toolCount);
187
- }
188
- // ── Tool Definitions ───────────────────────────────────────────────────────────
189
- export const routerTools = [
190
- {
191
- name: "dataverse_suggest_tools",
192
- description: "Suggests the most relevant Dataverse tools for a given intent. " +
193
- "Provide a natural-language description of what you want to do and " +
194
- "this tool returns the top 5 matching tools with descriptions and tags.",
195
- inputSchema: {
196
- type: "object",
197
- properties: {
198
- intent: {
199
- type: "string",
200
- description: "Natural language description of the desired action",
201
- },
202
- },
203
- required: ["intent"],
204
- },
205
- annotations: {
206
- readOnlyHint: true,
207
- destructiveHint: false,
208
- idempotentHint: true,
209
- openWorldHint: false,
210
- },
211
- },
212
- {
213
- name: "dataverse_list_tool_tags",
214
- description: "Lists all available tool tags with the number of tools in each category. " +
215
- "Use this to discover what kinds of operations are available.",
216
- inputSchema: {
217
- type: "object",
218
- properties: {},
219
- required: [],
220
- },
221
- annotations: {
222
- readOnlyHint: true,
223
- destructiveHint: false,
224
- idempotentHint: true,
225
- openWorldHint: false,
226
- },
227
- },
228
- ];
229
- // ── Handler ────────────────────────────────────────────────────────────────────
230
- export async function handleRouterTool(name, args, _client) {
231
- if (name === "dataverse_suggest_tools") {
232
- const { intent } = (args ?? {});
233
- const results = suggestTools(intent ?? "");
234
- const suggestions = results.length > 0
235
- ? [`Try: ${results[0].name}`]
236
- : ["Use dataverse_list_tool_tags to explore categories"];
237
- return formatData(`${results.length} tools match intent "${intent ?? ""}"`, results, suggestions);
238
- }
239
- if (name === "dataverse_list_tool_tags") {
240
- const tags = listTags();
241
- return formatList("tags", tags, [
242
- "Use dataverse_suggest_tools with an intent to find specific tools",
243
- ]);
244
- }
245
- throw new Error(`Unknown router tool: ${name}`);
246
- }
247
- //# sourceMappingURL=router.tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.tools.js","sourceRoot":"","sources":["../../src/tools/router.tools.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- import type { DataverseAdvancedClient } from "../dataverse/dataverse-client-advanced.js";
2
- export declare const searchTools: {
3
- name: string;
4
- description: string;
5
- inputSchema: {
6
- type: "object";
7
- properties: {
8
- query: {
9
- type: string;
10
- description: string;
11
- };
12
- entities: {
13
- type: string;
14
- items: {
15
- type: string;
16
- };
17
- description: string;
18
- };
19
- top: {
20
- type: string;
21
- description: string;
22
- };
23
- searchMode: {
24
- type: string;
25
- enum: string[];
26
- description: string;
27
- };
28
- searchType: {
29
- type: string;
30
- enum: string[];
31
- description: string;
32
- };
33
- filter: {
34
- type: string;
35
- description: string;
36
- };
37
- facets: {
38
- type: string;
39
- items: {
40
- type: string;
41
- };
42
- description: string;
43
- };
44
- orderby: {
45
- type: string;
46
- items: {
47
- type: string;
48
- };
49
- description: string;
50
- };
51
- select: {
52
- type: string;
53
- items: {
54
- type: string;
55
- };
56
- description: string;
57
- };
58
- };
59
- required: string[];
60
- };
61
- annotations: {
62
- readOnlyHint: boolean;
63
- destructiveHint: boolean;
64
- idempotentHint: boolean;
65
- openWorldHint: boolean;
66
- };
67
- }[];
68
- export declare function handleSearchTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
69
- content: Array<{
70
- type: "text";
71
- text: string;
72
- }>;
73
- }>;
74
- //# sourceMappingURL=search.tools.d.ts.map
@@ -1 +0,0 @@
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;AAGzF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEvB,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,CA2E7D"}
@@ -1,142 +0,0 @@
1
- import { z } from "zod";
2
- import { formatData, formatPrerequisiteError } from "./output.utils.js";
3
- export const searchTools = [
4
- {
5
- name: "dataverse_search",
6
- 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. WHEN TO USE: Cross-table free-text search when you don't know which table contains the data. BEST PRACTICES: Narrow with entities[] and $filter; use searchType=full for Lucene operators (AND, OR, NOT, wildcards). WORKFLOW: search_data.",
7
- inputSchema: {
8
- type: "object",
9
- properties: {
10
- query: {
11
- type: "string",
12
- description: "Full-text search string (supports Lucene syntax with searchType=full)",
13
- },
14
- entities: {
15
- type: "array",
16
- items: { type: "string" },
17
- description: "Restrict to specific table logical names (omit to search all configured tables)",
18
- },
19
- top: {
20
- type: "number",
21
- description: "Max results (default 10, max 50)",
22
- },
23
- searchMode: {
24
- type: "string",
25
- enum: ["any", "all"],
26
- description: "Match any or all terms (default: any)",
27
- },
28
- searchType: {
29
- type: "string",
30
- enum: ["simple", "full"],
31
- description: "Search mode: simple (default) or full (enables Lucene syntax: AND, OR, NOT, wildcards, fuzzy)",
32
- },
33
- filter: {
34
- type: "string",
35
- description: 'OData $filter to apply on search results (e.g., "statecode eq 0")',
36
- },
37
- facets: {
38
- type: "array",
39
- items: { type: "string" },
40
- description: 'Fields to return faceted counts for (e.g., ["@search.entityname","statecode"])',
41
- },
42
- orderby: {
43
- type: "array",
44
- items: { type: "string" },
45
- description: 'OData $orderby for result sorting (e.g., ["@search.score desc","name asc"])',
46
- },
47
- select: {
48
- type: "array",
49
- items: { type: "string" },
50
- description: "Fields to return in each result (default: all indexed fields)",
51
- },
52
- },
53
- required: ["query"],
54
- },
55
- annotations: {
56
- readOnlyHint: true,
57
- destructiveHint: false,
58
- idempotentHint: true,
59
- openWorldHint: true,
60
- },
61
- },
62
- ];
63
- const SearchInput = z.object({
64
- query: z.string().min(1),
65
- entities: z.array(z.string()).optional(),
66
- top: z.number().int().positive().max(50).optional().default(10),
67
- searchMode: z.enum(["any", "all"]).optional().default("any"),
68
- searchType: z.enum(["simple", "full"]).optional(),
69
- filter: z.string().optional(),
70
- facets: z.array(z.string()).optional(),
71
- orderby: z.array(z.string()).optional(),
72
- select: z.array(z.string()).optional(),
73
- });
74
- export async function handleSearchTool(name, args, client) {
75
- switch (name) {
76
- case "dataverse_search": {
77
- const params = SearchInput.parse(args);
78
- const body = {
79
- search: params.query,
80
- top: params.top,
81
- searchMode: params.searchMode,
82
- returntotalrecordcount: true,
83
- };
84
- if (params.entities?.length) {
85
- body.entities = params.entities;
86
- }
87
- if (params.searchType)
88
- body.searchType = params.searchType;
89
- if (params.filter)
90
- body.filter = params.filter;
91
- if (params.facets?.length)
92
- body.facets = params.facets;
93
- if (params.orderby?.length)
94
- body.orderby = params.orderby;
95
- if (params.select?.length)
96
- body.select = params.select;
97
- let raw;
98
- try {
99
- raw = (await client.executeAction("../../search/v1.0/query", body));
100
- }
101
- catch (err) {
102
- const message = err instanceof Error ? err.message : String(err);
103
- if (message.includes("404") || message.includes("Not Found")) {
104
- return formatPrerequisiteError({
105
- type: "feature_disabled",
106
- feature: "Dataverse Search (Relevance Search)",
107
- cannotProceedBecause: "Relevance Search is not enabled for this Dataverse environment, so full-text cross-table search is unavailable.",
108
- adminPortal: "Power Platform Admin Center",
109
- steps: [
110
- "Open Power Platform Admin Center (admin.powerplatform.microsoft.com)",
111
- "Select your environment → Settings",
112
- "Navigate to Product → Features",
113
- 'Under "Search", toggle "Dataverse Search" to On',
114
- "Save — indexing may take a few minutes before search is available",
115
- ],
116
- });
117
- }
118
- throw err;
119
- }
120
- const results = (raw["value"] ?? []).map((r) => ({
121
- entityName: r["entityname"] ?? "",
122
- objectId: r["objectid"] ?? "",
123
- score: r["score"] ?? 0,
124
- highlights: r["highlights"] ?? {},
125
- fields: r["attributes"] ?? {},
126
- }));
127
- const output = {
128
- totalRecordCount: raw["totalrecordcount"] ?? 0,
129
- results,
130
- };
131
- if (raw["facets"])
132
- output.facets = raw["facets"];
133
- return formatData(`${results.length} search results for '${params.query}'`, output, [
134
- "Use dataverse_get to retrieve full record details",
135
- "Narrow results with entities[] filter",
136
- ]);
137
- }
138
- default:
139
- throw new Error(`Unknown search tool: ${name}`);
140
- }
141
- }
142
- //# sourceMappingURL=search.tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.tools.js","sourceRoot":"","sources":["../../src/tools/search.tools.ts"],"names":[],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- import type { DataverseAdvancedClient } from "../dataverse/dataverse-client-advanced.js";
2
- export declare const solutionTools: ({
3
- name: string;
4
- description: string;
5
- inputSchema: {
6
- type: "object";
7
- properties: {
8
- includeManaged: {
9
- type: string;
10
- description: string;
11
- };
12
- nameFilter: {
13
- type: string;
14
- description: string;
15
- };
16
- top: {
17
- type: string;
18
- description: string;
19
- };
20
- solutionName?: never;
21
- componentType?: never;
22
- components?: never;
23
- };
24
- required: never[];
25
- };
26
- annotations: {
27
- readOnlyHint: boolean;
28
- destructiveHint: boolean;
29
- idempotentHint: boolean;
30
- openWorldHint: boolean;
31
- };
32
- } | {
33
- name: string;
34
- description: string;
35
- inputSchema: {
36
- type: "object";
37
- properties: {
38
- solutionName: {
39
- type: string;
40
- description: string;
41
- };
42
- componentType: {
43
- type: string;
44
- description: string;
45
- };
46
- top: {
47
- type: string;
48
- description: string;
49
- };
50
- includeManaged?: never;
51
- nameFilter?: never;
52
- components?: never;
53
- };
54
- required: string[];
55
- };
56
- annotations: {
57
- readOnlyHint: boolean;
58
- destructiveHint: boolean;
59
- idempotentHint: boolean;
60
- openWorldHint: boolean;
61
- };
62
- } | {
63
- name: string;
64
- description: string;
65
- inputSchema: {
66
- type: "object";
67
- properties: {
68
- components: {
69
- type: string;
70
- description: string;
71
- properties: {
72
- entities: {
73
- type: string;
74
- items: {
75
- type: string;
76
- };
77
- };
78
- webResources: {
79
- type: string;
80
- items: {
81
- type: string;
82
- };
83
- };
84
- optionSets: {
85
- type: string;
86
- items: {
87
- type: string;
88
- };
89
- };
90
- };
91
- };
92
- includeManaged?: never;
93
- nameFilter?: never;
94
- top?: never;
95
- solutionName?: never;
96
- componentType?: never;
97
- };
98
- required: never[];
99
- };
100
- annotations: {
101
- readOnlyHint: boolean;
102
- destructiveHint: boolean;
103
- idempotentHint: boolean;
104
- openWorldHint: boolean;
105
- };
106
- })[];
107
- export declare function handleSolutionTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
108
- content: Array<{
109
- type: "text";
110
- text: string;
111
- }>;
112
- }>;
113
- //# sourceMappingURL=solution.tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solution.tools.d.ts","sourceRoot":"","sources":["../../src/tools/solution.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AA+CzF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsFzB,CAAC;AAEF,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,CA2E7D"}