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

  1. Clonar el repositorio:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-tools
  1. 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