@softeria/ms-365-mcp-server 0.51.0 → 0.53.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.
@@ -328,6 +328,27 @@
328
328
  "toolName": "list-calendars",
329
329
  "scopes": ["Calendars.Read"]
330
330
  },
331
+ {
332
+ "pathPattern": "/me/calendars",
333
+ "method": "post",
334
+ "toolName": "create-calendar",
335
+ "scopes": ["Calendars.ReadWrite"],
336
+ "llmTip": "Creates a new personal calendar. Body: { name: 'My Calendar', color: 'auto' }. Available colors: auto, lightBlue, lightGreen, lightOrange, lightGray, lightYellow, lightTeal, lightPink, lightBrown, lightRed, maxColor."
337
+ },
338
+ {
339
+ "pathPattern": "/me/calendars/{calendar-id}",
340
+ "method": "patch",
341
+ "toolName": "update-calendar",
342
+ "scopes": ["Calendars.ReadWrite"],
343
+ "llmTip": "Updates a calendar's properties. Body: { name: 'New Name', color: 'lightBlue' }. Cannot update the default calendar's name."
344
+ },
345
+ {
346
+ "pathPattern": "/me/calendars/{calendar-id}",
347
+ "method": "delete",
348
+ "toolName": "delete-calendar",
349
+ "scopes": ["Calendars.ReadWrite"],
350
+ "llmTip": "Deletes a calendar and all its events. The default calendar cannot be deleted. This action cannot be undone."
351
+ },
331
352
  {
332
353
  "pathPattern": "/me/findMeetingTimes",
333
354
  "method": "post",
@@ -494,6 +515,27 @@
494
515
  "toolName": "delete-todo-task",
495
516
  "scopes": ["Tasks.ReadWrite"]
496
517
  },
