Microsoft 365 Admin for VS Code
io.github.okapi-ca/ms-365-admin
Microsoft 365 administration via Graph API application permissions (read-only by default).
client:VS Code
transport:stdio
runtime:npm
Install Microsoft 365 Admin in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "ms365-admin-mcp-tenant-id",
"description": "MS365_ADMIN_MCP_TENANT_ID",
"password": true
},
{
"type": "promptString",
"id": "ms365-admin-mcp-client-id",
"description": "MS365_ADMIN_MCP_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "ms365-admin-mcp-client-secret",
"description": "MS365_ADMIN_MCP_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "ms365-admin-mcp-keyvault-url",
"description": "MS365_ADMIN_MCP_KEYVAULT_URL",
"password": true
},
{
"type": "promptString",
"id": "ms365-admin-mcp-cloud-type",
"description": "MS365_ADMIN_MCP_CLOUD_TYPE",
"password": true
},
{
"type": "promptString",
"id": "ms365-admin-mcp-max-top",
"description": "MS365_ADMIN_MCP_MAX_TOP",
"password": true
},
{
"type": "promptString",
"id": "read-only",
"description": "READ_ONLY",
"password": true
},
{
"type": "promptString",
"id": "enabled-tools",
"description": "ENABLED_TOOLS",
"password": true
}
],
"servers": {
"ms-365-admin": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@okapi-ca/ms-365-admin-mcp-server"
],
"env": {
"MS365_ADMIN_MCP_TENANT_ID": "${input:ms365-admin-mcp-tenant-id}",
"MS365_ADMIN_MCP_CLIENT_ID": "${input:ms365-admin-mcp-client-id}",
"MS365_ADMIN_MCP_CLIENT_SECRET": "${input:ms365-admin-mcp-client-secret}",
"MS365_ADMIN_MCP_KEYVAULT_URL": "${input:ms365-admin-mcp-keyvault-url}",
"MS365_ADMIN_MCP_CLOUD_TYPE": "${input:ms365-admin-mcp-cloud-type}",
"MS365_ADMIN_MCP_MAX_TOP": "${input:ms365-admin-mcp-max-top}",
"READ_ONLY": "${input:read-only}",
"ENABLED_TOOLS": "${input:enabled-tools}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs