@softeria/ms-365-mcp-server 0.156.0 → 0.156.2

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/README.md CHANGED
@@ -112,8 +112,10 @@ beta API and request the delegated permissions `TeamworkCustomEmoji.Read` and
112
112
  Existing deployments may need consent for these new scopes and reauthentication;
113
113
  adding tool support does not upgrade an already-issued token.
114
114
 
115
- Listing returns base64 image content, so use a small `top` and `filter` to keep
116
- responses manageable. To create an emoji, pass `body: { displayName, contentBytes }`
115
+ Listing can return `contentBytes: null` by default. To request base64 PNG/GIF images,
116
+ pass `select: "displayName,contentBytes"` or `select: ["displayName", "contentBytes"]`.
117
+ Use a small `top` to keep image responses manageable.
118
+ To create an emoji, pass `body: { displayName, contentBytes }`
117
119
  with the exact approved name and base64 PNG/GIF file bytes. See Microsoft's
118
120
  [list](https://learn.microsoft.com/en-us/graph/api/teamworkmessaging-list-customemojis?view=graph-rest-beta)
119
121
  and [create](https://learn.microsoft.com/en-us/graph/api/teamworkmessaging-post-customemojis?view=graph-rest-beta)
@@ -533,7 +533,8 @@
533
533
  "toolName": "get-schedule",
534
534
  "presets": ["calendar", "outlook", "personal"],
535
535
  "readOnly": true,
536
- "workScopes": ["Calendars.Read"]
536
+ "workScopes": ["Calendars.Read"],
537
+ "supportsTimezone": true
537
538
  },
538
539
  {
539
540
  "pathPattern": "/users/{user-id}/calendar/events",
@@ -541,7 +542,8 @@
541
542
  "toolName": "list-shared-calendar-events",
542
543
  "descriptionOverride": "List events in another user's default calendar. The user-id is the calendar owner's ID or email address, and delegated access to that calendar is required. Recurring events are returned as a single series master, not expanded into occurrences - use get-shared-calendar-view for that.",
543
544
  "presets": ["work"],
544
- "workScopes": ["Calendars.Read.Shared"]
545
+ "workScopes": ["Calendars.Read.Shared"],
546
+ "supportsTimezone": true
545
547
  },
546
548
  {
547
549
  "pathPattern": "/users/{user-id}/calendarView",
@@ -599,7 +601,8 @@
599
601
  "toolName": "find-meeting-times",
600
602
  "presets": ["calendar", "outlook", "personal"],
601
603
  "readOnly": true,
602
- "workScopes": ["Calendars.Read.Shared"]
604
+ "workScopes": ["Calendars.Read.Shared"],
605
+ "supportsTimezone": true
603
606
  },
604
607
  {
605
608
  "pathPattern": "/me/drives",
@@ -1666,7 +1669,7 @@
1666
1669
  "apiVersion": "beta",
1667
1670
  "presets": ["teams", "work"],
1668
1671
  "workScopes": ["TeamworkCustomEmoji.Read"],
1669
- "llmTip": "Lists the organization's custom Teams emojis, including displayName, contentBytes (base64 PNG/GIF), createdBy and createdDateTime. The documented query options are $top and $filter. Image bytes can make responses large: start with a small $top and narrow with $filter; use fetchAllPages only for an explicitly requested export. displayName is the unique key, not an id. Work/school accounts only. Microsoft Graph beta API: subject to change."
1672
+ "llmTip": "Lists the organization's custom Teams emojis, including displayName, createdBy and createdDateTime. Graph can return contentBytes: null by default; request select='displayName,contentBytes' (or a string array) to retrieve base64 PNG/GIF images. Supports $top, $filter and $select. Image bytes can make responses large: use a small $top when selecting contentBytes; use fetchAllPages only for an explicitly requested export. displayName is the unique key, not an id. Work/school accounts only. Microsoft Graph beta API: subject to change."
1670
1673
  },
1671
1674
  {
1672
1675
  "pathPattern": "/teamwork/messaging/customEmojis",
@@ -2405,6 +2408,7 @@
2405
2408
  "toolName": "list-calendar-view-delta",
2406
2409
  "presets": ["calendar", "outlook", "personal"],
2407
2410
  "scopes": ["Calendars.Read"],
2411
+ "supportsTimezone": true,
2408
2412
  "llmTip": "Incremental sync of events within a time window. Required query params on first call: startDateTime, endDateTime (ISO 8601). Returns events in the window plus @odata.deltaLink; subsequent calls with that link return only changes. Expands recurring events to individual occurrences (unlike list-calendar-events-delta which returns the series master). Use this for calendar UIs showing a week/month view."
2409
2413
  },
2410
2414
  {
@@ -2,13 +2,14 @@ import { z } from "zod";
2
2
  import { getODataParamDescription, shouldOmitTopParam } from "./param-descriptions.js";
3
3
  const TEAM_LIST_TOOLS = /* @__PURE__ */ new Set(["list-joined-teams", "list-my-associated-teams"]);
4
4
  const CUSTOM_EMOJI_QUERY_DESCRIPTIONS = {
5
- top: "Number of custom emojis to return in one page. Each emoji includes base64 image content; use a small page size to keep the response manageable.",
6
- filter: "OData filter expression for custom emojis, forwarded to Microsoft Graph. Filter support is determined by the beta API."
5
+ top: "Number of custom emojis to return in one page. Base64 image content is opt-in with select; use a small page size when selecting contentBytes.",
6
+ filter: "OData filter expression for custom emojis, forwarded to Microsoft Graph. Filter support is determined by the beta API.",
7
+ select: "Properties to return as a comma-separated string or string array. Explicitly select contentBytes to retrieve base64 PNG/GIF images, for example displayName,contentBytes. Graph can return contentBytes: null when it is not explicitly selected."
7
8
  };
8
9
  function queryParameterSchema(toolName, name, providerSchema) {
9
10
  const bareName = name.replace(/^\$/, "").toLowerCase();
10
11
  if (TEAM_LIST_TOOLS.has(toolName)) return void 0;
11
- if (toolName === "list-custom-emojis" && !["top", "filter", "skiptoken"].includes(bareName)) {
12
+ if (toolName === "list-custom-emojis" && !["top", "filter", "select", "skiptoken"].includes(bareName)) {
12
13
  return void 0;
13
14
  }
14
15
  if (bareName === "top" && shouldOmitTopParam(toolName)) return void 0;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@softeria/ms-365-mcp-server",
3
3
  "mcpName": "io.github.Softeria/ms-365-mcp-server",
4
- "version": "0.156.0",
4
+ "version": "0.156.2",
5
5
  "description": " A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
@@ -533,7 +533,8 @@
533
533
  "toolName": "get-schedule",
534
534
  "presets": ["calendar", "outlook", "personal"],
535
535
  "readOnly": true,
536
- "workScopes": ["Calendars.Read"]
536
+ "workScopes": ["Calendars.Read"],
537
+ "supportsTimezone": true
537
538
  },
538
539
  {
539
540
  "pathPattern": "/users/{user-id}/calendar/events",
@@ -541,7 +542,8 @@
541
542
  "toolName": "list-shared-calendar-events",
542
543
  "descriptionOverride": "List events in another user's default calendar. The user-id is the calendar owner's ID or email address, and delegated access to that calendar is required. Recurring events are returned as a single series master, not expanded into occurrences - use get-shared-calendar-view for that.",
543
544
  "presets": ["work"],
544
- "workScopes": ["Calendars.Read.Shared"]
545
+ "workScopes": ["Calendars.Read.Shared"],
546
+ "supportsTimezone": true
545
547
  },
546
548
  {
547
549
  "pathPattern": "/users/{user-id}/calendarView",
@@ -599,7 +601,8 @@
599
601
  "toolName": "find-meeting-times",
600
602
  "presets": ["calendar", "outlook", "personal"],
601
603
  "readOnly": true,
602
- "workScopes": ["Calendars.Read.Shared"]
604
+ "workScopes": ["Calendars.Read.Shared"],
605
+ "supportsTimezone": true
603
606
  },
604
607
  {
605
608
  "pathPattern": "/me/drives",
@@ -1666,7 +1669,7 @@
1666
1669
  "apiVersion": "beta",
1667
1670
  "presets": ["teams", "work"],
1668
1671
  "workScopes": ["TeamworkCustomEmoji.Read"],
1669
- "llmTip": "Lists the organization's custom Teams emojis, including displayName, contentBytes (base64 PNG/GIF), createdBy and createdDateTime. The documented query options are $top and $filter. Image bytes can make responses large: start with a small $top and narrow with $filter; use fetchAllPages only for an explicitly requested export. displayName is the unique key, not an id. Work/school accounts only. Microsoft Graph beta API: subject to change."
1672
+ "llmTip": "Lists the organization's custom Teams emojis, including displayName, createdBy and createdDateTime. Graph can return contentBytes: null by default; request select='displayName,contentBytes' (or a string array) to retrieve base64 PNG/GIF images. Supports $top, $filter and $select. Image bytes can make responses large: use a small $top when selecting contentBytes; use fetchAllPages only for an explicitly requested export. displayName is the unique key, not an id. Work/school accounts only. Microsoft Graph beta API: subject to change."
1670
1673
  },
1671
1674
  {
1672
1675
  "pathPattern": "/teamwork/messaging/customEmojis",
@@ -2405,6 +2408,7 @@
2405
2408
  "toolName": "list-calendar-view-delta",
2406
2409
  "presets": ["calendar", "outlook", "personal"],
2407
2410
  "scopes": ["Calendars.Read"],
2411
+ "supportsTimezone": true,
2408
2412
  "llmTip": "Incremental sync of events within a time window. Required query params on first call: startDateTime, endDateTime (ISO 8601). Returns events in the window plus @odata.deltaLink; subsequent calls with that link return only changes. Expands recurring events to individual occurrences (unlike list-calendar-events-delta which returns the series master). Use this for calendar UIs showing a week/month view."
2409
2413
  },
2410
2414
  {