PluginBench
MCP Server

Microsoft 365 Admin MCP Server

io.github.okapi-ca/ms-365-admin

What is the Microsoft 365 Admin MCP server?

Microsoft 365 administration via Graph API application permissions (read-only by default).

How to install Microsoft 365 Admin

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • MS365_ADMIN_MCP_TENANT_ID
    required

    Azure AD tenant ID (specific GUID, not 'common').

  • MS365_ADMIN_MCP_CLIENT_ID
    required

    App registration client ID with the required application permissions.

  • MS365_ADMIN_MCP_CLIENT_SECRET
    required
    secret

    App registration client secret. Prefer Azure Key Vault via MS365_ADMIN_MCP_KEYVAULT_URL for production.

  • MS365_ADMIN_MCP_KEYVAULT_URL

    Optional Azure Key Vault URL. When set, secrets are pulled from the vault and override the env-var values above.

  • MS365_ADMIN_MCP_CLOUD_TYPE

    Cloud environment: 'global' (default) or 'china' (21Vianet).

  • MS365_ADMIN_MCP_MAX_TOP

    Cap on the $top query parameter to limit result size.

  • READ_ONLY

    Set to 'true' or '1' to force read-only mode (default behavior; mutations require --allow-writes).

  • ENABLED_TOOLS

    Regex to filter the catalog of available tools.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "ms-365-admin": {
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "<YOUR_MS365_ADMIN_MCP_TENANT_ID>",
        "MS365_ADMIN_MCP_CLIENT_ID": "<YOUR_MS365_ADMIN_MCP_CLIENT_ID>",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "<YOUR_MS365_ADMIN_MCP_CLIENT_SECRET>",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "<YOUR_MS365_ADMIN_MCP_KEYVAULT_URL>",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "<YOUR_MS365_ADMIN_MCP_CLOUD_TYPE>",
        "MS365_ADMIN_MCP_MAX_TOP": "<YOUR_MS365_ADMIN_MCP_MAX_TOP>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ENABLED_TOOLS": "<YOUR_ENABLED_TOOLS>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "ms-365-admin": {
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "<YOUR_MS365_ADMIN_MCP_TENANT_ID>",
        "MS365_ADMIN_MCP_CLIENT_ID": "<YOUR_MS365_ADMIN_MCP_CLIENT_ID>",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "<YOUR_MS365_ADMIN_MCP_CLIENT_SECRET>",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "<YOUR_MS365_ADMIN_MCP_KEYVAULT_URL>",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "<YOUR_MS365_ADMIN_MCP_CLOUD_TYPE>",
        "MS365_ADMIN_MCP_MAX_TOP": "<YOUR_MS365_ADMIN_MCP_MAX_TOP>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ENABLED_TOOLS": "<YOUR_ENABLED_TOOLS>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ms-365-admin": {
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "<YOUR_MS365_ADMIN_MCP_TENANT_ID>",
        "MS365_ADMIN_MCP_CLIENT_ID": "<YOUR_MS365_ADMIN_MCP_CLIENT_ID>",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "<YOUR_MS365_ADMIN_MCP_CLIENT_SECRET>",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "<YOUR_MS365_ADMIN_MCP_KEYVAULT_URL>",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "<YOUR_MS365_ADMIN_MCP_CLOUD_TYPE>",
        "MS365_ADMIN_MCP_MAX_TOP": "<YOUR_MS365_ADMIN_MCP_MAX_TOP>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ENABLED_TOOLS": "<YOUR_ENABLED_TOOLS>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "ms-365-admin": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "<YOUR_MS365_ADMIN_MCP_TENANT_ID>",
        "MS365_ADMIN_MCP_CLIENT_ID": "<YOUR_MS365_ADMIN_MCP_CLIENT_ID>",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "<YOUR_MS365_ADMIN_MCP_CLIENT_SECRET>",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "<YOUR_MS365_ADMIN_MCP_KEYVAULT_URL>",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "<YOUR_MS365_ADMIN_MCP_CLOUD_TYPE>",
        "MS365_ADMIN_MCP_MAX_TOP": "<YOUR_MS365_ADMIN_MCP_MAX_TOP>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ENABLED_TOOLS": "<YOUR_ENABLED_TOOLS>"
      }
    }
  }
}
Claude Code
claude mcp add ms-365-admin --env MS365_ADMIN_MCP_TENANT_ID=<YOUR_MS365_ADMIN_MCP_TENANT_ID> --env MS365_ADMIN_MCP_CLIENT_ID=<YOUR_MS365_ADMIN_MCP_CLIENT_ID> --env MS365_ADMIN_MCP_CLIENT_SECRET=<YOUR_MS365_ADMIN_MCP_CLIENT_SECRET> --env MS365_ADMIN_MCP_KEYVAULT_URL=<YOUR_MS365_ADMIN_MCP_KEYVAULT_URL> --env MS365_ADMIN_MCP_CLOUD_TYPE=<YOUR_MS365_ADMIN_MCP_CLOUD_TYPE> --env MS365_ADMIN_MCP_MAX_TOP=<YOUR_MS365_ADMIN_MCP_MAX_TOP> --env READ_ONLY=<YOUR_READ_ONLY> --env ENABLED_TOOLS=<YOUR_ENABLED_TOOLS> -- npx -y @okapi-ca/ms-365-admin-mcp-server

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository →

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository →

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository →

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository →

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository →