@softeria/ms-365-mcp-server 0.35.0 → 0.36.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.
@@ -120,6 +120,34 @@
120
120
  "toolName": "delete-mail-attachment",
121
121
  "scopes": ["Mail.ReadWrite"]
122
122
  },
123
+ {
124
+ "pathPattern": "/me/messages/{message-id}/forward",
125
+ "method": "post",
126
+ "toolName": "forward-mail-message",
127
+ "scopes": ["Mail.Send"],
128
+ "llmTip": "Forward an email preserving full HTML formatting and attachments. The 'comment' field adds text above the forwarded content. toRecipients is required. Do NOT reconstruct the email manually - this endpoint handles everything server-side."
129
+ },
130
+ {
131
+ "pathPattern": "/me/messages/{message-id}/reply",
132
+ "method": "post",
133
+ "toolName": "reply-mail-message",
134
+ "scopes": ["Mail.Send"],
135
+ "llmTip": "Reply to an email preserving full HTML formatting. The 'comment' field is your reply text. Do NOT reconstruct the email manually."
136
+ },
137
+ {
138
+ "pathPattern": "/me/messages/{message-id}/replyAll",
139
+ "method": "post",
140
+ "toolName": "reply-all-mail-message",
141
+ "scopes": ["Mail.Send"],
142
+ "llmTip": "Reply-all preserving full HTML formatting. The 'comment' field is your reply text."
143
+ },
144
+ {
145
+ "pathPattern": "/me/messages/{message-id}/createForward",
146
+ "method": "post",
147
+ "toolName": "create-forward-draft",
148
+ "scopes": ["Mail.ReadWrite"],
149
+ "llmTip": "Create a forward draft (does not send). Useful when user wants to review before sending."
150
+ },
123
151
  {
124
152
  "pathPattern": "/me/events",
125
153
  "method": "get",
@@ -316,6 +344,13 @@
316
344
  "scopes": ["Notes.Create"],
317
345
  "contentType": "text/html"
318
346
  },
