From m365
Use this skill when working with Microsoft 365 files - OneDrive personal storage, SharePoint document libraries, file sharing permissions, storage quotas, or searching across a user's files. Covers OneDrive and SharePoint via Microsoft Graph for MSP technicians handling file access issues.
How this skill is triggered — by the user, by Claude, or both
Slash command
/m365:filesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Microsoft 365 provides two file storage surfaces: OneDrive (personal, per-user) and SharePoint (team/department libraries). Both are accessible through the same Microsoft Graph `/drives` endpoint. MSP support tasks include investigating access issues, checking storage quotas, managing sharing permissions, and transferring file access during offboarding.
Microsoft 365 provides two file storage surfaces: OneDrive (personal, per-user) and SharePoint (team/department libraries). Both are accessible through the same Microsoft Graph /drives endpoint. MSP support tasks include investigating access issues, checking storage quotas, managing sharing permissions, and transferring file access during offboarding.
| Surface | Use | Graph Resource |
|---|---|---|
| OneDrive Personal | Individual user's documents | /users/{id}/drive |
| SharePoint Site Drive | Team/department files | /sites/{id}/drives |
| SharePoint Library | Document library within a site | /drives/{driveId} |
GET /v1.0/users/{userId}/drive?$select=id,name,quota
Response:
{
"id": "drive-guid",
"name": "OneDrive",
"quota": {
"used": 5368709120,
"remaining": 1127428915200,
"total": 1132797624320,
"state": "normal"
}
}
state values: normal, nearing, critical, exceeded
GET /v1.0/users/{userId}/drive/root/children?$select=id,name,size,lastModifiedDateTime,webUrl,folder,file
GET /v1.0/users/{userId}/drive/items/{folderId}/children?$select=id,name,size,lastModifiedDateTime,webUrl
GET /v1.0/users/{userId}/drive/root/search(q='budget 2024')?$select=id,name,parentReference,lastModifiedDateTime,webUrl
GET /v1.0/drives/{driveId}/items/{itemId}/permissions
Response includes:
{
"value": [
{
"id": "perm-id",
"roles": ["write"],
"grantedToV2": {
"user": { "displayName": "Bob Manager", "email": "[email protected]" }
},
"link": null
},
{
"id": "link-id",
"roles": ["read"],
"link": {
"type": "view",
"scope": "anonymous",
"webUrl": "https://contoso-my.sharepoint.com/..."
}
}
]
}
POST /v1.0/drives/{driveId}/items/{itemId}/createLink
Content-Type: application/json
{
"type": "view",
"scope": "organization"
}
type: view, edit, embed
scope: anonymous, organization, users
POST /v1.0/drives/{driveId}/items/{itemId}/invite
Content-Type: application/json
{
"requireSignIn": true,
"sendInvitation": false,
"roles": ["read"],
"recipients": [
{ "email": "[email protected]" }
],
"message": "Shared as part of employee transition"
}
DELETE /v1.0/drives/{driveId}/items/{itemId}/permissions/{permissionId}
Grant another user access to the departing employee's entire OneDrive:
POST /v1.0/users/{departingUserId}/drive/root/invite
Content-Type: application/json
{
"requireSignIn": true,
"sendInvitation": false,
"roles": ["write"],
"recipients": [{ "email": "[email protected]" }]
}
Full ownership transfer (changing site admin) requires SharePoint admin PowerShell:
Set-SPOSite -Identity <url> -Owner <email>
GET /v1.0/sites?search=*&$select=id,displayName,webUrl,createdDateTime
GET /v1.0/sites/{siteId}/drives?$select=id,name,driveType,quota
GET /v1.0/drives/{driveId}/root/children?$select=id,name,size,lastModifiedDateTime,webUrl
GET /items/{id}/permissionsGET /users/{id}/memberOf/inviteBefore offboarding, identify files the user owns that are widely shared:
GET /v1.0/users/{userId}/drive/root/search(q='*')?$select=id,name,permissions,parentReference
Look for items with scope: anonymous sharing links — these should be cleaned up or ownership transferred.
Check users approaching quota limits:
GET /v1.0/users/{userId}/drive?$select=quota
If quota.state is nearing (>80%) or critical (>90%), alert for cleanup or quota increase.
| Error | Cause | Resolution |
|---|---|---|
itemNotFound | File or folder doesn't exist | Check path or item ID |
accessDenied | No Files.Read permission | Grant permission and admin consent |
quotaLimitReached | OneDrive full | Clean up or expand quota |
sharingDisabled | Tenant sharing policy blocks external | Review SharePoint admin settings |
| Task | Microsoft Graph Permission |
|---|---|
| Read user's files | Files.Read.All |
| Read/write files | Files.ReadWrite.All |
| Read SharePoint sites | Sites.Read.All |
| Manage sharing | Files.ReadWrite.All |
| SharePoint admin | Sites.ReadWrite.All |
npx claudepluginhub p/drewrox2009-m365-msp-claude-plugins-m365-m365Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
Provides security patterns for autonomous trading agents handling wallets and transactions. Covers prompt injection, spend limits, simulation, circuit breakers, MEV protection, and key handling.