Skip to main content
Glama
ry-ops

Microsoft Graph MCP Server

by ry-ops

[!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

  1. Microsoft Azure App Registration:

    • An Azure AD application with the following API permissions:

      • User.ReadWrite.All

      • Directory.ReadWrite.All

      • Group.ReadWrite.All

      • Organization.Read.All

    • Admin consent granted for these permissions

    • A client secret generated

  2. Python 3.10+ and uv package manager

Setup

1. Install uv (if not already installed)

# macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

2. Clone and Setup Project

# Create project directory mkdir microsoft-graph-mcp cd microsoft-graph-mcp # Copy the server files # (copy mcp_graph_server.py and pyproject.toml to this directory) # Create virtual environment and install dependencies uv venv source .venv/bin/activate # On Windows: .venv\Scriptsctivate uv pip install -e .

3. Configure Environment Variables

Create a .env file in the project root:

MICROSOFT_TENANT_ID=your-tenant-id MICROSOFT_CLIENT_ID=your-client-id MICROSOFT_CLIENT_SECRET=your-client-secret

To find these values:

  1. Go to Azure Portal

  2. Navigate to Azure Active Directory → App registrations

  3. Select your app registration

  4. Tenant ID: Found in the Overview page

  5. Client ID: Application (client) ID in the Overview page

  6. 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

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ry-ops/microsoft-graph-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server