@mcp-consultant-tools/sharepoint 21.0.0-beta.2 → 21.0.0-beta.4

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 (35) hide show
  1. package/build/SharePointService.d.ts +9 -0
  2. package/build/SharePointService.d.ts.map +1 -1
  3. package/build/SharePointService.js +13 -0
  4. package/build/SharePointService.js.map +1 -1
  5. package/build/http-server.d.ts +3 -0
  6. package/build/http-server.d.ts.map +1 -0
  7. package/build/http-server.js +216 -0
  8. package/build/http-server.js.map +1 -0
  9. package/build/index.d.ts +6 -0
  10. package/build/index.d.ts.map +1 -1
  11. package/build/index.js +42 -1036
  12. package/build/index.js.map +1 -1
  13. package/build/services/FileOperationsService.d.ts +52 -0
  14. package/build/services/FileOperationsService.d.ts.map +1 -0
  15. package/build/services/FileOperationsService.js +451 -0
  16. package/build/services/FileOperationsService.js.map +1 -0
  17. package/build/tools/prompts.d.ts +11 -0
  18. package/build/tools/prompts.d.ts.map +1 -0
  19. package/build/tools/prompts.js +470 -0
  20. package/build/tools/prompts.js.map +1 -0
  21. package/build/tools/read-tools.d.ts +13 -0
  22. package/build/tools/read-tools.d.ts.map +1 -0
  23. package/build/tools/read-tools.js +271 -0
  24. package/build/tools/read-tools.js.map +1 -0
  25. package/build/tools/write-tools.d.ts +14 -0
  26. package/build/tools/write-tools.d.ts.map +1 -0
  27. package/build/tools/write-tools.js +137 -0
  28. package/build/tools/write-tools.js.map +1 -0
  29. package/build/types/sharepoint-types.d.ts +34 -0
  30. package/build/types/sharepoint-types.d.ts.map +1 -1
  31. package/build/utils/tool-examples.d.ts +35 -0
  32. package/build/utils/tool-examples.d.ts.map +1 -0
  33. package/build/utils/tool-examples.js +55 -0
  34. package/build/utils/tool-examples.js.map +1 -0
  35. package/package.json +5 -2
