JBAssist - Microsoft Graph MCP Server
@JBAgent
A Windows-compatible MCP server for querying Microsoft Graph API
Overview
What is JBAssist - Microsoft Graph MCP Server?
A Windows-compatible implementation of the Model Context Protocol (MCP) server that connects Claude Desktop to Microsoft Graph API, allowing Claude to interact with Microsoft 365 services such as user profiles, emails, calendar events, and organizational data.
How to use JBAssist - Microsoft Graph MCP Server?
- Meet prerequisites: Node.js 18+, Claude Desktop, Windows 10/11, Microsoft 365 account, and an Azure AD app registration with appropriate API permissions.
- Clone the repository, copy
.env.exampleto.env, and fill in your Azure AD tenant ID, client ID, and client secret. - Run
npm installandnpm run build. - Start the server via
npm start,.\run-graph-server.ps1, orrun-graph-server.bat. - In Claude Desktop, click the puzzle piece icon, add an MCP server named
msgraph, and confirm the connection.
Key features of JBAssist - Microsoft Graph MCP Server
- Standard API tools: get profile, emails, calendar events, search users
- Beta API tools: enhanced profile, direct reports, manager, presence, teamwork, advanced user search
- Windows-native installation and execution scripts
- Authenticates via Azure AD app registration with client credentials
- Supports both delegated and application permissions for Microsoft Graph
Use cases of JBAssist - Microsoft Graph MCP Server
- View your own Microsoft 365 profile and recent emails
- Retrieve upcoming calendar events for a specified number of days
- Search for users in the organization by name or other attributes
- Access detailed user profiles including skills, interests, and education history
- Get organizational hierarchy (manager, direct reports) and presence/Teams activity
FAQ from JBAssist - Microsoft Graph MCP Server
What dependencies are required to run this server?
Node.js 18 or higher, Claude Desktop with MCP support, Windows 10 or 11, and a Microsoft 365 account with an Azure AD app registration.
Which Microsoft Graph permissions are needed?
The app requires at least: User.Read, Mail.Read, Calendars.Read, User.Read.All, Presence.Read.All, and TeamMember.Read.All. Admin consent must be granted for the organization.
How do I troubleshoot authentication errors?
Double-check the Azure AD credentials in the .env file (tenant ID, client ID, client secret) and ensure the app has the correct permissions granted. Check the graph-server.log file for detailed error information.
What are the limitations of the beta API features?
Beta API endpoints are still in development and may change or behave differently than documented. They are subject to instability and should be tested thoroughly.
Where do I find the source code and how can I modify it?
The repository is at https://github.com/JBAgent/JBAssist. Edit files in the src directory, rebuild with npm run build, and restart the server. New tools can be added following the existing patterns.