Outlook Assistant
Servidor MCP para e-mail, calendário e contatos do Outlook — permita que seu assistente de IA gerencie sua caixa de entrada diretamente da conversa.
Documentação
Outlook Assistant
Servidor MCP para e-mail, calendário e contatos do Outlook — deixe seu assistente de IA gerenciar sua caixa de entrada diretamente da conversa.
O Outlook Assistant conecta assistentes de IA à sua conta Microsoft Outlook por meio do Model Context Protocol. Peça ao seu assistente de IA para pesquisar sua caixa de entrada, enviar e-mails, agendar reuniões, gerenciar contatos e configurar definições da caixa de correio — sem sair da conversa. Funciona com Claude, Cursor, Windsurf e qualquer cliente compatível com MCP.
Funciona com contas pessoais Outlook.com e contas corporativas/escolares Microsoft 365.
O que você pode fazer
- 📨 Pesquisar e ler e-mails — encontre mensagens por remetente, assunto, data ou palavras-chave; leia conversas completas com agrupamento por conversa; sinalize, mova, exporte ou categorize vários e-mails de uma só vez
- 🛡️ Enviar e-mails com controles de segurança — pré-visualização em modo de teste, dicas de e-mail antes do envio (fora do escritório, caixa de correio cheia, restrições de entrega), limite de taxa por sessão e lista de permissões de destinatários para evitar erros
- ✏️ Criar rascunhos de e-mails para revisão — crie, atualize e envie rascunhos; responda e encaminhe como rascunho; pré-visualize antes de salvar com o modo de teste
- 📅 Gerenciar seu calendário — veja eventos futuros, agende reuniões com participantes, recuse ou cancele convites
- 📦 Exportar e-mails — salve mensagens individuais em Markdown, EML, JSON ou CSV; exporte conversas completas em MBOX ou HTML; exporte em lote resultados de pesquisa em uma única chamada
- 🔍 Investigar cabeçalhos de e-mail — acesso completo aos cabeçalhos brutos (DKIM, SPF, DMARC, cadeia de entrega, X-Mailer, X-Originating-IP) para investigação de phishing e revisão de conformidade
- 🗂️ Organizar sua caixa de entrada — crie pastas aninhadas (endereçáveis por caminho), configure regras de caixa de entrada, codifique por cores com categorias, gerencie a Caixa de Entrada Focada — tudo funciona em conjunto para automação completa da caixa de entrada
- 🔄 Acompanhar mudanças na caixa de entrada — sincronização delta detecta e-mails novos, modificados e excluídos desde sua última verificação, com tokens para sondagem incremental
- 👥 Gerenciar contatos — pesquise sua agenda de contatos e o diretório organizacional, crie e atualize registros de contatos
- ⚙️ Configurar definições — defina respostas automáticas de ausência, horário de trabalho e fuso horário
- 📬 Acessar caixas de correio compartilhadas — leia caixas de entrada de equipes e contas de serviço (Microsoft 365)
- 🏢 Encontrar salas de reunião — pesquise por prédio, andar, capacidade, equipamento de áudio/vídeo e acessibilidade para cadeirantes (Microsoft 365)
Por que o Outlook Assistant?
| Sem o Outlook Assistant | Com o Outlook Assistant |
|---|---|
| Alterne entre sua ferramenta de IA e o Outlook para gerenciar e-mails | Leia, pesquise, envie e exporte e-mails diretamente do seu assistente de IA |
| Pesquise e exporte conversas de e-mail manualmente | Ferramentas completas de e-mail, incluindo pesquisa, conversas e exportação em lote |
| Alterne de contexto para calendário e contatos | Gerencie eventos de calendário, contatos e definições em um só lugar |
| Copie e cole o conteúdo de e-mails nas conversas | Seu assistente de IA lê seus e-mails nativamente com contexto completo |
| Sem acesso programático a regras ou categorias da caixa de correio | Crie regras de caixa de entrada, gerencie categorias, configure respostas automáticas |
| Verifique manualmente cada e-mail em busca de sinais de phishing | Análise forense de cabeçalhos — DKIM, SPF, DMARC, pontuações de spam e cadeia de entrega em uma única chamada |
| Faça sondagem da caixa de entrada para verificar novos e-mails | Sincronização delta retorna apenas as mudanças desde sua última verificação, com tokens para sondagem contínua |
Recursos
| Módulo | Ferramentas | O que você pode fazer |
|---|---|---|
| 8 | search-emails (listar/pesquisar/delta/conversas), read-email (conteúdo + cabeçalhos forenses), send-email (com modo de teste + dicas de e-mail), draft (criar/atualizar/enviar/excluir/responder/encaminhar), update-email (status de leitura, sinalizações), attachments, export, get-mail-tips | |
| Calendário | 3 | list-events, create-event, manage-event (atualizar/recusar/cancelar/excluir) |
| Contatos | 2 | manage-contact (listar/pesquisar/obter/criar/atualizar/excluir), search-people |
| Categorias | 3 | manage-category (CRUD), apply-category, manage-focused-inbox |
| Definições | 1 | mailbox-settings (obter/definir respostas automáticas/definir horário de trabalho) |
| Pasta | 1 | folders (listar/criar/mover/estatísticas/excluir) — pastas aninhadas endereçáveis por caminho (Parent/Child) ou ID |
| Regras | 1 | manage-rules (listar/criar/atualizar/reordenar/excluir) |
| Avançado | 2 | access-shared-mailbox, find-meeting-rooms |
| Autenticação | 1 | auth (status/autenticar/sobre) |
22 ferramentas no total — consolidadas a partir de 55 para desempenho ideal da IA. Consulte a Referência de Ferramentas para obter detalhes completos dos parâmetros.
Formatos de Exportação
O suporte a formatos varia conforme target:
| Formato | Extensão | target=message (único) | target=messages (lote) | target=conversation (conversa) |
|---|---|---|---|---|
mime / eml | .eml | ✅ | – | ✅ |
mbox | .mbox | – | – | ✅ |
markdown | .md | ✅ | ✅ | ✅ |
json | .json | ✅ | ✅ | ✅ |
html | .html | – | – | ✅ |
csv | .csv | ✅ | ✅ | ✅ |
Exporte e-mails individuais, resultados de pesquisa ou conversas inteiras — use target=messages com uma consulta de pesquisa (ou o atalho query) para exportar em lote sem coletar IDs manualmente.
Compatibilidade de Contas
O Outlook Assistant funciona com contas Microsoft pessoais e corporativas/escolares, mas alguns recursos se comportam de maneira diferente:
| Recurso | Pessoal (Outlook.com) | Corporativo/Escolar (Microsoft 365) |
|---|---|---|
| Leitura, envio e pesquisa de e-mails | Suporte completo | Suporte completo |
| Eventos de calendário | Suporte completo | Suporte completo |
| CRUD de contatos | Suporte completo | Suporte completo |
| Regras de caixa de entrada | Suporte completo | Suporte completo |
| Pastas | Suporte completo | Suporte completo |
Pesquisa query em texto livre | Limitada — fallback progressivo; os filtros subject, from, to são mais diretos | Suporte completo a $search |
| Categorias | Suporte completo | Suporte completo |
| Definições da caixa de correio | Suporte completo | Suporte completo |
| Caixa de Entrada Focada | A API funciona (substitui o armazenado), mas o roteamento de e-mail não é afetado | Suporte completo |
| Caixas de correio compartilhadas | Não disponível | Requer Mail.Read.Shared |
| Pesquisa de salas de reunião | Não disponível | Requer Place.Read.All + consentimento do administrador |
Observação: Em contas pessoais, a API
$searchda Microsoft tem suporte limitado para consultas em texto livre. O Outlook Assistant lida com isso automaticamente com pesquisa progressiva — se sua consulta não retornar resultados, ele recorre a filtros OData, filtros booleanos e listagem de mensagens recentes para encontrar seus e-mails. Para obter resultados mais diretos em contas pessoais, use os parâmetros de filtro estruturados (from,subject,to,receivedAfter).
O Que Torna Isso Diferente
- Pesquisa progressiva — em contas onde a API
$searchda Microsoft é limitada, o Outlook Assistant recorre automaticamente a até 4 estratégias de pesquisa para encontrar seus e-mails e informa qual delas respondeu em_meta.searchMetadata, juntamente com qualquer filtro que não pôde atender (droppedFilters). A maioria dos wrappers da Graph API falha silenciosamente; este se adapta e informa você. - Forense de e-mail — acesso a cabeçalhos brutos para DKIM, SPF, DMARC, cadeia de entrega, X-Mailer, X-Originating-IP e pontuações de spam. Retorna os dados completos para que você possa investigar phishing, auditar conformidade ou rastrear problemas de entrega. (Veredito automático está no roadmap; hoje os dados são apresentados e analisados na conversa.)
- Sincronização delta — monitoramento incremental da caixa de entrada retorna apenas o que mudou desde sua última verificação, com tokens para sondagem contínua. Projetado para fluxos de trabalho de agentes que precisam monitorar uma caixa de correio.
- Operações em lote — sinalize, mova, exporte ou categorize vários e-mails em uma única chamada. A exportação orientada por pesquisa permite exportar resultados em lote sem coletar IDs manualmente.
- Inteligência pré-envio — verifique destinatários quanto a ausência, caixa cheia, restrições de entrega e status de moderação antes de enviar — nenhum outro servidor MCP do Outlook oferece isso.
- Automação composta — regras, categorias, pastas e Caixa de Entrada Focada funcionam juntas. Configure o gerenciamento completo da caixa de entrada por meio do seu assistente de IA em uma única conversa.
Segurança e Eficiência de Tokens
O Outlook Assistant foi projetado com princípios de segurança em primeiro lugar para acesso a e-mail orientado por IA:
Proteções para ações destrutivas — Cada ferramenta carrega anotações MCP (readOnlyHint, destructiveHint, idempotentHint) para que clientes de IA possam aprovar automaticamente leituras seguras e solicitar confirmação para operações destrutivas, como envio de e-mails ou exclusão de eventos.
Proteções de envio de e-mail — A ferramenta send-email inclui:
- Dicas de e-mail pré-envio (
checkRecipients: true) — verifique destinatários quanto a ausência, caixa cheia e restrições de entrega antes de enviar - Modo de teste (
dryRun: true) — pré-visualize e-mails compostos sem enviar - Limite de taxa por sessão — configurável via
OUTLOOK_MAX_EMAILS_PER_SESSION(padrão: ilimitado) - Lista de permissões de destinatários — restrinja o envio a endereços/domínios aprovados via
OUTLOOK_ALLOWED_RECIPIENTS
Configuração recomendada: ative ambas as proteções de segurança no seu
.mcp.jsondesde o primeiro dia. Elas estão desativadas por padrão;auth action=aboutinforma o estado delas e imprime uma dica de configuração quando não definidas. Consulte.mcp.json.examplepara obter um modelo de copiar e colar."env": { "OUTLOOK_CLIENT_ID": "…", "OUTLOOK_CLIENT_SECRET": "…", "OUTLOOK_MAX_EMAILS_PER_SESSION": "10", "OUTLOOK_ALLOWED_RECIPIENTS": "your-domain.com,trusted@example.com" }
Proteções de rascunho — A ferramenta draft compartilha os controles de segurança send-email: pré-visualização em modo de teste, lista de permissões de destinatários, validação de dicas de e-mail e limite de taxa. A ação send compartilha o contador de limite de taxa send-email, evitando burla pelo caminho de rascunho-e-depois-envio.
Arquitetura otimizada para tokens — As ferramentas são consolidadas usando a abordagem STRAP (Ferramenta Única, Recurso, Padrão de Ação). 22 ferramentas em vez de 55 reduz a sobrecarga por turno em ~11.000 tokens (~64%), mantendo mais do contexto do assistente de IA disponível para sua conversa real. Menos ferramentas também significa que a IA seleciona a ferramenta certa com mais precisão — pesquisas mostram que a seleção de ferramentas degrada além de ~40 ferramentas.
Importante: Essas proteções são medidas de defesa em profundidade que reduzem o risco, mas não são uma garantia contra ações não intencionais. O acesso a e-mail orientado por IA é inerentemente sensível — sempre revise as chamadas de ferramentas antes de aprovar, especialmente para envios e exclusões. Nenhuma proteção automatizada é infalível, e você permanece responsável pelas ações realizadas por meio da sua caixa de correio.
Início Rápido
1. Instalar
npm install -g @littlebearapps/outlook-assistant
Ou execute diretamente sem instalar:
npx @littlebearapps/outlook-assistant
Para verificar qual versão você tem ou para ver as opções disponíveis:
outlook-assistant --version # prints e.g. 3.11.1
outlook-assistant --help # usage, options and key environment variables
Sem argumentos, o servidor fala o Model Context Protocol via stdio. Normalmente, ele é iniciado pelo seu cliente MCP em vez de executado manualmente — iniciado a partir de um terminal, ele simplesmente aguardará na entrada padrão.
2. Registrar um Aplicativo Azure
Você precisa de um registro de aplicativo no Microsoft Azure para autenticar. Consulte o Guia de Configuração do Azure para um passo a passo detalhado (incluindo a criação da conta Azure pela primeira vez), ou se você já fez isso antes:
- Crie um novo registro de aplicativo em portal.azure.com
- Adicione permissões delegadas do Microsoft Graph (Mail, Calendar, Contacts)
- Crie um segredo de cliente e copie o Valor (não o ID do Segredo)
- Em Autenticação > Adicionar uma plataforma > Aplicativos móveis e de desktop — marque o URI
nativeclient - Ative "Permitir fluxos de clientes públicos" em Autenticação > Configurações avançadas
- (Opcional) Defina o URI de redirecionamento para
http://localhost:3333/auth/callback— necessário apenas para o fluxo de autenticação via navegador
3. Configure Seu Cliente MCP
Adicione à configuração do seu cliente MCP:
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"outlook": {
"command": "npx",
"args": ["@littlebearapps/outlook-assistant"],
"env": {
"OUTLOOK_CLIENT_ID": "your-application-client-id",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-VALUE"
}
}
}
}
Claude Code (CLI)
claude mcp add outlook -- npx @littlebearapps/outlook-assistant
Em seguida, defina as variáveis de ambiente no seu .env ou shell.
Cursor (.cursor/mcp.json)
Ou adicione manualmente ao .cursor/mcp.json:
{
"mcpServers": {
"outlook": {
"command": "npx",
"args": ["@littlebearapps/outlook-assistant"],
"env": {
"OUTLOOK_CLIENT_ID": "your-application-client-id",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-VALUE"
}
}
}
}
Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"outlook": {
"command": "npx",
"args": ["@littlebearapps/outlook-assistant"],
"env": {
"OUTLOOK_CLIENT_ID": "your-application-client-id",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-VALUE"
}
}
}
}
4. Autentique-se
- Inicie o servidor de autenticação:
outlook-assistant-auth(ounpx @littlebearapps/outlook-assistant-auth) - No seu assistente de IA, use a ferramenta
authcomaction=authenticatepara obter uma URL OAuth - Abra a URL, entre com sua conta Microsoft e conceda as permissões
- Os tokens são salvos localmente e atualizados automaticamente
Nota: O servidor de autenticação precisa das variáveis de ambiente
OUTLOOK_CLIENT_IDeOUTLOOK_CLIENT_SECRET. A configuração"env"do seu cliente MCP se aplica apenas ao processo do servidor MCP — ao executar o servidor de autenticação separadamente, certifique-se de que elas estejam definidas em um arquivo.envou exportadas no seu shell.
Instalação
Pré-requisitos
- Node.js 18.0.0 ou superior
- npm (incluído com Node.js)
- Conta Azure para registro de aplicativo (o nível gratuito funciona)
Pelo npm (recomendado)
npm install -g @littlebearapps/outlook-assistant
Pelo código-fonte
git clone https://github.com/littlebearapps/outlook-assistant.git
cd outlook-assistant
npm install
Opções de CLI
| Opção | O que faz |
|---|---|
-v, --version | Exibe a versão na saída padrão e sai com código 0 |
-h, --help | Exibe uso, opções e principais variáveis de ambiente, e sai com código 0 |
| (nenhuma) | Inicia o servidor MCP em stdio — o modo normal, invocado pelo seu cliente MCP |
Um argumento não reconhecido é reportado em stderr e sai com código 1, em vez de iniciar um servidor que o ignoraria.
Registro de Aplicativo no Azure
Primeira vez com Azure? O Guia de Configuração do Azure cobre tudo, desde a criação de conta até sua primeira autenticação, incluindo configuração de cobrança e armadilhas comuns.
Crie o Aplicativo
- Abra o Portal do Azure
- Entre com uma conta Microsoft corporativa ou pessoal
- Pesquise por Registros de aplicativo e clique em Novo registro
- Digite um nome (ex.: "Outlook Assistant Server")
- Selecione Contas em qualquer diretório organizacional e contas pessoais da Microsoft
- Defina o URI de redirecionamento: plataforma Web, URI
http://localhost:3333/auth/callback - Clique em Registrar
- Copie o ID do aplicativo (cliente)
Adicione Permissões
- Vá para Permissões de API > Adicionar uma permissão > Microsoft Graph > Permissões delegadas
- Adicione estas permissões obrigatórias:
offline_access— tokens de atualização entre sessõesUser.Read— perfil básicoMail.Read,Mail.ReadWrite,Mail.Send— operações de e-mailCalendars.Read,Calendars.ReadWrite— operações de calendárioContacts.Read,Contacts.ReadWrite— gerenciamento de contatosMailboxSettings.ReadWrite— configurações, respostas automáticas, categoriasPeople.Read— pesquisa de pessoas
- Opcionalmente, adicione permissões somente para organização (apenas contas corporativas/de estudante):
Mail.Read.Shared— acesso a caixas de correio compartilhadasPlace.Read.All— pesquisa de salas de reunião (requer consentimento do administrador)
- Clique em Adicionar permissões
Crie um Segredo de Cliente
- Vá para Certificados e segredos > Novo segredo de cliente
- Digite uma descrição e selecione a expiração
- Clique em Adicionar
- Copie o Valor do segredo imediatamente — você não poderá vê-lo novamente. Use o Valor, não o ID do Segredo.
Configuração
Variáveis de Ambiente
Crie um arquivo .env a partir do exemplo:
cp .env.example .env
Edite com suas credenciais do Azure:
OUTLOOK_CLIENT_ID=your-application-client-id
OUTLOOK_CLIENT_SECRET=your-client-secret-VALUE
USE_TEST_MODE=false
Nota: O servidor também aceita
MS_CLIENT_IDeMS_CLIENT_SECRETpara compatibilidade retroativa.
Substituições opcionais (v3.8.0+) — consulte .env.example para a lista completa com exemplos comentados:
| Variável | Finalidade | Padrão |
|---|---|---|
OUTLOOK_AUTH_AUDIENCE | Público OAuth: common, consumers (aplicativos Azure somente pessoais), organizations, ou GUID de locatário único. Corrige AADSTS9002331 para registros de aplicativo somente pessoais. | common |
OUTLOOK_DEFAULT_TIMEZONE | Fuso horário IANA aplicado a eventos de calendário quando os chamadores não passam um (ex.: Europe/London, America/New_York). | Australia/Melbourne |
OUTLOOK_MAX_EMAILS_PER_SESSION | Limite em send-email + draft send por tempo de vida do servidor MCP. | ilimitado |
OUTLOOK_ALLOWED_RECIPIENTS | Lista de permissões separada por vírgulas de domínios/endereços para envios, rascunhos e encaminhamentos de regras. | sem restrições |
OUTLOOK_SEARCH_SCAN_LIMIT | Quantas mensagens recentes a busca de fallback no lado do cliente examina. Contas pessoais correspondem a to localmente dentro desta janela, então o padrão limita até onde uma busca to alcança. Máximo 5000. | 500 |
Configuração do Cliente MCP
Consulte Início Rápido — Configure Seu Cliente MCP acima para configurações do Claude Desktop, Claude Code, Cursor e Windsurf.
Se instalado pelo código-fonte, use node em vez de npx:
{
"mcpServers": {
"outlook": {
"command": "node",
"args": ["/path/to/outlook-assistant/index.js"],
"env": {
"OUTLOOK_CLIENT_ID": "your-application-client-id",
"OUTLOOK_CLIENT_SECRET": "your-client-secret-VALUE"
}
}
}
}
Fluxo de Autenticação
Fluxo de Código de Dispositivo (Padrão — Recomendado)
Nenhum servidor de autenticação necessário. Funciona em qualquer lugar, incluindo ambientes remotos/sem cabeça.
- Peça ao seu assistente de IA para autenticar (chama a ferramenta
authcomaction=authenticate) - Visite a URL exibida (
microsoft.com/devicelogin) em qualquer navegador, qualquer dispositivo - Digite o código, entre com sua conta Microsoft e conceda as permissões
- Diga ao seu assistente de IA para concluir a autenticação (chama
authcomaction=device-code-complete) - Os tokens são salvos em
~/.outlook-assistant-tokens.jsone atualizados automaticamente
Pré-requisito: Ative "Permitir fluxos de clientes públicos" no Portal do Azure > seu aplicativo > Autenticação > Configurações avançadas.
Reinicializações do servidor (v3.7.2+): O estado do código de dispositivo é persistido em
~/.outlook-assistant-pending-auth.json, entãodevice-code-completefunciona mesmo se o servidor MCP reiniciar entre os passos 1 e 4 (ex.: ponte Untether/Telegram, mudanças de sessão do Claude Desktop).
Fluxo de Redirecionamento via Navegador (Alternativa)
Para desenvolvimento em localhost ou se você preferir o fluxo OAuth tradicional:
npm run auth-server
Isso inicia um servidor local na porta 3333 para lidar com o callback OAuth.
- No seu assistente de IA, use a ferramenta
authcomaction=authenticate, method=browser - Abra a URL fornecida no seu navegador
- Entre e conceda as permissões — os tokens são salvos automaticamente
Nota: O servidor de autenticação lê
OUTLOOK_CLIENT_IDeOUTLOOK_CLIENT_SECRETdas variáveis de ambiente. A configuração"env"do seu cliente MCP se aplica apenas ao processo do servidor MCP, não a um servidor de autenticação iniciado separadamente.
Estrutura de Diretórios
outlook-assistant/
├── index.js # Main entry point (22 tools)
├── config.js # Configuration settings
├── outlook-auth-server.js # OAuth server (port 3333)
├── auth/ # Authentication module (1 tool)
├── email/ # Email module (7 tools)
│ ├── mail-tips.js # Pre-send recipient validation
│ ├── headers.js # Email header retrieval
│ ├── mime.js # Raw MIME/EML content
│ ├── conversations.js # Thread listing/export
│ ├── attachments.js # Attachment operations
│ └── ...
├── calendar/ # Calendar module (3 tools)
├── contacts/ # Contacts module (2 tools)
├── categories/ # Categories module (3 tools)
├── settings/ # Settings module (1 tool)
├── folder/ # Folder module (1 tool)
├── rules/ # Rules module (1 tool)
├── advanced/ # Advanced module (2 tools)
└── utils/
├── graph-api.js # Microsoft Graph API client (includes $batch)
├── safety.js # Rate limiting, recipient allowlist, dry-run
├── odata-helpers.js # OData query building
├── field-presets.js # Token-efficient field selections
├── response-formatter.js # Verbosity levels
└── mock-data.js # Test mode data
Solução de Problemas
"Cannot find module '@modelcontextprotocol/sdk/server/index.js'"
npm install
"EADDRINUSE: address already in use :::3333"
npx kill-port 3333
npm run auth-server
"Invalid client secret" (AADSTS7000215)
Você está usando o ID do Segredo em vez do Valor do Segredo. Vá para o Portal do Azure > Certificados e segredos e copie a coluna Valor para OUTLOOK_CLIENT_SECRET.
O Valor é exibido apenas uma vez, quando o segredo é criado — se você navegou para longe, ele não pode ser lido novamente, então crie um novo segredo. Um segredo expirado produz este mesmo erro, então verifique também a coluna Expira.
Desde a v3.11.0, o servidor detecta este erro e anexa a explicação à mensagem original da Microsoft, para que você veja tanto o código de erro bruto quanto o que fazer a respeito.
A URL de autenticação não funciona
Se estiver usando o fluxo de navegador: inicie o servidor de autenticação primeiro com npm run auth-server. Se estiver usando o fluxo de código de dispositivo: visite microsoft.com/devicelogin em vez disso.
Código de dispositivo "invalid_client"
Ative "Permitir fluxos de clientes públicos" no Portal do Azure > Registros de aplicativo > Autenticação > Configurações avançadas.
A atualização do token falha após ~60 minutos (autenticação por código de dispositivo)
Corrigido na v3.7.2. Versões anteriores enviavam client_secret em solicitações de atualização de token para autenticação por código de dispositivo, o que a Microsoft rejeita para fluxos de clientes públicos. Atualize para v3.7.2+ ou reautentique.
Respostas de API vazias
Verifique o status de autenticação com a ferramenta auth (action=status). Os tokens podem ter expirado — reautentique se necessário.
Desenvolvimento
Executando Testes
npm test # Jest unit tests
npm run inspect # MCP Inspector (interactive)
Modo de Teste
Execute com dados simulados (sem chamadas reais de API):
USE_TEST_MODE=true npm start
Estendendo o Servidor
- Crie um novo diretório de módulo (ex.:
tasks/) - Implemente manipuladores de ferramentas em arquivos separados
- Exporte as definições de ferramentas do
index.jsdo módulo - Importe e adicione ferramentas ao array
TOOLSnoindex.jsprincipal - Adicione testes em
test/ - Atualize
docs/quickrefs/tools-reference.md
Documentação
| Guia | Descrição |
|---|---|
| Começando | Instale, configure e autentique — comece aqui |
| Guia de Configuração do Azure | Criação de conta Azure, registro de aplicativo, permissões e segredos |
| Guias de Como Fazer | 29 guias práticos para e-mail, calendário, contatos e configurações |
| Roteiro | Marcos ativos (v3.11.2, v3.8.x, v3.12.0+) e lançamentos recentes |
| Solução de Problemas e FAQ | Problemas comuns, reautenticação e perguntas frequentes |
| Referência de Ferramentas | Todas as 22 ferramentas com parâmetros |
| Guia do Agente de IA | Seleção de ferramentas e padrões de fluxo de trabalho para agentes de IA |
Documentação completa: docs/
Limitações Conhecidas
- Pesquisa em conta pessoal: Texto livre
querye osearchExpressionbruto (anteriormentekqlQuery) dependem da API$searchda Microsoft, que tem suporte limitado em contas pessoais do Outlook.com.querymitiga isso com fallback progressivo (filtros OData, filtros booleanos e, em seguida, uma varredura no lado do cliente).$searchcom escopo de campo (ex.:subject:"…") é rejeitado diretamente lá; desde a v3.10.0, expressõesfrom:/to:/subject:são traduzidas para os filtros OData equivalentes mais próximos e tentadas novamente, mas operadores booleanos, agrupamento, curingas e outros prefixos de campo não são — esses ainda terminam com um resultado explícito de nenhum resultado, em vez de uma busca mais ampla silenciosa. Filtros estruturados (from,subject,to,receivedAfter) continuam sendo o caminho mais direto. A pesquisa entre pastas (searchAllFolders: true) retorna um superconjunto dos resultados apenas da caixa de entrada. Observe quequeryesearchExpressionnão são intercambiáveis lá:searchExpressionvai para$search, que corresponde à mensagem inteira, incluindo o corpo, e classifica por relevância em vez de data, enquantoqueryrecorre a uma correspondência de substring no assunto que nunca lê os corpos. - Profundidade de pesquisa
toem contas pessoais: o filtro de destinatário no lado do servidor é rejeitado, entãotoé correspondido localmente nas 500 mensagens mais recentes (OUTLOOK_SEARCH_SCAN_LIMIT, máximo 5000). Em um arquivo grande que exclui e-mails mais antigos — combinetocomreceivedAfter/receivedBefore. Desde a v3.11.1, a resposta informa isso sempre que a varredura foi truncada, independentemente de ter correspondido ou não. - Caixa de entrada focada: Disponível apenas em contas corporativas/escolares do Microsoft 365.
- Caixas de correio compartilhadas: Exigem permissão
Mail.Read.Sharede uma conta corporativa/escolar. - Pesquisa de sala de reunião: Exige permissão
Place.Read.Allcom consentimento do administrador (somente contas corporativas/escolares). - Caminho padrão de exportação: As exportações são salvas no diretório temporário do sistema por padrão. Use
savePathououtputDirpara especificar um local diferente.
Contribuindo
Contribuições são bem-vindas! Consulte CONTRIBUTING.md para diretrizes.
Segurança
Para preocupações de segurança, consulte nossa Política de Segurança. Não abra problemas públicos para vulnerabilidades.
Changelog
Consulte CHANGELOG.md para o histórico de versões.
Sobre
Construído e mantido por Little Bear Apps. Outlook Assistant é open source sob a Licença MIT.