@softeria/ms-365-mcp-server 0.3.1 → 0.3.3
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 +34 -156
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,213 +1,91 @@
|
|
|
1
1
|
# ms-365-mcp-server
|
|
2
2
|
|
|
3
|
+
  
|
|
4
|
+
|
|
3
5
|
Microsoft 365 MCP Server
|
|
4
6
|
|
|
5
7
|
A Model Context Protocol (MCP) server for interacting with Microsoft 365 services through the Graph API.
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
- Node.js >= 14
|
|
8
12
|
|
|
9
13
|
## Features
|
|
10
14
|
|
|
11
|
-
- Authentication
|
|
15
|
+
- Authentication via Microsoft Authentication Library (MSAL)
|
|
12
16
|
- Excel file operations
|
|
13
17
|
- Calendar event management
|
|
14
18
|
- Mail operations
|
|
15
19
|
- OneDrive file management
|
|
16
|
-
- Dynamic tools powered by Microsoft Graph OpenAPI
|
|
20
|
+
- Dynamic tools powered by Microsoft Graph OpenAPI spec
|
|
17
21
|
- Built on the Model Context Protocol
|
|
18
22
|
|
|
19
|
-
## Installation
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npx @softeria/ms-365-mcp-server
|
|
23
|
-
```
|
|
24
|
-
|
|
25
23
|
## Quick Start Example
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
Test login in Claude Desktop:
|
|
28
26
|
|
|
29
|
-

|
|
30
28
|
|
|
31
29
|
## Examples
|
|
32
30
|
|
|
33
31
|

|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
## Integration with Claude
|
|
33
|
+
## Integration
|
|
37
34
|
|
|
38
35
|
### Claude Desktop
|
|
39
36
|
|
|
40
37
|
To add this MCP server to Claude Desktop:
|
|
41
38
|
|
|
42
|
-
|
|
43
|
-
2. Go to Settings > MCPs
|
|
44
|
-
3. Click "Add MCP"
|
|
45
|
-
4. Set the following configuration:
|
|
46
|
-
- Name: `ms365` (or any name you prefer)
|
|
47
|
-
- Command: `npx @softeria/ms-365-mcp-server`
|
|
48
|
-
- Click "Add"
|
|
49
|
-
|
|
50
|
-
Alternatively, you can edit Claude Desktop's configuration file directly. The location varies by platform, but you can
|
|
51
|
-
find it by going to Settings > Developer > Edit Config. Add this to your configuration file:
|
|
39
|
+
Edit the config file under Settings > Developer:
|
|
52
40
|
|
|
53
41
|
```json
|
|
54
42
|
{
|
|
55
43
|
"mcpServers": {
|
|
56
44
|
"ms365": {
|
|
57
45
|
"command": "npx",
|
|
58
|
-
"args": [
|
|
46
|
+
"args": [
|
|
47
|
+
"-y",
|
|
48
|
+
"@softeria/ms-365-mcp-server"
|
|
49
|
+
]
|
|
59
50
|
}
|
|
60
51
|
}
|
|
61
52
|
}
|
|
62
53
|
```
|
|
63
54
|
|
|
64
|
-
###
|
|
65
|
-
|
|
66
|
-
You can add the server to Claude Code CLI using this command:
|
|
55
|
+
### Claude Code CLI
|
|
67
56
|
|
|
68
57
|
```bash
|
|
69
58
|
claude mcp add ms365 -- npx -y @softeria/ms-365-mcp-server
|
|
70
59
|
```
|
|
71
60
|
|
|
72
|
-
For other
|
|
61
|
+
For other interfaces that support MCPs, please refer to their respective documentation for the correct
|
|
73
62
|
integration method.
|
|
74
63
|
|
|
75
|
-
## Usage
|
|
76
|
-
|
|
77
|
-
### Command Line Options
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
npx @softeria/ms-365-mcp-server [options]
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Options:
|
|
84
|
-
|
|
85
|
-
- `--login`: Force login using device code flow and verify Graph API access
|
|
86
|
-
- `--logout`: Log out and clear saved credentials
|
|
87
|
-
- `--verify-login`: Test current authentication and verify Graph API access without starting the server
|
|
88
|
-
- `-v`: Enable verbose logging
|
|
89
|
-
|
|
90
64
|
### Authentication
|
|
91
65
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
1. Running the server with the `--login` flag:
|
|
66
|
+
> ⚠️ You must authenticate before using tools.
|
|
95
67
|
|
|
68
|
+
1. **MCP client login**:
|
|
69
|
+
- Call the `login` tool (auto-checks existing token)
|
|
70
|
+
- If needed, get URL+code, visit in browser
|
|
71
|
+
- Use `verify-login` tool to confirm
|
|
72
|
+
-
|
|
73
|
+
2. **Optional CLI login**:
|
|
96
74
|
```bash
|
|
97
75
|
npx @softeria/ms-365-mcp-server --login
|
|
98
76
|
```
|
|
77
|
+
Follow the URL and code prompt in terminal.
|
|
99
78
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
2. When using Claude Code or other MCP clients, use the login tools:
|
|
103
|
-
- First use the `login` tool, which will automatically check if you're already logged in
|
|
104
|
-
- If not already logged in, it will return the login URL and code
|
|
105
|
-
- Visit the URL and enter the code in your browser
|
|
106
|
-
- Then use the `verify-login` tool to check if the login was successful
|
|
107
|
-
- To force a new login even if already authenticated, use the `login` tool with `force: true`
|
|
108
|
-
|
|
109
|
-
Both methods trigger the device code flow authentication, but they handle the UI interaction differently:
|
|
79
|
+
Tokens are cached securely in your OS credential store (fallback to file).
|
|
110
80
|
|
|
111
|
-
|
|
112
|
-
- MCP tool version returns the instructions as data that can be shown in the client UI
|
|
113
|
-
|
|
114
|
-
You can verify your authentication status with the `--verify-login` flag, which will check if your token can successfully
|
|
115
|
-
fetch user data from Microsoft Graph API:
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
npx @softeria/ms-365-mcp-server --verify-login
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Both `--login` and `--verify-login` will return a JSON response that includes your basic user information from Microsoft
|
|
122
|
-
Graph API if authentication is successful:
|
|
123
|
-
|
|
124
|
-
```json
|
|
125
|
-
{
|
|
126
|
-
"success": true,
|
|
127
|
-
"message": "Login successful",
|
|
128
|
-
"userData": {
|
|
129
|
-
"displayName": "Your Name",
|
|
130
|
-
"userPrincipalName": "your.email@example.com"
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
```
|
|
81
|
+
## Tools
|
|
134
82
|
|
|
135
|
-
Authentication
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
- Authentication (login, logout)
|
|
142
|
-
- Files/OneDrive management
|
|
143
|
-
- Excel operations:
|
|
144
|
-
- List worksheets
|
|
145
|
-
- Get cell range values
|
|
146
|
-
- Format cell ranges
|
|
147
|
-
- Sort data
|
|
148
|
-
- Create charts
|
|
149
|
-
- Calendar management
|
|
150
|
-
- Mail operations
|
|
151
|
-
|
|
152
|
-
For a complete list of available tools and their parameters, use an MCP-enabled Claude interface and explore the available tools.
|
|
153
|
-
|
|
154
|
-
## For Developers
|
|
155
|
-
|
|
156
|
-
### Setup
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
# Clone the repository
|
|
160
|
-
git clone https://github.com/softeria-eu/ms-365-mcp-server.git
|
|
161
|
-
cd ms-365-mcp-server
|
|
162
|
-
|
|
163
|
-
# Install dependencies
|
|
164
|
-
npm install
|
|
165
|
-
|
|
166
|
-
# Run tests
|
|
167
|
-
npm test
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### OpenAPI Integration
|
|
171
|
-
|
|
172
|
-
This project uses the Microsoft Graph OpenAPI specification to dynamically generate MCP tools. During installation, the OpenAPI specification is automatically downloaded from Microsoft Graph's GitHub repository.
|
|
173
|
-
|
|
174
|
-
To manually download the latest OpenAPI spec:
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
# Download the latest OpenAPI spec from Microsoft Graph
|
|
178
|
-
npm run download-openapi
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### GitHub Actions
|
|
182
|
-
|
|
183
|
-
This repository uses GitHub Actions for continuous integration and deployment:
|
|
184
|
-
|
|
185
|
-
- **Build Workflow**: Runs on all pushes to main and pull requests. Verifies the project builds successfully and passes
|
|
186
|
-
all tests.
|
|
187
|
-
- **Publish Workflow**: Automatically publishes to npm when a new GitHub release is created.
|
|
188
|
-
|
|
189
|
-
[](https://github.com/softeria-eu/ms-365-mcp-server/actions/workflows/build.yml)
|
|
190
|
-
|
|
191
|
-
### Release Process
|
|
192
|
-
|
|
193
|
-
To create a new release:
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
# Default (patch version): 0.1.11 -> 0.1.12
|
|
197
|
-
npm run release
|
|
198
|
-
|
|
199
|
-
# Minor version: 0.1.11 -> 0.2.0
|
|
200
|
-
npm run release minor
|
|
201
|
-
|
|
202
|
-
# Major version: 0.1.11 -> 1.0.0
|
|
203
|
-
npm run release major
|
|
204
|
-
```
|
|
83
|
+
- **Authentication:** `login`, `logout`, `verify-login`
|
|
84
|
+
- **Excel:** list worksheets, get/set ranges, format, sort, chart
|
|
85
|
+
- **Calendar:** list/create/update/delete events
|
|
86
|
+
- **Mail:** send, read, delete messages
|
|
87
|
+
- **OneDrive:** upload, download, list files
|
|
205
88
|
|
|
206
|
-
|
|
89
|
+
## License
|
|
207
90
|
|
|
208
|
-
|
|
209
|
-
2. Bump the version number according to the specified type (patch by default)
|
|
210
|
-
3. Commit the version changes
|
|
211
|
-
4. Push to GitHub
|
|
212
|
-
5. Create a GitHub release
|
|
213
|
-
6. Trigger the publishing workflow to publish to npm
|
|
91
|
+
MIT © 2025 Softeria
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softeria/ms-365-mcp-server",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Microsoft 365 MCP Server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.mjs",
|
|
@@ -40,5 +40,9 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"prettier": "^3.5.3",
|
|
42
42
|
"vitest": "^3.1.1"
|
|
43
|
+
},
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/softeria/ms-365-mcp-server.git"
|
|
43
47
|
}
|
|
44
48
|
}
|