From microsoft-skill
This skill should be used when the user asks to "read emails", "check outlook", "read hotmail", "list messages", "download email", "check inbox", "microsoft mail", "outlook messages", "get my emails", or mentions Outlook/Hotmail email access. Provides Microsoft Graph API integration for reading and downloading emails from Outlook/Hotmail accounts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/microsoft-skill:microsoft-outlookThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Access Outlook and Hotmail emails via the Microsoft Graph API. Supports reading messages, listing inbox contents, and downloading emails as `.eml` files.
Access Outlook and Hotmail emails via the Microsoft Graph API. Supports reading messages, listing inbox contents, and downloading emails as .eml files.
Before using email commands, ensure authentication is configured:
pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts setup
pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts auth
auth --browser Safari on macOS if your default browser is causing issues.All commands output JSON for easy parsing.
| Command | Description |
|---|---|
setup | Configure Microsoft API credentials (interactive) |
auth | Run OAuth flow - opens browser for login |
auth --global | Store token globally instead of per-project |
check | Verify authentication status |
| Command | Description |
|---|---|
me | Get authenticated user profile |
| Command | Description |
|---|---|
messages | List recent messages (default: 10) |
messages --limit N | List N recent messages |
download <id> | Download specific message as .eml file |
download-all | Download recent messages to ./downloads |
download-all --limit N | Download N recent messages |
Execute commands via:
pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts <command> [options]
Check inbox:
pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts messages --limit 5
Download specific email:
pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts download <message-id>
Get user profile:
pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts me
All commands return JSON:
messages response:
[
{
"id": "AAMk...",
"subject": "Meeting Tomorrow",
"receivedDateTime": "2024-01-15T10:30:00Z",
"from": {"emailAddress": {"name": "John", "address": "john@example.com"}},
"isRead": false,
"hasAttachments": true
}
]
me response:
{
"id": "user-id",
"displayName": "User Name",
"mail": "user@outlook.com",
"userPrincipalName": "user@outlook.com"
}
.claude/microsoft-skill.local.json (default)~/.config/microsoft-skill/tokens.json (with --global)Project tokens allow different Microsoft accounts per project.
The skill uses OAuth 2.0 with PKCE:
auth commandlocalhost:3000Tokens auto-refresh when expired.
"Token not found" error:
Run authentication: pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts auth
"No credentials found" error:
Run setup: pnpm --prefix "${CLAUDE_PLUGIN_ROOT}" tsx scripts/microsoft.ts setup
Token expired:
The skill auto-refreshes tokens. If issues persist, re-run auth.
references/setup-guide.md - Detailed Microsoft Entra app registration guidereferences/api-reference.md - Microsoft Graph API endpoints and typesThe main CLI script is at scripts/microsoft.ts with supporting libraries in scripts/lib/.
npx claudepluginhub the-focus-ai/claude-marketplace --plugin microsoft-skillManages Gmail across multiple accounts: read, search, send, reply to emails, and handle labels using Python scripts and API with structured sending workflow.
Automates Gmail operations like searching, reading, sending emails, managing drafts/labels via Python CLI scripts with standalone OAuth. Requires Google Workspace.
Manages email via Himalaya CLI: lists inboxes/folders, reads unread messages, sends/replies/forwards emails, switches accounts. Use for read/send email tasks.