@softeria/ms-365-mcp-server 0.89.0 → 0.91.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.
- package/dist/endpoints.json +49 -0
- package/dist/generated/client.js +307 -42
- package/package.json +1 -1
- package/src/endpoints.json +49 -0
package/dist/endpoints.json
CHANGED
|
@@ -500,6 +500,27 @@
|
|
|
500
500
|
"scopes": ["Files.ReadWrite"],
|
|
501
501
|
"llmTip": "Shares a file or folder with specific users. Body: { recipients: [{ email: 'user@example.com' }], roles: ['read'], sendInvitation: true, message: 'Please review this file.' }. Roles: 'read', 'write', 'owner'. Set requireSignIn to true to require authentication."
|
|
502
502
|
},
|
|
503
|
+
{
|
|
504
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/createLink",
|
|
505
|
+
"method": "post",
|
|
506
|
+
"toolName": "create-drive-item-share-link",
|
|
507
|
+
"scopes": ["Files.ReadWrite"],
|
|
508
|
+
"llmTip": "Create a shareable link for a file or folder WITHOUT sending an email invitation. Body: { type: 'view' | 'edit' | 'embed', scope: 'anonymous' | 'organization' | 'users', password?: string, expirationDateTime?: ISO-8601, retainInheritedPermissions?: boolean }. Returns a permission with link.webUrl. Pair with share-drive-item when you want to grant explicit access; use this when you only need a URL to paste into a doc/email/chat without triggering OneDrive notifications."
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/copy",
|
|
512
|
+
"method": "post",
|
|
513
|
+
"toolName": "copy-drive-item",
|
|
514
|
+
"scopes": ["Files.ReadWrite"],
|
|
515
|
+
"llmTip": "Asynchronously copy a file or folder to a new location and/or name. Body: { parentReference: { driveId: '...', id: '...' }, name?: 'New Name.xlsx' }. Returns 202 Accepted with a Location header pointing at a monitor URL for the async job. Ideal for duplicating templates (e.g. clone an Armhr Census Template per prospect), bulk file provisioning, or preserving an immutable snapshot of a working file."
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/preview",
|
|
519
|
+
"method": "post",
|
|
520
|
+
"toolName": "create-drive-item-preview",
|
|
521
|
+
"scopes": ["Files.Read"],
|
|
522
|
+
"llmTip": "Generate a short-lived embeddable preview URL for a file (Office docs, PDFs, images). Body: { page?: number | string, zoom?: number, viewer?: 'onedrive' | 'office' }. Returns getUrl (interactive) and postUrl (form-post). Useful for surfacing inline previews in summary emails or chat messages without needing the recipient to open the file."
|
|
523
|
+
},
|
|
503
524
|
{
|
|
504
525
|
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/permissions",
|
|
505
526
|
"method": "get",
|
|
@@ -1736,5 +1757,33 @@
|
|
|
1736
1757
|
"toolName": "get-sensitivity-label",
|
|
1737
1758
|
"workScopes": ["SensitivityLabel.Read"],
|
|
1738
1759
|
"llmTip": "Gets a single MIP sensitivity label by id. Use list-sensitivity-labels to find ids. Not supported for personal Microsoft accounts."
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"pathPattern": "/me/messages/{message-id}/copy",
|
|
1763
|
+
"method": "post",
|
|
1764
|
+
"toolName": "copy-mail-message",
|
|
1765
|
+
"scopes": ["Mail.ReadWrite"],
|
|
1766
|
+
"llmTip": "Copies a message to another mail folder. Body: { DestinationId: '<mailFolder-id or well-known name like inbox, archive, junkemail>' }. Returns the newly created message (with a new id) in the destination folder. For moving instead of copying, use move-mail-message."
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
"pathPattern": "/me/mailFolders/{mailFolder-id}/messages/delta()",
|
|
1770
|
+
"method": "get",
|
|
1771
|
+
"toolName": "list-mail-folder-messages-delta",
|
|
1772
|
+
"scopes": ["Mail.Read"],
|
|
1773
|
+
"llmTip": "Incremental sync of messages within a mail folder. Graph only supports delta scoped to a folder — use mailFolder-id = 'inbox' for the well-known inbox, or another folder id from list-mail-folders. First call returns all messages plus @odata.deltaLink; subsequent calls with that link return only changes (created/updated/deleted). @odata.nextLink paginates within a single delta window. Deltas expire after ~30 days of inactivity — start over if the server returns 410. Prefer this over full re-list for polling."
|
|
1774
|
+
},
|
|
1775
|
+
{
|
|
1776
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1777
|
+
"method": "get",
|
|
1778
|
+
"toolName": "list-outlook-categories",
|
|
1779
|
+
"scopes": ["MailboxSettings.Read"],
|
|
1780
|
+
"llmTip": "Lists the user's Outlook categories (colored labels) used to tag messages, events, contacts, and tasks. Each category has displayName and color (preset0 through preset24, or 'none'). Use this to show available tags before applying via update-mail-message or update-calendar-event with body { categories: ['Category Name'] }."
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1784
|
+
"method": "post",
|
|
1785
|
+
"toolName": "create-outlook-category",
|
|
1786
|
+
"scopes": ["MailboxSettings.ReadWrite"],
|
|
1787
|
+
"llmTip": "Creates a new Outlook category. Body: { displayName (unique), color (one of: none, preset0 … preset24 — maps to red, orange, yellow, green, teal, olive, blue, purple, cranberry, steel, dark-steel, gray, dark-gray, black, dark-red, dark-orange, dark-yellow, dark-green, dark-teal, dark-olive, dark-blue, dark-purple, dark-cranberry) }. Category names are case-sensitive when applied to messages/events."
|
|
1739
1788
|
}
|
|
1740
1789
|
]
|
package/dist/generated/client.js
CHANGED
|
@@ -763,46 +763,24 @@ const microsoft_graph_driveItemCollectionResponse = z.object({
|
|
|
763
763
|
"@odata.nextLink": z.string().nullable(),
|
|
764
764
|
value: z.array(microsoft_graph_driveItem)
|
|
765
765
|
}).partial().passthrough();
|
|
766
|
-
const
|
|
767
|
-
|
|
766
|
+
const copy_drive_item_Body = z.object({
|
|
767
|
+
name: z.string().nullable(),
|
|
768
|
+
parentReference: z.union([microsoft_graph_itemReference, z.object({}).partial().passthrough()]),
|
|
769
|
+
childrenOnly: z.boolean().nullable().default(false),
|
|
770
|
+
includeAllVersionHistory: z.boolean().nullable().default(false)
|
|
771
|
+
}).partial().passthrough();
|
|
772
|
+
const create_drive_item_share_link_Body = z.object({
|
|
773
|
+
type: z.string().nullable(),
|
|
774
|
+
scope: z.string().nullable(),
|
|
768
775
|
expirationDateTime: z.string().regex(
|
|
769
776
|
/^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
|
|
770
|
-
).datetime({ offset: true }).
|
|
771
|
-
|
|
772
|
-
).nullish(),
|
|
773
|
-
nextExpectedRanges: z.array(z.string().nullable()).describe(
|
|
774
|
-
"A collection of byte ranges that the server is missing for the file. These ranges are zero indexed and of the format 'start-end' (for example '0-26' to indicate the first 27 bytes of the file). When uploading files as Outlook attachments, instead of a collection of ranges, this property always indicates a single value '{start}', the location in the file where the next upload should begin."
|
|
775
|
-
).optional(),
|
|
776
|
-
uploadUrl: z.string().describe("The URL endpoint that accepts PUT requests for byte ranges of the file.").nullish()
|
|
777
|
-
}).passthrough();
|
|
778
|
-
const BaseDeltaFunctionResponse = z.object({ "@odata.nextLink": z.string().nullable(), "@odata.deltaLink": z.string().nullable() }).partial().passthrough();
|
|
779
|
-
const microsoft_graph_sensitivityLabelAssignmentMethod = z.enum([
|
|
780
|
-
"standard",
|
|
781
|
-
"privileged",
|
|
782
|
-
"auto",
|
|
783
|
-
"unknownFutureValue"
|
|
784
|
-
]);
|
|
785
|
-
const microsoft_graph_sensitivityLabelAssignment = z.object({
|
|
786
|
-
assignmentMethod: microsoft_graph_sensitivityLabelAssignmentMethod.optional(),
|
|
787
|
-
sensitivityLabelId: z.string().describe("The unique identifier for the sensitivity label assigned to the file.").optional(),
|
|
788
|
-
tenantId: z.string().describe(
|
|
789
|
-
"The unique identifier for the tenant that hosts the file when this label is applied."
|
|
790
|
-
).optional()
|
|
791
|
-
}).passthrough();
|
|
792
|
-
const microsoft_graph_extractSensitivityLabelsResult = z.object({
|
|
793
|
-
labels: z.array(microsoft_graph_sensitivityLabelAssignment).describe("List of sensitivity labels assigned to a file.").optional()
|
|
794
|
-
}).passthrough();
|
|
795
|
-
const share_drive_item_Body = z.object({
|
|
796
|
-
requireSignIn: z.boolean().nullable().default(false),
|
|
797
|
-
roles: z.array(z.string().nullable()),
|
|
798
|
-
sendInvitation: z.boolean().nullable().default(false),
|
|
777
|
+
).datetime({ offset: true }).nullable(),
|
|
778
|
+
password: z.string().nullable(),
|
|
799
779
|
message: z.string().nullable(),
|
|
800
780
|
recipients: z.array(z.object({}).partial().passthrough()),
|
|
801
781
|
retainInheritedPermissions: z.boolean().nullable().default(false),
|
|
802
|
-
|
|
803
|
-
password: z.string().nullable()
|
|
782
|
+
sendNotification: z.boolean().nullable().default(false)
|
|
804
783
|
}).partial().passthrough();
|
|
805
|
-
const BaseCollectionPaginationCountResponse = z.object({ "@odata.count": z.number().int().nullable(), "@odata.nextLink": z.string().nullable() }).partial().passthrough();
|
|
806
784
|
const microsoft_graph_sharePointGroupIdentity = z.object({
|
|
807
785
|
displayName: z.string().describe(
|
|
808
786
|
"The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta."
|
|
@@ -883,6 +861,56 @@ const microsoft_graph_permission = z.object({
|
|
|
883
861
|
"A unique token that can be used to access this shared item via the shares API. Read-only."
|
|
884
862
|
).nullish()
|
|
885
863
|
}).passthrough();
|
|
864
|
+
const create_upload_session_Body = z.object({ item: z.object({}).partial().passthrough() }).partial().passthrough();
|
|
865
|
+
const microsoft_graph_uploadSession = z.object({
|
|
866
|
+
expirationDateTime: z.string().regex(
|
|
867
|
+
/^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
|
|
868
|
+
).datetime({ offset: true }).describe(
|
|
869
|
+
"The date and time in UTC that the upload session expires. The complete file must be uploaded before this expiration time is reached. Each fragment uploaded during the session extends the expiration time."
|
|
870
|
+
).nullish(),
|
|
871
|
+
nextExpectedRanges: z.array(z.string().nullable()).describe(
|
|
872
|
+
"A collection of byte ranges that the server is missing for the file. These ranges are zero indexed and of the format 'start-end' (for example '0-26' to indicate the first 27 bytes of the file). When uploading files as Outlook attachments, instead of a collection of ranges, this property always indicates a single value '{start}', the location in the file where the next upload should begin."
|
|
873
|
+
).optional(),
|
|
874
|
+
uploadUrl: z.string().describe("The URL endpoint that accepts PUT requests for byte ranges of the file.").nullish()
|
|
875
|
+
}).passthrough();
|
|
876
|
+
const BaseDeltaFunctionResponse = z.object({ "@odata.nextLink": z.string().nullable(), "@odata.deltaLink": z.string().nullable() }).partial().passthrough();
|
|
877
|
+
const microsoft_graph_sensitivityLabelAssignmentMethod = z.enum([
|
|
878
|
+
"standard",
|
|
879
|
+
"privileged",
|
|
880
|
+
"auto",
|
|
881
|
+
"unknownFutureValue"
|
|
882
|
+
]);
|
|
883
|
+
const microsoft_graph_sensitivityLabelAssignment = z.object({
|
|
884
|
+
assignmentMethod: microsoft_graph_sensitivityLabelAssignmentMethod.optional(),
|
|
885
|
+
sensitivityLabelId: z.string().describe("The unique identifier for the sensitivity label assigned to the file.").optional(),
|
|
886
|
+
tenantId: z.string().describe(
|
|
887
|
+
"The unique identifier for the tenant that hosts the file when this label is applied."
|
|
888
|
+
).optional()
|
|
889
|
+
}).passthrough();
|
|
890
|
+
const microsoft_graph_extractSensitivityLabelsResult = z.object({
|
|
891
|
+
labels: z.array(microsoft_graph_sensitivityLabelAssignment).describe("List of sensitivity labels assigned to a file.").optional()
|
|
892
|
+
}).passthrough();
|
|
893
|
+
const share_drive_item_Body = z.object({
|
|
894
|
+
requireSignIn: z.boolean().nullable().default(false),
|
|
895
|
+
roles: z.array(z.string().nullable()),
|
|
896
|
+
sendInvitation: z.boolean().nullable().default(false),
|
|
897
|
+
message: z.string().nullable(),
|
|
898
|
+
recipients: z.array(z.object({}).partial().passthrough()),
|
|
899
|
+
retainInheritedPermissions: z.boolean().nullable().default(false),
|
|
900
|
+
expirationDateTime: z.string().nullable(),
|
|
901
|
+
password: z.string().nullable()
|
|
902
|
+
}).partial().passthrough();
|
|
903
|
+
const BaseCollectionPaginationCountResponse = z.object({ "@odata.count": z.number().int().nullable(), "@odata.nextLink": z.string().nullable() }).partial().passthrough();
|
|
904
|
+
const ReferenceNumeric = z.enum(["-INF", "INF", "NaN"]);
|
|
905
|
+
const create_drive_item_preview_Body = z.object({
|
|
906
|
+
page: z.string().nullable(),
|
|
907
|
+
zoom: z.union([z.number(), z.string(), ReferenceNumeric])
|
|
908
|
+
}).partial().passthrough();
|
|
909
|
+
const microsoft_graph_itemPreviewInfo = z.object({
|
|
910
|
+
getUrl: z.string().nullish(),
|
|
911
|
+
postParameters: z.string().nullish(),
|
|
912
|
+
postUrl: z.string().nullish()
|
|
913
|
+
}).passthrough();
|
|
886
914
|
const microsoft_graph_permissionCollectionResponse = z.object({
|
|
887
915
|
"@odata.count": z.number().int().nullable(),
|
|
888
916
|
"@odata.nextLink": z.string().nullable(),
|
|
@@ -3081,7 +3109,6 @@ const microsoft_graph_timeConstraint = z.object({
|
|
|
3081
3109
|
activityDomain: microsoft_graph_activityDomain.optional(),
|
|
3082
3110
|
timeSlots: z.array(microsoft_graph_timeSlot).optional()
|
|
3083
3111
|
}).passthrough();
|
|
3084
|
-
const ReferenceNumeric = z.enum(["-INF", "INF", "NaN"]);
|
|
3085
3112
|
const find_meeting_times_Body = z.object({
|
|
3086
3113
|
attendees: z.array(microsoft_graph_attendeeBase),
|
|
3087
3114
|
locationConstraint: z.union([
|
|
@@ -3449,6 +3476,46 @@ const microsoft_graph_callTranscriptCollectionResponse = z.object({
|
|
|
3449
3476
|
"@odata.nextLink": z.string().nullable(),
|
|
3450
3477
|
value: z.array(microsoft_graph_callTranscript)
|
|
3451
3478
|
}).partial().passthrough();
|
|
3479
|
+
const microsoft_graph_categoryColor = z.enum([
|
|
3480
|
+
"none",
|
|
3481
|
+
"preset0",
|
|
3482
|
+
"preset1",
|
|
3483
|
+
"preset2",
|
|
3484
|
+
"preset3",
|
|
3485
|
+
"preset4",
|
|
3486
|
+
"preset5",
|
|
3487
|
+
"preset6",
|
|
3488
|
+
"preset7",
|
|
3489
|
+
"preset8",
|
|
3490
|
+
"preset9",
|
|
3491
|
+
"preset10",
|
|
3492
|
+
"preset11",
|
|
3493
|
+
"preset12",
|
|
3494
|
+
"preset13",
|
|
3495
|
+
"preset14",
|
|
3496
|
+
"preset15",
|
|
3497
|
+
"preset16",
|
|
3498
|
+
"preset17",
|
|
3499
|
+
"preset18",
|
|
3500
|
+
"preset19",
|
|
3501
|
+
"preset20",
|
|
3502
|
+
"preset21",
|
|
3503
|
+
"preset22",
|
|
3504
|
+
"preset23",
|
|
3505
|
+
"preset24"
|
|
3506
|
+
]);
|
|
3507
|
+
const microsoft_graph_outlookCategory = z.object({
|
|
3508
|
+
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
3509
|
+
color: microsoft_graph_categoryColor.optional(),
|
|
3510
|
+
displayName: z.string().describe(
|
|
3511
|
+
"A unique name that identifies a category in the user's mailbox. After a category is created, the name cannot be changed. Read-only."
|
|
3512
|
+
).nullish()
|
|
3513
|
+
}).passthrough();
|
|
3514
|
+
const microsoft_graph_outlookCategoryCollectionResponse = z.object({
|
|
3515
|
+
"@odata.count": z.number().int().nullable(),
|
|
3516
|
+
"@odata.nextLink": z.string().nullable(),
|
|
3517
|
+
value: z.array(microsoft_graph_outlookCategory)
|
|
3518
|
+
}).partial().passthrough();
|
|
3452
3519
|
const microsoft_graph_personType = z.object({
|
|
3453
3520
|
class: z.string().describe("The type of data source, such as Person.").nullish(),
|
|
3454
3521
|
subclass: z.string().describe("The secondary type of data source, such as OrganizationUser.").nullish()
|
|
@@ -4478,6 +4545,14 @@ const schemas = {
|
|
|
4478
4545
|
microsoft_graph_pendingOperations,
|
|
4479
4546
|
microsoft_graph_driveItem,
|
|
4480
4547
|
microsoft_graph_driveItemCollectionResponse,
|
|
4548
|
+
copy_drive_item_Body,
|
|
4549
|
+
create_drive_item_share_link_Body,
|
|
4550
|
+
microsoft_graph_sharePointGroupIdentity,
|
|
4551
|
+
microsoft_graph_sharePointIdentity,
|
|
4552
|
+
microsoft_graph_sharePointIdentitySet,
|
|
4553
|
+
microsoft_graph_sharingInvitation,
|
|
4554
|
+
microsoft_graph_sharingLink,
|
|
4555
|
+
microsoft_graph_permission,
|
|
4481
4556
|
create_upload_session_Body,
|
|
4482
4557
|
microsoft_graph_uploadSession,
|
|
4483
4558
|
BaseDeltaFunctionResponse,
|
|
@@ -4486,12 +4561,9 @@ const schemas = {
|
|
|
4486
4561
|
microsoft_graph_extractSensitivityLabelsResult,
|
|
4487
4562
|
share_drive_item_Body,
|
|
4488
4563
|
BaseCollectionPaginationCountResponse,
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
microsoft_graph_sharingInvitation,
|
|
4493
|
-
microsoft_graph_sharingLink,
|
|
4494
|
-
microsoft_graph_permission,
|
|
4564
|
+
ReferenceNumeric,
|
|
4565
|
+
create_drive_item_preview_Body,
|
|
4566
|
+
microsoft_graph_itemPreviewInfo,
|
|
4495
4567
|
microsoft_graph_permissionCollectionResponse,
|
|
4496
4568
|
microsoft_graph_publicationFacet,
|
|
4497
4569
|
microsoft_graph_driveItemVersion,
|
|
@@ -4705,7 +4777,6 @@ const schemas = {
|
|
|
4705
4777
|
microsoft_graph_locationConstraint,
|
|
4706
4778
|
microsoft_graph_activityDomain,
|
|
4707
4779
|
microsoft_graph_timeConstraint,
|
|
4708
|
-
ReferenceNumeric,
|
|
4709
4780
|
find_meeting_times_Body,
|
|
4710
4781
|
send_mail_Body,
|
|
4711
4782
|
microsoft_graph_externalLink,
|
|
@@ -4741,6 +4812,9 @@ const schemas = {
|
|
|
4741
4812
|
microsoft_graph_callRecordingCollectionResponse,
|
|
4742
4813
|
microsoft_graph_callTranscript,
|
|
4743
4814
|
microsoft_graph_callTranscriptCollectionResponse,
|
|
4815
|
+
microsoft_graph_categoryColor,
|
|
4816
|
+
microsoft_graph_outlookCategory,
|
|
4817
|
+
microsoft_graph_outlookCategoryCollectionResponse,
|
|
4744
4818
|
microsoft_graph_personType,
|
|
4745
4819
|
microsoft_graph_phoneType,
|
|
4746
4820
|
microsoft_graph_phone,
|
|
@@ -5487,6 +5561,39 @@ const endpoints = makeApi([
|
|
|
5487
5561
|
],
|
|
5488
5562
|
response: z.void()
|
|
5489
5563
|
},
|
|
5564
|
+
{
|
|
5565
|
+
method: "post",
|
|
5566
|
+
path: "/drives/:driveId/items/:driveItemId/copy",
|
|
5567
|
+
alias: "copy-drive-item",
|
|
5568
|
+
description: `Invoke action copy`,
|
|
5569
|
+
requestFormat: "json",
|
|
5570
|
+
parameters: [
|
|
5571
|
+
{
|
|
5572
|
+
name: "body",
|
|
5573
|
+
description: `Action parameters`,
|
|
5574
|
+
type: "Body",
|
|
5575
|
+
schema: copy_drive_item_Body
|
|
5576
|
+
}
|
|
5577
|
+
],
|
|
5578
|
+
response: z.void()
|
|
5579
|
+
},
|
|
5580
|
+
{
|
|
5581
|
+
method: "post",
|
|
5582
|
+
path: "/drives/:driveId/items/:driveItemId/createLink",
|
|
5583
|
+
alias: "create-drive-item-share-link",
|
|
5584
|
+
description: `Create a link to share a driveItem driveItem. The createLink action creates a new sharing link if the specified link type doesn't already exist for the calling application.
|
|
5585
|
+
If a sharing link of the specified type already exists for the app, the existing sharing link is returned. DriveItem resources inherit sharing permissions from their ancestors.`,
|
|
5586
|
+
requestFormat: "json",
|
|
5587
|
+
parameters: [
|
|
5588
|
+
{
|
|
5589
|
+
name: "body",
|
|
5590
|
+
description: `Action parameters`,
|
|
5591
|
+
type: "Body",
|
|
5592
|
+
schema: create_drive_item_share_link_Body
|
|
5593
|
+
}
|
|
5594
|
+
],
|
|
5595
|
+
response: z.void()
|
|
5596
|
+
},
|
|
5490
5597
|
{
|
|
5491
5598
|
method: "post",
|
|
5492
5599
|
path: "/drives/:driveId/items/:driveItemId/createUploadSession",
|
|
@@ -5646,6 +5753,22 @@ Items with this property set should be removed from your local state.`,
|
|
|
5646
5753
|
],
|
|
5647
5754
|
response: z.void()
|
|
5648
5755
|
},
|
|
5756
|
+
{
|
|
5757
|
+
method: "post",
|
|
5758
|
+
path: "/drives/:driveId/items/:driveItemId/preview",
|
|
5759
|
+
alias: "create-drive-item-preview",
|
|
5760
|
+
description: `Invoke action preview`,
|
|
5761
|
+
requestFormat: "json",
|
|
5762
|
+
parameters: [
|
|
5763
|
+
{
|
|
5764
|
+
name: "body",
|
|
5765
|
+
description: `Action parameters`,
|
|
5766
|
+
type: "Body",
|
|
5767
|
+
schema: create_drive_item_preview_Body
|
|
5768
|
+
}
|
|
5769
|
+
],
|
|
5770
|
+
response: z.void()
|
|
5771
|
+
},
|
|
5649
5772
|
{
|
|
5650
5773
|
method: "get",
|
|
5651
5774
|
path: "/drives/:driveId/items/:driveItemId/versions",
|
|
@@ -8713,6 +8836,66 @@ folder collection and navigate to another folder. By default, this operation doe
|
|
|
8713
8836
|
],
|
|
8714
8837
|
response: z.void()
|
|
8715
8838
|
},
|
|
8839
|
+
{
|
|
8840
|
+
method: "get",
|
|
8841
|
+
path: "/me/mailFolders/:mailFolderId/messages/delta()",
|
|
8842
|
+
alias: "list-mail-folder-messages-delta",
|
|
8843
|
+
description: `Get a set of messages added, deleted, or updated in a specified folder. A delta function call for messages in a folder is similar to a GET request, except that by appropriately
|
|
8844
|
+
applying state tokens in one or more of these calls, you can [query for incremental changes in the messages in
|
|
8845
|
+
that folder](/graph/delta-query-messages). It allows you to maintain and synchronize a local store of a user's messages without
|
|
8846
|
+
having to fetch the entire set of messages from the server every time.`,
|
|
8847
|
+
requestFormat: "json",
|
|
8848
|
+
parameters: [
|
|
8849
|
+
{
|
|
8850
|
+
name: "changeType",
|
|
8851
|
+
type: "Query",
|
|
8852
|
+
schema: z.string().describe(
|
|
8853
|
+
"A custom query option to filter the delta response based on the type of change. Supported values are created, updated or deleted."
|
|
8854
|
+
).optional()
|
|
8855
|
+
},
|
|
8856
|
+
{
|
|
8857
|
+
name: "$top",
|
|
8858
|
+
type: "Query",
|
|
8859
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
8860
|
+
},
|
|
8861
|
+
{
|
|
8862
|
+
name: "$skip",
|
|
8863
|
+
type: "Query",
|
|
8864
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
8865
|
+
},
|
|
8866
|
+
{
|
|
8867
|
+
name: "$search",
|
|
8868
|
+
type: "Query",
|
|
8869
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
8870
|
+
},
|
|
8871
|
+
{
|
|
8872
|
+
name: "$filter",
|
|
8873
|
+
type: "Query",
|
|
8874
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
8875
|
+
},
|
|
8876
|
+
{
|
|
8877
|
+
name: "$count",
|
|
8878
|
+
type: "Query",
|
|
8879
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
8880
|
+
},
|
|
8881
|
+
{
|
|
8882
|
+
name: "$select",
|
|
8883
|
+
type: "Query",
|
|
8884
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
8885
|
+
},
|
|
8886
|
+
{
|
|
8887
|
+
name: "$orderby",
|
|
8888
|
+
type: "Query",
|
|
8889
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
8890
|
+
},
|
|
8891
|
+
{
|
|
8892
|
+
name: "$expand",
|
|
8893
|
+
type: "Query",
|
|
8894
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
8895
|
+
}
|
|
8896
|
+
],
|
|
8897
|
+
response: z.void()
|
|
8898
|
+
},
|
|
8716
8899
|
{
|
|
8717
8900
|
method: "get",
|
|
8718
8901
|
path: "/me/manager",
|
|
@@ -9129,6 +9312,22 @@ resource.`,
|
|
|
9129
9312
|
],
|
|
9130
9313
|
response: z.void()
|
|
9131
9314
|
},
|
|
9315
|
+
{
|
|
9316
|
+
method: "post",
|
|
9317
|
+
path: "/me/messages/:messageId/copy",
|
|
9318
|
+
alias: "copy-mail-message",
|
|
9319
|
+
description: `Copy a message to a folder within the user's mailbox.`,
|
|
9320
|
+
requestFormat: "json",
|
|
9321
|
+
parameters: [
|
|
9322
|
+
{
|
|
9323
|
+
name: "body",
|
|
9324
|
+
description: `Action parameters`,
|
|
9325
|
+
type: "Body",
|
|
9326
|
+
schema: z.object({ DestinationId: z.string() }).partial().passthrough()
|
|
9327
|
+
}
|
|
9328
|
+
],
|
|
9329
|
+
response: z.void()
|
|
9330
|
+
},
|
|
9132
9331
|
{
|
|
9133
9332
|
method: "post",
|
|
9134
9333
|
path: "/me/messages/:messageId/createForward",
|
|
@@ -10023,6 +10222,72 @@ resource.`,
|
|
|
10023
10222
|
requestFormat: "json",
|
|
10024
10223
|
response: z.void()
|
|
10025
10224
|
},
|
|
10225
|
+
{
|
|
10226
|
+
method: "get",
|
|
10227
|
+
path: "/me/outlook/masterCategories",
|
|
10228
|
+
alias: "list-outlook-categories",
|
|
10229
|
+
description: `Get all the categories that have been defined for a user.`,
|
|
10230
|
+
requestFormat: "json",
|
|
10231
|
+
parameters: [
|
|
10232
|
+
{
|
|
10233
|
+
name: "$top",
|
|
10234
|
+
type: "Query",
|
|
10235
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
10236
|
+
},
|
|
10237
|
+
{
|
|
10238
|
+
name: "$skip",
|
|
10239
|
+
type: "Query",
|
|
10240
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
10241
|
+
},
|
|
10242
|
+
{
|
|
10243
|
+
name: "$search",
|
|
10244
|
+
type: "Query",
|
|
10245
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
10246
|
+
},
|
|
10247
|
+
{
|
|
10248
|
+
name: "$filter",
|
|
10249
|
+
type: "Query",
|
|
10250
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
10251
|
+
},
|
|
10252
|
+
{
|
|
10253
|
+
name: "$count",
|
|
10254
|
+
type: "Query",
|
|
10255
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
10256
|
+
},
|
|
10257
|
+
{
|
|
10258
|
+
name: "$orderby",
|
|
10259
|
+
type: "Query",
|
|
10260
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
10261
|
+
},
|
|
10262
|
+
{
|
|
10263
|
+
name: "$select",
|
|
10264
|
+
type: "Query",
|
|
10265
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
10266
|
+
},
|
|
10267
|
+
{
|
|
10268
|
+
name: "$expand",
|
|
10269
|
+
type: "Query",
|
|
10270
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
10271
|
+
}
|
|
10272
|
+
],
|
|
10273
|
+
response: z.void()
|
|
10274
|
+
},
|
|
10275
|
+
{
|
|
10276
|
+
method: "post",
|
|
10277
|
+
path: "/me/outlook/masterCategories",
|
|
10278
|
+
alias: "create-outlook-category",
|
|
10279
|
+
description: `Create an outlookCategory object in the user's master list of categories.`,
|
|
10280
|
+
requestFormat: "json",
|
|
10281
|
+
parameters: [
|
|
10282
|
+
{
|
|
10283
|
+
name: "body",
|
|
10284
|
+
description: `New navigation property`,
|
|
10285
|
+
type: "Body",
|
|
10286
|
+
schema: microsoft_graph_outlookCategory
|
|
10287
|
+
}
|
|
10288
|
+
],
|
|
10289
|
+
response: z.void()
|
|
10290
|
+
},
|
|
10026
10291
|
{
|
|
10027
10292
|
method: "get",
|
|
10028
10293
|
path: "/me/people",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softeria/ms-365-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.0",
|
|
4
4
|
"description": " A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/src/endpoints.json
CHANGED
|
@@ -500,6 +500,27 @@
|
|
|
500
500
|
"scopes": ["Files.ReadWrite"],
|
|
501
501
|
"llmTip": "Shares a file or folder with specific users. Body: { recipients: [{ email: 'user@example.com' }], roles: ['read'], sendInvitation: true, message: 'Please review this file.' }. Roles: 'read', 'write', 'owner'. Set requireSignIn to true to require authentication."
|
|
502
502
|
},
|
|
503
|
+
{
|
|
504
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/createLink",
|
|
505
|
+
"method": "post",
|
|
506
|
+
"toolName": "create-drive-item-share-link",
|
|
507
|
+
"scopes": ["Files.ReadWrite"],
|
|
508
|
+
"llmTip": "Create a shareable link for a file or folder WITHOUT sending an email invitation. Body: { type: 'view' | 'edit' | 'embed', scope: 'anonymous' | 'organization' | 'users', password?: string, expirationDateTime?: ISO-8601, retainInheritedPermissions?: boolean }. Returns a permission with link.webUrl. Pair with share-drive-item when you want to grant explicit access; use this when you only need a URL to paste into a doc/email/chat without triggering OneDrive notifications."
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/copy",
|
|
512
|
+
"method": "post",
|
|
513
|
+
"toolName": "copy-drive-item",
|
|
514
|
+
"scopes": ["Files.ReadWrite"],
|
|
515
|
+
"llmTip": "Asynchronously copy a file or folder to a new location and/or name. Body: { parentReference: { driveId: '...', id: '...' }, name?: 'New Name.xlsx' }. Returns 202 Accepted with a Location header pointing at a monitor URL for the async job. Ideal for duplicating templates (e.g. clone an Armhr Census Template per prospect), bulk file provisioning, or preserving an immutable snapshot of a working file."
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/preview",
|
|
519
|
+
"method": "post",
|
|
520
|
+
"toolName": "create-drive-item-preview",
|
|
521
|
+
"scopes": ["Files.Read"],
|
|
522
|
+
"llmTip": "Generate a short-lived embeddable preview URL for a file (Office docs, PDFs, images). Body: { page?: number | string, zoom?: number, viewer?: 'onedrive' | 'office' }. Returns getUrl (interactive) and postUrl (form-post). Useful for surfacing inline previews in summary emails or chat messages without needing the recipient to open the file."
|
|
523
|
+
},
|
|
503
524
|
{
|
|
504
525
|
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/permissions",
|
|
505
526
|
"method": "get",
|
|
@@ -1736,5 +1757,33 @@
|
|
|
1736
1757
|
"toolName": "get-sensitivity-label",
|
|
1737
1758
|
"workScopes": ["SensitivityLabel.Read"],
|
|
1738
1759
|
"llmTip": "Gets a single MIP sensitivity label by id. Use list-sensitivity-labels to find ids. Not supported for personal Microsoft accounts."
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"pathPattern": "/me/messages/{message-id}/copy",
|
|
1763
|
+
"method": "post",
|
|
1764
|
+
"toolName": "copy-mail-message",
|
|
1765
|
+
"scopes": ["Mail.ReadWrite"],
|
|
1766
|
+
"llmTip": "Copies a message to another mail folder. Body: { DestinationId: '<mailFolder-id or well-known name like inbox, archive, junkemail>' }. Returns the newly created message (with a new id) in the destination folder. For moving instead of copying, use move-mail-message."
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
"pathPattern": "/me/mailFolders/{mailFolder-id}/messages/delta()",
|
|
1770
|
+
"method": "get",
|
|
1771
|
+
"toolName": "list-mail-folder-messages-delta",
|
|
1772
|
+
"scopes": ["Mail.Read"],
|
|
1773
|
+
"llmTip": "Incremental sync of messages within a mail folder. Graph only supports delta scoped to a folder — use mailFolder-id = 'inbox' for the well-known inbox, or another folder id from list-mail-folders. First call returns all messages plus @odata.deltaLink; subsequent calls with that link return only changes (created/updated/deleted). @odata.nextLink paginates within a single delta window. Deltas expire after ~30 days of inactivity — start over if the server returns 410. Prefer this over full re-list for polling."
|
|
1774
|
+
},
|
|
1775
|
+
{
|
|
1776
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1777
|
+
"method": "get",
|
|
1778
|
+
"toolName": "list-outlook-categories",
|
|
1779
|
+
"scopes": ["MailboxSettings.Read"],
|
|
1780
|
+
"llmTip": "Lists the user's Outlook categories (colored labels) used to tag messages, events, contacts, and tasks. Each category has displayName and color (preset0 through preset24, or 'none'). Use this to show available tags before applying via update-mail-message or update-calendar-event with body { categories: ['Category Name'] }."
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1784
|
+
"method": "post",
|
|
1785
|
+
"toolName": "create-outlook-category",
|
|
1786
|
+
"scopes": ["MailboxSettings.ReadWrite"],
|
|
1787
|
+
"llmTip": "Creates a new Outlook category. Body: { displayName (unique), color (one of: none, preset0 … preset24 — maps to red, orange, yellow, green, teal, olive, blue, purple, cranberry, steel, dark-steel, gray, dark-gray, black, dark-red, dark-orange, dark-yellow, dark-green, dark-teal, dark-olive, dark-blue, dark-purple, dark-cranberry) }. Category names are case-sensitive when applied to messages/events."
|
|
1739
1788
|
}
|
|
1740
1789
|
]
|