ms-graph-mcp
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., "@ms-graph-mcpcreate user alice@contoso.com with license"
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.
graph-mcp
Microsoft Graph MCP server — exposes Azure Entra ID user and license management as MCP tools over HTTP-SSE.
Overview
This server implements the Model Context Protocol (HTTP-SSE transport) and wraps the Microsoft Graph API. It is designed for gateway mode: the caller obtains an Azure access token via OAuth and passes it per-request through a header. The server itself holds no credentials.
Related MCP server: outlook-mcp
Quick Start
Docker (recommended)
docker compose up --buildThe server starts on http://localhost:8080.
Local (uv)
uv sync
python -m graph_mcpHealth Check
curl http://localhost:8080/health
# {"status": "ok", "service": "graph-mcp", "transport": "http"}No token is required for the health endpoint.
Authentication
Every request to /mcp must include a valid Azure access token:
X-Ms-Graph-Token: <access_token>The token must be issued for the https://graph.microsoft.com/.default scope with the permissions listed per tool below. OAuth acquisition is handled by the caller — this server only forwards the token to Graph API.
Missing or invalid tokens return 401 Unauthorized.
Environment Variables
Variable | Default | Description |
|
| Listening port |
|
| Listening host |
|
| Override for sovereign clouds (GCC High, DoD, China 21Vianet) |
MCP Endpoint
POST http://localhost:8080/mcpConnect your MCP client with:
Transport:
http(Streamable HTTP / SSE)Header:
X-Ms-Graph-Token: <access_token>
Tools
Tool | 功能 | Required Scope |
| 按 UPN 或邮箱查询 Entra ID 用户是否存在 |
|
| 创建新的 Entra ID 用户,同时设置 usage_location 以便后续分配许可 |
|
| 将用户加入一个或多个组,已在组内则幂等跳过 |
|
| 查询租户已订阅 SKU 的许可库存与剩余数量 |
|
| 为用户分配指定 SKU 许可,可选择禁用部分服务计划 |
|
| 以指定用户身份发送邮件,支持 To / CC / BCC 及 HTML 正文 |
|
Typical Workflow
1. graph_check_user_exists → 查重,确认账号不存在
2. graph_create_user → 建号并设置 usage_location
3. graph_assign_groups → 分配组
4. graph_check_license_stock → 检查许可库存
5. graph_assign_license → 配许可
6. graph_send_mail → 发送通知邮件(可选)Sovereign Cloud Support
Set GRAPH_BASE_URL to override the default endpoint:
Cloud | Base URL |
Public (default) |
|
US Government GCC High |
|
US Government DoD |
|
China (21Vianet) |
|
This server cannot be installed
Maintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MSPbotsAI/ms-graph-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server