@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 +4 -2
- package/package.json +1 -1
- package/src/generated/README.md +18 -13
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
|
-

|
|
30
30
|
|
|
31
31
|
## Examples
|
|
32
32
|
|
|
33
|
-

|
|
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
package/src/generated/README.md
CHANGED
|
@@ -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
|
-
###
|
|
12
|
+
### Version 1: AI-Generated Mappings
|
|
13
13
|
|
|
14
|
-
Our initial approach used
|
|
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
|
-
###
|
|
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):
|