Microsoft Graph MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Microsoft Graph MCPWhat does my Microsoft 365 profile say?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Microsoft Graph MCP
An internal Streamable HTTP MCP server designed for Open WebUI and LiteLLM, with delegated Microsoft Graph access and planned file transfers to an Open Terminal workspace.
Status: delegated Microsoft 365 tools implemented; the user has verified the WebUI → LiteLLM → MCP connection. Expanded service operations require work-side consent and live validation.
Eight MCP tools expose cataloged reads/writes for mail, calendars, contacts, Teams/chats, meetings, files, SharePoint, tasks, Excel, people and basic directory discovery, plus owner-bound pagination and native drive transfers. Use graph_capabilities and graph_describe to discover the deployed catalog.
Native drive transfers target 250 MB. Shared staging for large transcripts/JSON, non-drive binary transfers, document editing/rendering and full workflow acceptance remain incomplete. Tenant administration, beta and batch APIs are excluded. See the tool guide for exact limits.
Documentation
User guide: connect Microsoft, use the available tools, and understand errors.
Version 0.3.0 rollout: OneNote, presence and additional delegated permissions.
Open WebUI system prompt: copy into the custom model with this MCP and Open Terminal.
Request handling review: Work IQ comparison and recommended next improvements.
Version 0.2.0 rollout: rebuild, deploy, consent and refresh tool discovery.
Setup guide: configure Entra registrations, the server, LiteLLM, and Open WebUI.
Configuration reference: environment variables, Helm settings, and security limits.
Kubernetes deployment: build images, configure certificates and gateway access, and install or upgrade.
Security controls: authentication protections and deployment verification.
Related MCP server: Microsoft Graph MCP
Run the server
Follow the Entra, server, LiteLLM, and WebUI setup guide. Verify /me, then configure delegated consent for the intended services.
uv sync --locked --no-editable
cp .env.example .env
# Replace example settings before starting the server.
uv run --no-editable uvicorn ms_graph_mcp.app:create_app --factory --host 127.0.0.1 --port 8000 --no-access-log --no-proxy-headersLocal verification:
uv run --no-editable pytest -q
uv run --no-editable ruff check src tests
uv run --no-editable ruff format --check src testsDependencies are locked in uv.lock for Python 3.14. A non-root Dockerfile and LiteLLM example are included. Tests replace Microsoft network calls; they do not establish real tenant access.
Deploy on Kubernetes
Use the Helm chart and Kubernetes/manual build guide. Replicas default to two and are configurable at installation. The chart includes node spread, a disruption budget, rolling updates, private Service routing and existing Secret references. Kubernetes 1.30+ is required by the default topology configuration.
Helm enables gateway ingress restrictions and HTTPS by default. Supply the actual LiteLLM pod/namespace selectors and an existing Service TLS Secret; missing values fail chart rendering. An existing mesh with enforced mTLS can use transportSecurity.mode: mesh. See the security controls and verification notes.
Enterprise CA bundles can be mounted from an existing ConfigMap or Secret; the application adds them to public trust for Graph, Entra OBO and signing-key retrieval. Manual builds support Harbor/GHCR, amd64/arm64, optional build CA trust and mirrored base images. CI is optional. Local container builds have been verified; image publication and live cluster HA verification remain pending.
Read the specification
Architecture: requirements, authentication, tools, response handling, transfers, and deployment boundaries.
Service coverage and permissions: intended operations, delegated scope candidates, and API limitations.
Terminal and document contract: document tooling, templates, image feedback, and style preservation.
Acceptance and validation: compatibility gates and evidence required before declaring the system usable.
The design uses Open WebUI 0.11.3, LiteLLM 1.100.0, and Open Terminal 0.11.34 as the initial compatibility baseline. Runtime/package versions supplied by the user are inputs, not installation results.
The proposed default is a separate Microsoft connection in Open WebUI, LiteLLM oauth_delegate routing, and an Entra OBO exchange in the Graph MCP. This avoids coupling Graph access to Open WebUI's existing SSO registration.
Document creation and rendering run in the terminal. The Graph MCP remains a small gateway with explicit controls over returned content and temporary file transfer.
Hardened runtime and release gate
The Dockerfile uses DHI Python 3.14 on Debian 13, with separate development and runtime stages. The manual release gate builds one platform, scans the final image with a freshly downloaded Trivy database, and permits publication only with zero findings outside the reviewed, expiring DHI OS baseline. All Python findings block release; --strict restores the zero-unfiltered-findings requirement. It checks OS/Python scan coverage and records scan, database and image evidence. See build and release instructions. No CI service is required.
The local amd64 Python 3.14.7 build and restricted runtime smoke passed on 2026-09-10 using runtime digest sha256:ee0154c1c675e1f51f361c239061128719c06cc7130c6fae0a8362b0ba777267. Docker Scout reported zero vulnerabilities with full build provenance and SBOM. Trivy 0.74.0 reported 47 unfiltered OS-package findings and no Python-package findings; with the DHI VEX repository it retained 14 findings and suppressed 33. The strict mode remains blocked; the active Trivy-only policy accepts the exact known OS baseline. No image has been published. See validation evidence.
This server cannot be deployed
Maintenance
Related MCP Connectors
Permissioned access to Outlook, OneDrive and Teams via the user's own Microsoft account
Read email/chat conversations, messages, contacts and teams; draft, send and update threads.
One profile — skills, credentials, and memory — synced to every agent tool via one MCP URL.
- SkilderOAuthai.skilder
One place to build, share, and govern the skills and tools your AI agents use at work.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to interact with Microsoft 365 services (users, mail, calendar, files) via Microsoft Graph API.461MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Microsoft 365 through the Microsoft Graph API, including searching Teams messages, managing chats, and sending messages.77MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants and automation tools to manage Microsoft 365, Entra ID, and Intune resources through 32 tools for user/device/file management and infrastructure monitoring.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to query Microsoft Entra data using natural language, converting requests into Microsoft Graph API calls for read-only enterprise IT scenarios.53CC BY-4.0