MCP Outlook Tools
Interactúa con Microsoft Outlook para la gestión del calendario, operaciones de correo electrónico y funcionalidad de búsqueda.
Documentación
MCP Outlook Tools
Un servidor de implementación del Model Context Protocol (MCP) que permite a los asistentes de IA interactuar con Microsoft Outlook para la gestión de calendario, operaciones de correo electrónico y funcionalidad de búsqueda.
Características
-
📅 Gestión de Calendario
- Obtener elementos del calendario dentro de un rango de fechas
- Agregar nuevas citas con todos los detalles
- Soporte para categorías y estado de disponibilidad
-
📧 Operaciones de Correo Electrónico
- Enviar correos electrónicos con destinatarios Para/CC
- Mostrar confirmación antes de enviar
- Soporte completo de formato del cuerpo
-
🔍 Búsqueda de Correos Electrónicos
- Buscar correos por fecha y palabra clave
- Extraer información del usuario de las direcciones
- Soporte de codificación de texto japonés
Requisitos
- Sistema operativo Windows (requerido para pywin32)
- Microsoft Outlook instalado y configurado
- Python 3.10 o superior
- Asistente de IA compatible con MCP (por ejemplo, Claude Desktop)
Instalación
- Clonar el repositorio:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-tools
- Instalar las dependencias usando uv:
uv pip install -e .
O usando pip:
pip install -e .
Configuración
Para Claude Desktop
Agregue lo siguiente al archivo de configuración de Claude Desktop:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"outlook-tools": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/mcp-outlook-tools",
"run",
"--with-editable",
".",
"-m",
"outlook_tools.server"
],
"cwd": "C:/path/to/mcp-outlook-tools",
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}
Uso
Una vez configurado, las siguientes herramientas están disponibles en su asistente de IA:
add_appointment
Add a new appointment to Outlook calendar
Parameters:
- subject: Appointment title
- start_time: Start datetime (YYYY-MM-DD HH:MM)
- end_time: End datetime (YYYY-MM-DD HH:MM)
- location: Meeting location (optional)
- description: Detailed description (optional)
- categories: Comma-separated categories (optional)
- busy_status: 0=Free, 1=Tentative, 2=Busy, 3=Out of Office (default: 1)
get_calendar
Get calendar items for a date range
Parameters:
- start_date: Start date (YYYY-MM-DD)
- end_date: End date (YYYY-MM-DD)
send_email
Send an email via Outlook
Parameters:
- to: Recipient email addresses (semicolon-separated)
- cc: CC recipients (semicolon-separated)
- subject: Email subject
- body: Email body text
Estructura del Proyecto
mcp-outlook-tools/
├── src/
│ └── outlook_tools/
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ ├── calendar_service.py # Calendar operations
│ └── search_service.py # Email search operations
├── test/ # Test files
├── pyproject.toml # Project configuration
└── README.md # This file
Desarrollo
Ejecutar Pruebas
pytest test/
Verificación de Tipos
pyright src/
Linting (Análisis de Código)
ruff check src/
Notas de Seguridad
- Esta herramienta requiere acceso a su instalación local de Outlook
- Los correos electrónicos se muestran antes de enviarlos para confirmación del usuario
- No se almacenan credenciales en el código
- Todas las operaciones utilizan la interfaz COM de Windows con la autenticación existente de Outlook
Limitaciones
- Solo Windows (debido a la dependencia de pywin32)
- Requiere que Outlook esté instalado y configurado
- El manejo de zonas horarias asume JST (+9 horas)
Contribuciones
¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.
Licencia
Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para más detalles.
Agradecimientos
- Construido con el framework FastMCP
- Utiliza pywin32 para la interfaz COM de Outlook