mcp-dataverse 0.1.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 (151) hide show
  1. package/.env.example +15 -0
  2. package/CAPABILITIES.md +992 -0
  3. package/LICENSE +21 -0
  4. package/README.md +277 -0
  5. package/config.example.json +11 -0
  6. package/dist/auth/auth-provider.factory.d.ts +4 -0
  7. package/dist/auth/auth-provider.factory.d.ts.map +1 -0
  8. package/dist/auth/auth-provider.factory.js +15 -0
  9. package/dist/auth/auth-provider.factory.js.map +1 -0
  10. package/dist/auth/auth-provider.interface.d.ts +21 -0
  11. package/dist/auth/auth-provider.interface.d.ts.map +1 -0
  12. package/dist/auth/auth-provider.interface.js +2 -0
  13. package/dist/auth/auth-provider.interface.js.map +1 -0
  14. package/dist/auth/msal-auth-provider.d.ts +14 -0
  15. package/dist/auth/msal-auth-provider.d.ts.map +1 -0
  16. package/dist/auth/msal-auth-provider.js +62 -0
  17. package/dist/auth/msal-auth-provider.js.map +1 -0
  18. package/dist/auth/pac-auth-provider.d.ts +19 -0
  19. package/dist/auth/pac-auth-provider.d.ts.map +1 -0
  20. package/dist/auth/pac-auth-provider.js +153 -0
  21. package/dist/auth/pac-auth-provider.js.map +1 -0
  22. package/dist/config/config.loader.d.ts +3 -0
  23. package/dist/config/config.loader.d.ts.map +1 -0
  24. package/dist/config/config.loader.js +52 -0
  25. package/dist/config/config.loader.js.map +1 -0
  26. package/dist/config/config.schema.d.ts +34 -0
  27. package/dist/config/config.schema.d.ts.map +1 -0
  28. package/dist/config/config.schema.js +25 -0
  29. package/dist/config/config.schema.js.map +1 -0
  30. package/dist/dataverse/dataverse-client-advanced.d.ts +47 -0
  31. package/dist/dataverse/dataverse-client-advanced.d.ts.map +1 -0
  32. package/dist/dataverse/dataverse-client-advanced.js +147 -0
  33. package/dist/dataverse/dataverse-client-advanced.js.map +1 -0
  34. package/dist/dataverse/dataverse-client.d.ts +49 -0
  35. package/dist/dataverse/dataverse-client.d.ts.map +1 -0
  36. package/dist/dataverse/dataverse-client.js +313 -0
  37. package/dist/dataverse/dataverse-client.js.map +1 -0
  38. package/dist/dataverse/dataverse-client.metadata.d.ts +40 -0
  39. package/dist/dataverse/dataverse-client.metadata.d.ts.map +1 -0
  40. package/dist/dataverse/dataverse-client.metadata.js +121 -0
  41. package/dist/dataverse/dataverse-client.metadata.js.map +1 -0
  42. package/dist/dataverse/dataverse-client.utils.d.ts +14 -0
  43. package/dist/dataverse/dataverse-client.utils.d.ts.map +1 -0
  44. package/dist/dataverse/dataverse-client.utils.js +65 -0
  45. package/dist/dataverse/dataverse-client.utils.js.map +1 -0
  46. package/dist/dataverse/http-client.d.ts +36 -0
  47. package/dist/dataverse/http-client.d.ts.map +1 -0
  48. package/dist/dataverse/http-client.js +103 -0
  49. package/dist/dataverse/http-client.js.map +1 -0
  50. package/dist/dataverse/types.d.ts +68 -0
  51. package/dist/dataverse/types.d.ts.map +1 -0
  52. package/dist/dataverse/types.js +2 -0
  53. package/dist/dataverse/types.js.map +1 -0
  54. package/dist/server.d.ts +3 -0
  55. package/dist/server.d.ts.map +1 -0
  56. package/dist/server.js +165 -0
  57. package/dist/server.js.map +1 -0
  58. package/dist/setup-auth.d.ts +2 -0
  59. package/dist/setup-auth.d.ts.map +1 -0
  60. package/dist/setup-auth.js +29 -0
  61. package/dist/setup-auth.js.map +1 -0
  62. package/dist/tools/actions.tools.d.ts +170 -0
  63. package/dist/tools/actions.tools.d.ts.map +1 -0
  64. package/dist/tools/actions.tools.js +179 -0
  65. package/dist/tools/actions.tools.js.map +1 -0
  66. package/dist/tools/annotations.tools.d.ts +82 -0
  67. package/dist/tools/annotations.tools.d.ts.map +1 -0
  68. package/dist/tools/annotations.tools.js +180 -0
  69. package/dist/tools/annotations.tools.js.map +1 -0
  70. package/dist/tools/audit.tools.d.ts +45 -0
  71. package/dist/tools/audit.tools.d.ts.map +1 -0
  72. package/dist/tools/audit.tools.js +163 -0
  73. package/dist/tools/audit.tools.js.map +1 -0
  74. package/dist/tools/auth.tools.d.ts +17 -0
  75. package/dist/tools/auth.tools.d.ts.map +1 -0
  76. package/dist/tools/auth.tools.js +30 -0
  77. package/dist/tools/auth.tools.js.map +1 -0
  78. package/dist/tools/batch.tools.d.ts +45 -0
  79. package/dist/tools/batch.tools.d.ts.map +1 -0
  80. package/dist/tools/batch.tools.js +71 -0
  81. package/dist/tools/batch.tools.js.map +1 -0
  82. package/dist/tools/crud.tools.d.ts +206 -0
  83. package/dist/tools/crud.tools.d.ts.map +1 -0
  84. package/dist/tools/crud.tools.js +213 -0
  85. package/dist/tools/crud.tools.js.map +1 -0
  86. package/dist/tools/customization.tools.d.ts +75 -0
  87. package/dist/tools/customization.tools.d.ts.map +1 -0
  88. package/dist/tools/customization.tools.js +187 -0
  89. package/dist/tools/customization.tools.js.map +1 -0
  90. package/dist/tools/environment.tools.d.ts +40 -0
  91. package/dist/tools/environment.tools.d.ts.map +1 -0
  92. package/dist/tools/environment.tools.js +145 -0
  93. package/dist/tools/environment.tools.js.map +1 -0
  94. package/dist/tools/file.tools.d.ts +61 -0
  95. package/dist/tools/file.tools.d.ts.map +1 -0
  96. package/dist/tools/file.tools.js +142 -0
  97. package/dist/tools/file.tools.js.map +1 -0
  98. package/dist/tools/impersonate.tools.d.ts +37 -0
  99. package/dist/tools/impersonate.tools.d.ts.map +1 -0
  100. package/dist/tools/impersonate.tools.js +85 -0
  101. package/dist/tools/impersonate.tools.js.map +1 -0
  102. package/dist/tools/metadata.tools.d.ts +156 -0
  103. package/dist/tools/metadata.tools.d.ts.map +1 -0
  104. package/dist/tools/metadata.tools.js +200 -0
  105. package/dist/tools/metadata.tools.js.map +1 -0
  106. package/dist/tools/org.tools.d.ts +26 -0
  107. package/dist/tools/org.tools.d.ts.map +1 -0
  108. package/dist/tools/org.tools.js +57 -0
  109. package/dist/tools/org.tools.js.map +1 -0
  110. package/dist/tools/quality.tools.d.ts +30 -0
  111. package/dist/tools/quality.tools.d.ts.map +1 -0
  112. package/dist/tools/quality.tools.js +69 -0
  113. package/dist/tools/quality.tools.js.map +1 -0
  114. package/dist/tools/query.tools.d.ts +120 -0
  115. package/dist/tools/query.tools.d.ts.map +1 -0
  116. package/dist/tools/query.tools.js +182 -0
  117. package/dist/tools/query.tools.js.map +1 -0
  118. package/dist/tools/relations.tools.d.ts +65 -0
  119. package/dist/tools/relations.tools.d.ts.map +1 -0
  120. package/dist/tools/relations.tools.js +64 -0
  121. package/dist/tools/relations.tools.js.map +1 -0
  122. package/dist/tools/search.tools.d.ts +68 -0
  123. package/dist/tools/search.tools.d.ts.map +1 -0
  124. package/dist/tools/search.tools.js +134 -0
  125. package/dist/tools/search.tools.js.map +1 -0
  126. package/dist/tools/solution.tools.d.ts +95 -0
  127. package/dist/tools/solution.tools.d.ts.map +1 -0
  128. package/dist/tools/solution.tools.js +130 -0
  129. package/dist/tools/solution.tools.js.map +1 -0
  130. package/dist/tools/teams.tools.d.ts +27 -0
  131. package/dist/tools/teams.tools.d.ts.map +1 -0
  132. package/dist/tools/teams.tools.js +67 -0
  133. package/dist/tools/teams.tools.js.map +1 -0
  134. package/dist/tools/trace.tools.d.ts +63 -0
  135. package/dist/tools/trace.tools.d.ts.map +1 -0
  136. package/dist/tools/trace.tools.js +218 -0
  137. package/dist/tools/trace.tools.js.map +1 -0
  138. package/dist/tools/tracking.tools.d.ts +35 -0
  139. package/dist/tools/tracking.tools.d.ts.map +1 -0
  140. package/dist/tools/tracking.tools.js +40 -0
  141. package/dist/tools/tracking.tools.js.map +1 -0
  142. package/dist/tools/users.tools.d.ts +57 -0
  143. package/dist/tools/users.tools.d.ts.map +1 -0
  144. package/dist/tools/users.tools.js +146 -0
  145. package/dist/tools/users.tools.js.map +1 -0
  146. package/dist/tools/views.tools.d.ts +30 -0
  147. package/dist/tools/views.tools.d.ts.map +1 -0
  148. package/dist/tools/views.tools.js +84 -0
  149. package/dist/tools/views.tools.js.map +1 -0
  150. package/package.json +81 -0
  151. package/server.json +30 -0