347
+ {
348
+ "pathPattern": "/me/onenote/sections/{onenoteSection-id}/pages",
349
+ "method": "post",
350
+ "toolName": "create-onenote-section-page",
351
+ "scopes": ["Notes.Create"],
352
+ "contentType": "text/html"
353
+ },
319
354
  {
320
355
  "pathPattern": "/me/todo/lists",
321
356
  "method": "get",
@@ -2518,6 +2518,15 @@ const microsoft_graph_attachmentCollectionResponse = z.object({
2518
2518
  "@odata.nextLink": z.string().nullable(),
2519
2519
  value: z.array(microsoft_graph_attachment)
2520
2520
  }).partial().strict();
2521
+ const create_forward_draft_Body = z.object({
2522
+ ToRecipients: z.array(microsoft_graph_recipient),
2523
+ Message: z.union([microsoft_graph_message, z.object({}).partial().strict()]),
2524
+ Comment: z.string().nullable()
2525
+ }).partial().strict();
2526
+ const reply_mail_message_Body = z.object({
2527
+ Message: z.union([microsoft_graph_message, z.object({}).partial().strict()]),
2528
+ Comment: z.string().nullable()
2529
+ }).partial().strict();
2521
2530
  const microsoft_graph_attendeeBase = z.object({
2522
2531
  emailAddress: microsoft_graph_emailAddress.optional(),
2523
2532
  type: microsoft_graph_attendeeType.optional()
@@ -3576,6 +3585,8 @@ const schemas = {
3576
3585
  microsoft_graph_mailFolderCollectionResponse,
3577
3586
  microsoft_graph_messageCollectionResponse,
3578
3587
  microsoft_graph_attachmentCollectionResponse,
3588
+ create_forward_draft_Body,
3589
+ reply_mail_message_Body,
3579
3590
  microsoft_graph_attendeeBase,
3580
3591
  microsoft_graph_locationConstraintItem,
3581
3592
  microsoft_graph_locationConstraint,
@@ -5625,6 +5636,47 @@ resource.`,
5625
5636
  ],
5626
5637
  response: z.void()
5627
5638
  },
5639
+ {
5640
+ method: "post",
5641
+ path: "/me/messages/:messageId/createForward",
5642
+ alias: "create-forward-draft",
5643
+ description: `Create a draft to forward an existing message, in either JSON or MIME format. When using JSON format, you can:
5644
+ - Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
5645
+ - Specify either the toRecipients parameter or the toRecipients property of the message parameter. Specifying both or specifying neither will return an HTTP 400 Bad Request error.
5646
+ - Update the draft later to add content to the body or change other message properties. When using MIME format:
5647
+ - Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
5648
+ - Add any attachments and S/MIME properties to the MIME content. Send the draft message in a subsequent operation. Alternatively, forward a message in a single operation.`,
5649
+ requestFormat: "json",
5650
+ parameters: [
5651
+ {
5652
+ name: "body",
5653
+ description: `Action parameters`,
5654
+ type: "Body",
5655
+ schema: create_forward_draft_Body
5656
+ }
5657
+ ],
5658
+ response: z.void()
5659
+ },
5660
+ {
5661
+ method: "post",
5662
+ path: "/me/messages/:messageId/forward",
5663
+ alias: "forward-mail-message",
5664
+ description: `Forward a message using either JSON or MIME format. When using JSON format, you can:
5665
+ - Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
5666
+ - Specify either the toRecipients parameter or the toRecipients property of the message parameter. Specifying both or specifying neither will return an HTTP 400 Bad Request error. When using MIME format:
5667
+ - Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
5668
+ - Add any attachments and S/MIME properties to the MIME content. This method saves the message in the Sent Items folder. Alternatively, create a draft to forward a message, and send it later.`,
5669
+ requestFormat: "json",
5670
+ parameters: [
5671
+ {
5672
+ name: "body",
5673
+ description: `Action parameters`,
5674
+ type: "Body",
5675
+ schema: create_forward_draft_Body
5676
+ }
5677
+ ],
5678
+ response: z.void()
5679
+ },
5628
5680
  {
5629
5681
  method: "post",
5630
5682
  path: "/me/messages/:messageId/move",
@@ -5641,6 +5693,46 @@ resource.`,
5641
5693
  ],
5642
5694
  response: z.void()
5643
5695
  },
5696
+ {
5697
+ method: "post",
5698
+ path: "/me/messages/:messageId/reply",
5699
+ alias: "reply-mail-message",
5700
+ description: `Reply to the sender of a message using either JSON or MIME format. When using JSON format:
5701
+ * Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
5702
+ * If the original message specifies a recipient in the replyTo property, per Internet Message Format (RFC 2822), send the reply to the recipients in replyTo and not the recipient in the from property. When using MIME format:
5703
+ - Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
5704
+ - Add any attachments and S/MIME properties to the MIME content. This method saves the message in the Sent Items folder. Alternatively, create a draft to reply to an existing message and send it later.`,
5705
+ requestFormat: "json",
5706
+ parameters: [
5707
+ {
5708
+ name: "body",
5709
+ description: `Action parameters`,
5710
+ type: "Body",
5711
+ schema: reply_mail_message_Body
5712
+ }
5713
+ ],
5714
+ response: z.void()
5715
+ },
5716
+ {
5717
+ method: "post",
5718
+ path: "/me/messages/:messageId/replyAll",
5719
+ alias: "reply-all-mail-message",
5720
+ description: `Reply to all recipients of a message using either JSON or MIME format. When using JSON format:
5721
+ - Specify either a comment or the body property of the message parameter. Specifying both will return an HTTP 400 Bad Request error.
5722
+ - If the original message specifies a recipient in the replyTo property, per Internet Message Format (RFC 2822), send the reply to the recipients in replyTo and not the recipient in the from property. When using MIME format:
5723
+ - Provide the applicable Internet message headers and the MIME content, all encoded in base64 format in the request body.
5724
+ - Add any attachments and S/MIME properties to the MIME content. This method saves the message in the Sent Items folder. Alternatively, create a draft to reply-all to a message and send it later.`,
5725
+ requestFormat: "json",
5726
+ parameters: [
5727
+ {
5728
+ name: "body",
5729
+ description: `Action parameters`,
5730
+ type: "Body",
5731
+ schema: reply_mail_message_Body
5732
+ }
5733
+ ],
5734
+ response: z.void()
5735
+ },
5644
5736
  {
5645
5737
  method: "get",
5646
5738
  path: "/me/onenote/notebooks",
@@ -5815,6 +5907,22 @@ resource.`,
5815
5907
  ],
5816
5908
  response: z.void()
5817
5909
  },
5910
+ {
5911
+ method: "post",
5912
+ path: "/me/onenote/sections/:onenoteSectionId/pages",
5913
+ alias: "create-onenote-section-page",
5914
+ description: `Create a new page in the specified section.`,
5915
+ requestFormat: "json",
5916
+ parameters: [
5917
+ {
5918
+ name: "body",
5919
+ description: `New navigation property`,
5920
+ type: "Body",
5921
+ schema: microsoft_graph_onenotePage
5922
+ }
5923
+ ],
5924
+ response: z.void()
5925
+ },
5818
5926
  {
5819
5927
  method: "get",
5820
5928
  path: "/me/planner/tasks",
@@ -1,5 +1,5 @@
1
- 2026-02-02 13:40:51 INFO: Using environment variables for secrets
2
- 2026-02-02 13:40:51 INFO: Using environment variables for secrets
3
- 2026-02-02 13:40:51 INFO: Using environment variables for secrets
4
- 2026-02-02 13:40:51 INFO: Using environment variables for secrets
5
- 2026-02-02 13:40:51 INFO: Using environment variables for secrets
1
+ 2026-02-08 21:55:42 INFO: Using environment variables for secrets
2
+ 2026-02-08 21:55:42 INFO: Using environment variables for secrets
3
+ 2026-02-08 21:55:42 INFO: Using environment variables for secrets
4
+ 2026-02-08 21:55:42 INFO: Using environment variables for secrets
5
+ 2026-02-08 21:55:42 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.35.0",
3
+ "version": "0.36.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",
@@ -120,6 +120,34 @@
120
120
  "toolName": "delete-mail-attachment",
121
121
  "scopes": ["Mail.ReadWrite"]
122
122
  },
123
+ {
124
+ "pathPattern": "/me/messages/{message-id}/forward",
125
+ "method": "post",
126
+ "toolName": "forward-mail-message",
127
+ "scopes": ["Mail.Send"],
128
+ "llmTip": "Forward an email preserving full HTML formatting and attachments. The 'comment' field adds text above the forwarded content. toRecipients is required. Do NOT reconstruct the email manually - this endpoint handles everything server-side."
129
+ },
130
+ {
131
+ "pathPattern": "/me/messages/{message-id}/reply",
132
+ "method": "post",
133
+ "toolName": "reply-mail-message",
134
+ "scopes": ["Mail.Send"],
135
+ "llmTip": "Reply to an email preserving full HTML formatting. The 'comment' field is your reply text. Do NOT reconstruct the email manually."
136
+ },
137
+ {
138
+ "pathPattern": "/me/messages/{message-id}/replyAll",
139
+ "method": "post",
140
+ "toolName": "reply-all-mail-message",
141
+ "scopes": ["Mail.Send"],
142
+ "llmTip": "Reply-all preserving full HTML formatting. The 'comment' field is your reply text."
143
+ },
144
+ {
145
+ "pathPattern": "/me/messages/{message-id}/createForward",
146
+ "method": "post",
147
+ "toolName": "create-forward-draft",
148
+ "scopes": ["Mail.ReadWrite"],
149
+ "llmTip": "Create a forward draft (does not send). Useful when user wants to review before sending."
150
+ },
123
151
  {
124
152
  "pathPattern": "/me/events",
125
153
  "method": "get",
@@ -316,6 +344,13 @@
316
344
  "scopes": ["Notes.Create"],
317
345
  "contentType": "text/html"
318
346
  },
347
+ {
348
+ "pathPattern": "/me/onenote/sections/{onenoteSection-id}/pages",
349
+ "method": "post",
350
+ "toolName": "create-onenote-section-page",
351
+ "scopes": ["Notes.Create"],
352
+ "contentType": "text/html"
353
+ },
319
354
  {
320
355
  "pathPattern": "/me/todo/lists",
321
356
  "method": "get",