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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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