← Back to Skills Marketplace
Microsoft 365
by
Robert Janssen
· GitHub ↗
· v1.0.2
1017
Downloads
0
Stars
2
Active Installs
3
Versions
Install in OpenClaw
/install microsoft365
Description
Microsoft 365 integration for Outlook, Calendar, Contacts, and OneDrive via Microsoft Graph API. Supports reading/sending emails, managing calendar events, a...
Usage Guidance
This skill appears to do what it claims: a local Microsoft Graph client using Device Code Flow. Before installing, consider the following: (1) Tokens and refresh tokens are stored locally under ~/.openclaw/credentials/ms365.tokens.<account>.json — treat those files as sensitive and don't share them. (2) The skill will load an optional ~/.openclaw/credentials/ms365.env and will respect OPENCLAW_HOME if set — verify that file's contents before use. (3) When you register the Azure app, limit OAuth scopes to the minimum needed (the bundled scopes are broad and allow file and mail write access). (4) There's a small documentation mismatch (README reference to tokens.json) — if you rely on repository-local token storage, be aware the code writes to ~/.openclaw instead. (5) Review the included source if you need assurance; network calls go to Microsoft endpoints only. If you want stricter guarantees, create a dedicated Azure app with minimal scopes and test in a low-privilege account first.
Capability Analysis
Type: OpenClaw Skill
Name: microsoft365
Version: 1.0.2
The skill is classified as suspicious primarily due to a potential path traversal vulnerability in the `uploadFile` function within `src/api.js`. The `fileName` parameter, which can be user-controlled, is directly interpolated into the Microsoft Graph API URL path (`/me/drive/root:/${fileName}:/content`). If the Graph API does not sufficiently sanitize or restrict `fileName` (e.g., against `../` sequences), an attacker could potentially upload files to unintended locations within the user's OneDrive. Additionally, the skill requests broad permissions (`Files.ReadWrite.All`, `Mail.Send`, `Calendars.ReadWrite`, `Contacts.ReadWrite`), which, while necessary for its stated functionality, increase the impact if any vulnerability were exploited. There is no evidence of intentional malicious behavior like exfiltration to unauthorized endpoints or prompt injection in `SKILL.md`.
Capability Assessment
Purpose & Capability
Name/description (Outlook, Calendar, Contacts, OneDrive via Microsoft Graph) match the code and required env vars (MICROSOFT_CLIENT_ID, MICROSOFT_TENANT_ID). The skill needs Node and makes Graph API calls for the listed features; requested binaries/envs are appropriate.
Instruction Scope
Runtime instructions are limited to running node index.js, registering an Azure app, and following the device-code flow. The skill loads an optional ~/.openclaw/credentials/ms365.env and stores tokens under ~/.openclaw/credentials/ms365.tokens.<account>.json — this is within scope for a local Graph client but is an important behavior to be aware of. Minor inconsistency: README mentions tokens.json in the repo while the code uses ~/.openclaw/credentials for token storage.
Install Mechanism
No install/download spec; code is included and runs under Node. package.json has no external dependencies and there are no remote installers or fetched archives, so install risk is low.
Credentials
Declared env vars (MICROSOFT_CLIENT_ID, MICROSOFT_TENANT_ID) are appropriate. The code also accepts optional client secret envs (MICROSOFT_CLIENT_SECRET or account-prefixed variants) and reads OPENCLAW_HOME if present to locate credentials — OPENCLAW_HOME is not declared in metadata but its use is benign. The OAuth scopes requested are broad (Files.ReadWrite.All, Mail.Send, Calendars.ReadWrite, Contacts.ReadWrite), which matches functionality but means the app has wide access; consider limiting scopes when registering the app.
Persistence & Privilege
The skill persists tokens to a user-scoped directory (~/.openclaw/credentials) and does not request always:true or modify other skills. Autonomous invocation is allowed by platform default (disable-model-invocation=false) but this is normal and not excessive here.
How to Use
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install microsoft365 - After installation, invoke the skill by name or use
/microsoft365 - Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Fixed security scanner issues: updated metadata to declare env vars and removed debug logging of ClientID
v1.0.1
Updated documentation to match implementation and translated to English
v1.0.0
Initial publish of custom MS integration
Metadata
Frequently Asked Questions
What is Microsoft 365?
Microsoft 365 integration for Outlook, Calendar, Contacts, and OneDrive via Microsoft Graph API. Supports reading/sending emails, managing calendar events, a... It is an AI Agent Skill for Claude Code / OpenClaw, with 1017 downloads so far.
How do I install Microsoft 365?
Run "/install microsoft365" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Microsoft 365 free?
Yes, Microsoft 365 is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Microsoft 365 support?
Microsoft 365 is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Microsoft 365?
It is built and maintained by Robert Janssen (@robert-janssen); the current version is v1.0.2.
More Skills