useful-outlook-mcp
useful-outlook-mcp
Un servidor MCP remoto para Microsoft Outlook con OAuth2 adecuado y herramientas optimizadas para agentes.
Características
Conforme a la especificación: metadatos OAuth RFC 9728/8414, registro dinámico de clientes RFC 7591
OAuth sin estado: tokens gestionados por el cliente, no por el servidor, tal como OAuth pretendía
Herramientas optimizadas para agentes: ingeniería de prompts exhaustiva en las descripciones de las herramientas
Ámbitos dinámicos: los ámbitos OAuth se ajustan automáticamente a las herramientas habilitadas
Listo para producción: Docker, limitación de tasa, modo de solo lectura, filtrado de herramientas
Related MCP server: M365 MCP Server
Inicio rápido
npm install
npm run build
npm start # Server at http://localhost:3000Entorno requerido:
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'Configuración de Azure AD
Azure Portal → Microsoft Entra ID → Registros de aplicaciones → Nuevo
Añade permisos delegados:
User.Read,Mail.Read,Mail.ReadWrite,Mail.Send,Calendars.Read,Calendars.ReadWrite,Calendars.Read.Shared,Place.Read.All,People.Read,offline_accessAñade el URI de redirección:
http://localhost:6274/oauth/callback(para MCP Inspector)Certificados y secretos → Nuevo secreto de cliente → Copia el valor
Copia el ID de cliente, el secreto de cliente y el ID de inquilino en tu
.env
Herramientas
Correo
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
Calendario
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
Personas
lookup-contact-email
Búsqueda de salas
Para reuniones presenciales, find-meeting-times automáticamente:
Obtiene todas las salas de reuniones disponibles en tu organización
Las incluye en las comprobaciones de disponibilidad junto con los asistentes
Agrupa las salas libres por ubicación (ciudad/edificio)
Devuelve solo las salas disponibles con direcciones de correo para reservarlas
Establece isOnlineMeeting: false para habilitar la búsqueda de salas. Para reuniones en línea (por defecto: true), los enlaces de reuniones de Teams se generan automáticamente.
Ámbito requerido: Place.Read.All (añádelo a los permisos de la aplicación de Azure AD)
Configuración
Variable | Por defecto | Descripción |
| obligatorio | ID de cliente de Azure AD |
| - | Secreto de cliente (opcional) |
|
| ID de inquilino |
|
| Puerto del servidor |
|
| Deshabilitar operaciones de escritura |
| all | Lista de herramientas permitidas separada por comas |
|
| Orígenes CORS |
|
| Solicitudes por ventana |
|
| Tamaño de la ventana (ms) |
| - | Restringir a inquilinos específicos |
Docker
Desde 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:latestO constrúyelo localmente:
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-mcpEndpoints
Endpoint | Descripción |
| Protocolo MCP |
| Comprobación de estado |
| RFC 9728 |
| RFC 8414 |
| OAuth (proxy hacia Microsoft) |
| Intercambio de tokens (proxy hacia Microsoft) |
| Registro dinámico de clientes |
Pruebas
npm run dev
npx @modelcontextprotocol/inspector # Connect to http://localhost:3000/mcpNotas de diseño
Problemas con los servidores existentes
Arquitectura heredada: construido como stdio con HTTP acoplado. Este es nativo de HTTP.
OAuth mal implementado: la mayoría de los servidores almacenan los tokens en el lado del servidor. Este servidor no tiene estado: los tokens se pasan en cada solicitud mediante la cabecera Authorization y nunca se almacenan.
Herramientas sin reflexión: los servidores típicos mapean los endpoints de la API 1:1 sin orientación. Los agentes fallan en el uso práctico porque no conocen las peculiaridades de la API ni los flujos de trabajo de varios pasos.
Qué es diferente
Cada herramienta incluye:
Cuándo usarla frente a las alternativas
Peculiaridades conocidas de Graph API (hay muchas)
Orientación sobre flujos de trabajo para tareas de varios pasos
Combinaciones de parámetros que fallan
Ejemplo: find-meeting-times explica que las direcciones de correo son obligatorias (los nombres no funcionan), cómo encontrar los correos a partir de los nombres usando search-mail, qué significa OrganizerUnavailable y que isOrganizerOptional=true requiere confirmación del usuario.
Peculiaridades conocidas de Graph API
Filtrado de correo por remitente:
eqenfrom/emailAddress/addressno es fiable: usastartswith()Filtrado de correo por destinatario: no se pueden filtrar para/cc/bcc con
$filter; hay que usar$searchFiltrado del calendario por organizador:
$filteren el correo del organizador devuelve 500; se filtra en el lado del clienteConcurrencia: las llamadas paralelas pueden devolver errores
MailboxConcurrencyBúsqueda + ordenación:
$searchno se puede combinar con$orderby
Licencia
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