Source profileQuality 91/100

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.

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/m365/m365/skills/files"
    Safe inspection promptEditorial

    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

    1. 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.
    2. 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
    3. 03

      Core Concepts

      Review the “Core Concepts” section in the pinned source before continuing.

      Review and apply the “Core Concepts” source section.
    4. 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:
    5. 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

    medium · line 99

    The documentation includes network, browsing, or remote request actions.

    "webUrl": "https://contoso-my.sharepoint.com/..."

    Reads files

    low · line 121

    The documentation asks the agent to read local files, directories, or repositories.

    ### Grant Direct Access to a File/Folder

    Reads files

    low · line 185

    The documentation asks the agent to read local files, directories, or repositories.

    ### User Can't Access a File

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars42SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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-pack or kaseya/datto-saas-protection.
    • MSP documentation, runbooks, and stored credentials — those live in the documentation platform, not the customer's OneDrive; use kaseya/it-glue or hudu.
    • 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-security or cipp.

    Core Concepts

    SurfaceUseGraph Resource
    OneDrive PersonalIndividual user's documents/users/{id}/drive
    SharePoint Site DriveTeam/department files/sites/{id}/drives
    SharePoint LibraryDocument 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

    1. Get the file's current permissions: GET /items/{id}/permissions
    2. Check if user has direct access or if it's link-based
    3. Check if user is in a group that has access: GET /users/{id}/memberOf
    4. If sharing link expired: create new sharing link
    5. 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

    ErrorCauseResolution
    itemNotFoundFile or folder doesn't existCheck path or item ID
    accessDeniedNo Files.Read permissionGrant permission and admin consent
    quotaLimitReachedOneDrive fullClean up or expand quota
    sharingDisabledTenant sharing policy blocks externalReview SharePoint admin settings

    Permissions Required

    TaskMicrosoft Graph Permission
    Read user's filesFiles.Read.All
    Read/write filesFiles.ReadWrite.All
    Read SharePoint sitesSites.Read.All
    Manage sharingFiles.ReadWrite.All
    SharePoint adminSites.ReadWrite.All

    Related Skills

    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

    Computed 10029,236

    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.

    Computed 10025,136

    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

    Computed 1005,277

    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

    Computed 100147

    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