Muitos conhecimentos de negócios estão em e‑mails, e a parte que você precisa geralmente está em um anexo: a cotação, a emenda assinada, o cronograma revisado. GroupDocs.Search.Mcp, executando localmente em Docker, abre arquivos de e‑mail e arquivos de arquivamento (PST, OST, MSG, EML) e indexa cada mensagem e cada anexo, de modo que Claude Desktop, Cursor ou Copilot possam pesquisar um arquivo no local e dizer exatamente de qual anexo veio a correspondência:
Indexe a pasta de e‑mail. Qual mensagem menciona um aumento de preço e o que exatamente diz?
A versão passo a passo com configuração e solução de problemas está na documentação: Como pesquisar arquivos de e‑mail e anexos com um agente de IA, localmente.
Por que o e‑mail é difícil para um agente?
Porque um arquivo é um contêiner de contêineres. Um PST contém pastas, as pastas contêm mensagens, as mensagens contêm anexos, e os anexos são arquivos Word, PDFs e planilhas por si mesmos. Um agente com ferramentas de arquivos vê um único arquivo binário grande. Exportar o arquivo para arquivos soltos primeiro funciona, mas é lento, duplica dados sensíveis no disco e precisa ser repetido quando o arquivo muda. E um modelo não consegue ler um PST de forma alguma.
O mecanismo de busca lida com o aninhamento por conta própria. Cada mensagem e cada anexo tornam‑se um item pesquisável, e um resultado registra tanto onde está o contêiner quanto onde dentro dele a correspondência foi encontrada.
Como é uma correspondência dentro de um anexo?
Aqui está o que o servidor retornou em nosso teste com três mensagens EML. A frase “aumento de preço” aparece apenas dentro da cotação Word anexada a uma delas; o corpo da mensagem simplesmente diz “por favor, encontre a cotação atualizada em anexo”.
-> add_to_index {"documentsPath":"mail","indexName":"mail"}
<- Indexed 'mail' into index 'mail': 3 document(s) added, 3 in the index.
-> search {"query":"\"price increase\"","indexName":"mail"}
<- { "documentsFound": 1, "documents": [
{ "filePath": "mail/2026-09-18-re-q3-pricing.eml",
"innerPath": "quotation-Q-2026-118.docx",
"occurrences": 1 } ] }
-> get_text_fragments {"query":"\"price increase\"","indexName":"mail"}
<- === mail/2026-09-18-re-q3-pricing.eml → quotation-Q-2026-118.docx
(1 occurrence(s)) ===
…Due to raw material costs we announce a price increase
of 6 percent from 2026-11-01.…
filePath é a mensagem; innerPath é o anexo. O agente pode responder “a mensagem Re: Q3 pricing da Contoso, na cotação anexada Q‑2026‑118: um aumento de 6 % a partir de 1 de novembro”, e cada parte dessa frase é rastreável.
mail/2026-09-18-re-q3-pricing.eml <- filePath
|- body: "please find the updated quotation attached"
'- attachment: quotation-Q-2026-118.docx <- innerPath
"...we announce a price increase of 6 percent..."
Perguntas que funcionam em e‑mail
A linguagem de consulta usual se aplica, e alguns padrões são especialmente úteis para correspondência. Todos foram testados na mesma caixa de correio de teste:
- “Qual mensagem da Fabrikam menciona um atraso na entrega?”:
fabrikam AND delay. Endereços de remetente são indexados com a mensagem, de modo quecontosotambém encontrou uma fatura cujo corpo nunca nomeia a empresa. - “Encontre todo e‑mail que menciona o pedido 77812”:
77812. Números inteiros são palavras. - “Quais faturas vencem em outubro?”:
invoice AND content: daterange(2026-10-01 ~~ 2026-10-31). Isso corresponde a datas escritas no texto da mensagem, aqui “due on 2026-10-22”. O prefixocontent:importa: sem ele, um intervalo de datas também corresponde às datas que o motor registra para cada arquivo.
Por que local importa mais para e‑mail do que para qualquer outra coisa
E‑mail é onde está o material sensível: dados pessoais, negociações, discussões de RH, aconselhamento jurídico. Ferramentas de busca que exigem o upload ou sincronização da caixa de correio para um serviço são inviáveis para muitas equipes. Aqui o arquivo é montado como somente‑leitura em um contêiner na máquina, indexado lá e pesquisado lá. O único texto que sai é o que o agente cita em sua resposta, e isso com um modelo hospedado localmente, nem mesmo isso.
Para uma configuração mais restrita, monte o arquivo como somente‑leitura e dê ao índice seu próprio volume:
docker run --rm -i \
-v /srv/mail:/data:ro \
-v /srv/mail-index:/index -e GROUPDOCS_MCP_INDEX_PATH=/index \
ghcr.io/groupdocs-search/search-net-mcp:latest
Delimitando um arquivo grande
Um arquivo com dezenas de milhares de mensagens indexa bem com uma licença, mas vale a pena ser deliberado. Indexe por pasta ou por ano como caminhos separados (mail/2025, mail/2026), de modo que um ano possa ser removido ou reconstruído isoladamente, já que o motor remove caminhos indexados inteiros em vez de arquivos individuais. Mantenha o e‑mail em seu próprio índice, separado de contratos ou relatórios, para que uma pergunta sobre correspondência não precise percorrer tudo o mais. E quando o arquivo crescer, update_index captura novas mensagens sem reler as antigas.
Limites honestos
- No modo de avaliação um índice contém no máximo 100 documentos e uma pesquisa retorna no máximo 10, e toda mensagem e anexo contam, portanto um arquivo real precisa de licença. Chame
get_license_statusprimeiro. - Um PST grande leva tempo para indexar: cada mensagem e anexo são abertos. Indexe uma vez, depois use
update_index. - Anexos escaneados sem camada de texto são indexados apenas por suas propriedades de arquivo; não há OCR.
- Apenas Docker; no Linux adicione
--user "$(id -u):$(id -g)"a menos que use a configuração somente‑leitura acima.
Perguntas Frequentes
Posso pesquisar um arquivo PST com IA sem Outlook?
Sim. O motor lê PST, OST, MSG e EML diretamente; o Outlook não está envolvido e nada é exportado.
Ele pesquisa dentro dos anexos de e‑mail?
Sim. Os anexos são indexados como itens da respectiva mensagem, e uma correspondência dentro de um anexo volta com innerPath indicando o anexo.
Minha caixa de correio é enviada para algum lugar?
Não. Ela é lida dentro de um contêiner local; apenas os trechos que o agente cita chegam ao provedor do seu modelo.
Aprofunde‑se
- Documentação, guia canônico: Como pesquisar arquivos de e‑mail e anexos com um agente de IA, localmente
- Hub de documentação: GroupDocs.Search MCP Server
- Comece aqui: Você precisa de um banco de vetores para fazer perguntas sobre uma pasta de documentos?
- Relacionado: Por que um agente de IA não deve ler 300 contratos para responder a uma pergunta
- Relacionado: Respostas fundamentadas a partir dos seus arquivos: cite a passagem, não a memória do modelo
- Relacionado: grep não lê PDF: dê ao seu agente de codificação um índice de documentos
- Relacionado: Memória de projeto para agentes de IA: um índice por projeto, mantido atualizado
- Modelo on‑premise e de segurança: 3 arquiteturas para processamento de documentos com IA, e a que mantém arquivos dentro da sua rede
- Perguntas: Fórum GroupDocs Search
- Fonte: GroupDocs.Search.Mcp no GitHub