@softeria/ms-365-mcp-server 0.4.7 → 0.4.9

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
@@ -26,11 +26,11 @@ A Model Context Protocol (MCP) server for interacting with Microsoft 365 service
26
26
 
27
27
  Test login in Claude Desktop:
28
28
 
29
- ![Login example](https://github.com/user-attachments/assets/e457884f-c98a-4186-9e6f-eb323ec24e0a)
29
+ ![Login example](https://github.com/user-attachments/assets/27f57f0e-57b8-4366-a8d1-c0bdab79900c)
30
30
 
31
31
  ## Examples
32
32
 
33
- ![Image](https://github.com/user-attachments/assets/1a296afb-48ed-42b0-9e7c-e685d5d1784c)
33
+ ![Image](https://github.com/user-attachments/assets/ed275100-72e8-4924-bcf2-cd8e1b4c6f3a)
34
34
 
35
35
  ## Integration
36
36
 
@@ -103,6 +103,8 @@ Environment variables:
103
103
  - `READ_ONLY=true|1`: Alternative to --read-only flag
104
104
  - `LOG_LEVEL`: Set logging level (default: 'info')
105
105
  - `SILENT=true`: Disable console output
106
+ - `MS365_MCP_CLIENT_ID`: Custom Azure app client ID (defaults to built-in app)
107
+ - `MS365_MCP_TENANT_ID`: Custom tenant ID (defaults to 'common' for multi-tenant)
106
108
 
107
109
  ## Support
108
110
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softeria/ms-365-mcp-server",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
4
4
  "description": "Microsoft 365 MCP Server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2,30 +2,28 @@
2
2
 
3
3
  This directory contains the generated TypeScript client for the Microsoft 365 API based on the OpenAPI specification.
4
4
 
5
- > **Important Note for NPM Package Users**:
6
- > The source file `client.ts` (approximately 1MB) is excluded from the npm package to reduce package size,
5
+ > **Important Note for NPM Package Users**:
6
+ > The source file `client.ts` (approximately 1MB) is excluded from the npm package to reduce package size,
7
7
  > but the compiled JavaScript file `client.js` is included. This means the package is fully functional,
8
8
  > but you won't see the TypeScript source in the node_modules directory.
9
9
 
10
10
  ## The Evolution
11
11
 
12
- ### Initial Challenge
12
+ ### Version 1: AI-Generated Mappings
13
13
 
14
- Our initial approach used the full MS 365 OpenAPI specification file directly. This created several significant problems:
14
+ Our initial approach used AI to map Microsoft 365 documentation and OpenAPI specifications directly into MCP tools with
15
+ Zod mappings. While conceptually appealing, this approach didn't work well in practice and created several problems.
16
+
17
+ ### Version 2: Direct OpenAPI Spec Usage
18
+
19
+ We then moved to using the full MS 365 OpenAPI specification file directly. This improved reliability but created new
20
+ significant problems:
15
21
 
16
22
  - The spec file was a whopping 45MB in size
17
23
  - It had to be included in the npm package
18
24
  - Startup time was painfully slow due to parsing the large spec file
19
25
 
20
- ### Exploration Phase
21
-
22
- We explored several alternatives:
23
-
24
- 1. Live-parsing a trimmed version of the spec file
25
- 2. Creating a static trimmed version
26
- 3. Pre-generating client code
27
-
28
- ### Current Solution
26
+ ### Version 3: Current Solution (Trimmed Spec + Generated Client)
29
27
 
30
28
  We eventually settled on a combined approach:
31
29
 
@@ -39,6 +37,13 @@ We eventually settled on a combined approach:
39
37
  - **Type safety** - Full TypeScript types generated from the OpenAPI spec
40
38
  - **Validation** - Zod schemas for request/response validation
41
39
 
40
+ ### Current Limitations & Future Improvements
41
+
42
+ While this approach is a significant improvement, it's not perfect. The MCP server might still struggle to understand
43
+ the MS 365 endpoints correctly, and there's room for improvements in how the API is exposed and documented for AI
44
+ assistants. However, with the current foundation of generated TypeScript clients and proper type safety, these
45
+ improvements should now be much easier to implement and maintain.
46
+
42
47
  ## Regenerating the Client
43
48
 
44
49
  To regenerate the client code (e.g., after API changes or to update the supported endpoints):