@softeria/ms-365-mcp-server 0.90.0 → 0.92.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 +35 -0
- package/dist/generated/client.js +259 -0
- package/package.json +1 -1
- package/src/endpoints.json +35 -0
package/dist/endpoints.json
CHANGED
|
@@ -521,6 +521,13 @@
|
|
|
521
521
|
"scopes": ["Files.Read"],
|
|
522
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
523
|
},
|
|
524
|
+
{
|
|
525
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/thumbnails",
|
|
526
|
+
"method": "get",
|
|
527
|
+
"toolName": "list-drive-item-thumbnails",
|
|
528
|
+
"scopes": ["Files.Read"],
|
|
529
|
+
"llmTip": "Lists thumbnail sets for a file. Each set contains small (96px), medium (176px), large (800px) thumbnails with url and dimensions. Returns empty for unsupported types (text docs). Use $select=small,medium,large or $expand=small($select=url) to fetch specific sizes. The returned URLs are short-lived — fetch the bytes immediately."
|
|
530
|
+
},
|
|
524
531
|
{
|
|
525
532
|
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/permissions",
|
|
526
533
|
"method": "get",
|
|
@@ -1757,5 +1764,33 @@
|
|
|
1757
1764
|
"toolName": "get-sensitivity-label",
|
|
1758
1765
|
"workScopes": ["SensitivityLabel.Read"],
|
|
1759
1766
|
"llmTip": "Gets a single MIP sensitivity label by id. Use list-sensitivity-labels to find ids. Not supported for personal Microsoft accounts."
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
"pathPattern": "/me/messages/{message-id}/copy",
|
|
1770
|
+
"method": "post",
|
|
1771
|
+
"toolName": "copy-mail-message",
|
|
1772
|
+
"scopes": ["Mail.ReadWrite"],
|
|
1773
|
+
"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."
|
|
1774
|
+
},
|
|
1775
|
+
{
|
|
1776
|
+
"pathPattern": "/me/mailFolders/{mailFolder-id}/messages/delta()",
|
|
1777
|
+
"method": "get",
|
|
1778
|
+
"toolName": "list-mail-folder-messages-delta",
|
|
1779
|
+
"scopes": ["Mail.Read"],
|
|
1780
|
+
"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."
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1784
|
+
"method": "get",
|
|
1785
|
+
"toolName": "list-outlook-categories",
|
|
1786
|
+
"scopes": ["MailboxSettings.Read"],
|
|
1787
|
+
"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'] }."
|
|
1788
|
+
},
|
|
1789
|
+
{
|
|
1790
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1791
|
+
"method": "post",
|
|
1792
|
+
"toolName": "create-outlook-category",
|
|
1793
|
+
"scopes": ["MailboxSettings.ReadWrite"],
|
|
1794
|
+
"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."
|
|
1760
1795
|
}
|
|
1761
1796
|
]
|
package/dist/generated/client.js
CHANGED
|
@@ -916,6 +916,27 @@ const microsoft_graph_permissionCollectionResponse = z.object({
|
|
|
916
916
|
"@odata.nextLink": z.string().nullable(),
|
|
917
917
|
value: z.array(microsoft_graph_permission)
|
|
918
918
|
}).partial().passthrough();
|
|
919
|
+
const microsoft_graph_thumbnail = z.object({
|
|
920
|
+
content: z.string().describe("The content stream for the thumbnail.").nullish(),
|
|
921
|
+
height: z.number().gte(-2147483648).lte(2147483647).describe("The height of the thumbnail, in pixels.").nullish(),
|
|
922
|
+
sourceItemId: z.string().describe(
|
|
923
|
+
"The unique identifier of the item that provided the thumbnail. This is only available when a folder thumbnail is requested."
|
|
924
|
+
).nullish(),
|
|
925
|
+
url: z.string().describe("The URL used to fetch the thumbnail content.").nullish(),
|
|
926
|
+
width: z.number().gte(-2147483648).lte(2147483647).describe("The width of the thumbnail, in pixels.").nullish()
|
|
927
|
+
}).passthrough();
|
|
928
|
+
const microsoft_graph_thumbnailSet = z.object({
|
|
929
|
+
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
930
|
+
large: microsoft_graph_thumbnail.optional(),
|
|
931
|
+
medium: microsoft_graph_thumbnail.optional(),
|
|
932
|
+
small: microsoft_graph_thumbnail.optional(),
|
|
933
|
+
source: microsoft_graph_thumbnail.optional()
|
|
934
|
+
}).passthrough();
|
|
935
|
+
const microsoft_graph_thumbnailSetCollectionResponse = z.object({
|
|
936
|
+
"@odata.count": z.number().int().nullable(),
|
|
937
|
+
"@odata.nextLink": z.string().nullable(),
|
|
938
|
+
value: z.array(microsoft_graph_thumbnailSet)
|
|
939
|
+
}).partial().passthrough();
|
|
919
940
|
const microsoft_graph_publicationFacet = z.object({
|
|
920
941
|
checkedOutBy: microsoft_graph_identitySet.optional(),
|
|
921
942
|
level: z.string().describe(
|
|
@@ -3476,6 +3497,46 @@ const microsoft_graph_callTranscriptCollectionResponse = z.object({
|
|
|
3476
3497
|
"@odata.nextLink": z.string().nullable(),
|
|
3477
3498
|
value: z.array(microsoft_graph_callTranscript)
|
|
3478
3499
|
}).partial().passthrough();
|
|
3500
|
+
const microsoft_graph_categoryColor = z.enum([
|
|
3501
|
+
"none",
|
|
3502
|
+
"preset0",
|
|
3503
|
+
"preset1",
|
|
3504
|
+
"preset2",
|
|
3505
|
+
"preset3",
|
|
3506
|
+
"preset4",
|
|
3507
|
+
"preset5",
|
|
3508
|
+
"preset6",
|
|
3509
|
+
"preset7",
|
|
3510
|
+
"preset8",
|
|
3511
|
+
"preset9",
|
|
3512
|
+
"preset10",
|
|
3513
|
+
"preset11",
|
|
3514
|
+
"preset12",
|
|
3515
|
+
"preset13",
|
|
3516
|
+
"preset14",
|
|
3517
|
+
"preset15",
|
|
3518
|
+
"preset16",
|
|
3519
|
+
"preset17",
|
|
3520
|
+
"preset18",
|
|
3521
|
+
"preset19",
|
|
3522
|
+
"preset20",
|
|
3523
|
+
"preset21",
|
|
3524
|
+
"preset22",
|
|
3525
|
+
"preset23",
|
|
3526
|
+
"preset24"
|
|
3527
|
+
]);
|
|
3528
|
+
const microsoft_graph_outlookCategory = z.object({
|
|
3529
|
+
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
3530
|
+
color: microsoft_graph_categoryColor.optional(),
|
|
3531
|
+
displayName: z.string().describe(
|
|
3532
|
+
"A unique name that identifies a category in the user's mailbox. After a category is created, the name cannot be changed. Read-only."
|
|
3533
|
+
).nullish()
|
|
3534
|
+
}).passthrough();
|
|
3535
|
+
const microsoft_graph_outlookCategoryCollectionResponse = z.object({
|
|
3536
|
+
"@odata.count": z.number().int().nullable(),
|
|
3537
|
+
"@odata.nextLink": z.string().nullable(),
|
|
3538
|
+
value: z.array(microsoft_graph_outlookCategory)
|
|
3539
|
+
}).partial().passthrough();
|
|
3479
3540
|
const microsoft_graph_personType = z.object({
|
|
3480
3541
|
class: z.string().describe("The type of data source, such as Person.").nullish(),
|
|
3481
3542
|
subclass: z.string().describe("The secondary type of data source, such as OrganizationUser.").nullish()
|
|
@@ -4525,6 +4586,9 @@ const schemas = {
|
|
|
4525
4586
|
create_drive_item_preview_Body,
|
|
4526
4587
|
microsoft_graph_itemPreviewInfo,
|
|
4527
4588
|
microsoft_graph_permissionCollectionResponse,
|
|
4589
|
+
microsoft_graph_thumbnail,
|
|
4590
|
+
microsoft_graph_thumbnailSet,
|
|
4591
|
+
microsoft_graph_thumbnailSetCollectionResponse,
|
|
4528
4592
|
microsoft_graph_publicationFacet,
|
|
4529
4593
|
microsoft_graph_driveItemVersion,
|
|
4530
4594
|
microsoft_graph_driveItemVersionCollectionResponse,
|
|
@@ -4772,6 +4836,9 @@ const schemas = {
|
|
|
4772
4836
|
microsoft_graph_callRecordingCollectionResponse,
|
|
4773
4837
|
microsoft_graph_callTranscript,
|
|
4774
4838
|
microsoft_graph_callTranscriptCollectionResponse,
|
|
4839
|
+
microsoft_graph_categoryColor,
|
|
4840
|
+
microsoft_graph_outlookCategory,
|
|
4841
|
+
microsoft_graph_outlookCategoryCollectionResponse,
|
|
4775
4842
|
microsoft_graph_personType,
|
|
4776
4843
|
microsoft_graph_phoneType,
|
|
4777
4844
|
microsoft_graph_phone,
|
|
@@ -5726,6 +5793,56 @@ Items with this property set should be removed from your local state.`,
|
|
|
5726
5793
|
],
|
|
5727
5794
|
response: z.void()
|
|
5728
5795
|
},
|
|
5796
|
+
{
|
|
5797
|
+
method: "get",
|
|
5798
|
+
path: "/drives/:driveId/items/:driveItemId/thumbnails",
|
|
5799
|
+
alias: "list-drive-item-thumbnails",
|
|
5800
|
+
description: `Collection of thumbnailSet objects associated with the item. For more information, see getting thumbnails. Read-only. Nullable.`,
|
|
5801
|
+
requestFormat: "json",
|
|
5802
|
+
parameters: [
|
|
5803
|
+
{
|
|
5804
|
+
name: "$top",
|
|
5805
|
+
type: "Query",
|
|
5806
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
5807
|
+
},
|
|
5808
|
+
{
|
|
5809
|
+
name: "$skip",
|
|
5810
|
+
type: "Query",
|
|
5811
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
5812
|
+
},
|
|
5813
|
+
{
|
|
5814
|
+
name: "$search",
|
|
5815
|
+
type: "Query",
|
|
5816
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
5817
|
+
},
|
|
5818
|
+
{
|
|
5819
|
+
name: "$filter",
|
|
5820
|
+
type: "Query",
|
|
5821
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
5822
|
+
},
|
|
5823
|
+
{
|
|
5824
|
+
name: "$count",
|
|
5825
|
+
type: "Query",
|
|
5826
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
5827
|
+
},
|
|
5828
|
+
{
|
|
5829
|
+
name: "$orderby",
|
|
5830
|
+
type: "Query",
|
|
5831
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
5832
|
+
},
|
|
5833
|
+
{
|
|
5834
|
+
name: "$select",
|
|
5835
|
+
type: "Query",
|
|
5836
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
5837
|
+
},
|
|
5838
|
+
{
|
|
5839
|
+
name: "$expand",
|
|
5840
|
+
type: "Query",
|
|
5841
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
5842
|
+
}
|
|
5843
|
+
],
|
|
5844
|
+
response: z.void()
|
|
5845
|
+
},
|
|
5729
5846
|
{
|
|
5730
5847
|
method: "get",
|
|
5731
5848
|
path: "/drives/:driveId/items/:driveItemId/versions",
|
|
@@ -8793,6 +8910,66 @@ folder collection and navigate to another folder. By default, this operation doe
|
|
|
8793
8910
|
],
|
|
8794
8911
|
response: z.void()
|
|
8795
8912
|
},
|
|
8913
|
+
{
|
|
8914
|
+
method: "get",
|
|
8915
|
+
path: "/me/mailFolders/:mailFolderId/messages/delta()",
|
|
8916
|
+
alias: "list-mail-folder-messages-delta",
|
|
8917
|
+
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
|
|
8918
|
+
applying state tokens in one or more of these calls, you can [query for incremental changes in the messages in
|
|
8919
|
+
that folder](/graph/delta-query-messages). It allows you to maintain and synchronize a local store of a user's messages without
|
|
8920
|
+
having to fetch the entire set of messages from the server every time.`,
|
|
8921
|
+
requestFormat: "json",
|
|
8922
|
+
parameters: [
|
|
8923
|
+
{
|
|
8924
|
+
name: "changeType",
|
|
8925
|
+
type: "Query",
|
|
8926
|
+
schema: z.string().describe(
|
|
8927
|
+
"A custom query option to filter the delta response based on the type of change. Supported values are created, updated or deleted."
|
|
8928
|
+
).optional()
|
|
8929
|
+
},
|
|
8930
|
+
{
|
|
8931
|
+
name: "$top",
|
|
8932
|
+
type: "Query",
|
|
8933
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
8934
|
+
},
|
|
8935
|
+
{
|
|
8936
|
+
name: "$skip",
|
|
8937
|
+
type: "Query",
|
|
8938
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
8939
|
+
},
|
|
8940
|
+
{
|
|
8941
|
+
name: "$search",
|
|
8942
|
+
type: "Query",
|
|
8943
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
8944
|
+
},
|
|
8945
|
+
{
|
|
8946
|
+
name: "$filter",
|
|
8947
|
+
type: "Query",
|
|
8948
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
8949
|
+
},
|
|
8950
|
+
{
|
|
8951
|
+
name: "$count",
|
|
8952
|
+
type: "Query",
|
|
8953
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
8954
|
+
},
|
|
8955
|
+
{
|
|
8956
|
+
name: "$select",
|
|
8957
|
+
type: "Query",
|
|
8958
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
8959
|
+
},
|
|
8960
|
+
{
|
|
8961
|
+
name: "$orderby",
|
|
8962
|
+
type: "Query",
|
|
8963
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
8964
|
+
},
|
|
8965
|
+
{
|
|
8966
|
+
name: "$expand",
|
|
8967
|
+
type: "Query",
|
|
8968
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
8969
|
+
}
|
|
8970
|
+
],
|
|
8971
|
+
response: z.void()
|
|
8972
|
+
},
|
|
8796
8973
|
{
|
|
8797
8974
|
method: "get",
|
|
8798
8975
|
path: "/me/manager",
|
|
@@ -9209,6 +9386,22 @@ resource.`,
|
|
|
9209
9386
|
],
|
|
9210
9387
|
response: z.void()
|
|
9211
9388
|
},
|
|
9389
|
+
{
|
|
9390
|
+
method: "post",
|
|
9391
|
+
path: "/me/messages/:messageId/copy",
|
|
9392
|
+
alias: "copy-mail-message",
|
|
9393
|
+
description: `Copy a message to a folder within the user's mailbox.`,
|
|
9394
|
+
requestFormat: "json",
|
|
9395
|
+
parameters: [
|
|
9396
|
+
{
|
|
9397
|
+
name: "body",
|
|
9398
|
+
description: `Action parameters`,
|
|
9399
|
+
type: "Body",
|
|
9400
|
+
schema: z.object({ DestinationId: z.string() }).partial().passthrough()
|
|
9401
|
+
}
|
|
9402
|
+
],
|
|
9403
|
+
response: z.void()
|
|
9404
|
+
},
|
|
9212
9405
|
{
|
|
9213
9406
|
method: "post",
|
|
9214
9407
|
path: "/me/messages/:messageId/createForward",
|
|
@@ -10103,6 +10296,72 @@ resource.`,
|
|
|
10103
10296
|
requestFormat: "json",
|
|
10104
10297
|
response: z.void()
|
|
10105
10298
|
},
|
|
10299
|
+
{
|
|
10300
|
+
method: "get",
|
|
10301
|
+
path: "/me/outlook/masterCategories",
|
|
10302
|
+
alias: "list-outlook-categories",
|
|
10303
|
+
description: `Get all the categories that have been defined for a user.`,
|
|
10304
|
+
requestFormat: "json",
|
|
10305
|
+
parameters: [
|
|
10306
|
+
{
|
|
10307
|
+
name: "$top",
|
|
10308
|
+
type: "Query",
|
|
10309
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
10310
|
+
},
|
|
10311
|
+
{
|
|
10312
|
+
name: "$skip",
|
|
10313
|
+
type: "Query",
|
|
10314
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
10315
|
+
},
|
|
10316
|
+
{
|
|
10317
|
+
name: "$search",
|
|
10318
|
+
type: "Query",
|
|
10319
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
10320
|
+
},
|
|
10321
|
+
{
|
|
10322
|
+
name: "$filter",
|
|
10323
|
+
type: "Query",
|
|
10324
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
10325
|
+
},
|
|
10326
|
+
{
|
|
10327
|
+
name: "$count",
|
|
10328
|
+
type: "Query",
|
|
10329
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
10330
|
+
},
|
|
10331
|
+
{
|
|
10332
|
+
name: "$orderby",
|
|
10333
|
+
type: "Query",
|
|
10334
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
10335
|
+
},
|
|
10336
|
+
{
|
|
10337
|
+
name: "$select",
|
|
10338
|
+
type: "Query",
|
|
10339
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
10340
|
+
},
|
|
10341
|
+
{
|
|
10342
|
+
name: "$expand",
|
|
10343
|
+
type: "Query",
|
|
10344
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
10345
|
+
}
|
|
10346
|
+
],
|
|
10347
|
+
response: z.void()
|
|
10348
|
+
},
|
|
10349
|
+
{
|
|
10350
|
+
method: "post",
|
|
10351
|
+
path: "/me/outlook/masterCategories",
|
|
10352
|
+
alias: "create-outlook-category",
|
|
10353
|
+
description: `Create an outlookCategory object in the user's master list of categories.`,
|
|
10354
|
+
requestFormat: "json",
|
|
10355
|
+
parameters: [
|
|
10356
|
+
{
|
|
10357
|
+
name: "body",
|
|
10358
|
+
description: `New navigation property`,
|
|
10359
|
+
type: "Body",
|
|
10360
|
+
schema: microsoft_graph_outlookCategory
|
|
10361
|
+
}
|
|
10362
|
+
],
|
|
10363
|
+
response: z.void()
|
|
10364
|
+
},
|
|
10106
10365
|
{
|
|
10107
10366
|
method: "get",
|
|
10108
10367
|
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.92.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
|
@@ -521,6 +521,13 @@
|
|
|
521
521
|
"scopes": ["Files.Read"],
|
|
522
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
523
|
},
|
|
524
|
+
{
|
|
525
|
+
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/thumbnails",
|
|
526
|
+
"method": "get",
|
|
527
|
+
"toolName": "list-drive-item-thumbnails",
|
|
528
|
+
"scopes": ["Files.Read"],
|
|
529
|
+
"llmTip": "Lists thumbnail sets for a file. Each set contains small (96px), medium (176px), large (800px) thumbnails with url and dimensions. Returns empty for unsupported types (text docs). Use $select=small,medium,large or $expand=small($select=url) to fetch specific sizes. The returned URLs are short-lived — fetch the bytes immediately."
|
|
530
|
+
},
|
|
524
531
|
{
|
|
525
532
|
"pathPattern": "/drives/{drive-id}/items/{driveItem-id}/permissions",
|
|
526
533
|
"method": "get",
|
|
@@ -1757,5 +1764,33 @@
|
|
|
1757
1764
|
"toolName": "get-sensitivity-label",
|
|
1758
1765
|
"workScopes": ["SensitivityLabel.Read"],
|
|
1759
1766
|
"llmTip": "Gets a single MIP sensitivity label by id. Use list-sensitivity-labels to find ids. Not supported for personal Microsoft accounts."
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
"pathPattern": "/me/messages/{message-id}/copy",
|
|
1770
|
+
"method": "post",
|
|
1771
|
+
"toolName": "copy-mail-message",
|
|
1772
|
+
"scopes": ["Mail.ReadWrite"],
|
|
1773
|
+
"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."
|
|
1774
|
+
},
|
|
1775
|
+
{
|
|
1776
|
+
"pathPattern": "/me/mailFolders/{mailFolder-id}/messages/delta()",
|
|
1777
|
+
"method": "get",
|
|
1778
|
+
"toolName": "list-mail-folder-messages-delta",
|
|
1779
|
+
"scopes": ["Mail.Read"],
|
|
1780
|
+
"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."
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1784
|
+
"method": "get",
|
|
1785
|
+
"toolName": "list-outlook-categories",
|
|
1786
|
+
"scopes": ["MailboxSettings.Read"],
|
|
1787
|
+
"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'] }."
|
|
1788
|
+
},
|
|
1789
|
+
{
|
|
1790
|
+
"pathPattern": "/me/outlook/masterCategories",
|
|
1791
|
+
"method": "post",
|
|
1792
|
+
"toolName": "create-outlook-category",
|
|
1793
|
+
"scopes": ["MailboxSettings.ReadWrite"],
|
|
1794
|
+
"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."
|
|
1760
1795
|
}
|
|
1761
1796
|
]
|