WYRE-AI/msp-claude-plugins/msp-claude-plugins/m365/m365/skills/files/SKILL.md
Microsoft 365 Files
OneDrive personal storage and SharePoint document libraries, both reached through the shared Microsoft Graph `/drives` endpoint: drive and item addressing, sharing permissions, storage quotas, file search, and the offboarding file-transfer workflow.
- Source repository stars
- 42
- Declared platforms
- 0
- Static risk flags
- 2
- Last source update
- 2026-08-28
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
OneDrive personal storage and SharePoint document libraries, both reached through the shared Microsoft Graph `/drives` endpoint: drive and item addressing, sharing permissions, storage quotas, file search, and the offboarding file-transfer workflow.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/m365/m365/skills/files"Inspect the Agent Skill "Microsoft 365 Files" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/m365/m365/skills/files/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Pre-Offboarding Data Review
Before offboarding, identify files the user owns that are widely shared:
Before offboarding, identify files the user owns that are widely shared:Look for items with scope: anonymous sharing links — these should be cleaned up or ownership transferred. - 02
Anti-triggers
Files on the machine this session is running on — "read the
Files on the machine this session is running on — "read theRestoring a deleted or ransomware-encrypted file — past theMSP documentation, runbooks, and stored credentials — those live - 03
Core Concepts
Review the “Core Concepts” section in the pinned source before continuing.
Review and apply the “Core Concepts” source section. - 04
Graph API Patterns
state values: normal, nearing, critical, exceeded
state values: normal, nearing, critical, exceededtype: view, edit, embed scope: anonymous, organization, usersGrant another user access to the departing employee's entire OneDrive: - 05
Get a User's OneDrive Info (Quota)
state values: normal, nearing, critical, exceeded
state values: normal, nearing, critical, exceeded
Permission review
Static risk signals and limitations
Network access
The documentation includes network, browsing, or remote request actions.
"webUrl": "https://contoso-my.sharepoint.com/..."Reads files
The documentation asks the agent to read local files, directories, or repositories.
### Grant Direct Access to a File/FolderReads files
The documentation asks the agent to read local files, directories, or repositories.
### User Can't Access a FileEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 42 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- WYRE-AI/msp-claude-plugins
- Skill path
- msp-claude-plugins/m365/m365/skills/files/SKILL.md
- Commit
- 5005f73ba2f52cd299f58aa6bb79f4e70ae87103
- License
- Apache-2.0
- Collected
- 2026-08-28
- Default branch
- main
View the original SKILL.md
Microsoft 365 Files (OneDrive & SharePoint)
Overview
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.
Anti-triggers
- Files on the machine this session is running on — "read the file", "find the config", "list the directory" almost always mean the local filesystem, which Claude Code's own file tools handle. This skill only reaches a customer's cloud storage through Graph, and loading it for local work wastes the call.
- Restoring a deleted or ransomware-encrypted file — past the
recycle bin and retention window, Graph has nothing to return; use
the
backup-packorkaseya/datto-saas-protection. - MSP documentation, runbooks, and stored credentials — those live
in the documentation platform, not the customer's OneDrive; use
kaseya/it-glueorhudu. - A tenant-wide external-sharing posture review — this skill
inspects one item's permissions; the policy question across the
tenant or the fleet is
m365-securityorcipp.
Core Concepts
| 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} |
Graph API Patterns
Get a User's OneDrive Info (Quota)
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
List Files in Root
GET /v1.0/users/{userId}/drive/root/children?$select=id,name,size,lastModifiedDateTime,webUrl,folder,file
List Files in a Specific Folder
GET /v1.0/users/{userId}/drive/items/{folderId}/children?$select=id,name,size,lastModifiedDateTime,webUrl
Search for Files Across OneDrive
GET /v1.0/users/{userId}/drive/root/search(q='budget 2024')?$select=id,name,parentReference,lastModifiedDateTime,webUrl
Get File Sharing Permissions
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/..."
}
}
]
}
Share a File (Create Sharing Link)
POST /v1.0/drives/{driveId}/items/{itemId}/createLink
Content-Type: application/json
{
"type": "view",
"scope": "organization"
}
type: view, edit, embed
scope: anonymous, organization, users
Grant Direct Access to a File/Folder
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"
}
Remove a Permission
DELETE /v1.0/drives/{driveId}/items/{itemId}/permissions/{permissionId}
Transfer OneDrive Access (Offboarding)
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>
SharePoint Document Libraries
List SharePoint Sites
GET /v1.0/sites?search=*&$select=id,displayName,webUrl,createdDateTime
List Drives (Document Libraries) in a Site
GET /v1.0/sites/{siteId}/drives?$select=id,name,driveType,quota
Get Files from a SharePoint Library
GET /v1.0/drives/{driveId}/root/children?$select=id,name,size,lastModifiedDateTime,webUrl
Common MSP Workflows
User Can't Access a File
- Get the file's current permissions:
GET /items/{id}/permissions - Check if user has direct access or if it's link-based
- Check if user is in a group that has access:
GET /users/{id}/memberOf - If sharing link expired: create new sharing link
- If direct access missing: add via
/invite
Pre-Offboarding Data Review
Before 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.
OneDrive Quota Alert
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 Handling
| 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 |
Permissions Required
| 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 |
Related Skills
- M365 Users - User offboarding, OneDrive transfer
- M365 Security - Audit external sharing
- M365 API Patterns - Search syntax, pagination
Frequently asked questions
What to verify before installation and use
What does the Microsoft 365 Files source document cover?
OneDrive personal storage and SharePoint document libraries, both reached through the shared Microsoft Graph `/drives` endpoint: drive and item addressing, sharing permissions, storage quotas, file search, and the offboarding file-transfer workflow.
How do I install Microsoft 365 Files?
The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/m365/m365/skills/files". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged network, read-files in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
garrytan/gbrain
bulk-ingestion
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
app-store-optimization
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
migrate-vstest-to-mtp
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing
oaustegard/claude-skills
featuring
Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre