Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
markpitt avatar

Microsoft Graph

  • 246 installs
  • 22 repo stars
  • Updated February 19, 2026
  • markpitt/claude-skills

Connect apps to Microsoft 365—mail, calendar, Teams, OneDrive, and Entra ID—when building enterprise SaaS, sync jobs, or agent tools.

About

Teaches Microsoft Graph integration patterns for enterprise apps: registering Azure apps, selecting delegated or application permissions, calling mail/calendar/drive/Teams APIs, handling token refresh, delta sync, webhooks, and common Microsoft 365 automation scenarios.

  • OAuth2 and Entra ID permission models
  • Mail, calendar, files, and Teams endpoints
  • Delta queries and webhook subscriptions
  • Batching, throttling, and retry strategies
  • Tenant-scoped enterprise deployment patterns

Microsoft Graph by the numbers

  • 246 all-time installs (skills.sh)
  • +3 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #1,555 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/markpitt/claude-skills --skill microsoft-graph

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs246
repo stars22
Last updatedFebruary 19, 2026
Repositorymarkpitt/claude-skills

What it does

Connect apps to Microsoft 365—mail, calendar, Teams, OneDrive, and Entra ID—when building enterprise SaaS, sync jobs, or agent tools.

Files

SKILL.mdMarkdownGitHub ↗

Microsoft Graph API Orchestration Skill

Microsoft Graph is a unified REST API endpoint for accessing Microsoft Cloud resources across Microsoft 365, Windows, and Enterprise Mobility + Security. Base URL: https://graph.microsoft.com/{version}/{resource}

API Versions: v1.0 (production) or beta (preview) Authentication: OAuth 2.0 via Azure AD Data Format: JSON

When to Load Which Resource

TaskServiceLoad Resource
Setup auth, register apps, manage credentialsApplications & Authresources/authentication-apps.md
Manage users, groups, organization, directoryIdentity & Accessresources/identity-access.md
Email, folders, attachments, rules, signaturesMail Operationsresources/mail-operations.md
Calendar, events, scheduling, meetings, free/busyCalendar & Schedulingresources/calendar-scheduling.md
Upload files, folders, share, OneDrive, SharePointFiles & Storageresources/files-storage.md
Teams, channels, chats, presence, online meetingsTeams & Communicationsresources/teams-communications.md
Planner tasks, To Do lists, OneNote notebooksPlanning & Notesresources/planning-notes.md
Security alerts, compliance, device management, reportsSecurity & Governanceresources/security-governance.md

Orchestration Protocol

Phase 1: Analyze Your Task

Identify which service area you need by answering:

  • What resource? (users, files, messages, events, etc.)
  • What action? (read, create, update, delete)
  • Who? (signed-in user or service account)
  • Permissions? (delegated or application)

Phase 2: Load the Right Resource

Use the decision table above to find your resource file. Each resource includes:

  • Complete endpoint reference with base paths
  • Request/response examples for all CRUD operations
  • Query parameters and filter options
  • Required permissions (delegated and application)
  • Error handling patterns and best practices
  • Common workflows and patterns

Phase 3: Implement with Confidence

Each resource shows practical, copy-paste-ready examples for your use case.

Universal Graph Concepts

Standard Query Parameters:

$select=prop1,prop2              Choose properties to return
$filter=startsWith(name,'A')     Filter results by condition
$orderby=name desc               Sort results (asc or desc)
$top=25                          Limit to 25 results (default 20)
$skip=50                         Skip first 50 results
$expand=members                  Include related/nested data
$count=true                      Include total count in response
$search="keyword"                Full-text search across content

Standard CRUD Operations:

GET /me/messages?$select=subject&$top=10        # Read
POST /me/events {"subject": "Meeting", ...}     # Create
PATCH /users/{id} {"jobTitle": "Manager"}       # Update
DELETE /me/messages/{id}                        # Delete

Pagination: Always follow @odata.nextLink in responses for complete data sets

Batch Requests: Use POST /$batch to combine 1-20 operations into single call

Delta Queries: Use GET /users/delta to track changes since last query via @odata.deltaLink

Error Response Format:

{"error": {"code": "Code", "message": "Description"}}

Common Status Codes:

  • 200/201/204: Success
  • 400: Invalid request
  • 401: Authentication required
  • 403: Insufficient permissions
  • 404: Resource not found
  • 429: Rate limited (check Retry-After header)
  • 500-503: Server error (implement exponential backoff)

Resource File Index

FileFocusLines
authentication-apps.mdApp registration, OAuth, credentials350+
identity-access.mdUsers, groups, organization, directory350+
mail-operations.mdEmail, folders, attachments, rules400+
calendar-scheduling.mdEvents, recurring, meetings, free/busy350+
files-storage.mdOneDrive, SharePoint, uploads, sharing400+
teams-communications.mdTeams, channels, chats, presence350+
planning-notes.mdPlanner, To Do, OneNote350+
security-governance.mdSecurity, compliance, devices, reports400+

Best Practices

Performance: Use $select for specific properties, implement pagination, cache tokens, use batch for bulk ops, apply delta queries for sync scenarios

Security: Store tokens securely (never in code), request least-privilege permissions, use managed identities for Azure, rotate credentials every 90 days, validate all responses

Development: Test in beta endpoint first, monitor deprecation notices, implement exponential backoff for retries, respect rate limiting, check Graph health status

Troubleshooting:

  • 401 Unauthorized → Check token validity and scopes
  • 403 Forbidden → Verify permissions are configured in Azure AD
  • 404 Not Found → Verify resource ID and that resource exists
  • 429 Too Many Requests → Implement retry with exponential backoff

Tools & SDK Resources

Interactive Testing: Graph Explorer at https://developer.microsoft.com/graph/graph-explorer

SDKs:

  • .NET: Microsoft.Graph NuGet
  • JavaScript/TypeScript: @microsoft/microsoft-graph-client npm
  • Python: msgraph-sdk-python pip

Documentation:

  • API Reference: https://docs.microsoft.com/graph/api/overview
  • Permissions Reference: https://docs.microsoft.com/graph/permissions-reference
  • Changelog: https://docs.microsoft.com/graph/changelog

---

Skill Version: 2.1 | API Versions: v1.0 (production), beta (preview) | Updated: December 2025

Related skills

Backend & APIsintegrationsbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.