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.
npx claudepluginhub the-focus-ai/claude-marketplace --plugin microsoft-skillThis skill uses the workspace's default tool permissions.
Access Outlook and Hotmail emails via the Microsoft Graph API. Supports reading messages, listing inbox contents, and downloading emails as `.eml` files.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
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/.