mcp-dataverse 0.3.0 → 0.3.2

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 (82) hide show
  1. package/CAPABILITIES.md +6 -4
  2. package/README.md +149 -244
  3. package/assets/logo.webp +0 -0
  4. package/dist/resources/resource-provider.d.ts +11 -0
  5. package/dist/resources/resource-provider.d.ts.map +1 -0
  6. package/dist/resources/resource-provider.js +79 -0
  7. package/dist/resources/resource-provider.js.map +1 -0
  8. package/dist/server.js +24 -5
  9. package/dist/server.js.map +1 -1
  10. package/dist/tools/actions.tools.js +6 -6
  11. package/dist/tools/actions.tools.js.map +1 -1
  12. package/dist/tools/annotations.tools.js +2 -2
  13. package/dist/tools/annotations.tools.js.map +1 -1
  14. package/dist/tools/audit.tools.d.ts.map +1 -1
  15. package/dist/tools/audit.tools.js +4 -1
  16. package/dist/tools/audit.tools.js.map +1 -1
  17. package/dist/tools/auth.tools.js +1 -1
  18. package/dist/tools/auth.tools.js.map +1 -1
  19. package/dist/tools/batch.tools.d.ts +2 -1
  20. package/dist/tools/batch.tools.d.ts.map +1 -1
  21. package/dist/tools/batch.tools.js +4 -2
  22. package/dist/tools/batch.tools.js.map +1 -1
  23. package/dist/tools/crud.tools.js +6 -6
  24. package/dist/tools/crud.tools.js.map +1 -1
  25. package/dist/tools/customization.tools.js +3 -3
  26. package/dist/tools/customization.tools.js.map +1 -1
  27. package/dist/tools/environment.tools.js +2 -2
  28. package/dist/tools/environment.tools.js.map +1 -1
  29. package/dist/tools/file.tools.js +2 -2
  30. package/dist/tools/file.tools.js.map +1 -1
  31. package/dist/tools/guardrails.d.ts +22 -0
  32. package/dist/tools/guardrails.d.ts.map +1 -0
  33. package/dist/tools/guardrails.js +55 -0
  34. package/dist/tools/guardrails.js.map +1 -0
  35. package/dist/tools/impersonate.tools.d.ts +2 -1
  36. package/dist/tools/impersonate.tools.d.ts.map +1 -1
  37. package/dist/tools/impersonate.tools.js +1 -1
  38. package/dist/tools/impersonate.tools.js.map +1 -1
  39. package/dist/tools/metadata.tools.js +7 -7
  40. package/dist/tools/metadata.tools.js.map +1 -1
  41. package/dist/tools/org.tools.js +1 -1
  42. package/dist/tools/org.tools.js.map +1 -1
  43. package/dist/tools/progress.d.ts +15 -0
  44. package/dist/tools/progress.d.ts.map +1 -0
  45. package/dist/tools/progress.js +29 -0
  46. package/dist/tools/progress.js.map +1 -0
  47. package/dist/tools/quality.tools.js +1 -1
  48. package/dist/tools/quality.tools.js.map +1 -1
  49. package/dist/tools/query.tools.d.ts +2 -1
  50. package/dist/tools/query.tools.d.ts.map +1 -1
  51. package/dist/tools/query.tools.js +6 -4
  52. package/dist/tools/query.tools.js.map +1 -1
  53. package/dist/tools/relations.tools.js +2 -2
  54. package/dist/tools/relations.tools.js.map +1 -1
  55. package/dist/tools/router.tools.d.ts +5 -0
  56. package/dist/tools/router.tools.d.ts.map +1 -0
  57. package/dist/tools/router.tools.js +247 -0
  58. package/dist/tools/router.tools.js.map +1 -0
  59. package/dist/tools/search.tools.js +1 -1
  60. package/dist/tools/search.tools.js.map +1 -1
  61. package/dist/tools/solution.tools.js +3 -3
  62. package/dist/tools/solution.tools.js.map +1 -1
  63. package/dist/tools/teams.tools.d.ts.map +1 -1
  64. package/dist/tools/teams.tools.js +4 -1
  65. package/dist/tools/teams.tools.js.map +1 -1
  66. package/dist/tools/tool-registry.d.ts +2 -1
  67. package/dist/tools/tool-registry.d.ts.map +1 -1
  68. package/dist/tools/tool-registry.js.map +1 -1
  69. package/dist/tools/trace.tools.js +2 -2
  70. package/dist/tools/trace.tools.js.map +1 -1
  71. package/dist/tools/tracking.tools.js +1 -1
  72. package/dist/tools/tracking.tools.js.map +1 -1
  73. package/dist/tools/users.tools.js +2 -2
  74. package/dist/tools/users.tools.js.map +1 -1
  75. package/dist/tools/views.tools.js +1 -1
  76. package/dist/tools/views.tools.js.map +1 -1
  77. package/dist/tools/workflow.tools.d.ts +53 -0
  78. package/dist/tools/workflow.tools.d.ts.map +1 -0
  79. package/dist/tools/workflow.tools.js +198 -0
  80. package/dist/tools/workflow.tools.js.map +1 -0
  81. package/package.json +3 -2
  82. package/server.json +3 -3