518
+ {
519
+ "pathPattern": "/me/todo/lists/{todoTaskList-id}/tasks/{todoTask-id}/linkedResources",
520
+ "method": "get",
521
+ "toolName": "list-todo-linked-resources",
522
+ "scopes": ["Tasks.Read"],
523
+ "llmTip": "Lists resources linked to a To Do task (emails, URLs, etc.). Each linked resource has displayName, webUrl, applicationName, and externalId."
524
+ },
525
+ {
526
+ "pathPattern": "/me/todo/lists/{todoTaskList-id}/tasks/{todoTask-id}/linkedResources",
527
+ "method": "post",
528
+ "toolName": "create-todo-linked-resource",
529
+ "scopes": ["Tasks.ReadWrite"],
530
+ "llmTip": "Links a resource to a To Do task. Body: { webUrl: 'https://...', applicationName: 'Mail', displayName: 'Related email', externalId: 'optional-id' }. Use to link tasks to emails, files, or web pages for context."
531
+ },
532
+ {
533
+ "pathPattern": "/me/todo/lists/{todoTaskList-id}/tasks/{todoTask-id}/linkedResources/{linkedResource-id}",
534
+ "method": "delete",
535
+ "toolName": "delete-todo-linked-resource",
536
+ "scopes": ["Tasks.ReadWrite"],
537
+ "llmTip": "Removes a linked resource from a To Do task."
538
+ },
497
539
  {
498
540
  "pathPattern": "/me/planner/tasks",
499
541
  "method": "get",
@@ -3264,6 +3264,11 @@ const microsoft_graph_todoTaskCollectionResponse = z.object({
3264
3264
  "@odata.nextLink": z.string().nullable(),
3265
3265
  value: z.array(microsoft_graph_todoTask)
3266
3266
  }).partial().passthrough();
3267
+ const microsoft_graph_linkedResourceCollectionResponse = z.object({
3268
+ "@odata.count": z.number().int().nullable(),
3269
+ "@odata.nextLink": z.string().nullable(),
3270
+ value: z.array(microsoft_graph_linkedResource)
3271
+ }).partial().passthrough();
3267
3272
  const microsoft_graph_plannerContainerType = z.enum(["group", "unknownFutureValue", "roster"]);
3268
3273
  const microsoft_graph_plannerPlanContainer = z.object({
3269
3274
  containerId: z.string().describe("The identifier of the resource that contains the plan. Optional.").nullish(),
@@ -3949,6 +3954,7 @@ const schemas = {
3949
3954
  microsoft_graph_todoTaskList,
3950
3955
  microsoft_graph_todoTaskListCollectionResponse,
3951
3956
  microsoft_graph_todoTaskCollectionResponse,
3957
+ microsoft_graph_linkedResourceCollectionResponse,
3952
3958
  microsoft_graph_plannerContainerType,
3953
3959
  microsoft_graph_plannerPlanContainer,
3954
3960
  microsoft_graph_plannerBucket,
@@ -4636,6 +4642,53 @@ const endpoints = makeApi([
4636
4642
  ],
4637
4643
  response: z.void()
4638
4644
  },
4645
+ {
4646
+ method: "post",
4647
+ path: "/me/calendars",
4648
+ alias: "create-calendar",
4649
+ description: `Create a new calendar for a user.`,
4650
+ requestFormat: "json",
4651
+ parameters: [
4652
+ {
4653
+ name: "body",
4654
+ description: `New navigation property`,
4655
+ type: "Body",
4656
+ schema: microsoft_graph_calendar
4657
+ }
4658
+ ],
4659
+ response: z.void()
4660
+ },
4661
+ {
4662
+ method: "patch",
4663
+ path: "/me/calendars/:calendarId",
4664
+ alias: "update-calendar",
4665
+ description: `Update the navigation property calendars in me`,
4666
+ requestFormat: "json",
4667
+ parameters: [
4668
+ {
4669
+ name: "body",
4670
+ description: `New navigation property values`,
4671
+ type: "Body",
4672
+ schema: microsoft_graph_calendar
4673
+ }
4674
+ ],
4675
+ response: z.void()
4676
+ },
4677
+ {
4678
+ method: "delete",
4679
+ path: "/me/calendars/:calendarId",
4680
+ alias: "delete-calendar",
4681
+ description: `Delete a calendar other than the default calendar.`,
4682
+ requestFormat: "json",
4683
+ parameters: [
4684
+ {
4685
+ name: "If-Match",
4686
+ type: "Header",
4687
+ schema: z.string().describe("ETag").optional()
4688
+ }
4689
+ ],
4690
+ response: z.void()
4691
+ },
4639
4692
  {
4640
4693
  method: "get",
4641
4694
  path: "/me/calendars/:calendarId/calendarView",
@@ -7125,6 +7178,87 @@ resource.`,
7125
7178
  ],
7126
7179
  response: z.void()
7127
7180
  },
7181
+ {
7182
+ method: "get",
7183
+ path: "/me/todo/lists/:todoTaskListId/tasks/:todoTaskId/linkedResources",
7184
+ alias: "list-todo-linked-resources",
7185
+ description: `Get information of one or more items in a partner application, based on which a specified task was created. The information is represented in a linkedResource object for each item. It includes an external ID for the item in the partner application, and if applicable, a deep link to that item in the application.`,
7186
+ requestFormat: "json",
7187
+ parameters: [
7188
+ {
7189
+ name: "$top",
7190
+ type: "Query",
7191
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
7192
+ },
7193
+ {
7194
+ name: "$skip",
7195
+ type: "Query",
7196
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
7197
+ },
7198
+ {
7199
+ name: "$search",
7200
+ type: "Query",
7201
+ schema: z.string().describe("Search items by search phrases").optional()
7202
+ },
7203
+ {
7204
+ name: "$filter",
7205
+ type: "Query",
7206
+ schema: z.string().describe("Filter items by property values").optional()
7207
+ },
7208
+ {
7209
+ name: "$count",
7210
+ type: "Query",
7211
+ schema: z.boolean().describe("Include count of items").optional()
7212
+ },
7213
+ {
7214
+ name: "$orderby",
7215
+ type: "Query",
7216
+ schema: z.array(z.string()).describe("Order items by property values").optional()
7217
+ },
7218
+ {
7219
+ name: "$select",
7220
+ type: "Query",
7221
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
7222
+ },
7223
+ {
7224
+ name: "$expand",
7225
+ type: "Query",
7226
+ schema: z.array(z.string()).describe("Expand related entities").optional()
7227
+ }
7228
+ ],
7229
+ response: z.void()
7230
+ },
7231
+ {
7232
+ method: "post",
7233
+ path: "/me/todo/lists/:todoTaskListId/tasks/:todoTaskId/linkedResources",
7234
+ alias: "create-todo-linked-resource",
7235
+ description: `Create a linkedResource object to associate a specified task with an item in a partner application. For example, you can associate a task with an email item in Outlook that spurred the task, and you can create a linkedResource object to track its association. You can also create a linkedResource object while creating a task.`,
7236
+ requestFormat: "json",
7237
+ parameters: [
7238
+ {
7239
+ name: "body",
7240
+ description: `New navigation property`,
7241
+ type: "Body",
7242
+ schema: microsoft_graph_linkedResource
7243
+ }
7244
+ ],
7245
+ response: z.void()
7246
+ },
7247
+ {
7248
+ method: "delete",
7249
+ path: "/me/todo/lists/:todoTaskListId/tasks/:todoTaskId/linkedResources/:linkedResourceId",
7250
+ alias: "delete-todo-linked-resource",
7251
+ description: `Delete a linkedResource object.`,
7252
+ requestFormat: "json",
7253
+ parameters: [
7254
+ {
7255
+ name: "If-Match",
7256
+ type: "Header",
7257
+ schema: z.string().describe("ETag").optional()
7258
+ }
7259
+ ],
7260
+ response: z.void()
7261
+ },
7128
7262
  {
7129
7263
  method: "get",
7130
7264
  path: "/planner/plans/:plannerPlanId",
@@ -1,10 +1,10 @@
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
1
+ 2026-03-31 09:06:08 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
2
+ 2026-03-31 09:06:08 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
3
+ 2026-03-31 09:06:08 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me
4
+ 2026-03-31 09:06:08 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me/messages
5
+ 2026-03-31 09:06:08 INFO: [GRAPH CLIENT] Final URL being sent to Microsoft: https://graph.microsoft.com/v1.0/me/calendar
6
+ 2026-03-31 09:06:09 INFO: Using environment variables for secrets
7
+ 2026-03-31 09:06:10 INFO: Using environment variables for secrets
8
+ 2026-03-31 09:06:10 INFO: Using environment variables for secrets
9
+ 2026-03-31 09:06:10 INFO: Using environment variables for secrets
10
+ 2026-03-31 09:06:10 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.51.0",
3
+ "version": "0.53.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",
@@ -328,6 +328,27 @@
328
328
  "toolName": "list-calendars",
329
329
  "scopes": ["Calendars.Read"]
330
330
  },
331
+ {
332
+ "pathPattern": "/me/calendars",
333
+ "method": "post",
334
+ "toolName": "create-calendar",
335
+ "scopes": ["Calendars.ReadWrite"],
336
+ "llmTip": "Creates a new personal calendar. Body: { name: 'My Calendar', color: 'auto' }. Available colors: auto, lightBlue, lightGreen, lightOrange, lightGray, lightYellow, lightTeal, lightPink, lightBrown, lightRed, maxColor."
337
+ },
338
+ {
339
+ "pathPattern": "/me/calendars/{calendar-id}",
340
+ "method": "patch",
341
+ "toolName": "update-calendar",
342
+ "scopes": ["Calendars.ReadWrite"],
343
+ "llmTip": "Updates a calendar's properties. Body: { name: 'New Name', color: 'lightBlue' }. Cannot update the default calendar's name."
344
+ },
345
+ {
346
+ "pathPattern": "/me/calendars/{calendar-id}",
347
+ "method": "delete",
348
+ "toolName": "delete-calendar",
349
+ "scopes": ["Calendars.ReadWrite"],
350
+ "llmTip": "Deletes a calendar and all its events. The default calendar cannot be deleted. This action cannot be undone."
351
+ },
331
352
  {
332
353
  "pathPattern": "/me/findMeetingTimes",
333
354
  "method": "post",
@@ -494,6 +515,27 @@
494
515
  "toolName": "delete-todo-task",
495
516
  "scopes": ["Tasks.ReadWrite"]
496
517
  },
518
+ {
519
+ "pathPattern": "/me/todo/lists/{todoTaskList-id}/tasks/{todoTask-id}/linkedResources",
520
+ "method": "get",
521
+ "toolName": "list-todo-linked-resources",
522
+ "scopes": ["Tasks.Read"],
523
+ "llmTip": "Lists resources linked to a To Do task (emails, URLs, etc.). Each linked resource has displayName, webUrl, applicationName, and externalId."
524
+ },
525
+ {
526
+ "pathPattern": "/me/todo/lists/{todoTaskList-id}/tasks/{todoTask-id}/linkedResources",
527
+ "method": "post",
528
+ "toolName": "create-todo-linked-resource",
529
+ "scopes": ["Tasks.ReadWrite"],
530
+ "llmTip": "Links a resource to a To Do task. Body: { webUrl: 'https://...', applicationName: 'Mail', displayName: 'Related email', externalId: 'optional-id' }. Use to link tasks to emails, files, or web pages for context."
531
+ },
532
+ {
533
+ "pathPattern": "/me/todo/lists/{todoTaskList-id}/tasks/{todoTask-id}/linkedResources/{linkedResource-id}",
534
+ "method": "delete",
535
+ "toolName": "delete-todo-linked-resource",
536
+ "scopes": ["Tasks.ReadWrite"],
537
+ "llmTip": "Removes a linked resource from a To Do task."
538
+ },
497
539
  {
498
540
  "pathPattern": "/me/planner/tasks",
499
541
  "method": "get",