@@ -0,0 +1,213 @@
1
+ import { z } from 'zod';
2
+ import { esc } from '../dataverse/dataverse-client.utils.js';
3
+ export const crudTools = [
4
+ {
5
+ name: 'dataverse_get',
6
+ description: 'Retrieves a single Dataverse record by its GUID. Use when you already know the exact record ID and want specific fields — faster and more precise than dataverse_query with a GUID filter. Specify select to limit returned columns and reduce payload size.',
7
+ inputSchema: {
8
+ type: 'object',
9
+ properties: {
10
+ entitySetName: { type: 'string', description: 'OData entity set name' },
11
+ id: { type: 'string', description: 'Record GUID' },
12
+ select: {
13
+ type: 'array',
14
+ items: { type: 'string' },
15
+ description: 'Columns to return',
16
+ },
17
+ },
18
+ required: ['entitySetName', 'id'],
19
+ },
20
+ },
21
+ {
22
+ name: 'dataverse_create',
23
+ description: 'Creates a new record in a Dataverse table and returns the new record\'s GUID. Use dataverse_get_table_metadata first to confirm correct logical field names and required fields. For setting lookup fields, use the format "_fieldname_value" with the related record GUID. For bulk creation of multiple records, consider dataverse_batch_execute to reduce HTTP round-trips.',
24
+ inputSchema: {
25
+ type: 'object',
26
+ properties: {
27
+ entitySetName: { type: 'string', description: 'OData entity set name' },
28
+ data: {
29
+ type: 'object',
30
+ description: 'Record data as key-value pairs using logical names',
31
+ },
32
+ },
33
+ required: ['entitySetName', 'data'],
34
+ },
35
+ },
36
+ {
37
+ name: 'dataverse_update',
38
+ description: 'Updates an existing Dataverse record using PATCH semantics — only the fields provided in data are changed, all other fields remain unchanged. Requires the record GUID. Use dataverse_upsert instead if you want to create-or-update using an alternate key without knowing the GUID upfront.',
39
+ inputSchema: {
40
+ type: 'object',
41
+ properties: {
42
+ entitySetName: { type: 'string' },
43
+ id: { type: 'string', description: 'Record GUID' },
44
+ data: { type: 'object', description: 'Fields to update' },
45
+ etag: {
46
+ type: 'string',
47
+ description: 'ETag value from a prior dataverse_get response. When provided, the update only succeeds if the record has not been modified since (optimistic concurrency). Prevents lost updates.',
48
+ },
49
+ },
50
+ required: ['entitySetName', 'id', 'data'],
51
+ },
52
+ },
53
+ {
54
+ name: 'dataverse_delete',
55
+ description: 'Permanently deletes a Dataverse record by its GUID. This operation is irreversible — you MUST set confirm=true to proceed. Use dataverse_list_dependencies to check if the record is referenced by workflows, plugins, or other components before deleting shared or configuration records.',
56
+ inputSchema: {
57
+ type: 'object',
58
+ properties: {
59
+ entitySetName: { type: 'string' },
60
+ id: { type: 'string', description: 'Record GUID' },
61
+ confirm: { type: 'boolean', description: 'Must be explicitly true to proceed with deletion' },
62
+ },
63
+ required: ['entitySetName', 'id', 'confirm'],
64
+ },
65
+ },
66
+ {
67
+ name: 'dataverse_upsert',
68
+ description: 'Creates or updates a Dataverse record using an alternate key (no GUID needed). Returns operation="created" or "updated". Use mode="createOnly" to fail with an error if the record already exists, or mode="updateOnly" to fail if the record does not exist. Default mode="upsert" creates or updates. Supports compound alternate keys via the alternateKeys parameter.',
69
+ inputSchema: {
70
+ type: 'object',
71
+ properties: {
72
+ entitySetName: { type: 'string' },
73
+ alternateKey: { type: 'string', description: 'Alternate key attribute name (for single key)' },
74
+ alternateKeyValue: { type: 'string', description: 'Alternate key value (for single key)' },
75
+ alternateKeys: {
76
+ type: 'object',
77
+ description: 'Compound alternate key as key-value map (e.g., {"key1":"val1","key2":"val2"}). Use instead of alternateKey/alternateKeyValue for multi-field keys.',
78
+ },
79
+ data: { type: 'object', description: 'Record data' },
80
+ mode: {
81
+ type: 'string',
82
+ enum: ['upsert', 'createOnly', 'updateOnly'],
83
+ description: 'upsert=create or update (default), createOnly=fail if exists, updateOnly=fail if not found',
84
+ },
85
+ },
86
+ required: ['entitySetName', 'data'],
87
+ },
88
+ },
89
+ {
90
+ name: 'dataverse_assign',
91
+ description: 'Assigns a Dataverse record to a different user or team owner. Sets the ownerid lookup field using the OData bind syntax.',
92
+ inputSchema: {
93
+ type: 'object',
94
+ properties: {
95
+ entitySetName: { type: 'string', description: 'OData entity set name of the record to assign' },
96
+ id: { type: 'string', description: 'Record GUID' },
97
+ ownerType: {
98
+ type: 'string',
99
+ enum: ['systemuser', 'team'],
100
+ description: 'Type of the new owner: "systemuser" for a user, "team" for a team',
101
+ },
102
+ ownerId: { type: 'string', description: 'GUID of the user or team to assign the record to' },
103
+ },
104
+ required: ['entitySetName', 'id', 'ownerType', 'ownerId'],
105
+ },
106
+ },
107
+ ];
108
+ const GetInput = z.object({
109
+ entitySetName: z.string().min(1),
110
+ id: z.string().uuid(),
111
+ select: z.array(z.string()).optional(),
112
+ });
113
+ const CreateInput = z.object({
114
+ entitySetName: z.string().min(1),
115
+ data: z.record(z.unknown()),
116
+ });
117
+ const UpdateInput = z.object({
118
+ entitySetName: z.string().min(1),
119
+ id: z.string().uuid(),
120
+ data: z.record(z.unknown()),
121
+ etag: z.string().optional(),
122
+ });
123
+ const DeleteInput = z.object({
124
+ entitySetName: z.string().min(1),
125
+ id: z.string().uuid(),
126
+ confirm: z.boolean(),
127
+ });
128
+ const UpsertInput = z.object({
129
+ entitySetName: z.string().min(1),
130
+ alternateKey: z.string().min(1).optional(),
131
+ alternateKeyValue: z.string().min(1).optional(),
132
+ alternateKeys: z.record(z.string()).optional(),
133
+ data: z.record(z.unknown()),
134
+ mode: z.enum(['upsert', 'createOnly', 'updateOnly']).default('upsert').optional()
135
+ .describe('upsert=create or update (default), createOnly=fail if exists, updateOnly=fail if not found'),
136
+ }).refine((d) => (d.alternateKey && d.alternateKeyValue) || (d.alternateKeys && Object.keys(d.alternateKeys).length > 0), { message: 'Provide either (alternateKey + alternateKeyValue) or alternateKeys' });
137
+ const AssignInput = z.object({
138
+ entitySetName: z.string().min(1),
139
+ id: z.string().uuid(),
140
+ ownerType: z.enum(['systemuser', 'team']),
141
+ ownerId: z.string().uuid(),
142
+ });
143
+ export async function handleCrudTool(name, args, client) {
144
+ switch (name) {
145
+ case 'dataverse_get': {
146
+ const { entitySetName, id, select } = GetInput.parse(args);
147
+ const { record, etag } = await client.getRecord(entitySetName, id, select);
148
+ return {
149
+ content: [{
150
+ type: 'text',
151
+ text: JSON.stringify({ id, record, etag }, null, 2),
152
+ }],
153
+ };
154
+ }
155
+ case 'dataverse_create': {
156
+ const { entitySetName, data } = CreateInput.parse(args);
157
+ const id = await client.createRecord(entitySetName, data);
158
+ return {
159
+ content: [{ type: 'text', text: JSON.stringify({ id, message: 'Record created successfully' }, null, 2) }],
160
+ };
161
+ }
162
+ case 'dataverse_update': {
163
+ const { entitySetName, id, data, etag } = UpdateInput.parse(args);
164
+ await client.updateRecord(entitySetName, id, data, etag);
165
+ return { content: [{ type: 'text', text: JSON.stringify({ message: 'Record updated successfully' }) }] };
166
+ }
167
+ case 'dataverse_delete': {
168
+ const { entitySetName, id, confirm } = DeleteInput.parse(args);
169
+ if (!confirm) {
170
+ return {
171
+ content: [{
172
+ type: 'text',
173
+ text: JSON.stringify({
174
+ message: `Deletion not performed. Set 'confirm: true' to delete record '${id}' from '${entitySetName}'.`,
175
+ }),
176
+ }],
177
+ };
178
+ }
179
+ await client.deleteRecord(entitySetName, id);
180
+ return { content: [{ type: 'text', text: JSON.stringify({ message: 'Record deleted successfully' }) }] };
181
+ }
182
+ case 'dataverse_upsert': {
183
+ const parsed = UpsertInput.parse(args);
184
+ const { entitySetName, alternateKey, alternateKeyValue, alternateKeys, data, mode = 'upsert' } = parsed;
185
+ let keySegment;
186
+ if (alternateKeys && Object.keys(alternateKeys).length > 0) {
187
+ keySegment = Object.entries(alternateKeys)
188
+ .map(([k, v]) => `${esc(k)}='${esc(v)}'`)
189
+ .join(',');
190
+ }
191
+ const result = await client.upsertRecord(entitySetName, alternateKey ?? '', alternateKeyValue ?? '', data, mode, keySegment);
192
+ return {
193
+ content: [{
194
+ type: 'text',
195
+ text: JSON.stringify({
196
+ operation: result.operation,
197
+ id: result.id,
198
+ message: `Record ${result.operation} successfully`,
199
+ }, null, 2),
200
+ }],
201
+ };
202
+ }
203
+ case 'dataverse_assign': {
204
+ const { entitySetName, id, ownerType, ownerId } = AssignInput.parse(args);
205
+ const entityRef = ownerType === 'systemuser' ? 'systemusers' : 'teams';
206
+ await client.updateRecord(entitySetName, id, { 'ownerid@odata.bind': `/${entityRef}(${ownerId})` });
207
+ return { content: [{ type: 'text', text: JSON.stringify({ message: 'Record assigned successfully' }) }] };
208
+ }
209
+ default:
210
+ throw new Error(`Unknown CRUD tool: ${name}`);
211
+ }
212
+ }
213
+ //# sourceMappingURL=crud.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.tools.js","sourceRoot":"","sources":["../../src/tools/crud.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { DataverseAdvancedClient } from '../dataverse/dataverse-client-advanced.js';
2
+ export declare const customizationTools: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ top: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ nameFilter: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ activeOnly?: never;
17
+ entityLogicalName?: never;
18
+ workflowId?: never;
19
+ activate?: never;
20
+ };
21
+ required: never[];
22
+ };
23
+ } | {
24
+ name: string;
25
+ description: string;
26
+ inputSchema: {
27
+ type: "object";
28
+ properties: {
29
+ top: {
30
+ type: string;
31
+ description: string;
32
+ };
33
+ activeOnly: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ entityLogicalName: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ nameFilter?: never;
42
+ workflowId?: never;
43
+ activate?: never;
44
+ };
45
+ required: never[];
46
+ };
47
+ } | {
48
+ name: string;
49
+ description: string;
50
+ inputSchema: {
51
+ type: "object";
52
+ properties: {
53
+ workflowId: {
54
+ type: string;
55
+ description: string;
56
+ };
57
+ activate: {
58
+ type: string;
59
+ description: string;
60
+ };
61
+ top?: never;
62
+ nameFilter?: never;
63
+ activeOnly?: never;
64
+ entityLogicalName?: never;
65
+ };
66
+ required: string[];
67
+ };
68
+ })[];
69
+ export declare function handleCustomizationTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
70
+ content: Array<{
71
+ type: 'text';
72
+ text: string;
73
+ }>;
74
+ }>;
75
+ //# sourceMappingURL=customization.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customization.tools.d.ts","sourceRoot":"","sources":["../../src/tools/customization.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAmBzF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqD9B,CAAC;AAoCF,wBAAsB,uBAAuB,CAC3C,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,CAqI7D"}
@@ -0,0 +1,187 @@
1
+ import { z } from 'zod';
2
+ const STAGE_NAMES = {
3
+ 10: 'Pre-validation',
4
+ 20: 'Pre-operation',
5
+ 40: 'Post-operation',
6
+ 45: 'Post-operation (deprecated)',
7
+ };
8
+ const MODE_NAMES = {
9
+ 0: 'Synchronous',
10
+ 1: 'Asynchronous',
11
+ };
12
+ const SetWorkflowStateInput = z.object({
13
+ workflowId: z.string().uuid(),
14
+ activate: z.boolean(),
15
+ });
16
+ export const customizationTools = [
17
+ {
18
+ name: 'dataverse_list_custom_actions',
19
+ description: 'Lists all custom actions (custom API / SDK messages) registered in the environment. Returns the message name, category, bound entity (if any), execute privilege, and whether it is customizable. Useful for discovering available automation entry points and agent-callable actions.',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ top: { type: 'number', description: 'Max records (default 100, max 500)' },
24
+ nameFilter: { type: 'string', description: 'Filter by name (substring match)' },
25
+ },
26
+ required: [],
27
+ },
28
+ },
29
+ {
30
+ name: 'dataverse_list_plugin_steps',
31
+ description: 'Lists plugin steps (SdkMessageProcessingStep registrations) in the environment. Shows plugin assembly, step name, message (Create/Update/Delete/…), entity, stage (pre/post), mode (sync/async), and state (enabled/disabled). Essential for understanding what custom business logic fires on Dataverse operations.',
32
+ inputSchema: {
33
+ type: 'object',
34
+ properties: {
35
+ top: { type: 'number', description: 'Max records (default 100, max 500)' },
36
+ activeOnly: {
37
+ type: 'boolean',
38
+ description: 'Return only enabled steps (default: true)',
39
+ },
40
+ entityLogicalName: {
41
+ type: 'string',
42
+ description: "Filter by entity logical name (e.g. 'account')",
43
+ },
44
+ },
45
+ required: [],
46
+ },
47
+ },
48
+ {
49
+ name: 'dataverse_set_workflow_state',
50
+ description: 'Activates or deactivates a Dataverse workflow (classic workflow / real-time workflow / action). Set activate=true to activate (statecode 1, statuscode 2) or activate=false to deactivate (statecode 0, statuscode 1). Returns the new state.',
51
+ inputSchema: {
52
+ type: 'object',
53
+ properties: {
54
+ workflowId: {
55
+ type: 'string',
56
+ description: 'The workflow GUID',
57
+ },
58
+ activate: {
59
+ type: 'boolean',
60
+ description: 'true = activate, false = deactivate (draft)',
61
+ },
62
+ },
63
+ required: ['workflowId', 'activate'],
64
+ },
65
+ },
66
+ ];
67
+ const ListCustomActionsInput = z.object({
68
+ top: z.number().positive().max(500).optional().default(100),
69
+ nameFilter: z.string().optional(),
70
+ });
71
+ const ListPluginStepsInput = z.object({
72
+ top: z.number().positive().max(500).optional().default(100),
73
+ activeOnly: z.boolean().optional().default(true),
74
+ entityLogicalName: z.string().optional(),
75
+ });
76
+ export async function handleCustomizationTool(name, args, client) {
77
+ switch (name) {
78
+ case 'dataverse_list_custom_actions': {
79
+ const { top, nameFilter } = ListCustomActionsInput.parse(args ?? {});
80
+ const filters = ['isprivate eq false'];
81
+ if (nameFilter) {
82
+ filters.push(`contains(name,'${nameFilter.replace(/'/g, "''")}')`);
83
+ }
84
+ const result = await client.query('sdkmessages', {
85
+ select: [
86
+ 'sdkmessageid',
87
+ 'name',
88
+ 'categoryname',
89
+ 'isprivate',
90
+ 'isreadonly',
91
+ 'isvalidforexecuteasync',
92
+ ],
93
+ filter: filters.join(' and '),
94
+ top,
95
+ });
96
+ const messages = result.value.map((m) => ({
97
+ id: m.sdkmessageid,
98
+ name: m.name,
99
+ category: m.categoryname ?? '',
100
+ isPrivate: m.isprivate,
101
+ isReadOnly: m.isreadonly,
102
+ asyncSupported: m.isvalidforexecuteasync,
103
+ }));
104
+ return {
105
+ content: [
106
+ {
107
+ type: 'text',
108
+ text: JSON.stringify({ total: messages.length, messages }, null, 2),
109
+ },
110
+ ],
111
+ };
112
+ }
113
+ case 'dataverse_list_plugin_steps': {
114
+ const { top, activeOnly, entityLogicalName } = ListPluginStepsInput.parse(args ?? {});
115
+ const stepQueryOptions = {
116
+ select: [
117
+ 'sdkmessageprocessingstepid',
118
+ 'name',
119
+ 'stage',
120
+ 'mode',
121
+ 'rank',
122
+ 'statecode',
123
+ 'filteringattributes',
124
+ 'asyncautodelete',
125
+ ],
126
+ expand: 'sdkmessageid_sdkmessage($select=name),plugintypeid($select=name,assemblyname),sdkmessagefilterid($select=primaryobjecttypecode)',
127
+ top,
128
+ };
129
+ if (activeOnly) {
130
+ stepQueryOptions.filter = 'statecode eq 0';
131
+ }
132
+ const result = await client.query('sdkmessageprocessingsteps', stepQueryOptions);
133
+ let steps = result.value;
134
+ if (entityLogicalName) {
135
+ const lname = entityLogicalName.toLowerCase();
136
+ steps = steps.filter((s) => s.sdkmessagefilterid?.primaryobjecttypecode?.toLowerCase() === lname);
137
+ }
138
+ const mapped = steps.map((s) => ({
139
+ id: s.sdkmessageprocessingstepid,
140
+ name: s.name,
141
+ message: s.sdkmessageid_sdkmessage?.name ?? '',
142
+ entity: s.sdkmessagefilterid?.primaryobjecttypecode ?? '',
143
+ assembly: s.plugintypeid?.assemblyname ?? '',
144
+ pluginType: s.plugintypeid?.name ?? '',
145
+ stage: s.stage,
146
+ stageName: STAGE_NAMES[s.stage] ?? `Stage ${s.stage}`,
147
+ mode: s.mode,
148
+ modeName: MODE_NAMES[s.mode] ?? `Mode ${s.mode}`,
149
+ rank: s.rank,
150
+ isActive: s.statecode === 0,
151
+ filteringAttributes: s.filteringattributes ?? null,
152
+ asyncAutoDelete: s.asyncautodelete,
153
+ }));
154
+ return {
155
+ content: [
156
+ {
157
+ type: 'text',
158
+ text: JSON.stringify({ total: mapped.length, steps: mapped }, null, 2),
159
+ },
160
+ ],
161
+ };
162
+ }
163
+ case 'dataverse_set_workflow_state': {
164
+ const { workflowId, activate } = SetWorkflowStateInput.parse(args);
165
+ await client.updateRecord('workflows', workflowId, {
166
+ statecode: activate ? 1 : 0,
167
+ statuscode: activate ? 2 : 1,
168
+ });
169
+ return {
170
+ content: [
171
+ {
172
+ type: 'text',
173
+ text: JSON.stringify({
174
+ workflowId,
175
+ newState: activate ? 'Activated' : 'Draft',
176
+ statecode: activate ? 1 : 0,
177
+ statuscode: activate ? 2 : 1,
178
+ }, null, 2),
179
+ },
180
+ ],
181
+ };
182
+ }
183
+ default:
184
+ throw new Error(`Unknown customization tool: ${name}`);
185
+ }
186
+ }
187
+ //# sourceMappingURL=customization.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customization.tools.js","sourceRoot":"","sources":["../../src/tools/customization.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { DataverseAdvancedClient } from '../dataverse/dataverse-client-advanced.js';
2
+ export declare const environmentTools: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: string;
7
+ properties: {
8
+ schemaName: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ value?: never;
13
+ };
14
+ required: string[];
15
+ };
16
+ } | {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: {
20
+ type: string;
21
+ properties: {
22
+ schemaName: {
23
+ type: string;
24
+ description: string;
25
+ };
26
+ value: {
27
+ type: string;
28
+ description: string;
29
+ };
30
+ };
31
+ required: string[];
32
+ };
33
+ })[];
34
+ export declare function handleEnvironmentTool(name: string, args: unknown, client: DataverseAdvancedClient): Promise<{
35
+ content: Array<{
36
+ type: 'text';
37
+ text: string;
38
+ }>;
39
+ }>;
40
+ //# sourceMappingURL=environment.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.tools.d.ts","sourceRoot":"","sources":["../../src/tools/environment.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAWzF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmC5B,CAAC;AAqHF,wBAAsB,qBAAqB,CACzC,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,CAS7D"}