@@ -0,0 +1,53 @@
1
+ import type { DataverseAdvancedClient } from "../dataverse/dataverse-client-advanced.js";
2
+ import type { ToolResult } from "./tool-registry.js";
3
+ interface WorkflowStep {
4
+ order: number;
5
+ tool: string;
6
+ description: string;
7
+ required: boolean;
8
+ tips?: string;
9
+ }
10
+ interface Workflow {
11
+ name: string;
12
+ description: string;
13
+ steps: WorkflowStep[];
14
+ tags: string[];
15
+ }
16
+ declare const WORKFLOWS: ReadonlyMap<string, Workflow>;
17
+ export declare const workflowTools: ({
18
+ name: string;
19
+ description: string;
20
+ inputSchema: {
21
+ type: "object";
22
+ properties: {
23
+ name?: never;
24
+ };
25
+ required: never[];
26
+ };
27
+ annotations: {
28
+ readOnlyHint: boolean;
29
+ destructiveHint: boolean;
30
+ idempotentHint: boolean;
31
+ };
32
+ } | {
33
+ name: string;
34
+ description: string;
35
+ inputSchema: {
36
+ type: "object";
37
+ properties: {
38
+ name: {
39
+ type: string;
40
+ description: string;
41
+ };
42
+ };
43
+ required: string[];
44
+ };
45
+ annotations: {
46
+ readOnlyHint: boolean;
47
+ destructiveHint: boolean;
48
+ idempotentHint: boolean;
49
+ };
50
+ })[];
51
+ export declare function handleWorkflowTool(name: string, args: unknown, _client: DataverseAdvancedClient): Promise<ToolResult>;
52
+ export { WORKFLOWS };
53
+ //# sourceMappingURL=workflow.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.tools.d.ts","sourceRoot":"","sources":["../../src/tools/workflow.tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAID,QAAA,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CA4I3C,CAAC;AAIH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCzB,CAAC;AAIF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAgCrB;AAID,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,198 @@
1
+ import { formatData, formatList } from "./output.utils.js";
2
+ // ── Workflow Definitions ───────────────────────────────────────────────────────
3
+ const WORKFLOWS = new Map([
4
+ [
5
+ "query_data",
6
+ {
7
+ name: "query_data",
8
+ description: "Query data from Dataverse tables. Authenticate, discover tables, inspect schema, then query with OData or FetchXML.",
9
+ tags: ["query", "data", "fetchxml", "odata", "read"],
10
+ steps: [
11
+ { order: 1, tool: "dataverse_whoami", description: "Verify authentication and get user context", required: true },
12
+ { order: 2, tool: "dataverse_list_tables", description: "Discover available tables", required: true, tips: "Use customOnly=true to focus on custom tables" },
13
+ { order: 3, tool: "dataverse_get_table_metadata", description: "Inspect column names, types, and required fields", required: true, tips: "Note logical names for use in $select and $filter" },
14
+ { order: 4, tool: "dataverse_query", description: "Execute OData query or use dataverse_execute_fetchxml for complex joins", required: true, tips: "Always use $select to limit columns; use $top to limit rows" },
15
+ ],
16
+ },
17
+ ],
18
+ [
19
+ "explore_schema",
20
+ {
21
+ name: "explore_schema",
22
+ description: "Explore the Dataverse schema: tables, columns, relationships, and saved views.",
23
+ tags: ["schema", "metadata", "tables", "relationships", "views"],
24
+ steps: [
25
+ { order: 1, tool: "dataverse_whoami", description: "Verify authentication", required: true },
26
+ { order: 2, tool: "dataverse_list_tables", description: "List all available tables", required: true },
27
+ { order: 3, tool: "dataverse_get_table_metadata", description: "Get detailed column metadata for a table", required: true },
28
+ { order: 4, tool: "dataverse_get_relationships", description: "Discover one-to-many and many-to-many relationships", required: false, tips: "Useful before building FetchXML joins" },
29
+ { order: 5, tool: "dataverse_list_views", description: "List saved views for the table", required: false },
30
+ ],
31
+ },
32
+ ],
33
+ [
34
+ "create_record",
35
+ {
36
+ name: "create_record",
37
+ description: "Create a new record in Dataverse. Inspect schema first to know required fields, then create and verify.",
38
+ tags: ["create", "record", "write", "insert"],
39
+ steps: [
40
+ { order: 1, tool: "dataverse_get_table_metadata", description: "Check required fields and column types before creating", required: true, tips: "Pay attention to required fields and lookup columns" },
41
+ { order: 2, tool: "dataverse_create", description: "Create the new record", required: true },
42
+ { order: 3, tool: "dataverse_query", description: "Verify the record was created with correct values", required: false, tips: "Query by the returned ID to confirm field values" },
43
+ ],
44
+ },
45
+ ],
46
+ [
47
+ "update_record",
48
+ {
49
+ name: "update_record",
50
+ description: "Update an existing record. Read current values, apply changes, then verify the update.",
51
+ tags: ["update", "record", "write", "modify"],
52
+ steps: [
53
+ { order: 1, tool: "dataverse_get_table_metadata", description: "Confirm column names and types", required: true },
54
+ { order: 2, tool: "dataverse_get", description: "Read current record values and etag", required: true, tips: "Capture @odata.etag for optimistic concurrency" },
55
+ { order: 3, tool: "dataverse_update", description: "Apply the update with etag for concurrency control", required: true },
56
+ { order: 4, tool: "dataverse_get", description: "Verify the update was applied correctly", required: false },
57
+ ],
58
+ },
59
+ ],
60
+ [
61
+ "delete_record",
62
+ {
63
+ name: "delete_record",
64
+ description: "Delete a record from Dataverse. Read the record first to confirm identity, then delete.",
65
+ tags: ["delete", "record", "remove"],
66
+ steps: [
67
+ { order: 1, tool: "dataverse_get", description: "Read the record to confirm it is the correct one", required: true, tips: "Show record details to the user before deletion" },
68
+ { order: 2, tool: "dataverse_delete", description: "Delete the record (irreversible)", required: true, tips: "Always confirm with the user before executing this step" },
69
+ ],
70
+ },
71
+ ],
72
+ [
73
+ "bulk_operations",
74
+ {
75
+ name: "bulk_operations",
76
+ description: "Perform bulk create/update/delete using Dataverse batch API for efficiency.",
77
+ tags: ["bulk", "batch", "mass", "multiple"],
78
+ steps: [
79
+ { order: 1, tool: "dataverse_get_table_metadata", description: "Inspect schema to build correct request payloads", required: true },
80
+ { order: 2, tool: "dataverse_batch_execute", description: "Execute batch of operations in a single request", required: true, tips: "Group up to 1000 operations per batch; use changesets for transactional groups" },
81
+ ],
82
+ },
83
+ ],
84
+ [
85
+ "search_data",
86
+ {
87
+ name: "search_data",
88
+ description: "Full-text search across Dataverse tables, then refine results with targeted queries.",
89
+ tags: ["search", "find", "fulltext", "relevance"],
90
+ steps: [
91
+ { order: 1, tool: "dataverse_search", description: "Execute full-text search across multiple tables", required: true, tips: "Use entities filter to narrow which tables to search" },
92
+ { order: 2, tool: "dataverse_query", description: "Refine results with a targeted OData query on the relevant table", required: false },
93
+ ],
94
+ },
95
+ ],
96
+ [
97
+ "manage_solution",
98
+ {
99
+ name: "manage_solution",
100
+ description: "Inspect and manage Dataverse solutions and their components.",
101
+ tags: ["solution", "customization", "deployment", "components"],
102
+ steps: [
103
+ { order: 1, tool: "dataverse_list_solutions", description: "List all solutions in the environment", required: true },
104
+ { order: 2, tool: "dataverse_solution_components", description: "List components within a specific solution", required: true },
105
+ { order: 3, tool: "dataverse_publish_customizations", description: "Publish customizations after changes", required: false, tips: "Required after modifying solution components" },
106
+ ],
107
+ },
108
+ ],
109
+ [
110
+ "inspect_audit",
111
+ {
112
+ name: "inspect_audit",
113
+ description: "Review audit history for records or tables to track changes and user activity.",
114
+ tags: ["audit", "history", "changes", "tracking"],
115
+ steps: [
116
+ { order: 1, tool: "dataverse_get_audit_log", description: "Retrieve audit entries filtered by record, table, user, or date range", required: true, tips: "Use at least one filter to avoid large result sets; audit must be enabled on the table" },
117
+ ],
118
+ },
119
+ ],
120
+ [
121
+ "file_operations",
122
+ {
123
+ name: "file_operations",
124
+ description: "Upload or download files from Dataverse file/image columns.",
125
+ tags: ["file", "upload", "download", "image", "attachment"],
126
+ steps: [
127
+ { order: 1, tool: "dataverse_get_table_metadata", description: "Identify file or image columns on the table", required: true, tips: "Look for columns of type File or Image" },
128
+ { order: 2, tool: "dataverse_upload_file_column", description: "Upload a file to a file/image column", required: false },
129
+ { order: 3, tool: "dataverse_download_file_column", description: "Download a file from a file/image column", required: false, tips: "Returns base64-encoded content" },
130
+ ],
131
+ },
132
+ ],
133
+ ]);
134
+ // ── Tool Definitions ───────────────────────────────────────────────────────────
135
+ export const workflowTools = [
136
+ {
137
+ name: "dataverse_list_workflows",
138
+ description: "Lists all available guided workflows with their descriptions and tags. " +
139
+ "Use this to discover recommended step-by-step patterns for common Dataverse tasks.",
140
+ inputSchema: {
141
+ type: "object",
142
+ properties: {},
143
+ required: [],
144
+ },
145
+ annotations: {
146
+ readOnlyHint: true,
147
+ destructiveHint: false,
148
+ idempotentHint: true,
149
+ },
150
+ },
151
+ {
152
+ name: "dataverse_get_workflow",
153
+ description: "Returns the full definition of a guided workflow including ordered steps, tool names, tips, and required flags. " +
154
+ "Use this to get a step-by-step plan for a common Dataverse task.",
155
+ inputSchema: {
156
+ type: "object",
157
+ properties: {
158
+ name: {
159
+ type: "string",
160
+ description: "Workflow name (e.g. query_data, explore_schema, create_record, update_record, delete_record, bulk_operations, search_data, manage_solution, inspect_audit, file_operations)",
161
+ },
162
+ },
163
+ required: ["name"],
164
+ },
165
+ annotations: {
166
+ readOnlyHint: true,
167
+ destructiveHint: false,
168
+ idempotentHint: true,
169
+ },
170
+ },
171
+ ];
172
+ // ── Handler ────────────────────────────────────────────────────────────────────
173
+ export async function handleWorkflowTool(name, args, _client) {
174
+ if (name === "dataverse_list_workflows") {
175
+ const items = Array.from(WORKFLOWS.values()).map((w) => ({
176
+ name: w.name,
177
+ description: w.description,
178
+ tags: w.tags,
179
+ stepCount: w.steps.length,
180
+ }));
181
+ return formatList("workflows", items, [
182
+ "Use dataverse_get_workflow with a workflow name to see detailed steps",
183
+ ]);
184
+ }
185
+ if (name === "dataverse_get_workflow") {
186
+ const { name: wfName } = args;
187
+ const workflow = WORKFLOWS.get(wfName);
188
+ if (!workflow) {
189
+ const available = Array.from(WORKFLOWS.keys()).join(", ");
190
+ throw new Error(`Unknown workflow: "${wfName}". Available workflows: ${available}`);
191
+ }
192
+ return formatData(`Workflow "${workflow.name}": ${workflow.description}`, workflow, workflow.steps.map((s) => `Step ${s.order}: ${s.tool} — ${s.description}`));
193
+ }
194
+ throw new Error(`Unknown workflow tool: ${name}`);
195
+ }
196
+ // ── Exported for testing ───────────────────────────────────────────────────────
197
+ export { WORKFLOWS };
198
+ //# sourceMappingURL=workflow.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.tools.js","sourceRoot":"","sources":["../../src/tools/workflow.tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-dataverse",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "MCP Server for Microsoft Dataverse Web API",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",
@@ -30,7 +30,8 @@
30
30
  "README.md",
