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
- Clone o repositório:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-tools
- 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