Microsoft 365 administration via Graph API application permissions (read-only by default).
What it says
The record the registry holds
How you get it
There is no address to call. This one is a package you install and run yourself, wherever your assistant runs.
@okapi-ca/ms-365-admin-mcp-server · npm · 0.6.3
the recordCopied from the official MCP registry, exactly as it holds it.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.okapi-ca/ms-365-admin",
"description": "Microsoft 365 administration via Graph API application permissions (read-only by default).",
"title": "Microsoft 365 Admin",
"repository": {
"url": "https://github.com/okapi-ca/ms-365-admin-mcp-server",
"source": "github"
},
"version": "0.6.3",
"websiteUrl": "https://github.com/okapi-ca/ms-365-admin-mcp-server",
"packages": [
{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "@okapi-ca/ms-365-admin-mcp-server",
"version": "0.6.3",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Azure AD tenant ID (specific GUID, not 'common').",
"isRequired": true,
"name": "MS365_ADMIN_MCP_TENANT_ID"
},
{
"description": "App registration client ID with the required application permissions.",
"isRequired": true,
"name": "MS365_ADMIN_MCP_CLIENT_ID"
},
{
"description": "App registration client secret. Prefer Azure Key Vault via MS365_ADMIN_MCP_KEYVAULT_URL for production.",
"isRequired": true,
"isSecret": true,
"name": "MS365_ADMIN_MCP_CLIENT_SECRET"
},
{
"description": "Optional Azure Key Vault URL. When set, secrets are pulled from the vault and override the env-var values above.",
"name": "MS365_ADMIN_MCP_KEYVAULT_URL"
},
{
"description": "Cloud environment: 'global' (default) or 'china' (21Vianet).",
"name": "MS365_ADMIN_MCP_CLOUD_TYPE"
},
{
"description": "Cap on the $top query parameter to limit result size.",
"name": "MS365_ADMIN_MCP_MAX_TOP"
},
{
"description": "Set to 'true' or '1' to force read-only mode (default behavior; mutations require --allow-writes).",
"name": "READ_ONLY"
},
{
"description": "Regex to filter the catalog of available tools.",
"name": "ENABLED_TOOLS"
}
]
}
],
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"categories": [
"security",
"identity",
"device-management",
"audit",
"compliance"
],
"tags": [
"microsoft-365",
"azure-ad",
"entra-id",
"graph-api",
"intune",
"defender",
"conditional-access",
"secure-score",
"incident-response"
]
}
}
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-05-21T17:43:06.345122Z",
"publishedAt": "2026-05-21T17:43:06.345122Z",
"updatedAt": "2026-05-21T17:43:06.345122Z",
"isLatest": true
}
}
}
Make it installable
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
What this is
MCP server
application/mcp-server-record+jsonlocal · you run it yourselfversion 0.6.3last seen 2026-08-23
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.