Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Microsoft Graph MCP Serverassign a Microsoft 365 E3 license to john.doe@company.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
[!Version](https://github.com/ry-ops/microsoft-graph-mcp-server/releases) [!License](LICENSE) [!Python](https://python.org) [!MCP](https://modelcontextprotocol.io)
Microsoft Graph API MCP Server
A Model Context Protocol (MCP) server that integrates Microsoft Graph API with Claude, enabling management of Microsoft 365 users, licenses, and groups.
Features
User Management: Create new Microsoft 365 users
License Management: Assign licenses to users with optional service plan customization
Group Management: Add users to groups
Query Operations: List available licenses, groups, and search for users
A2A Protocol Support: Agent-to-Agent communication for automated M365 administration
Prerequisites
Microsoft Azure App Registration:
An Azure AD application with the following API permissions:
User.ReadWrite.AllDirectory.ReadWrite.AllGroup.ReadWrite.AllOrganization.Read.All
Admin consent granted for these permissions
A client secret generated
Python 3.10+ and uv package manager
Setup
1. Install uv (if not already installed)
2. Clone and Setup Project
3. Configure Environment Variables
Create a .env file in the project root:
To find these values:
Go to Azure Portal
Navigate to Azure Active Directory → App registrations
Select your app registration
Tenant ID: Found in the Overview page
Client ID: Application (client) ID in the Overview page
Client Secret: Create one in Certificates & secrets
4. Configure Claude Desktop
Add the server configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: `%APPDATA%\Claude