Outlook
Accede a tu correo, calendario y archivos de Microsoft 365 mediante la API de Microsoft Graph.
Documentación
OutlookMCPServer
Este proyecto es un servidor MCP que le da a Claude Desktop acceso a su correo, calendario y archivos de Microsoft 365 mediante la API de Microsoft Graph.
✨ Características
- ✅ Acceso al correo: Redactar, Responder, Ordenar, Buscar, Filtrar y Analizar su bandeja de entrada desde Claude o cualquier agente compatible con MCP
- ✅ Soporte de calendario: Encontrar invitaciones, Listar eventos, Redactar/Actualizar/Enviar eventos
- ✅ Soporte de OneDrive: Buscar archivos, obtener metadatos de archivos
- ✅ Soporte de SharePoint: Cargar unidades, buscar archivos, obtener metadatos de archivos
🧱 Stack Tecnológico
msgraph(SDK moderno de Microsoft Graph)azure.identityconDeviceCodeCredentialyTokenCachePersistenceOptionsFastMCP— interfaz de servidor simple compatible con MCPuv— gestión rápida de dependencias y entorno de Python
⚙️ Requisitos
Actualmente está construido para:
- Ejecutarse localmente en macOS
- Usarse con Claude Desktop
- Autenticarse mediante una aplicación registrada en Azure
⚠️ Debe tener acceso de administrador a un inquilino de Azure para configurar esto: el registro de la aplicación requiere consentimiento para los ámbitos de Microsoft Graph (p. ej.,
Mail.Read,Calendars.Read), que no son consentibles por el usuario de forma predeterminada en la mayoría de las organizaciones.
🚀 Primeros Pasos
Clonar el repositorio y navegar a él
git clone https://github.com/Norcim133/OutlookMCPServer.git
cd OutlookMCPServer
Configurar el entorno
uv venv
uv sync
Ejecutar localmente con MCP Inspector
mcp dev main.py (expect errors)
Es mucho más fácil hacer que las cosas funcionen en el Inspector antes de intentar depurar en Claude.
🔐 Configuración de Autenticación
Antes de ejecutar la aplicación, debe configurar lo siguiente:
- Cree una carpeta auth_cache en la raíz del proyecto (ver nota):
mkdir -p auth_cache
- Cree un archivo .env en la raíz del proyecto
touch .env
- Agregue lo siguiente al .env:
echo "AZURE_CLIENT_ID=<your-id-from-Azure-portal-here>" > .env
echo "AZURE_TENANT_ID=<your-id-from-Azure-portal-here>" >> .env
echo "AZURE_GRAPH_SCOPES=User.Read Mail.Read Mail.Send Mail.ReadWrite" >> .env
NOTA: Se requieren valores .env adicionales para los servicios de archivos NOTA: En la primera ejecución, la aplicación se autenticará mediante el flujo DeviceCodeCredential y creará auth_record.json en la carpeta auth_cache automáticamente si tiene éxito.
Debe tener acceso de administrador a un inquilino de Azure para registrar una aplicación con estos permisos.
Integración con Claude Desktop
Para integrarse con Claude Desktop, agregue esto a su claude_desktop_config.json:
{
"mcpServers": {
"outlook": {
"command": "uv",
"args": [
"run",
"--with",
"azure-identity,mcp[cli],msgraph-core,msgraph-sdk",
"mcp",
"run",
"/absolute/path/to/OutlookMCPServer"
]
}
}
}
En Claude Desktop, puede encontrar el archivo json en Settings/Developer/Edit Config.
NOTA: Es posible que deba reemplazar "uv" con una referencia absoluta en "command"
Reinicie Claude Desktop cada vez que realice un cambio en la configuración o en el código del servidor.
📦 Estructura de Carpetas
.
├── README.md
├── main.py
├── settings.py
├── auth_cache/
│ └── auth_record.json
├── mcpserver/
│ └── graph/
│ ├── __init__.py
│ ├── calendar_service.py
│ ├── controller.py
│ ├── file_service.py
│ ├── mail_service.py
│ ├── __init__.py
│ ├── auth_wrapper.py
│ ├── context_manager.py
│ ├── mail_query.py
│ ├── message_info.py
│ └── server.py
├── tests/
├── .env
├── __init__.py
├── main.py
📌 Hoja de Ruta
- Integración de correo (HECHO)
- Autenticación en Claude Desktop (HECHO)
- Integración de calendario (HECHO)
- Integración de OneDrive (HECHO)
- Integración de SharePoint (HECHO)
📄 Licencia
MIT
Copyright (c) 2024 Enthoosa AI
Por la presente se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar con el Software sin restricción, incluidos, entre otros, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir que las personas a quienes se les proporcione el Software hagan lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, O EN CONEXIÓN CON, EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.