MCP Outlook Tools

Interaja com o Microsoft Outlook para gerenciamento de calendário, operações de e-mail e funcionalidade de pesquisa.

Documentação

MCP Outlook Tools

Uma implementação de servidor Model Context Protocol (MCP) que permite que assistentes de IA interajam com o Microsoft Outlook para gerenciamento de calendário, operações de e-mail e funcionalidades de busca.

Recursos

  • 📅 Gerenciamento de Calendário

    • Obter itens de calendário dentro de um intervalo de datas
    • Adicionar novos compromissos com detalhes completos
    • Suporte para categorias e status de ocupação
  • 📧 Operações de E-mail

    • Enviar e-mails com destinatários Para/Cc
    • Exibir confirmação antes do envio
    • Suporte completo para formatação do corpo
  • 🔍 Busca de E-mails

    • Buscar e-mails por data e palavra-chave
    • Extrair informações do usuário a partir de endereços
    • Suporte para codificação de texto japonês

Requisitos

  • Sistema operacional Windows (necessário para pywin32)
  • Microsoft Outlook instalado e configurado
  • Python 3.10 ou superior
  • Assistente de IA compatível com MCP (ex.: Claude Desktop)

Instalação

  1. Clone o repositório:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-tools
  1. Instale as dependências usando uv:
uv pip install -e .

Ou usando pip:

pip install -e .

Configuração

Para Claude Desktop

Adicione o seguinte ao arquivo de configuração do 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

Uma vez configurado, as seguintes ferramentas estarão disponíveis no seu assistente 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

Estrutura do Projeto

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

Desenvolvimento

Executando Testes

pytest test/

Verificação de Tipos

pyright src/

Linting

ruff check src/

Notas de Segurança

  • Esta ferramenta requer acesso à sua instalação local do Outlook
  • Os e-mails são exibidos antes do envio para confirmação do usuário
  • Nenhuma credencial é armazenada no código
  • Todas as operações usam a interface COM do Windows com a autenticação existente do Outlook

Limitações

  • Apenas Windows (devido à dependência do pywin32)
  • Requer Outlook instalado e configurado
  • O tratamento de fuso horário assume JST (+9 horas)

Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Agradecimentos

  • Construído com o framework FastMCP
  • Usa pywin32 para a interface COM do Outlook