@softeria/ms-365-mcp-server 0.49.0 → 0.51.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 +42 -0
- package/dist/generated/client.js +103 -0
- package/logs/mcp-server.log +10 -10
- package/package.json +1 -1
- package/src/endpoints.json +42 -0
package/dist/endpoints.json
CHANGED
|
@@ -236,6 +236,27 @@
|
|
|
236
236
|
"scopes": ["Calendars.ReadWrite"],
|
|
237
237
|
"llmTip": "Deleting a seriesMaster deletes ALL occurrences of the recurring event. To cancel a single occurrence, delete that specific instance ID from list-calendar-event-instances."
|
|
238
238
|
},
|
|
239
|
+
{
|
|
240
|
+
"pathPattern": "/me/events/{event-id}/accept",
|
|
241
|
+
"method": "post",
|
|
242
|
+
"toolName": "accept-calendar-event",
|
|
243
|
+
"scopes": ["Calendars.ReadWrite"],
|
|
244
|
+
"llmTip": "Accepts a meeting invitation. Optional body: { sendResponse: true, comment: 'I will attend.' }. Set sendResponse to false to accept silently without notifying the organizer."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"pathPattern": "/me/events/{event-id}/decline",
|
|
248
|
+
"method": "post",
|
|
249
|
+
"toolName": "decline-calendar-event",
|
|
250
|
+
"scopes": ["Calendars.ReadWrite"],
|
|
251
|
+
"llmTip": "Declines a meeting invitation. Optional body: { sendResponse: true, comment: 'Cannot attend, conflict.' }. The event remains in the calendar as declined unless the user deletes it."
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"pathPattern": "/me/events/{event-id}/tentativelyAccept",
|
|
255
|
+
"method": "post",
|
|
256
|
+
"toolName": "tentatively-accept-calendar-event",
|
|
257
|
+
"scopes": ["Calendars.ReadWrite"],
|
|
258
|
+
"llmTip": "Tentatively accepts a meeting invitation. Optional body: { sendResponse: true, comment: 'I might be able to attend.' }. Use proposedNewTime to suggest an alternative: { proposedNewTime: { start: { dateTime, timeZone }, end: { dateTime, timeZone } } }."
|
|
259
|
+
},
|
|
239
260
|
{
|
|
240
261
|
"pathPattern": "/me/calendars/{calendar-id}/events",
|
|
241
262
|
"method": "get",
|
|
@@ -754,6 +775,27 @@
|
|
|
754
775
|
"workScopes": ["Sites.Read.All"],
|
|
755
776
|
"llmTip": "Add $expand=fields to include actual column values. Without it, only metadata is returned."
|
|
756
777
|
},
|
|
778
|
+
{
|
|
779
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/items",
|
|
780
|
+
"method": "post",
|
|
781
|
+
"toolName": "create-sharepoint-list-item",
|
|
782
|
+
"workScopes": ["Sites.ReadWrite.All"],
|
|
783
|
+
"llmTip": "Creates a new item in a SharePoint list. Body: { fields: { Title: 'Item name', ColumnName: 'value', ... } }. Use list-sharepoint-site-lists to find the list ID and get-sharepoint-site-list to discover available columns."
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/items/{listItem-id}",
|
|
787
|
+
"method": "patch",
|
|
788
|
+
"toolName": "update-sharepoint-list-item",
|
|
789
|
+
"workScopes": ["Sites.ReadWrite.All"],
|
|
790
|
+
"llmTip": "Updates fields on an existing list item. Body: { fields: { ColumnName: 'new value' } }. Send only the fields you want to change. Use $expand=fields on get-sharepoint-site-list-item to see current values first."
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/items/{listItem-id}",
|
|
794
|
+
"method": "delete",
|
|
795
|
+
"toolName": "delete-sharepoint-list-item",
|
|
796
|
+
"workScopes": ["Sites.ReadWrite.All"],
|
|
797
|
+
"llmTip": "Deletes a list item permanently. This cannot be undone — the item is moved to the site recycle bin."
|
|
798
|
+
},
|
|
757
799
|
{
|
|
758
800
|
"pathPattern": "/sites/{site-id}/getByPath(path='{path}')",
|
|
759
801
|
"method": "get",
|
package/dist/generated/client.js
CHANGED
|
@@ -2103,6 +2103,12 @@ const microsoft_graph_driveCollectionResponse = z.object({
|
|
|
2103
2103
|
"@odata.nextLink": z.string().nullable(),
|
|
2104
2104
|
value: z.array(microsoft_graph_drive)
|
|
2105
2105
|
}).partial().passthrough();
|
|
2106
|
+
const accept_calendar_event_Body = z.object({ SendResponse: z.boolean().nullable().default(false), Comment: z.string().nullable() }).partial().passthrough();
|
|
2107
|
+
const decline_calendar_event_Body = z.object({
|
|
2108
|
+
ProposedNewTime: z.union([microsoft_graph_timeSlot, z.object({}).partial().passthrough()]),
|
|
2109
|
+
SendResponse: z.boolean().nullable().default(false),
|
|
2110
|
+
Comment: z.string().nullable()
|
|
2111
|
+
}).partial().passthrough();
|
|
2106
2112
|
const microsoft_graph_giphyRatingType = z.enum(["strict", "moderate", "unknownFutureValue"]);
|
|
2107
2113
|
const microsoft_graph_teamFunSettings = z.object({
|
|
2108
2114
|
allowCustomMemes: z.boolean().describe("If set to true, enables users to include custom memes.").nullish(),
|
|
@@ -3834,6 +3840,8 @@ const schemas = {
|
|
|
3834
3840
|
microsoft_graph_list,
|
|
3835
3841
|
microsoft_graph_drive,
|
|
3836
3842
|
microsoft_graph_driveCollectionResponse,
|
|
3843
|
+
accept_calendar_event_Body,
|
|
3844
|
+
decline_calendar_event_Body,
|
|
3837
3845
|
microsoft_graph_giphyRatingType,
|
|
3838
3846
|
microsoft_graph_teamFunSettings,
|
|
3839
3847
|
microsoft_graph_teamGuestSettings,
|
|
@@ -5575,6 +5583,54 @@ open extensions or extended properties, and how to specify extended properties.`
|
|
|
5575
5583
|
],
|
|
5576
5584
|
response: z.void()
|
|
5577
5585
|
},
|
|
5586
|
+
{
|
|
5587
|
+
method: "post",
|
|
5588
|
+
path: "/me/events/:eventId/accept",
|
|
5589
|
+
alias: "accept-calendar-event",
|
|
5590
|
+
description: `Accept the specified event in a user calendar.`,
|
|
5591
|
+
requestFormat: "json",
|
|
5592
|
+
parameters: [
|
|
5593
|
+
{
|
|
5594
|
+
name: "body",
|
|
5595
|
+
description: `Action parameters`,
|
|
5596
|
+
type: "Body",
|
|
5597
|
+
schema: accept_calendar_event_Body
|
|
5598
|
+
}
|
|
5599
|
+
],
|
|
5600
|
+
response: z.void()
|
|
5601
|
+
},
|
|
5602
|
+
{
|
|
5603
|
+
method: "post",
|
|
5604
|
+
path: "/me/events/:eventId/decline",
|
|
5605
|
+
alias: "decline-calendar-event",
|
|
5606
|
+
description: `Decline invitation to the specified event in a user calendar. If the event allows proposals for new times, on declining the event, an invitee can choose to suggest an alternative time by including the proposedNewTime parameter. For more information on how to propose a time, and how to receive and accept a new time proposal, see Propose new meeting times.`,
|
|
5607
|
+
requestFormat: "json",
|
|
5608
|
+
parameters: [
|
|
5609
|
+
{
|
|
5610
|
+
name: "body",
|
|
5611
|
+
description: `Action parameters`,
|
|
5612
|
+
type: "Body",
|
|
5613
|
+
schema: decline_calendar_event_Body
|
|
5614
|
+
}
|
|
5615
|
+
],
|
|
5616
|
+
response: z.void()
|
|
5617
|
+
},
|
|
5618
|
+
{
|
|
5619
|
+
method: "post",
|
|
5620
|
+
path: "/me/events/:eventId/tentativelyAccept",
|
|
5621
|
+
alias: "tentatively-accept-calendar-event",
|
|
5622
|
+
description: `Tentatively accept the specified event in a user calendar. If the event allows proposals for new times, on responding tentative to the event, an invitee can choose to suggest an alternative time by including the proposedNewTime parameter. For more information on how to propose a time, and how to receive and accept a new time proposal, see Propose new meeting times.`,
|
|
5623
|
+
requestFormat: "json",
|
|
5624
|
+
parameters: [
|
|
5625
|
+
{
|
|
5626
|
+
name: "body",
|
|
5627
|
+
description: `Action parameters`,
|
|
5628
|
+
type: "Body",
|
|
5629
|
+
schema: decline_calendar_event_Body
|
|
5630
|
+
}
|
|
5631
|
+
],
|
|
5632
|
+
response: z.void()
|
|
5633
|
+
},
|
|
5578
5634
|
{
|
|
5579
5635
|
method: "post",
|
|
5580
5636
|
path: "/me/findMeetingTimes",
|
|
@@ -7710,6 +7766,22 @@ To list them, include system in your $select statement.`,
|
|
|
7710
7766
|
],
|
|
7711
7767
|
response: z.void()
|
|
7712
7768
|
},
|
|
7769
|
+
{
|
|
7770
|
+
method: "post",
|
|
7771
|
+
path: "/sites/:siteId/lists/:listId/items",
|
|
7772
|
+
alias: "create-sharepoint-list-item",
|
|
7773
|
+
description: `Create a new listItem in a list.`,
|
|
7774
|
+
requestFormat: "json",
|
|
7775
|
+
parameters: [
|
|
7776
|
+
{
|
|
7777
|
+
name: "body",
|
|
7778
|
+
description: `New navigation property`,
|
|
7779
|
+
type: "Body",
|
|
7780
|
+
schema: microsoft_graph_listItem
|
|
7781
|
+
}
|
|
7782
|
+
],
|
|
7783
|
+
response: z.void()
|
|
7784
|
+
},
|
|
7713
7785
|
{
|
|
7714
7786
|
method: "get",
|
|
7715
7787
|
path: "/sites/:siteId/lists/:listId/items/:listItemId",
|
|
@@ -7730,6 +7802,37 @@ To list them, include system in your $select statement.`,
|
|
|
7730
7802
|
],
|
|
7731
7803
|
response: z.void()
|
|
7732
7804
|
},
|
|
7805
|
+
{
|
|
7806
|
+
method: "patch",
|
|
7807
|
+
path: "/sites/:siteId/lists/:listId/items/:listItemId",
|
|
7808
|
+
alias: "update-sharepoint-list-item",
|
|
7809
|
+
description: `Update the navigation property items in sites`,
|
|
7810
|
+
requestFormat: "json",
|
|
7811
|
+
parameters: [
|
|
7812
|
+
{
|
|
7813
|
+
name: "body",
|
|
7814
|
+
description: `New navigation property values`,
|
|
7815
|
+
type: "Body",
|
|
7816
|
+
schema: microsoft_graph_listItem
|
|
7817
|
+
}
|
|
7818
|
+
],
|
|
7819
|
+
response: z.void()
|
|
7820
|
+
},
|
|
7821
|
+
{
|
|
7822
|
+
method: "delete",
|
|
7823
|
+
path: "/sites/:siteId/lists/:listId/items/:listItemId",
|
|
7824
|
+
alias: "delete-sharepoint-list-item",
|
|
7825
|
+
description: `Removes an item from a list.`,
|
|
7826
|
+
requestFormat: "json",
|
|
7827
|
+
parameters: [
|
|
7828
|
+
{
|
|
7829
|
+
name: "If-Match",
|
|
7830
|
+
type: "Header",
|
|
7831
|
+
schema: z.string().describe("ETag").optional()
|
|
7832
|
+
}
|
|
7833
|
+
],
|
|
7834
|
+
response: z.void()
|
|
7835
|
+
},
|
|
7733
7836
|
{
|
|
7734
7837
|
method: "get",
|
|
7735
7838
|
path: "/sites/delta()",
|
package/logs/mcp-server.log
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
2026-03-31 08:
|
|
2
|
-
2026-03-31 08:
|
|
3
|
-
2026-03-31 08:
|
|
4
|
-
2026-03-31 08:
|
|
5
|
-
2026-03-31 08:
|
|
6
|
-
2026-03-31 08:
|
|
7
|
-
2026-03-31 08:
|
|
8
|
-
2026-03-31 08:
|
|
9
|
-
2026-03-31 08:
|
|
10
|
-
2026-03-31 08:
|
|
1
|
+
2026-03-31 08:32:57 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
|
|
2
|
+
2026-03-31 08:32:57 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
|
|
3
|
+
2026-03-31 08:32:57 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
|
|
4
|
+
2026-03-31 08:32:57 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me/messages
|
|
5
|
+
2026-03-31 08:32:57 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me/calendar
|
|
6
|
+
2026-03-31 08:32:59 INFO: Using environment variables for secrets
|
|
7
|
+
2026-03-31 08:32:59 INFO: Using environment variables for secrets
|
|
8
|
+
2026-03-31 08:32:59 INFO: Using environment variables for secrets
|
|
9
|
+
2026-03-31 08:32:59 INFO: Using environment variables for secrets
|
|
10
|
+
2026-03-31 08:32:59 INFO: Using environment variables for secrets
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softeria/ms-365-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.51.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
|
@@ -236,6 +236,27 @@
|
|
|
236
236
|
"scopes": ["Calendars.ReadWrite"],
|
|
237
237
|
"llmTip": "Deleting a seriesMaster deletes ALL occurrences of the recurring event. To cancel a single occurrence, delete that specific instance ID from list-calendar-event-instances."
|
|
238
238
|
},
|
|
239
|
+
{
|
|
240
|
+
"pathPattern": "/me/events/{event-id}/accept",
|
|
241
|
+
"method": "post",
|
|
242
|
+
"toolName": "accept-calendar-event",
|
|
243
|
+
"scopes": ["Calendars.ReadWrite"],
|
|
244
|
+
"llmTip": "Accepts a meeting invitation. Optional body: { sendResponse: true, comment: 'I will attend.' }. Set sendResponse to false to accept silently without notifying the organizer."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"pathPattern": "/me/events/{event-id}/decline",
|
|
248
|
+
"method": "post",
|
|
249
|
+
"toolName": "decline-calendar-event",
|
|
250
|
+
"scopes": ["Calendars.ReadWrite"],
|
|
251
|
+
"llmTip": "Declines a meeting invitation. Optional body: { sendResponse: true, comment: 'Cannot attend, conflict.' }. The event remains in the calendar as declined unless the user deletes it."
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"pathPattern": "/me/events/{event-id}/tentativelyAccept",
|
|
255
|
+
"method": "post",
|
|
256
|
+
"toolName": "tentatively-accept-calendar-event",
|
|
257
|
+
"scopes": ["Calendars.ReadWrite"],
|
|
258
|
+
"llmTip": "Tentatively accepts a meeting invitation. Optional body: { sendResponse: true, comment: 'I might be able to attend.' }. Use proposedNewTime to suggest an alternative: { proposedNewTime: { start: { dateTime, timeZone }, end: { dateTime, timeZone } } }."
|
|
259
|
+
},
|
|
239
260
|
{
|
|
240
261
|
"pathPattern": "/me/calendars/{calendar-id}/events",
|
|
241
262
|
"method": "get",
|
|
@@ -754,6 +775,27 @@
|
|
|
754
775
|
"workScopes": ["Sites.Read.All"],
|
|
755
776
|
"llmTip": "Add $expand=fields to include actual column values. Without it, only metadata is returned."
|
|
756
777
|
},
|
|
778
|
+
{
|
|
779
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/items",
|
|
780
|
+
"method": "post",
|
|
781
|
+
"toolName": "create-sharepoint-list-item",
|
|
782
|
+
"workScopes": ["Sites.ReadWrite.All"],
|
|
783
|
+
"llmTip": "Creates a new item in a SharePoint list. Body: { fields: { Title: 'Item name', ColumnName: 'value', ... } }. Use list-sharepoint-site-lists to find the list ID and get-sharepoint-site-list to discover available columns."
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/items/{listItem-id}",
|
|
787
|
+
"method": "patch",
|
|
788
|
+
"toolName": "update-sharepoint-list-item",
|
|
789
|
+
"workScopes": ["Sites.ReadWrite.All"],
|
|
790
|
+
"llmTip": "Updates fields on an existing list item. Body: { fields: { ColumnName: 'new value' } }. Send only the fields you want to change. Use $expand=fields on get-sharepoint-site-list-item to see current values first."
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
"pathPattern": "/sites/{site-id}/lists/{list-id}/items/{listItem-id}",
|
|
794
|
+
"method": "delete",
|
|
795
|
+
"toolName": "delete-sharepoint-list-item",
|
|
796
|
+
"workScopes": ["Sites.ReadWrite.All"],
|
|
797
|
+
"llmTip": "Deletes a list item permanently. This cannot be undone — the item is moved to the site recycle bin."
|
|
798
|
+
},
|
|
757
799
|
{
|
|
758
800
|
"pathPattern": "/sites/{site-id}/getByPath(path='{path}')",
|
|
759
801
|
"method": "get",
|