Skip to content

Microsoft Graph MCP server for Claude Code - Read-only access to M365 services (SharePoint, OneDrive, Outlook, Teams, Calendar)

License

Notifications You must be signed in to change notification settings

eesb99/msgraph-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microsoft Graph MCP Server

Read-only access to Microsoft 365 suite via Model Context Protocol.

Architecture

Architecture Diagram

The diagram shows the complete system architecture including Claude Code integration, MCP server components, Azure AD authentication, Microsoft Graph API gateway, and M365 services (SharePoint, OneDrive, Outlook, Teams, Calendar).

Features

  • SharePoint: Search sites, list files, get content
  • OneDrive: Browse user files, search
  • Outlook: Search emails, read messages
  • Teams: List teams/channels, read messages
  • Calendar: View events, search calendar

Setup

📖 For detailed setup instructions, see SETUP.md

Quick Start

  1. Azure AD App Registration: Register app with Application permissions
  2. Install: pip install -r requirements.txt
  3. Configure: Add credentials to ~/.claude.json
  4. Test: msgraph.test_connection()

Required Azure AD Permissions

Register an Azure AD app with these Application permissions:

  • Sites.Read.All - SharePoint
  • Files.Read.All - OneDrive/SharePoint files
  • Mail.Read - Outlook
  • ChannelMessage.Read.All - Teams messages
  • Chat.Read.All - Teams chats
  • Calendars.Read - Calendar
  • User.Read.All - User directory
  • Group.Read.All - Teams/Groups

Grant admin consent for all permissions.

2. Install Dependencies

cd ~/.claude/mcp-servers/msgraph-mcp
pip install -r requirements.txt

3. Configure Claude

Add to ~/.claude.json:

{
  "mcpServers": {
    "msgraph-mcp": {
      "type": "stdio",
      "command": "python3",
      "args": ["/Users/thianseongyee/.claude/mcp-servers/msgraph-mcp/server.py"],
      "env": {
        "AZURE_CLIENT_ID": "your-client-id",
        "AZURE_TENANT_ID": "your-tenant-id",
        "AZURE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Usage

Access via msgraph module in code execution:

# Test connection
result = msgraph.test_connection()

# Search SharePoint files
result = msgraph.search_files("formulation xlsx", limit=10)

# List recent emails
result = msgraph.list_recent_emails("user@company.com", limit=20)

# Get Teams channels
teams = msgraph.list_teams()
channels = msgraph.list_channels(teams['items'][0]['id'])

# View calendar
result = msgraph.list_events("user@company.com", days_ahead=7)

Available Functions

Connection

  • test_connection() - Test API connectivity
  • list_users(query, limit) - Search users
  • get_user(email) - User details

SharePoint

  • search_sites(query, limit) - Find sites
  • list_site_contents(site_id, path) - Browse folders
  • search_files(query, site_id, limit) - Search files
  • get_file_content(site_id, item_id) - Read file
  • get_file_metadata(site_id, item_id) - File info

OneDrive

  • list_user_files(email, path) - Browse OneDrive
  • search_user_files(email, query, limit) - Search files

Outlook

  • search_emails(query, email, limit) - Search mail
  • list_recent_emails(email, limit, folder) - Recent mail
  • get_email(email, message_id) - Full email

Teams

  • list_teams(limit) - List teams
  • list_channels(team_id) - Team channels
  • get_channel_messages(team_id, channel_id, limit) - Messages
  • search_channel_messages(team_id, channel_id, query) - Search

Calendar

  • list_events(email, days_ahead) - Upcoming events
  • search_events(email, query, limit) - Search calendar
  • get_event(email, event_id) - Event details

Security

  • Read-only: No write permissions
  • Sandboxed: Limited Python builtins
  • App-only auth: No user credentials stored
  • Token managed: Automatic refresh, never exposed

About

Microsoft Graph MCP server for Claude Code - Read-only access to M365 services (SharePoint, OneDrive, Outlook, Teams, Calendar)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published