@@ -0,0 +1,470 @@
1
+ /**
2
+ * SharePoint MCP Prompts
3
+ *
4
+ * All prompt registrations extracted from index.ts for file size management.
5
+ */
6
+ import { z } from 'zod';
7
+ import * as spoFormatters from '../utils/sharepoint-formatters.js';
8
+ /**
9
+ * Register all SharePoint prompts with the MCP server
10
+ */
11
+ export function registerSharePointPrompts(server, getService, getPPService) {
12
+ server.prompt("spo-site-overview", {
13
+ siteId: z.string().describe("Site ID from configuration"),
14
+ }, async ({ siteId }) => {
15
+ try {
16
+ const service = getService();
17
+ const site = await service.getSiteInfo(siteId);
18
+ const drives = await service.listDrives(siteId);
19
+ const sections = [];
20
+ sections.push(spoFormatters.formatSiteOverviewAsMarkdown(site));
21
+ sections.push('');
22
+ sections.push('## Document Libraries');
23
+ sections.push(spoFormatters.formatDrivesAsMarkdown(drives));
24
+ return {
25
+ description: `SharePoint site overview: ${site.displayName}`,
26
+ messages: [
27
+ { role: "user", content: { type: "text", text: `Show overview of SharePoint site ${siteId}` } },
28
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
29
+ ],
30
+ };
31
+ }
32
+ catch (error) {
33
+ console.error("Error generating site overview:", error);
34
+ throw error;
35
+ }
36
+ });
37
+ server.prompt("spo-library-details", {
38
+ siteId: z.string().describe("Site ID"),
39
+ driveId: z.string().describe("Drive (library) ID"),
40
+ }, async ({ siteId, driveId }) => {
41
+ try {
42
+ const service = getService();
43
+ const drive = await service.getDriveInfo(siteId, driveId);
44
+ const recentItems = await service.getRecentItems(siteId, driveId, 10, 30);
45
+ const sections = [];
46
+ sections.push(spoFormatters.formatDriveDetailsAsMarkdown(drive));
47
+ sections.push('');
48
+ sections.push('## Recent Activity (Last 30 days)');
49
+ sections.push(spoFormatters.formatItemsAsMarkdown(recentItems));
50
+ return {
51
+ description: `Document library details: ${drive.name}`,
52
+ messages: [
53
+ { role: "user", content: { type: "text", text: `Show details for document library ${driveId} in site ${siteId}` } },
54
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
55
+ ],
56
+ };
57
+ }
58
+ catch (error) {
59
+ console.error("Error generating library details:", error);
60
+ throw error;
61
+ }
62
+ });
63
+ server.prompt("spo-document-search", {
64
+ siteId: z.string().describe("Site ID"),
65
+ driveId: z.string().describe("Drive ID"),
66
+ query: z.string().describe("Search query (filename or keywords)"),
67
+ }, async ({ siteId, driveId, query }) => {
68
+ try {
69
+ const service = getService();
70
+ const searchResults = await service.searchItems(siteId, driveId, query);
71
+ const sections = [];
72
+ sections.push(`# Search Results: "${query}"`);
73
+ sections.push('');
74
+ sections.push(`Found ${searchResults.items.length} result(s)`);
75
+ sections.push('');
76
+ sections.push(spoFormatters.formatItemsAsMarkdown(searchResults.items));
77
+ return {
78
+ description: `Search results for "${query}"`,
79
+ messages: [
80
+ { role: "user", content: { type: "text", text: `Search for "${query}" in drive ${driveId} of site ${siteId}` } },
81
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
82
+ ],
83
+ };
84
+ }
85
+ catch (error) {
86
+ console.error("Error generating search results:", error);
87
+ throw error;
88
+ }
89
+ });
90
+ server.prompt("spo-recent-activity", {
91
+ siteId: z.string().describe("Site ID"),
92
+ driveId: z.string().describe("Drive ID"),
93
+ days: z.string().optional().describe("Number of days to look back (default: 7)"),
94
+ }, async ({ siteId, driveId, days }) => {
95
+ try {
96
+ const service = getService();
97
+ const daysBack = days ? parseInt(days) : 7;
98
+ const recentItems = await service.getRecentItems(siteId, driveId, 50, daysBack);
99
+ const sections = [];
100
+ sections.push(`# Recent Activity (Last ${daysBack} days)`);
101
+ sections.push('');
102
+ sections.push(`**Document Library:** ${driveId}`);
103
+ sections.push(`**Total Changes:** ${recentItems.length}`);
104
+ sections.push('');
105
+ sections.push(spoFormatters.formatItemsAsMarkdown(recentItems));
106
+ return {
107
+ description: `Recent activity for last ${daysBack} days`,
108
+ messages: [
109
+ { role: "user", content: { type: "text", text: `Show recent activity in drive ${driveId} for last ${daysBack} days` } },
110
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
111
+ ],
112
+ };
113
+ }
114
+ catch (error) {
115
+ console.error("Error generating recent activity report:", error);
116
+ throw error;
117
+ }
118
+ });
119
+ server.prompt("spo-validate-crm-integration", {
120
+ documentLocationId: z.string().describe("Document location ID from PowerPlatform"),
121
+ }, async ({ documentLocationId }) => {
122
+ try {
123
+ const spoService = getService();
124
+ const ppService = getPPService();
125
+ const result = await spoService.validateDocumentLocation(ppService, documentLocationId);
126
+ const sections = [];
127
+ sections.push(spoFormatters.formatValidationResultAsMarkdown(result));
128
+ return {
129
+ description: `Validation result for document location ${documentLocationId}`,
130
+ messages: [
131
+ { role: "user", content: { type: "text", text: `Validate PowerPlatform document location ${documentLocationId}` } },
132
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
133
+ ],
134
+ };
135
+ }
136
+ catch (error) {
137
+ console.error("Error validating CRM integration:", error);
138
+ throw error;
139
+ }
140
+ });
141
+ server.prompt("spo-document-location-audit", {
142
+ entityName: z.string().optional().describe("Entity logical name (e.g., 'account')"),
143
+ recordId: z.string().optional().describe("Record ID (GUID)"),
144
+ }, async ({ entityName, recordId }) => {
145
+ try {
146
+ const spoService = getService();
147
+ const ppService = getPPService();
148
+ const locations = await spoService.getCrmDocumentLocations(ppService, entityName, recordId);
149
+ const analysis = spoFormatters.analyzeCrmDocumentLocations(locations);
150
+ const sections = [];
151
+ sections.push('# Document Location Audit');
152
+ sections.push('');
153
+ if (entityName)
154
+ sections.push(`**Entity:** ${entityName}`);
155
+ if (recordId)
156
+ sections.push(`**Record ID:** ${recordId}`);
157
+ sections.push('');
158
+ sections.push('## Insights');
159
+ analysis.insights.forEach(insight => sections.push(insight));
160
+ sections.push('');
161
+ sections.push('## Document Locations');
162
+ sections.push(spoFormatters.formatCrmDocumentLocationsAsMarkdown(locations));
163
+ if (analysis.recommendations.length > 0) {
164
+ sections.push('');
165
+ sections.push('## Recommendations');
166
+ analysis.recommendations.forEach(rec => sections.push(`- ${rec}`));
167
+ }
168
+ return {
169
+ description: `Document location audit${entityName ? ` for ${entityName}` : ''}`,
170
+ messages: [
171
+ { role: "user", content: { type: "text", text: `Audit document locations${entityName ? ` for entity ${entityName}` : ''}${recordId ? ` record ${recordId}` : ''}` } },
172
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
173
+ ],
174
+ };
175
+ }
176
+ catch (error) {
177
+ console.error("Error generating document location audit:", error);
178
+ throw error;
179
+ }
180
+ });
181
+ server.prompt("spo-migration-verification-report", {
182
+ sourceSiteId: z.string().describe("Source site ID"),
183
+ sourcePath: z.string().describe("Source folder path"),
184
+ targetSiteId: z.string().describe("Target site ID"),
185
+ targetPath: z.string().describe("Target folder path"),
186
+ }, async ({ sourceSiteId, sourcePath, targetSiteId, targetPath }) => {
187
+ try {
188
+ const spoService = getService();
189
+ const ppService = getPPService();
190
+ const result = await spoService.verifyDocumentMigration(ppService, sourceSiteId, sourcePath, targetSiteId, targetPath);
191
+ const analysis = spoFormatters.analyzeMigrationVerification(result);
192
+ const sections = [];
193
+ sections.push(spoFormatters.formatMigrationReportAsMarkdown(result));
194
+ sections.push('');
195
+ sections.push('## Analysis');
196
+ analysis.insights.forEach(insight => sections.push(`- ${insight}`));
197
+ sections.push('');
198
+ sections.push('## Recommendations');
199
+ analysis.recommendations.forEach(rec => sections.push(`- ${rec}`));
200
+ return {
201
+ description: `Migration verification: ${result.status} (${result.successRate}% success)`,
202
+ messages: [
203
+ { role: "user", content: { type: "text", text: `Verify document migration from ${sourcePath} to ${targetPath}` } },
204
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
205
+ ],
206
+ };
207
+ }
208
+ catch (error) {
209
+ console.error("Error generating migration verification report:", error);
210
+ throw error;
211
+ }
212
+ });
213
+ server.prompt("spo-setup-validation-guide", {}, async () => {
214
+ const guide = `# SharePoint Integration Setup Validation Guide
215
+
216
+ ## Prerequisites Checklist
217
+
218
+ ### 1. Azure AD App Registration
219
+ - App registered in Azure Active Directory
220
+ - Client ID and Client Secret generated
221
+ - Tenant ID noted
222
+
223
+ ### 2. API Permissions
224
+ Required Microsoft Graph API permissions (Application permissions):
225
+ - Sites.Read.All or Sites.ReadWrite.All
226
+ - Files.Read.All or Files.ReadWrite.All
227
+ - Admin consent granted
228
+
229
+ ### 3. SharePoint Site Access
230
+ - Service principal added to site(s) as Site Collection Admin
231
+ - Site URLs accessible and correct
232
+
233
+ ### 4. Configuration
234
+ Environment variables configured:
235
+ - SHAREPOINT_TENANT_ID
236
+ - SHAREPOINT_CLIENT_ID
237
+ - SHAREPOINT_CLIENT_SECRET
238
+ - SHAREPOINT_SITES (JSON array) or SHAREPOINT_SITE_URL
239
+
240
+ ## Testing Steps
241
+
242
+ ### Step 1: Test Connection
243
+ \`\`\`
244
+ Use tool: spo-test-connection
245
+ Parameters: { siteId: "your-site-id" }
246
+ Expected: Site information returned with no errors
247
+ \`\`\`
248
+
249
+ ### Step 2: List Document Libraries
250
+ \`\`\`
251
+ Use tool: spo-list-drives
252
+ Parameters: { siteId: "your-site-id" }
253
+ Expected: List of document libraries with quota info
254
+ \`\`\`
255
+
256
+ ### Step 3: List Files
257
+ \`\`\`
258
+ Use tool: spo-list-items
259
+ Parameters: { siteId: "your-site-id", driveId: "library-id" }
260
+ Expected: List of files and folders
261
+ \`\`\`
262
+
263
+ ### Step 4: Test PowerPlatform Integration (Optional)
264
+ \`\`\`
265
+ Use tool: spo-get-crm-doc-locs
266
+ Expected: List of document locations from Dataverse
267
+ \`\`\`
268
+
269
+ ## Common Issues
270
+
271
+ ### Issue: "Access denied" error
272
+ **Solution:**
273
+ 1. Verify API permissions are granted
274
+ 2. Ensure admin consent is granted
275
+ 3. Check service principal is Site Collection Admin
276
+
277
+ ### Issue: "Site not found"
278
+ **Solution:**
279
+ 1. Verify site URL is correct (use full URL)
280
+ 2. Check site exists and is accessible
281
+ 3. Ensure site is in SHAREPOINT_SITES configuration
282
+
283
+ ### Issue: "Authentication failed"
284
+ **Solution:**
285
+ 1. Verify tenant ID, client ID, and client secret
286
+ 2. Check client secret hasn't expired
287
+ 3. Ensure app registration is active
288
+
289
+ ## Next Steps
290
+
291
+ Once setup is validated:
292
+ 1. Configure additional sites in SHAREPOINT_SITES
293
+ 2. Set up PowerPlatform integration for document location validation
294
+ 3. Use validation tools to audit document locations
295
+ 4. Set up migration verification workflows
296
+
297
+ For more help, refer to SETUP.md documentation.
298
+ `;
299
+ return {
300
+ description: "SharePoint integration setup validation guide",
301
+ messages: [
302
+ { role: "user", content: { type: "text", text: "Show SharePoint integration setup validation guide" } },
303
+ { role: "assistant", content: { type: "text", text: guide } },
304
+ ],
305
+ };
306
+ });
307
+ server.prompt("spo-troubleshooting-guide", {
308
+ errorType: z.string().optional().describe("Type of error (e.g., 'access-denied', 'site-not-found')"),
309
+ }, async ({ errorType }) => {
310
+ const guide = `# SharePoint Integration Troubleshooting Guide
311
+
312
+ ## Common Error Scenarios
313
+
314
+ ### 1. Access Denied (403 Forbidden)
315
+
316
+ **Symptoms:**
317
+ - "Access denied" errors when accessing sites or files
318
+ - "Insufficient permissions" messages
319
+
320
+ **Causes:**
321
+ - Missing API permissions
322
+ - Admin consent not granted
323
+ - Service principal not added to site
324
+
325
+ **Solutions:**
326
+ 1. Verify Microsoft Graph API permissions:
327
+ - Sites.Read.All (or Sites.ReadWrite.All)
328
+ - Files.Read.All (or Files.ReadWrite.All)
329
+ 2. Grant admin consent in Azure AD
330
+ 3. Add service principal as Site Collection Admin
331
+
332
+ ### 2. Site Not Found (404 Not Found)
333
+
334
+ **Symptoms:**
335
+ - "Site not found" errors
336
+ - "Resource does not exist" messages
337
+
338
+ **Causes:**
339
+ - Incorrect site URL
340
+ - Site not in SHAREPOINT_SITES configuration
341
+ - Site deleted or moved
342
+
343
+ **Solutions:**
344
+ 1. Verify site URL format: https://tenant.sharepoint.com/sites/sitename
345
+ 2. Check site exists by visiting in browser
346
+ 3. Add site to SHAREPOINT_SITES configuration
347
+
348
+ ### 3. Authentication Failed (401 Unauthorized)
349
+
350
+ **Symptoms:**
351
+ - "Authentication failed" errors
352
+ - "Invalid credentials" messages
353
+
354
+ **Causes:**
355
+ - Incorrect tenant ID, client ID, or client secret
356
+ - Client secret expired
357
+ - App registration disabled
358
+
359
+ **Solutions:**
360
+ 1. Verify credentials in environment variables
361
+ 2. Check client secret expiration in Azure AD
362
+ 3. Generate new client secret if expired
363
+
364
+ ### 4. Token Acquisition Failed
365
+
366
+ **Symptoms:**
367
+ - "Failed to acquire access token" errors
368
+ - MSAL errors
369
+
370
+ **Causes:**
371
+ - Network connectivity issues
372
+ - Firewall blocking Azure AD
373
+ - Incorrect tenant ID
374
+
375
+ **Solutions:**
376
+ 1. Verify network connectivity to login.microsoftonline.com
377
+ 2. Check firewall rules
378
+ 3. Verify tenant ID is correct
379
+
380
+ ### 5. Folder Not Found
381
+
382
+ **Symptoms:**
383
+ - "Folder not accessible" in validation results
384
+ - "Item not found" errors
385
+
386
+ **Solutions:**
387
+ 1. Verify folder path format: /LibraryName/Folder1/Folder2
388
+ 2. Check folder exists in SharePoint
389
+ 3. Ensure service principal has access
390
+
391
+ ### 6. Document Location Validation Fails
392
+
393
+ **Symptoms:**
394
+ - Validation status: "error" or "warning"
395
+ - Missing or inaccessible folders
396
+
397
+ **Solutions:**
398
+ 1. Verify absolute URL in PowerPlatform
399
+ 2. Add site to SHAREPOINT_SITES configuration
400
+ 3. Check folder path matches SharePoint structure
401
+
402
+ ## Diagnostic Tools
403
+
404
+ - spo-test-connection: Verify site accessibility and permissions
405
+ - spo-list-sites: Verify configured sites and status
406
+ - spo-validate-doc-loc: Check PowerPlatform integration
407
+
408
+ ## Getting Help
409
+
410
+ If issues persist:
411
+ 1. Check application logs for detailed error messages
412
+ 2. Review audit logs in Azure AD
413
+ 3. Test permissions using Microsoft Graph Explorer
414
+ `;
415
+ return {
416
+ description: `SharePoint troubleshooting guide${errorType ? ` for ${errorType}` : ''}`,
417
+ messages: [
418
+ { role: "user", content: { type: "text", text: `Show SharePoint troubleshooting guide${errorType ? ` for ${errorType}` : ''}` } },
419
+ { role: "assistant", content: { type: "text", text: guide } },
420
+ ],
421
+ };
422
+ });
423
+ server.prompt("spo-powerplatform-integration-health", {
424
+ entityName: z.string().optional().describe("Entity to check (e.g., 'account')"),
425
+ }, async ({ entityName }) => {
426
+ try {
427
+ const spoService = getService();
428
+ const ppService = getPPService();
429
+ const locations = await spoService.getCrmDocumentLocations(ppService, entityName);
430
+ const analysis = spoFormatters.analyzeCrmDocumentLocations(locations);
431
+ const sections = [];
432
+ sections.push('# PowerPlatform-SharePoint Integration Health Check');
433
+ sections.push('');
434
+ if (entityName) {
435
+ sections.push(`**Entity:** ${entityName}`);
436
+ sections.push('');
437
+ }
438
+ sections.push('## Health Summary');
439
+ sections.push('');
440
+ analysis.insights.forEach(insight => sections.push(insight));
441
+ sections.push('');
442
+ sections.push('## Configured Document Locations');
443
+ sections.push(spoFormatters.formatCrmDocumentLocationsAsMarkdown(locations));
444
+ if (analysis.recommendations.length > 0) {
445
+ sections.push('');
446
+ sections.push('## Recommendations');
447
+ analysis.recommendations.forEach(rec => sections.push(`- ${rec}`));
448
+ }
449
+ sections.push('');
450
+ sections.push('## Next Steps');
451
+ sections.push('');
452
+ sections.push('1. Use `spo-validate-doc-loc` to validate individual locations');
453
+ sections.push('2. Check for missing or inaccessible folders');
454
+ sections.push('3. Verify service principal has access to all sites');
455
+ sections.push('4. Review empty folders and upload documents');
456
+ return {
457
+ description: `Integration health check${entityName ? ` for ${entityName}` : ''}`,
458
+ messages: [
459
+ { role: "user", content: { type: "text", text: `Check PowerPlatform-SharePoint integration health${entityName ? ` for ${entityName}` : ''}` } },
460
+ { role: "assistant", content: { type: "text", text: sections.join('\n') } },
461
+ ],
462
+ };
463
+ }
464
+ catch (error) {
465
+ console.error("Error checking integration health:", error);
466
+ throw error;
467
+ }
468
+ });
469
+ }
470
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SharePoint Read Tools
3
+ *
4
+ * 15 existing read-only tools + 1 new spo-download-file tool.
5
+ * Extracted from index.ts for file size management.
6
+ */
7
+ import type { SharePointService } from '../SharePointService.js';
8
+ import type { FileOperationsService } from '../services/FileOperationsService.js';
9
+ /**
10
+ * Register all read-only SharePoint tools with the MCP server
11
+ */
12
+ export declare function registerReadTools(server: any, getService: () => SharePointService, getFileOps: () => FileOperationsService, getPPService: () => any): void;
13
+ //# sourceMappingURL=read-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-tools.d.ts","sourceRoot":"","sources":["../../src/tools/read-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAGlF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,MAAM,iBAAiB,EACnC,UAAU,EAAE,MAAM,qBAAqB,EACvC,YAAY,EAAE,MAAM,GAAG,GACtB,IAAI,CAwVN"}