useful-outlook-mcp
useful-outlook-mcp
Ein Remote-MCP-Server für Microsoft Outlook mit korrektem OAuth2 und agentenoptimierten Tools.
Funktionen
Spezifikationskonform: OAuth-Metadaten gemäß RFC 9728/8414, dynamische Client-Registrierung gemäß RFC 7591
Zustandsloses OAuth: Tokens werden vom Client verwaltet, nicht vom Server – so wie es OAuth vorsieht
Agentenoptimierte Tools: Umfangreiches Prompt-Engineering in den Tool-Beschreibungen
Dynamische Scopes: OAuth-Scopes passen sich automatisch an die aktivierten Tools an
Produktionsreif: Docker, Rate-Limiting, Read-only-Modus, Tool-Filterung
Related MCP server: M365 MCP Server
Schnellstart
npm install
npm run build
npm start # Server at http://localhost:3000Erforderliche Umgebung:
MS365_MCP_CLIENT_ID=your-azure-ad-client-id
MS365_MCP_CLIENT_SECRET=your-azure-ad-client-secret
MS365_MCP_TENANT_ID=your-tenant-id # or 'common'Azure-AD-Einrichtung
Azure Portal → Microsoft Entra ID → App-Registrierungen → Neu
Fügen Sie delegierte Berechtigungen hinzu:
User.Read,Mail.Read,Mail.ReadWrite,Mail.Send,Calendars.Read,Calendars.ReadWrite,Calendars.Read.Shared,Place.Read.All,People.Read,offline_accessFügen Sie eine Redirect-URI hinzu:
http://localhost:6274/oauth/callback(für MCP Inspector)Zertifikate & Geheimnisse → Neues Client-Geheimnis → Wert kopieren
Kopieren Sie Client-ID, Client-Geheimnis und Mandanten-ID in Ihre
.env.
Tools
list-mail-folders · list-mail-messages · search-mail · get-mail-message · send-mail · create-draft-mail · reply-mail · reply-all-mail · create-reply-draft · create-reply-all-draft · delete-mail-message · move-mail-message
Kalender
list-calendars · list-calendar-events · search-calendar-events · find-meeting-times · get-calendar-event · get-calendar-view · create-calendar-event · update-calendar-event · delete-calendar-event
Personen
lookup-contact-email
Raumsuche
Für Präsenzbesprechungen fürt find-meeting-times automatisch Folgendes aus:
Ruft alle verfügbaren Besprechungsräume in Ihrer Organisation ab
Bezieht sie neben den Teilnehmern in die Verfügbarkeitsprüfung ein
Gruppiert freie Räume nach Standort (Stadt/Gebäude)
Gibt nur verfügbare Räume mit E-Mail-Adressen zur Buchung zurück
Setzen Sie isOnlineMeeting: false, um die Raumsuche zu aktiieren. Für Online-Besprechungen (Standard: true) wird automatisch ein Teams-Besprechungslink generiert.
Erforderlicher Scope: Place.Read.All (zu den Berechtigungen der Azure-AD-App hinzufügen)
Konfiguration
Variable | Standard | Beschreibung |
| erforderlich | Azure-AD-Client-ID |
| - | Client-Geheimnis (optional) |
|
| Mandanten-ID |
|
| Serverport |
|
| Schreiboperationen deaktiveren |
| alle | Durch Kommas getrennte Tool-Zulasungsliste |
|
| CORS-Usprünge |
|
| Anfragen pro Zeitfenster |
|
| Fenstergröße (ms) |
| - | Auf bestimmte Mandanten beschränken |
Docker
Aus der GitHub Container Registry:
docker run -p 3000:3000 \
-e MS365_MCP_CLIENT_ID=xxx \
-e MS365_MCP_CLIENT_SECRET=xxx \
-e MS365_MCP_TENANT_ID=xxx \
ghcr.io/Leonine-Studios/useful-outlook-mcp:latestOder lokal erstellen:
docker build -t useful-outlook-mcp .
docker run -p 3000:3000 \
-e MS365_MCP_CLIENT_ID=xxx \
-e MS365_MCP_CLIENT_SECRET=xxx \
-e MS365_MCP_TENANT_ID=xxx \
useful-outlook-mcpEndpunkte
Endpunkt | Beschreibung |
| MCP-Protokoll |
| Healthcheck |
| RFC 9728 |
| RFC 8414 |
| OAuth (leitet an Microsoft weiter) |
| Tokenaustausch (leitet an Microsoft weiter) |
| Dynamische Client-Registrierung |
Tests
npm run dev
npx @modelcontextprotocol/inspector # Connect to http://localhost:3000/mcpHinweise zum Design
Probleme mit bestehenden Servern
Legacy-Architektur: Als stdio mit nachträglich aufgesetztem HTTP gebaut. Dieser Server ist HTTP-nativ.
OAuth falsch umgesetzt: Die meisten Server speichern Tokens serverseitig. Dieser Server ist zustandslos – Tokens werden pro Anfrage über den Authorization-Header übergeben und nie gespeichert.
Tools ohne Konzept: Typische Server bilden API-Endpunkte 1:1 ohne Hilfestellung ab. Agenten scheitern im praktischen Einsatz, weil sie API-Eigenheiten oder mehrstufige Workflows nicht kennen.
Was ist anders?
Jedes Tool enthält:
Wann man es im Vergleich zu Alternativen verwendet
Bekannte Eingenheiten der Graph API (es gibt viele)
Workflow-Anleitung für mehrstufige Aufgaben
Parameterkombinationen, die zu Fehlern führen
Beispiel: find-meeting-times erklärt, dass E-Mail-Adressen erforderlich sind (Namen funktionieren nicht), wie man über search-mail E-Mail-Adressen aus Namen ermittelt, was OrganizerUnavailable bedeutet und dass isOrganizerOptional=true eine Benutzerbestätigung erfordert.
Bekannte Eigenheiten der Graph API
E-Mail-Absenderfilterung:
eqauffrom/emailAddress/addressist unzuverlässig –startswith()verwendenE-Mail-Empfängerfilterung: Mit
$filterkann nicht nach An/CC/BCC gefiltert werden –$searchmuss verwendet werdenKalender-Organisatorfilterung:
$filterauf die Organisator-E-Mail-Adresse liefert 500 – clientseitig gefiltertNebenläufigkeit: Parallele Aufrufe können
MailboxConcurrency-Fehler zurückgebenSuche + Sortierung:
$searchkann nicht mit$orderbykombiniert werden
Linzenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server that provides 62 tools to manage Outlook mail, calendar, contacts, and tasks for personal Microsoft accounts via Microsoft Graph API.6222MIT
- AlicenseNot gradedqualityCmaintenanceA secure remote MCP server that integrates Microsoft 365 services with AI assistants, enabling email, calendar, Teams, and contact operations via the Microsoft Graph API.2MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for sending and managing Microsoft Outlook email via the Microsoft Graph API, including drafts, replies, contacts, and directory search.114MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that uses Microsoft Entra OAuth 2.0 On-Behalf-Of flow to access Microsoft Graph for Outlook data, enabling email, calendar, and contacts interactions via MCP tools.
Related MCP Connectors
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Andersia7/MCP-outlook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server