@softeria/ms-365-mcp-server 0.93.0 → 0.95.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 +70 -0
- package/dist/generated/client.js +320 -2
- package/package.json +1 -1
- package/src/endpoints.json +70 -0
package/dist/endpoints.json
CHANGED
|
@@ -235,6 +235,34 @@
|
|
|
235
235
|
"scopes": ["MailboxSettings.ReadWrite"],
|
|
236
236
|
"llmTip": "Deletes a message rule permanently. Use the Inbox folder ID (get it from list-mail-folders) for inbox rules."
|
|
237
237
|
},
|
|
238
|
+
{
|
|
239
|
+
"pathPattern": "/me/inferenceClassification/overrides",
|
|
240
|
+
"method": "get",
|
|
241
|
+
"toolName": "list-focused-inbox-overrides",
|
|
242
|
+
"scopes": ["Mail.Read"],
|
|
243
|
+
"llmTip": "Lists Focused Inbox classification overrides — explicit rules that force messages from a given sender (by SMTP address) into either the Focused or Other tab, regardless of what the Outlook ML classifier would predict. Each override has id, classifyAs ('focused' or 'other'), and senderEmailAddress {name, address}. Returns an empty collection if the user has never set an override."
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"pathPattern": "/me/inferenceClassification/overrides",
|
|
247
|
+
"method": "post",
|
|
248
|
+
"toolName": "create-focused-inbox-override",
|
|
249
|
+
"scopes": ["Mail.ReadWrite"],
|
|
250
|
+
"llmTip": "Creates a Focused Inbox override for a sender. Body: { classifyAs: 'focused', senderEmailAddress: { name: 'Display Name', address: 'sender@example.com' } }. classifyAs must be 'focused' or 'other'. If an override already exists for that SMTP address, POST updates the existing override's name and classifyAs (use this to rename a sender). Resolve the sender's address with list-users or by reading a recent mail header — do not invent SMTP addresses."
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"pathPattern": "/me/inferenceClassification/overrides/{inferenceClassificationOverride-id}",
|
|
254
|
+
"method": "patch",
|
|
255
|
+
"toolName": "update-focused-inbox-override",
|
|
256
|
+
"scopes": ["Mail.ReadWrite"],
|
|
257
|
+
"llmTip": "Updates the classifyAs field of an existing override. Body: { classifyAs: 'focused' } or { classifyAs: 'other' }. Per Graph API, PATCH cannot change senderEmailAddress — to change the SMTP address, delete and recreate the override. To rename the display name only, POST a new override with the same SMTP address (it will overwrite the name)."
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"pathPattern": "/me/inferenceClassification/overrides/{inferenceClassificationOverride-id}",
|
|
261
|
+
"method": "delete",
|
|
262
|
+
"toolName": "delete-focused-inbox-override",
|
|
263
|
+
"scopes": ["Mail.ReadWrite"],
|
|
264
|
+
"llmTip": "Deletes a Focused Inbox override. Future messages from that sender revert to the Outlook ML classifier's default behavior. Use list-focused-inbox-overrides to find the ID first."
|
|
265
|
+
},
|
|
238
266
|
{
|
|
239
267
|
"pathPattern": "/me/events",
|
|
240
268
|
"method": "get",
|
|
@@ -1380,6 +1408,48 @@
|
|
|
1380
1408
|
"workScopes": ["Sites.ReadWrite.All"],
|
|
1381
1409
|
"llmTip": "Deletes a list item permanently. This cannot be undone — the item is moved to the site recycle bin."
|
|
1382
1410
|
},
|
|
1411
|
+
{
|
|
1412
|
+
"pathPattern": "/sites/{site-id}/lists",
|
|
1413
|
+
"method": "post",
|
|
1414
|
+
"toolName": "create-sharepoint-list",
|
|
1415
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1416
|
+
"llmTip": "Creates a new SharePoint list in a site. Body: { displayName: 'My List', description: 'Optional', list: { template: 'genericList' }, columns: [ { name: 'Status', text: {} }, { name: 'Due', dateTime: {} } ] }. Templates include genericList, documentLibrary, tasks, calendar, contacts, links, announcements, survey. Columns can be defined inline at creation; otherwise add them later via create-sharepoint-list-column. Use search-sharepoint-sites or get-sharepoint-site-by-path to find the site ID first."
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns",
|
|
1420
|
+
"method": "get",
|
|
1421
|
+
"toolName": "list-sharepoint-list-columns",
|
|
1422
|
+
"workScopes": ["Sites.Read.All"],
|
|
1423
|
+
"llmTip": "Lists column definitions for a SharePoint list. Returns each column's id, name, displayName, description, type indicator (text, number, choice, dateTime, person, lookup, boolean, calculated, hyperlinkOrPicture, etc.), required, indexed, hidden, readOnly. Use this to discover the schema before creating or updating list items."
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns",
|
|
1427
|
+
"method": "post",
|
|
1428
|
+
"toolName": "create-sharepoint-list-column",
|
|
1429
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1430
|
+
"llmTip": "Creates a new column on a SharePoint list. Body must include name and exactly one column type property: { name: 'Priority', text: {} } or { name: 'DueDate', dateTime: { format: 'dateOnly' } } or { name: 'Status', choice: { choices: ['Open','In Progress','Done'] } }. Other types: number, boolean, currency, hyperlinkOrPicture, personOrGroup, lookup, calculated. Optional: displayName, description, required, indexed, enforceUniqueValues."
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns/{columnDefinition-id}",
|
|
1434
|
+
"method": "get",
|
|
1435
|
+
"toolName": "get-sharepoint-list-column",
|
|
1436
|
+
"workScopes": ["Sites.Read.All"],
|
|
1437
|
+
"llmTip": "Gets a specific column definition by ID, including its full type configuration (choices for choice columns, format for dateTime, etc.). Use list-sharepoint-list-columns first to find the column ID."
|
|
1438
|
+
},
|
|
1439
|
+
{
|
|
1440
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns/{columnDefinition-id}",
|
|
1441
|
+
"method": "patch",
|
|
1442
|
+
"toolName": "update-sharepoint-list-column",
|
|
1443
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1444
|
+
"llmTip": "Updates a column definition. Body: { displayName: 'New name', description: 'New description', required: true, ... }. The column type itself (text, choice, etc.) cannot be changed — only its metadata and per-type options (e.g. choices array for a choice column). Send only the fields you want to change."
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns/{columnDefinition-id}",
|
|
1448
|
+
"method": "delete",
|
|
1449
|
+
"toolName": "delete-sharepoint-list-column",
|
|
1450
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1451
|
+
"llmTip": "Deletes a column from a SharePoint list. This is irreversible — all data stored in this column across every list item is lost. Confirm with the user before calling. Cannot delete built-in columns (Title, Created, Modified, etc.)."
|
|
1452
|
+
},
|
|
1383
1453
|
{
|
|
1384
1454
|
"pathPattern": "/sites/{site-id}/getByPath(path='{path}')",
|
|
1385
1455
|
"method": "get",
|
package/dist/generated/client.js
CHANGED
|
@@ -2585,6 +2585,17 @@ const decline_calendar_event_Body = z.object({
|
|
|
2585
2585
|
}).partial().passthrough();
|
|
2586
2586
|
const forward_calendar_event_Body = z.object({ ToRecipients: z.array(microsoft_graph_recipient), Comment: z.string().nullable() }).partial().passthrough();
|
|
2587
2587
|
const snooze_calendar_event_reminder_Body = z.object({ NewReminderTime: microsoft_graph_dateTimeTimeZone }).partial().passthrough();
|
|
2588
|
+
const microsoft_graph_inferenceClassificationType = z.enum(["focused", "other"]);
|
|
2589
|
+
const microsoft_graph_inferenceClassificationOverride = z.object({
|
|
2590
|
+
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
2591
|
+
classifyAs: microsoft_graph_inferenceClassificationType.optional(),
|
|
2592
|
+
senderEmailAddress: microsoft_graph_emailAddress.optional()
|
|
2593
|
+
}).passthrough();
|
|
2594
|
+
const microsoft_graph_inferenceClassificationOverrideCollectionResponse = z.object({
|
|
2595
|
+
"@odata.count": z.number().int().nullable(),
|
|
2596
|
+
"@odata.nextLink": z.string().nullable(),
|
|
2597
|
+
value: z.array(microsoft_graph_inferenceClassificationOverride)
|
|
2598
|
+
}).partial().passthrough();
|
|
2588
2599
|
const microsoft_graph_resourceReference = z.object({
|
|
2589
2600
|
id: z.string().describe("The item's unique identifier.").nullish(),
|
|
2590
2601
|
type: z.string().describe(
|
|
@@ -2996,7 +3007,6 @@ const microsoft_graph_followupFlag = z.object({
|
|
|
2996
3007
|
flagStatus: microsoft_graph_followupFlagStatus.optional(),
|
|
2997
3008
|
startDateTime: microsoft_graph_dateTimeTimeZone.optional()
|
|
2998
3009
|
}).passthrough();
|
|
2999
|
-
const microsoft_graph_inferenceClassificationType = z.enum(["focused", "other"]);
|
|
3000
3010
|
const microsoft_graph_internetMessageHeader = z.object({
|
|
3001
3011
|
name: z.string().describe("Represents the key in a key-value pair.").nullish(),
|
|
3002
3012
|
value: z.string().describe("The value in a key-value pair.").nullish()
|
|
@@ -4279,6 +4289,11 @@ const microsoft_graph_listCollectionResponse = z.object({
|
|
|
4279
4289
|
"@odata.nextLink": z.string().nullable(),
|
|
4280
4290
|
value: z.array(microsoft_graph_list)
|
|
4281
4291
|
}).partial().passthrough();
|
|
4292
|
+
const microsoft_graph_columnDefinitionCollectionResponse = z.object({
|
|
4293
|
+
"@odata.count": z.number().int().nullable(),
|
|
4294
|
+
"@odata.nextLink": z.string().nullable(),
|
|
4295
|
+
value: z.array(microsoft_graph_columnDefinition)
|
|
4296
|
+
}).partial().passthrough();
|
|
4282
4297
|
const microsoft_graph_listItemCollectionResponse = z.object({
|
|
4283
4298
|
"@odata.count": z.number().int().nullable(),
|
|
4284
4299
|
"@odata.nextLink": z.string().nullable(),
|
|
@@ -4749,6 +4764,9 @@ const schemas = {
|
|
|
4749
4764
|
decline_calendar_event_Body,
|
|
4750
4765
|
forward_calendar_event_Body,
|
|
4751
4766
|
snooze_calendar_event_reminder_Body,
|
|
4767
|
+
microsoft_graph_inferenceClassificationType,
|
|
4768
|
+
microsoft_graph_inferenceClassificationOverride,
|
|
4769
|
+
microsoft_graph_inferenceClassificationOverrideCollectionResponse,
|
|
4752
4770
|
microsoft_graph_resourceReference,
|
|
4753
4771
|
microsoft_graph_resourceVisualization,
|
|
4754
4772
|
microsoft_graph_entity,
|
|
@@ -4786,7 +4804,6 @@ const schemas = {
|
|
|
4786
4804
|
microsoft_graph_messageRule,
|
|
4787
4805
|
microsoft_graph_followupFlagStatus,
|
|
4788
4806
|
microsoft_graph_followupFlag,
|
|
4789
|
-
microsoft_graph_inferenceClassificationType,
|
|
4790
4807
|
microsoft_graph_internetMessageHeader,
|
|
4791
4808
|
microsoft_graph_message,
|
|
4792
4809
|
microsoft_graph_mailFolder,
|
|
@@ -4921,6 +4938,7 @@ const schemas = {
|
|
|
4921
4938
|
microsoft_graph_siteCollectionResponse,
|
|
4922
4939
|
microsoft_graph_baseItemCollectionResponse,
|
|
4923
4940
|
microsoft_graph_listCollectionResponse,
|
|
4941
|
+
microsoft_graph_columnDefinitionCollectionResponse,
|
|
4924
4942
|
microsoft_graph_listItemCollectionResponse,
|
|
4925
4943
|
microsoft_graph_endpointType,
|
|
4926
4944
|
microsoft_graph_communicationsIdentitySet,
|
|
@@ -8453,6 +8471,105 @@ Based on this value, you can better adjust the parameters and call findMeetingTi
|
|
|
8453
8471
|
],
|
|
8454
8472
|
response: z.void()
|
|
8455
8473
|
},
|
|
8474
|
+
{
|
|
8475
|
+
method: "get",
|
|
8476
|
+
path: "/me/inferenceClassification/overrides",
|
|
8477
|
+
alias: "list-focused-inbox-overrides",
|
|
8478
|
+
description: `Get the overrides that a user has set up to always classify messages from certain senders in specific ways. Each override corresponds to an SMTP address of a sender. Initially, a user does not have any overrides.`,
|
|
8479
|
+
requestFormat: "json",
|
|
8480
|
+
parameters: [
|
|
8481
|
+
{
|
|
8482
|
+
name: "$top",
|
|
8483
|
+
type: "Query",
|
|
8484
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
8485
|
+
},
|
|
8486
|
+
{
|
|
8487
|
+
name: "$skip",
|
|
8488
|
+
type: "Query",
|
|
8489
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
8490
|
+
},
|
|
8491
|
+
{
|
|
8492
|
+
name: "$search",
|
|
8493
|
+
type: "Query",
|
|
8494
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
8495
|
+
},
|
|
8496
|
+
{
|
|
8497
|
+
name: "$filter",
|
|
8498
|
+
type: "Query",
|
|
8499
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
8500
|
+
},
|
|
8501
|
+
{
|
|
8502
|
+
name: "$count",
|
|
8503
|
+
type: "Query",
|
|
8504
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
8505
|
+
},
|
|
8506
|
+
{
|
|
8507
|
+
name: "$orderby",
|
|
8508
|
+
type: "Query",
|
|
8509
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
8510
|
+
},
|
|
8511
|
+
{
|
|
8512
|
+
name: "$select",
|
|
8513
|
+
type: "Query",
|
|
8514
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
8515
|
+
},
|
|
8516
|
+
{
|
|
8517
|
+
name: "$expand",
|
|
8518
|
+
type: "Query",
|
|
8519
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
8520
|
+
}
|
|
8521
|
+
],
|
|
8522
|
+
response: z.void()
|
|
8523
|
+
},
|
|
8524
|
+
{
|
|
8525
|
+
method: "post",
|
|
8526
|
+
path: "/me/inferenceClassification/overrides",
|
|
8527
|
+
alias: "create-focused-inbox-override",
|
|
8528
|
+
description: `Create an override for a sender identified by an SMTP address. Future messages from that SMTP address will be consistently classified
|
|
8529
|
+
as specified in the override. Note`,
|
|
8530
|
+
requestFormat: "json",
|
|
8531
|
+
parameters: [
|
|
8532
|
+
{
|
|
8533
|
+
name: "body",
|
|
8534
|
+
description: `New navigation property`,
|
|
8535
|
+
type: "Body",
|
|
8536
|
+
schema: microsoft_graph_inferenceClassificationOverride
|
|
8537
|
+
}
|
|
8538
|
+
],
|
|
8539
|
+
response: z.void()
|
|
8540
|
+
},
|
|
8541
|
+
{
|
|
8542
|
+
method: "patch",
|
|
8543
|
+
path: "/me/inferenceClassification/overrides/:inferenceClassificationOverrideId",
|
|
8544
|
+
alias: "update-focused-inbox-override",
|
|
8545
|
+
description: `Change the classifyAs field of an override as specified. You cannot use PATCH to change any other fields in an inferenceClassificationOverride instance. If an override exists for a sender and the sender changes his/her display name, you can use POST to force an update to the name field in the existing override. If an override exists for a sender and the sender changes his/her SMTP address, deleting the existing override and creating a new one with
|
|
8546
|
+
the new SMTP address is the only way to 'update' the override for this sender.`,
|
|
8547
|
+
requestFormat: "json",
|
|
8548
|
+
parameters: [
|
|
8549
|
+
{
|
|
8550
|
+
name: "body",
|
|
8551
|
+
description: `New navigation property values`,
|
|
8552
|
+
type: "Body",
|
|
8553
|
+
schema: microsoft_graph_inferenceClassificationOverride
|
|
8554
|
+
}
|
|
8555
|
+
],
|
|
8556
|
+
response: z.void()
|
|
8557
|
+
},
|
|
8558
|
+
{
|
|
8559
|
+
method: "delete",
|
|
8560
|
+
path: "/me/inferenceClassification/overrides/:inferenceClassificationOverrideId",
|
|
8561
|
+
alias: "delete-focused-inbox-override",
|
|
8562
|
+
description: `Delete an override specified by its ID.`,
|
|
8563
|
+
requestFormat: "json",
|
|
8564
|
+
parameters: [
|
|
8565
|
+
{
|
|
8566
|
+
name: "If-Match",
|
|
8567
|
+
type: "Header",
|
|
8568
|
+
schema: z.string().describe("ETag").optional()
|
|
8569
|
+
}
|
|
8570
|
+
],
|
|
8571
|
+
response: z.void()
|
|
8572
|
+
},
|
|
8456
8573
|
{
|
|
8457
8574
|
method: "get",
|
|
8458
8575
|
path: "/me/insights/trending",
|
|
@@ -11585,6 +11702,22 @@ To list them, include system in your $select statement.`,
|
|
|
11585
11702
|
],
|
|
11586
11703
|
response: z.void()
|
|
11587
11704
|
},
|
|
11705
|
+
{
|
|
11706
|
+
method: "post",
|
|
11707
|
+
path: "/sites/:siteId/lists",
|
|
11708
|
+
alias: "create-sharepoint-list",
|
|
11709
|
+
description: `Create a new list in a site.`,
|
|
11710
|
+
requestFormat: "json",
|
|
11711
|
+
parameters: [
|
|
11712
|
+
{
|
|
11713
|
+
name: "body",
|
|
11714
|
+
description: `New navigation property`,
|
|
11715
|
+
type: "Body",
|
|
11716
|
+
schema: microsoft_graph_list
|
|
11717
|
+
}
|
|
11718
|
+
],
|
|
11719
|
+
response: z.void()
|
|
11720
|
+
},
|
|
11588
11721
|
{
|
|
11589
11722
|
method: "get",
|
|
11590
11723
|
path: "/sites/:siteId/lists/:listId",
|
|
@@ -11605,6 +11738,191 @@ To list them, include system in your $select statement.`,
|
|
|
11605
11738
|
],
|
|
11606
11739
|
response: z.void()
|
|
11607
11740
|
},
|
|
11741
|
+
{
|
|
11742
|
+
method: "get",
|
|
11743
|
+
path: "/sites/:siteId/lists/:listId/columns",
|
|
11744
|
+
alias: "list-sharepoint-list-columns",
|
|
11745
|
+
description: `Get the collection of columns represented as columnDefinition resources in a list.`,
|
|
11746
|
+
requestFormat: "json",
|
|
11747
|
+
parameters: [
|
|
11748
|
+
{
|
|
11749
|
+
name: "$top",
|
|
11750
|
+
type: "Query",
|
|
11751
|
+
schema: z.number().int().gte(0).describe("Show only the first n items").optional()
|
|
11752
|
+
},
|
|
11753
|
+
{
|
|
11754
|
+
name: "$skip",
|
|
11755
|
+
type: "Query",
|
|
11756
|
+
schema: z.number().int().gte(0).describe("Skip the first n items").optional()
|
|
11757
|
+
},
|
|
11758
|
+
{
|
|
11759
|
+
name: "$search",
|
|
11760
|
+
type: "Query",
|
|
11761
|
+
schema: z.string().describe("Search items by search phrases").optional()
|
|
11762
|
+
},
|
|
11763
|
+
{
|
|
11764
|
+
name: "$filter",
|
|
11765
|
+
type: "Query",
|
|
11766
|
+
schema: z.string().describe("Filter items by property values").optional()
|
|
11767
|
+
},
|
|
11768
|
+
{
|
|
11769
|
+
name: "$count",
|
|
11770
|
+
type: "Query",
|
|
11771
|
+
schema: z.boolean().describe("Include count of items").optional()
|
|
11772
|
+
},
|
|
11773
|
+
{
|
|
11774
|
+
name: "$orderby",
|
|
11775
|
+
type: "Query",
|
|
11776
|
+
schema: z.array(z.string()).describe("Order items by property values").optional()
|
|
11777
|
+
},
|
|
11778
|
+
{
|
|
11779
|
+
name: "$select",
|
|
11780
|
+
type: "Query",
|
|
11781
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
11782
|
+
},
|
|
11783
|
+
{
|
|
11784
|
+
name: "$expand",
|
|
11785
|
+
type: "Query",
|
|
11786
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
11787
|
+
}
|
|
11788
|
+
],
|
|
11789
|
+
response: z.void()
|
|
11790
|
+
},
|
|
11791
|
+
{
|
|
11792
|
+
method: "post",
|
|
11793
|
+
path: "/sites/:siteId/lists/:listId/columns",
|
|
11794
|
+
alias: "create-sharepoint-list-column",
|
|
11795
|
+
description: `Create a column for a list with a request that specifies a columnDefinition.`,
|
|
11796
|
+
requestFormat: "json",
|
|
11797
|
+
parameters: [
|
|
11798
|
+
{
|
|
11799
|
+
name: "body",
|
|
11800
|
+
description: `New navigation property`,
|
|
11801
|
+
type: "Body",
|
|
11802
|
+
schema: z.object({
|
|
11803
|
+
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
11804
|
+
name: z.string().describe(
|
|
11805
|
+
"The API-facing name of the column as it appears in the fields on a listItem. For the user-facing name, see displayName."
|
|
11806
|
+
).nullish(),
|
|
11807
|
+
displayName: z.string().describe("The user-facing name of the column.").nullish(),
|
|
11808
|
+
description: z.string().describe("The user-facing description of the column.").nullish(),
|
|
11809
|
+
type: microsoft_graph_columnTypes.optional(),
|
|
11810
|
+
boolean: microsoft_graph_booleanColumn.optional(),
|
|
11811
|
+
calculated: microsoft_graph_calculatedColumn.optional(),
|
|
11812
|
+
choice: microsoft_graph_choiceColumn.optional(),
|
|
11813
|
+
columnGroup: z.string().describe(
|
|
11814
|
+
"For site columns, the name of the group this column belongs to. Helps organize related columns."
|
|
11815
|
+
).nullish(),
|
|
11816
|
+
contentApprovalStatus: microsoft_graph_contentApprovalStatusColumn.optional(),
|
|
11817
|
+
currency: microsoft_graph_currencyColumn.optional(),
|
|
11818
|
+
dateTime: microsoft_graph_dateTimeColumn.optional(),
|
|
11819
|
+
defaultValue: microsoft_graph_defaultColumnValue.optional(),
|
|
11820
|
+
enforceUniqueValues: z.boolean().describe("If true, no two list items may have the same value for this column.").nullish(),
|
|
11821
|
+
geolocation: microsoft_graph_geolocationColumn.optional(),
|
|
11822
|
+
hidden: z.boolean().describe("Specifies whether the column is displayed in the user interface.").nullish(),
|
|
11823
|
+
hyperlinkOrPicture: microsoft_graph_hyperlinkOrPictureColumn.optional(),
|
|
11824
|
+
indexed: z.boolean().describe(
|
|
11825
|
+
"Specifies whether the column values can be used for sorting and searching."
|
|
11826
|
+
).nullish(),
|
|
11827
|
+
isDeletable: z.boolean().describe("Indicates whether this column can be deleted.").nullish(),
|
|
11828
|
+
isReorderable: z.boolean().describe("Indicates whether values in the column can be reordered. Read-only.").nullish(),
|
|
11829
|
+
isSealed: z.boolean().describe("Specifies whether the column can be changed.").nullish(),
|
|
11830
|
+
lookup: microsoft_graph_lookupColumn.optional(),
|
|
11831
|
+
number: microsoft_graph_numberColumn.optional(),
|
|
11832
|
+
personOrGroup: microsoft_graph_personOrGroupColumn.optional(),
|
|
11833
|
+
propagateChanges: z.boolean().describe(
|
|
11834
|
+
"If 'true', changes to this column will be propagated to lists that implement the column."
|
|
11835
|
+
).nullish()
|
|
11836
|
+
}).passthrough().passthrough()
|
|
11837
|
+
}
|
|
11838
|
+
],
|
|
11839
|
+
response: z.void()
|
|
11840
|
+
},
|
|
11841
|
+
{
|
|
11842
|
+
method: "get",
|
|
11843
|
+
path: "/sites/:siteId/lists/:listId/columns/:columnDefinitionId",
|
|
11844
|
+
alias: "get-sharepoint-list-column",
|
|
11845
|
+
description: `The collection of field definitions for this list.`,
|
|
11846
|
+
requestFormat: "json",
|
|
11847
|
+
parameters: [
|
|
11848
|
+
{
|
|
11849
|
+
name: "$select",
|
|
11850
|
+
type: "Query",
|
|
11851
|
+
schema: z.array(z.string()).describe("Select properties to be returned").optional()
|
|
11852
|
+
},
|
|
11853
|
+
{
|
|
11854
|
+
name: "$expand",
|
|
11855
|
+
type: "Query",
|
|
11856
|
+
schema: z.array(z.string()).describe("Expand related entities").optional()
|
|
11857
|
+
}
|
|
11858
|
+
],
|
|
11859
|
+
response: z.void()
|
|
11860
|
+
},
|
|
11861
|
+
{
|
|
11862
|
+
method: "patch",
|
|
11863
|
+
path: "/sites/:siteId/lists/:listId/columns/:columnDefinitionId",
|
|
11864
|
+
alias: "update-sharepoint-list-column",
|
|
11865
|
+
description: `Update the navigation property columns in sites`,
|
|
11866
|
+
requestFormat: "json",
|
|
11867
|
+
parameters: [
|
|
11868
|
+
{
|
|
11869
|
+
name: "body",
|
|
11870
|
+
description: `New navigation property values`,
|
|
11871
|
+
type: "Body",
|
|
11872
|
+
schema: z.object({
|
|
11873
|
+
id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
|
|
11874
|
+
name: z.string().describe(
|
|
11875
|
+
"The API-facing name of the column as it appears in the fields on a listItem. For the user-facing name, see displayName."
|
|
11876
|
+
).nullish(),
|
|
11877
|
+
displayName: z.string().describe("The user-facing name of the column.").nullish(),
|
|
11878
|
+
description: z.string().describe("The user-facing description of the column.").nullish(),
|
|
11879
|
+
type: microsoft_graph_columnTypes.optional(),
|
|
11880
|
+
boolean: microsoft_graph_booleanColumn.optional(),
|
|
11881
|
+
calculated: microsoft_graph_calculatedColumn.optional(),
|
|
11882
|
+
choice: microsoft_graph_choiceColumn.optional(),
|
|
11883
|
+
columnGroup: z.string().describe(
|
|
11884
|
+
"For site columns, the name of the group this column belongs to. Helps organize related columns."
|
|
11885
|
+
).nullish(),
|
|
11886
|
+
contentApprovalStatus: microsoft_graph_contentApprovalStatusColumn.optional(),
|
|
11887
|
+
currency: microsoft_graph_currencyColumn.optional(),
|
|
11888
|
+
dateTime: microsoft_graph_dateTimeColumn.optional(),
|
|
11889
|
+
defaultValue: microsoft_graph_defaultColumnValue.optional(),
|
|
11890
|
+
enforceUniqueValues: z.boolean().describe("If true, no two list items may have the same value for this column.").nullish(),
|
|
11891
|
+
geolocation: microsoft_graph_geolocationColumn.optional(),
|
|
11892
|
+
hidden: z.boolean().describe("Specifies whether the column is displayed in the user interface.").nullish(),
|
|
11893
|
+
hyperlinkOrPicture: microsoft_graph_hyperlinkOrPictureColumn.optional(),
|
|
11894
|
+
indexed: z.boolean().describe(
|
|
11895
|
+
"Specifies whether the column values can be used for sorting and searching."
|
|
11896
|
+
).nullish(),
|
|
11897
|
+
isDeletable: z.boolean().describe("Indicates whether this column can be deleted.").nullish(),
|
|
11898
|
+
isReorderable: z.boolean().describe("Indicates whether values in the column can be reordered. Read-only.").nullish(),
|
|
11899
|
+
isSealed: z.boolean().describe("Specifies whether the column can be changed.").nullish(),
|
|
11900
|
+
lookup: microsoft_graph_lookupColumn.optional(),
|
|
11901
|
+
number: microsoft_graph_numberColumn.optional(),
|
|
11902
|
+
personOrGroup: microsoft_graph_personOrGroupColumn.optional(),
|
|
11903
|
+
propagateChanges: z.boolean().describe(
|
|
11904
|
+
"If 'true', changes to this column will be propagated to lists that implement the column."
|
|
11905
|
+
).nullish()
|
|
11906
|
+
}).passthrough().passthrough()
|
|
11907
|
+
}
|
|
11908
|
+
],
|
|
11909
|
+
response: z.void()
|
|
11910
|
+
},
|
|
11911
|
+
{
|
|
11912
|
+
method: "delete",
|
|
11913
|
+
path: "/sites/:siteId/lists/:listId/columns/:columnDefinitionId",
|
|
11914
|
+
alias: "delete-sharepoint-list-column",
|
|
11915
|
+
description: `Delete navigation property columns for sites`,
|
|
11916
|
+
requestFormat: "json",
|
|
11917
|
+
parameters: [
|
|
11918
|
+
{
|
|
11919
|
+
name: "If-Match",
|
|
11920
|
+
type: "Header",
|
|
11921
|
+
schema: z.string().describe("ETag").optional()
|
|
11922
|
+
}
|
|
11923
|
+
],
|
|
11924
|
+
response: z.void()
|
|
11925
|
+
},
|
|
11608
11926
|
{
|
|
11609
11927
|
method: "get",
|
|
11610
11928
|
path: "/sites/:siteId/lists/:listId/items",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softeria/ms-365-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.95.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
|
@@ -235,6 +235,34 @@
|
|
|
235
235
|
"scopes": ["MailboxSettings.ReadWrite"],
|
|
236
236
|
"llmTip": "Deletes a message rule permanently. Use the Inbox folder ID (get it from list-mail-folders) for inbox rules."
|
|
237
237
|
},
|
|
238
|
+
{
|
|
239
|
+
"pathPattern": "/me/inferenceClassification/overrides",
|
|
240
|
+
"method": "get",
|
|
241
|
+
"toolName": "list-focused-inbox-overrides",
|
|
242
|
+
"scopes": ["Mail.Read"],
|
|
243
|
+
"llmTip": "Lists Focused Inbox classification overrides — explicit rules that force messages from a given sender (by SMTP address) into either the Focused or Other tab, regardless of what the Outlook ML classifier would predict. Each override has id, classifyAs ('focused' or 'other'), and senderEmailAddress {name, address}. Returns an empty collection if the user has never set an override."
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"pathPattern": "/me/inferenceClassification/overrides",
|
|
247
|
+
"method": "post",
|
|
248
|
+
"toolName": "create-focused-inbox-override",
|
|
249
|
+
"scopes": ["Mail.ReadWrite"],
|
|
250
|
+
"llmTip": "Creates a Focused Inbox override for a sender. Body: { classifyAs: 'focused', senderEmailAddress: { name: 'Display Name', address: 'sender@example.com' } }. classifyAs must be 'focused' or 'other'. If an override already exists for that SMTP address, POST updates the existing override's name and classifyAs (use this to rename a sender). Resolve the sender's address with list-users or by reading a recent mail header — do not invent SMTP addresses."
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"pathPattern": "/me/inferenceClassification/overrides/{inferenceClassificationOverride-id}",
|
|
254
|
+
"method": "patch",
|
|
255
|
+
"toolName": "update-focused-inbox-override",
|
|
256
|
+
"scopes": ["Mail.ReadWrite"],
|
|
257
|
+
"llmTip": "Updates the classifyAs field of an existing override. Body: { classifyAs: 'focused' } or { classifyAs: 'other' }. Per Graph API, PATCH cannot change senderEmailAddress — to change the SMTP address, delete and recreate the override. To rename the display name only, POST a new override with the same SMTP address (it will overwrite the name)."
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"pathPattern": "/me/inferenceClassification/overrides/{inferenceClassificationOverride-id}",
|
|
261
|
+
"method": "delete",
|
|
262
|
+
"toolName": "delete-focused-inbox-override",
|
|
263
|
+
"scopes": ["Mail.ReadWrite"],
|
|
264
|
+
"llmTip": "Deletes a Focused Inbox override. Future messages from that sender revert to the Outlook ML classifier's default behavior. Use list-focused-inbox-overrides to find the ID first."
|
|
265
|
+
},
|
|
238
266
|
{
|
|
239
267
|
"pathPattern": "/me/events",
|
|
240
268
|
"method": "get",
|
|
@@ -1380,6 +1408,48 @@
|
|
|
1380
1408
|
"workScopes": ["Sites.ReadWrite.All"],
|
|
1381
1409
|
"llmTip": "Deletes a list item permanently. This cannot be undone — the item is moved to the site recycle bin."
|
|
1382
1410
|
},
|
|
1411
|
+
{
|
|
1412
|
+
"pathPattern": "/sites/{site-id}/lists",
|
|
1413
|
+
"method": "post",
|
|
1414
|
+
"toolName": "create-sharepoint-list",
|
|
1415
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1416
|
+
"llmTip": "Creates a new SharePoint list in a site. Body: { displayName: 'My List', description: 'Optional', list: { template: 'genericList' }, columns: [ { name: 'Status', text: {} }, { name: 'Due', dateTime: {} } ] }. Templates include genericList, documentLibrary, tasks, calendar, contacts, links, announcements, survey. Columns can be defined inline at creation; otherwise add them later via create-sharepoint-list-column. Use search-sharepoint-sites or get-sharepoint-site-by-path to find the site ID first."
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns",
|
|
1420
|
+
"method": "get",
|
|
1421
|
+
"toolName": "list-sharepoint-list-columns",
|
|
1422
|
+
"workScopes": ["Sites.Read.All"],
|
|
1423
|
+
"llmTip": "Lists column definitions for a SharePoint list. Returns each column's id, name, displayName, description, type indicator (text, number, choice, dateTime, person, lookup, boolean, calculated, hyperlinkOrPicture, etc.), required, indexed, hidden, readOnly. Use this to discover the schema before creating or updating list items."
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns",
|
|
1427
|
+
"method": "post",
|
|
1428
|
+
"toolName": "create-sharepoint-list-column",
|
|
1429
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1430
|
+
"llmTip": "Creates a new column on a SharePoint list. Body must include name and exactly one column type property: { name: 'Priority', text: {} } or { name: 'DueDate', dateTime: { format: 'dateOnly' } } or { name: 'Status', choice: { choices: ['Open','In Progress','Done'] } }. Other types: number, boolean, currency, hyperlinkOrPicture, personOrGroup, lookup, calculated. Optional: displayName, description, required, indexed, enforceUniqueValues."
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns/{columnDefinition-id}",
|
|
1434
|
+
"method": "get",
|
|
1435
|
+
"toolName": "get-sharepoint-list-column",
|
|
1436
|
+
"workScopes": ["Sites.Read.All"],
|
|
1437
|
+
"llmTip": "Gets a specific column definition by ID, including its full type configuration (choices for choice columns, format for dateTime, etc.). Use list-sharepoint-list-columns first to find the column ID."
|
|
1438
|
+
},
|
|
1439
|
+
{
|
|
1440
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns/{columnDefinition-id}",
|
|
1441
|
+
"method": "patch",
|
|
1442
|
+
"toolName": "update-sharepoint-list-column",
|
|
1443
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1444
|
+
"llmTip": "Updates a column definition. Body: { displayName: 'New name', description: 'New description', required: true, ... }. The column type itself (text, choice, etc.) cannot be changed — only its metadata and per-type options (e.g. choices array for a choice column). Send only the fields you want to change."
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/columns/{columnDefinition-id}",
|
|
1448
|
+
"method": "delete",
|
|
1449
|
+
"toolName": "delete-sharepoint-list-column",
|
|
1450
|
+
"workScopes": ["Sites.Manage.All"],
|
|
1451
|
+
"llmTip": "Deletes a column from a SharePoint list. This is irreversible — all data stored in this column across every list item is lost. Confirm with the user before calling. Cannot delete built-in columns (Title, Created, Modified, etc.)."
|
|
1452
|
+
},
|
|
1383
1453
|
{
|
|
1384
1454
|
"pathPattern": "/sites/{site-id}/getByPath(path='{path}')",
|
|
1385
1455
|
"method": "get",
|