31
31
  "LICENSE",
32
32
  "CAPABILITIES.md",
33
- "server.json"
33
+ "server.json",
34
+ "assets/**"
34
35
  ],
35
36
  "scripts": {
36
37
  "prepublishOnly": "npm run build",
package/server.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.codeurali/dataverse",
4
4
  "title": "MCP Dataverse",
5
- "description": "50 tools for Microsoft Dataverse: query, CRUD, metadata, search, files, audit, batch, and more.",
5
+ "description": "54 tools for Microsoft Dataverse: query, CRUD, metadata, search, files, audit, batch, solutions, and more.",
6
6
  "icons": [
7
7
  {
8
8
  "src": "https://raw.githubusercontent.com/codeurali/mcp-dataverse/master/assets/logo.webp",
@@ -15,13 +15,13 @@
15
15
  "url": "https://github.com/codeurali/mcp-dataverse",
16
16
  "source": "github"
17
17
  },
18
- "version": "0.3.0",
18
+ "version": "0.3.2",
19
19
  "packages": [
20
20
  {
21
21
  "registryType": "npm",
22
22
  "registryBaseUrl": "https://registry.npmjs.org",
23
23
  "identifier": "mcp-dataverse",
24
- "version": "0.3.0",
24
+ "version": "0.3.2",
25
25
  "transport": {
26
26
  "type": "stdio"
27
27
  },