Read-only access to Microsoft 365 through Microsoft Graph: SharePoint, OneDrive, Outlook mail, Teams and calendar.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add microsoft-graph-eesb99 --env AZURE_CLIENT_ID='<AZURE_CLIENT_ID>' --env AZURE_CLIENT_SECRET='<AZURE_CLIENT_SECRET>' --env AZURE_TENANT_ID='<AZURE_TENANT_ID>' -- python3 /Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py~/.codex/config.toml
[mcp_servers.microsoft-graph-eesb99]
command = "python3"
args = ["/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"]
env = { AZURE_CLIENT_ID = "<AZURE_CLIENT_ID>", AZURE_CLIENT_SECRET = "<AZURE_CLIENT_SECRET>", AZURE_TENANT_ID = "<AZURE_TENANT_ID>" }
# codex mcp add microsoft-graph-eesb99 --env AZURE_CLIENT_ID='<AZURE_CLIENT_ID>' --env AZURE_CLIENT_SECRET='<AZURE_CLIENT_SECRET>' --env AZURE_TENANT_ID='<AZURE_TENANT_ID>' -- python3 /Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py~/.cursor/mcp.json
{
"mcpServers": {
"microsoft-graph-eesb99": {
"command": "python3",
"args": [
"/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"
],
"env": {
"AZURE_CLIENT_ID": "<AZURE_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<AZURE_CLIENT_SECRET>",
"AZURE_TENANT_ID": "<AZURE_TENANT_ID>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"microsoft-graph-eesb99": {
"type": "stdio",
"command": "python3",
"args": [
"/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"
],
"env": {
"AZURE_CLIENT_ID": "<AZURE_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<AZURE_CLIENT_SECRET>",
"AZURE_TENANT_ID": "<AZURE_TENANT_ID>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"microsoft-graph-eesb99": {
"command": "python3",
"args": [
"/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"
],
"env": {
"AZURE_CLIENT_ID": "<AZURE_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<AZURE_CLIENT_SECRET>",
"AZURE_TENANT_ID": "<AZURE_TENANT_ID>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"microsoft-graph-eesb99": {
"command": "python3",
"args": [
"/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"
],
"env": {
"AZURE_CLIENT_ID": "<AZURE_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<AZURE_CLIENT_SECRET>",
"AZURE_TENANT_ID": "<AZURE_TENANT_ID>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"microsoft-graph-eesb99": {
"command": "python3",
"args": [
"/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"
],
"env": {
"AZURE_CLIENT_ID": "<AZURE_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<AZURE_CLIENT_SECRET>",
"AZURE_TENANT_ID": "<AZURE_TENANT_ID>"
}
}
}
}Environment variables
AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_ID
Replace the placeholders with your own credentials and keep them out of version control.