brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
ms-onedrive-personal-graphAccess OneDrive Personal (consumer Microsoft accounts) via Microsoft Graph using OAuth device-code flow. Supports ls/mkdir/upload/download/info; safe-by-default (no delete).
Independent GitHub snapshot · Automated classification · Original documentation governs
A small, safe-by-default skill to access OneDrive Personal (consumer Microsoft accounts) using the Microsoft Graph API.
It uses OAuth 2.0 device-code flow (no browser automation needed on the server) and stores tokens locally.
ls)mkdir)info)You need a Client ID.
Create an app registration (recommended):
isFallbackPublicClient=true — the script will tell you if needed.)Note: Some users hit Azure portal sign-in errors like “tenant blocked due to inactivity”. That is not required for OneDrive itself, but it can block creating an app registration. In that case, create the app under a different Entra tenant you control, as long as it’s configured to allow personal Microsoft accounts.
On the machine running OpenClaw:
cd /root/clawd/skills/ms-onedrive-personal-graph
./scripts/onedrive-setup.sh
The script will:
~/.onedrive-mcp/credentials.jsonhttps://graph.microsoft.com/v1.0/me/driveAll commands use the token in ~/.onedrive-mcp/credentials.json.
./scripts/onedrive-cli.sh ls /
./scripts/onedrive-cli.sh mkdir "/Invoices"
./scripts/onedrive-cli.sh upload ./invoice.pdf "/Invoices/invoice.pdf"
./scripts/onedrive-cli.sh download "/Invoices/invoice.pdf" ./invoice.pdf
./scripts/onedrive-cli.sh info "/Invoices/invoice.pdf"
If you get 401/invalid token, refresh with:
./scripts/onedrive-token.sh refresh
This happens when your login is tied to an Entra tenant that Microsoft marked inactive.
Enable Allow public client flows and/or set isFallbackPublicClient=true in the app.
This skill uses the simple upload endpoint (...:/content). For large files, we should add upload-session support.