This document provides a comprehensive reference for all Microsoft Graph MCP tools available in the Darbot Graph MCP Server. The tools are organized hierarchically to work within Visual Studio Code's 128 tool limit and provide complete coverage of Microsoft Graph API operations.
The Darbot Graph MCP Server provides 64+ comprehensive Microsoft Graph tools organized into 10 categories, built on the official Microsoft Graph SDKs:
- Foundation: Microsoft Graph .NET SDK v5.58.0+
- Preview APIs: Microsoft Graph .NET Beta SDK v5.59.0+
- Authentication: Azure.Identity for secure credential management
- Reference: Microsoft Graph PowerShell for comprehensive API coverage patterns
- User Management: 8 tools - Complete user lifecycle management
- Group Management: 8 tools - Security and distribution group operations
- Email Management: 8 tools - Exchange Online mail operations
- Calendar Management: 8 tools - Outlook calendar and scheduling
- Teams Management: 8 tools - Microsoft Teams collaboration
- Files Management: 4 tools - OneDrive and SharePoint file operations
- SharePoint: 3 tools - Sites and content management
- Security: 5 tools - Identity protection and audit logging
- Reports: 4 tools - Usage analytics and activity monitoring
- Applications: 8 tools - Azure AD application management
Total: 64 tools providing comprehensive Microsoft Graph API coverage
All tools follow the hierarchical naming pattern: darbot-graph-{category}-{action}
Examples:
darbot-graph-users-list- List usersdarbot-graph-groups-create- Create a groupdarbot-graph-mail-send- Send an email
Get a list of users from Microsoft Graph with advanced filtering.
Parameters:
top(integer): Number of users to return (max 999)filter(string): OData filter expressionsearch(string): Search query
Example:
{
"name": "darbot-graph-users-list",
"arguments": {
"top": 10,
"filter": "department eq 'IT'"
}
}Get detailed information about a specific user by ID or UPN.
Parameters:
userId(string, required): User ID or User Principal Name
Create a new user account with comprehensive settings.
Parameters:
displayName(string, required): Display name of the useruserPrincipalName(string, required): User principal name (email)mailNickname(string, required): Mail nicknamepassword(string, required): Temporary passwordjobTitle(string): Job titledepartment(string): Department
Update user properties and settings.
Parameters:
userId(string, required): User ID or User Principal NamedisplayName(string): Display name of the userjobTitle(string): Job titledepartment(string): DepartmentofficeLocation(string): Office location
Remove a user from the directory.
Parameters:
userId(string, required): User ID or User Principal Name
Reset user password and force change on next sign-in.
Parameters:
userId(string, required): User ID or User Principal NamenewPassword(string, required): New passwordforceChange(boolean): Force password change on next sign-in
Get user's manager information.
Parameters:
userId(string, required): User ID or User Principal Name
Assign a manager to a user.
Parameters:
userId(string, required): User ID or User Principal NamemanagerId(string, required): Manager's User ID or UPN
Get a list of groups with advanced filtering.
Parameters:
top(integer): Number of groups to return (max 999)filter(string): OData filter expression
Get detailed information about a specific group.
Parameters:
groupId(string, required): Group ID
Create security or Microsoft 365 groups.
Parameters:
displayName(string, required): Display name of the groupmailNickname(string, required): Mail nicknamedescription(string): Group descriptiongroupType(string): Type of group (Security, Microsoft365)
Update group properties and settings.
Parameters:
groupId(string, required): Group IDdisplayName(string): Display name of the groupdescription(string): Group description
Remove a group from the directory.
Parameters:
groupId(string, required): Group ID
Add members to a group.
Parameters:
groupId(string, required): Group IDuserId(string, required): User ID to add to the group
Remove members from a group.
Parameters:
groupId(string, required): Group IDuserId(string, required): User ID to remove from the group
List all group members.
Parameters:
groupId(string, required): Group ID
Send emails with advanced formatting and attachments.
Parameters:
to(array of strings, required): Recipient email addressescc(array of strings): CC recipient email addressesbcc(array of strings): BCC recipient email addressessubject(string, required): Email subjectbody(string, required): Email body contentbodyType(string): Body content type (Text or Html)importance(string): Email importance (Low, Normal, High)
Retrieve user mailbox settings.
Parameters:
userId(string, required): User ID or User Principal Name
List mail folders and subfolders.
Parameters:
userId(string, required): User ID or User Principal Name
Create new mail folders.
Parameters:
userId(string, required): User ID or User Principal NamedisplayName(string, required): Folder display nameparentFolderId(string): Parent folder ID (optional)
Retrieve messages with filtering.
Parameters:
userId(string, required): User ID or User Principal NamefolderId(string): Folder ID (optional)top(integer): Number of messages to returnfilter(string): OData filter expression
Reply to email messages.
Parameters:
userId(string, required): User ID or User Principal NamemessageId(string, required): Message ID to reply tocomment(string, required): Reply content
Forward email messages.
Parameters:
userId(string, required): User ID or User Principal NamemessageId(string, required): Message ID to forwardto(array of strings, required): Recipient email addressescomment(string): Forward comment
Move messages between folders.
Parameters:
userId(string, required): User ID or User Principal NamemessageId(string, required): Message ID to movedestinationFolderId(string, required): Destination folder ID
Retrieve calendar events with advanced filtering.
Parameters:
userId(string, required): User ID or User Principal NamestartTime(string): Start time (ISO 8601)endTime(string): End time (ISO 8601)top(integer): Number of events to return
Create events with attendees and recurrence.
Parameters:
userId(string, required): User ID or User Principal Namesubject(string, required): Event subjectbody(string): Event body contentstartTime(string, required): Start time (ISO 8601)endTime(string, required): End time (ISO 8601)attendees(array of strings): Attendee email addresseslocation(string): Event location
Update existing calendar events.
Parameters:
userId(string, required): User ID or User Principal NameeventId(string, required): Event IDsubject(string): Event subjectbody(string): Event body contentstartTime(string): Start time (ISO 8601)endTime(string): End time (ISO 8601)
Remove calendar events.
Parameters:
userId(string, required): User ID or User Principal NameeventId(string, required): Event ID
List user calendars.
Parameters:
userId(string, required): User ID or User Principal Name
Create new calendars.
Parameters:
userId(string, required): User ID or User Principal Namename(string, required): Calendar namecolor(string): Calendar color
Accept meeting invitations.
Parameters:
userId(string, required): User ID or User Principal NameeventId(string, required): Event IDcomment(string): Optional comment
Decline meeting invitations.
Parameters:
userId(string, required): User ID or User Principal NameeventId(string, required): Event IDcomment(string): Optional comment
Get Microsoft Teams user is member of.
Parameters:
userId(string, required): User ID or User Principal Name
List channels in a team.
Parameters:
teamId(string, required): Team ID
Create new team channels.
Parameters:
teamId(string, required): Team IDdisplayName(string, required): Channel display namedescription(string): Channel descriptionchannelType(string): Channel type (Standard, Private)
Retrieve channel messages.
Parameters:
teamId(string, required): Team IDchannelId(string, required): Channel IDtop(integer): Number of messages to return
Send messages to team channels.
Parameters:
teamId(string, required): Team IDchannelId(string, required): Channel IDcontent(string, required): Message contentcontentType(string): Content type (Text or Html)
Reply to channel messages.
Parameters:
teamId(string, required): Team IDchannelId(string, required): Channel IDmessageId(string, required): Message ID to reply tocontent(string, required): Reply content
List team members.
Parameters:
teamId(string, required): Team ID
Add members to teams.
Parameters:
teamId(string, required): Team IDuserId(string, required): User ID to add to the teamrole(string): Member role (Owner, Member)
List OneDrive files and folders.
Parameters:
userId(string, required): User ID or User Principal NamefolderId(string): Folder ID (optional, defaults to root)top(integer): Number of items to return
Upload files to OneDrive.
Parameters:
userId(string, required): User ID or User Principal NamefileName(string, required): File namecontent(string, required): File content (base64 encoded)folderId(string): Destination folder ID (optional)
Download files from OneDrive.
Parameters:
userId(string, required): User ID or User Principal NamefileId(string, required): File ID
Create sharing links for files.
Parameters:
userId(string, required): User ID or User Principal NamefileId(string, required): File IDtype(string, required): Share type (View, Edit)scope(string): Share scope (Anonymous, Organization)
List SharePoint sites.
Parameters:
search(string): Search query for sitestop(integer): Number of sites to return
Get lists from SharePoint sites.
Parameters:
siteId(string, required): SharePoint site ID
Retrieve items from SharePoint lists.
Parameters:
siteId(string, required): SharePoint site IDlistId(string, required): List IDtop(integer): Number of items to return
Retrieve user sign-in logs.
Parameters:
userId(string): User ID (optional)top(integer): Number of logs to returnfilter(string): OData filter expression
Get directory audit logs.
Parameters:
top(integer): Number of logs to returnfilter(string): OData filter expression
List users flagged for risk.
Parameters:
top(integer): Number of users to returnfilter(string): OData filter expression
Confirm or dismiss risky users.
Parameters:
userId(string, required): User IDaction(string, required): Action to take (Confirm, Dismiss)
List conditional access policies.
Parameters:
top(integer): Number of policies to return
Get Microsoft 365 usage reports.
Parameters:
reportType(string, required): Type of report (Overview, UserActivity, DeviceUsage)period(string): Report period (D7, D30, D90, D180)
Get Teams activity reports.
Parameters:
period(string, required): Report period (D7, D30, D90, D180)
Get email activity reports.
Parameters:
period(string, required): Report period (D7, D30, D90, D180)
Get SharePoint activity reports.
Parameters:
period(string, required): Report period (D7, D30, D90, D180)
List applications in the directory.
Parameters:
top(integer): Number of applications to returnfilter(string): OData filter expression
Get details of a specific application.
Parameters:
appId(string, required): Application ID
Create a new application registration.
Parameters:
displayName(string, required): Application display namesignInAudience(string): Sign-in audience
Update application properties.
Parameters:
appId(string, required): Application IDdisplayName(string): Application display namedescription(string): Application description
Delete an application.
Parameters:
appId(string, required): Application ID
List application permissions.
Parameters:
appId(string, required): Application ID
Grant permissions to an application.
Parameters:
appId(string, required): Application IDpermissions(array of strings, required): Permission scopes to grant
Create application client secret.
Parameters:
appId(string, required): Application IDdisplayName(string, required): Secret display nameendDateTime(string): Expiration date (ISO 8601)
{
"name": "darbot-graph-users-list",
"arguments": {
"top": 5
}
}{
"name": "darbot-graph-groups-list",
"arguments": {
"filter": "startswith(displayName,'IT')",
"top": 10
}
}{
"name": "darbot-graph-mail-send",
"arguments": {
"to": ["user@example.com"],
"subject": "Test Email",
"body": "<h1>Hello World</h1>",
"bodyType": "Html"
}
}{
"name": "darbot-graph-calendar-events-create",
"arguments": {
"userId": "user@example.com",
"subject": "Team Meeting",
"startTime": "2024-01-15T14:00:00",
"endTime": "2024-01-15T15:00:00",
"attendees": ["colleague@example.com"],
"location": "Conference Room A"
}
}All tools return structured responses with error information when applicable:
{
"success": false,
"error": "Error message",
"details": "Detailed error information"
}For demo mode (when Azure AD is not configured):
{
"success": true,
"demo": true,
"message": "Demo mode - Azure AD not configured",
"data": "Sample data"
}All tools require proper Azure AD authentication with appropriate Microsoft Graph permissions. See the main README.md for detailed setup instructions.
Required permissions vary by tool category but generally include:
- User tools:
User.ReadWrite.All - Group tools:
Group.ReadWrite.All - Mail tools:
Mail.ReadWrite,Mail.Send - Calendar tools:
Calendars.ReadWrite - Teams tools:
Team.ReadBasic.All,TeamSettings.ReadWrite.All - Files tools:
Files.ReadWrite.All - SharePoint tools:
Sites.ReadWrite.All - Security tools:
AuditLog.Read.All,SecurityEvents.Read.All - Reports tools:
Reports.Read.All
This MCP server is designed to be the ultimate extensible MCP server for any and all Microsoft Graph API needs, based on comprehensive analysis of Microsoft Graph SDK capabilities.
Core Microsoft 365 Services (64 Tools)
- Identity & Access Management: Complete user and group lifecycle operations
- Exchange Online: Full email management, folders, and messaging
- Outlook Calendar: Event creation, management, and scheduling
- Microsoft Teams: Team collaboration, channels, and messaging
- OneDrive & SharePoint: File operations and content management
- Azure AD Applications: App registration and permission management
- Security & Compliance: Audit logs, risk detection, and monitoring
- Usage Analytics: Comprehensive reporting across all services
Built on official Microsoft SDKs following best practices:
<PackageReference Include="Microsoft.Graph" Version="5.58.0" />
<PackageReference Include="Microsoft.Graph.Beta" Version="5.59.0-preview" />
<PackageReference Include="Azure.Identity" Version="1.12.0" />- Microsoft.Graph SDK: Production v1.0 APIs
- Microsoft.Graph.Beta SDK: Preview APIs
- Microsoft Graph PowerShell: Reference for comprehensive coverage
The server architecture supports expansion to cover all Microsoft Graph APIs:
Device & Endpoint Management
darbot-graph-devices-list # List managed devices
darbot-graph-devices-compliance # Check compliance status
darbot-graph-intune-policies-list # List Intune policies
darbot-graph-devices-wipe # Remote device wipe
Identity Protection & Conditional Access
darbot-graph-identity-policies-list # List conditional access policies
darbot-graph-identity-risks-assess # Assess identity risks
darbot-graph-identity-locations-list # List named locations
darbot-graph-identity-mfa-enforce # Enforce MFA policies
Directory Management
darbot-graph-directory-units-list # List administrative units
darbot-graph-directory-contacts-list # List organizational contacts
darbot-graph-directory-domains-list # List verified domains
darbot-graph-directory-roles-list # List directory roles
Personal Information Management
darbot-graph-contacts-list # List personal contacts
darbot-graph-contacts-create # Create contacts
darbot-graph-tasks-list # List Outlook tasks
darbot-graph-notes-list # List personal notes
Microsoft Planner & Project
darbot-graph-planner-plans-list # List Planner plans
darbot-graph-planner-tasks-create # Create Planner tasks
darbot-graph-planner-buckets-list # List plan buckets
darbot-graph-project-tasks-list # List Project tasks
OneNote Integration
darbot-graph-onenote-notebooks-list # List OneNote notebooks
darbot-graph-onenote-sections-create # Create notebook sections
darbot-graph-onenote-pages-create # Create OneNote pages
darbot-graph-onenote-search # Search OneNote content
Advanced SharePoint & Content
darbot-graph-sharepoint-permissions-list # List site permissions
darbot-graph-sharepoint-columns-create # Create site columns
darbot-graph-sharepoint-workflows-list # List site workflows
darbot-graph-sharepoint-search # Search SharePoint content
License & Subscription Management
darbot-graph-licenses-list # List available licenses
darbot-graph-licenses-assign # Assign user licenses
darbot-graph-subscriptions-list # List organization subscriptions
darbot-graph-usage-quotas-check # Check service quotas
External Identities & B2B
darbot-graph-b2b-invitations-send # Send B2B invitations
darbot-graph-b2b-users-list # List external users
darbot-graph-b2c-policies-list # List B2C policies
darbot-graph-partners-list # List partner organizations
Microsoft Bookings
darbot-graph-bookings-businesses-list # List booking businesses
darbot-graph-bookings-appointments-create # Create appointments
darbot-graph-bookings-services-list # List booking services
darbot-graph-bookings-staff-list # List booking staff
Education APIs
darbot-graph-education-classes-list # List education classes
darbot-graph-education-assignments-create # Create assignments
darbot-graph-education-users-list # List education users
darbot-graph-education-schools-list # List schools
Compliance & eDiscovery
darbot-graph-compliance-policies-list # List DLP policies
darbot-graph-retention-policies-list # List retention policies
darbot-graph-ediscovery-cases-list # List eDiscovery cases
darbot-graph-labels-list # List sensitivity labels
Microsoft Search
darbot-graph-search-query # Perform Microsoft Search
darbot-graph-search-bookmarks-list # List search bookmarks
darbot-graph-search-acronyms-list # List search acronyms
darbot-graph-search-qnas-list # List Q&A results
Cloud Communications
darbot-graph-calls-list # List active calls
darbot-graph-meetings-create # Create online meetings
darbot-graph-presence-get # Get user presence
darbot-graph-voicemail-list # List voicemail messages
Universal Print
darbot-graph-print-printers-list # List universal printers
darbot-graph-print-jobs-list # List print jobs
darbot-graph-print-shares-list # List printer shares
darbot-graph-print-connectors-list # List print connectors
- Define Tool Schema in
ToolCategories.cs:
public static List<object> GetNewCategoryTools()
{
return new List<object>
{
new
{
name = "darbot-graph-category-action",
description = "Tool description",
inputSchema = new { /* JSON schema */ }
}
};
}- Implement Service Methods in
GraphServiceEnhanced.cs:
private async Task<object> NewCategoryActionAsync(JsonElement? arguments)
{
try
{
// Use _graphClient for v1.0 APIs
// Use _betaGraphClient for Beta APIs
return new { success = true, data = result };
}
catch (Exception ex)
{
return new { success = false, error = ex.Message };
}
}- Add Tool Routing:
"darbot-graph-category-action" => await NewCategoryActionAsync(arguments),- Register Tool Category:
tools.AddRange(ToolCategories.GetNewCategoryTools());- Graph API Reference: Complete API documentation
- Graph Explorer: Interactive API testing
- Graph Permissions: Permission requirements
- Graph SDKs: Official SDK documentation
The Microsoft Graph PowerShell module provides comprehensive coverage patterns that can be implemented in this MCP server:
# Examples of Graph PowerShell coverage this server can implement
Get-MgUser # darbot-graph-users-list
Get-MgGroup # darbot-graph-groups-list
Get-MgDevice # darbot-graph-devices-list (future)
Get-MgApplication # darbot-graph-apps-list
Get-MgDirectoryRole # darbot-graph-directory-roles-list (future)
Get-MgPlannerPlan # darbot-graph-planner-plans-list (future)This server is designed as the definitive Microsoft Graph MCP integration. To contribute:
- Research: Use Graph Explorer to test APIs
- Design: Follow the hierarchical naming convention
- Implement: Use the established patterns in existing tools
- Test: Validate against both v1.0 and Beta APIs where applicable
- Document: Update this reference with new tool descriptions
The goal is comprehensive coverage of all Microsoft Graph capabilities, making this the ultimate extensible MCP server for any and all Graph API needs.
- Applications tools:
Application.ReadWrite.All