Skip to main content
Glama
Zacccck

Claude-Read-Outlook-Attachments

Lector de archivos adjuntos M365 MCP

Un servidor MCP remoto para Claude que lee correos electrónicos de Outlook y analiza en profundidad los archivos adjuntos a través de la API de Microsoft Graph.

El manejo de archivos adjuntos ahora incluye PDF, PDF escaneado con OCR, Word, PowerPoint, Excel, CSV, texto plano, imágenes, archivos comprimidos y archivos .msg de Outlook.

Estado: Versión de prueba inicial basada en Windows. Funcional para uso personal y flujos de trabajo privados, pero aún no es un servicio de producción multiusuario.


Por qué existe esto

El conector integrado de Microsoft 365 de Claude puede listar correos electrónicos, leer el cuerpo de los mensajes y consultar calendarios. Pero no puede leer el contenido real dentro de los archivos adjuntos de los correos.

Eso significa que cuando dices "¿Qué dice el PDF en mi último correo?", Claude puede ver los metadatos del archivo adjunto, pero no el texto, las tablas, las imágenes o los documentos anidados dentro de él.

Este proyecto llena ese vacío.


Qué hace

Este servidor se sitúa entre Claude y Microsoft 365 como un punto final MCP HTTP remoto. Realiza lo siguiente:

  1. Se autentica con Microsoft 365 mediante el flujo de código de dispositivo

  2. Lista los correos electrónicos de Outlook y sus archivos adjuntos a través de Microsoft Graph

  3. Descarga los archivos adjuntos en el backend

  4. Analiza el contenido de los archivos y devuelve texto estructurado y bloques de imágenes directamente a Claude

Formatos compatibles

Formato

Qué se extrae

PDF

Contenido de texto completo

PDF escaneado

Texto OCR, además de imágenes de página renderizadas opcionales

DOCX

Texto e imágenes incrustadas

DOC

Contenido de texto

PPTX / PPTM / PPSX / POTX

Texto de diapositivas, notas e imágenes incrustadas

PPT

Extracción de texto heredado con el mejor esfuerzo

XLSX / XLS / CSV

Todas las hojas convertidas a CSV

JPG / JPEG / PNG / GIF / WEBP / BMP / TIFF

Devueltos como bloques de imagen MCP para análisis visual

ZIP / RAR / 7Z

Contenido del archivo analizado recursivamente archivo por archivo

MSG

Asunto, remitente, cuerpo y archivos adjuntos incrustados

TXT / MD / JSON / XML / HTML

Texto sin formato

Outlook itemAttachment

Contenido de texto

El manejo de imágenes es un diferenciador clave: el servidor puede devolver archivos adjuntos de imagen independientes como bloques de imagen MCP, extraer imágenes incrustadas de archivos DOCX y PPTX, y recurrir al OCR para archivos PDF escaneados cuando no existe una capa de texto.

Herramientas MCP

Herramienta

Descripción

health_check

Comprobar si el servidor está activo

begin_auth

Iniciar el flujo de inicio de sesión con código de dispositivo

auth_status

Comprobar el estado de autenticación

list_recent_messages

Listar correos electrónicos recientes de Outlook

list_email_attachments

Listar archivos adjuntos para un correo electrónico específico

read_email_attachment

Descargar, analizar y devolver el contenido del archivo adjunto

Estos nombres cortos de herramientas son alias para las herramientas subyacentes m365_* registradas por el servidor.


Casos de uso en el mundo real

Operaciones de venta / Retail

"Obtén los últimos 5 correos electrónicos del Panel de control diario, lee los archivos adjuntos de Excel y analiza la tendencia de ventas en todas las ubicaciones de las tiendas durante la última semana."

Finanzas / Contabilidad

"Busca el último correo electrónico de nuestro proveedor con 'Factura' en el asunto, lee el archivo adjunto PDF y extrae el monto total, la fecha de vencimiento y las partidas individuales."

"Abre el correo electrónico más reciente de legal@partner.com, lee el archivo adjunto de Word o PowerPoint y resume los términos clave."

Informes ejecutivos

"Lee el archivo adjunto del informe semanal de la junta directiva del último correo electrónico del CFO y resume los gráficos y las métricas clave."

RR.HH. / Reclutamiento

"Busca correos electrónicos de recruiting@company.com con archivos adjuntos, lee cada PDF de currículum y crea una tabla comparativa de candidatos."

Cadena de suministro / Adquisiciones

"Lee el último archivo comprimido de cotizaciones de proveedores, extrae las hojas de cálculo que contiene y compara los precios unitarios con la cotización anterior."


Arquitectura

Claude Chat -> Cloudflare Tunnel -> Local Express Server -> Microsoft Graph API
                (public URL)       (localhost:8080)      (Outlook data)
                                           |
                                    Parse attachments
                              (pdf-parse, tesseract.js,
                               mammoth, xlsx, adm-zip,
                                msgreader, archive tools)

Para pruebas locales, Cloudflare Quick Tunnel expone el servidor local a Internet. Claude se conecta a través de un conector personalizado que apunta a la URL del túnel.


Requisitos previos

  • Windows 10/11 con PowerShell

  • Node.js

  • Una cuenta de Microsoft 365 / Outlook

  • Una cuenta de Claude con soporte para conectores personalizados


Configuración

1. Crear un registro de aplicación en Microsoft Entra

Ve al Centro de administración de Microsoft Entra -> Registros de aplicaciones -> Nuevo registro.

  • Nombre: m365-mcp-remote

  • Tipos de cuenta admitidos: Cuentas en cualquier directorio organizativo y cuentas personales de Microsoft

Luego:

  1. Copia el ID de la aplicación (cliente) y el ID del directorio (inquilino) de la página de información general

  2. Ve a Autenticación -> Habilitar Permitir flujos de cliente público -> Guardar

  3. Ve a Permisos de API -> Agregar un permiso -> Microsoft Graph -> Permisos delegados -> Agregar User.Read y Mail.Read -> Conceder consentimiento de administrador

2. Clonar e instalar

git clone https://github.com/Zacccck/MCP.git
cd MCP
npm install

3. Configurar el entorno

cp .env.example .env

Edita .env y completa tu ID de cliente de la aplicación:

M365_CLIENT_ID=your-application-client-id-here
M365_TENANT_ID=common

4. Iniciar el servidor

npm start

Deberías ver:

Custom M365 HTTP MCP server listening at http://127.0.0.1:8080/mcp

5. Exponer a través de Cloudflare Tunnel

En una nueva ventana de PowerShell:

winget install --id Cloudflare.cloudflared

Luego ejecuta:

cloudflared tunnel --url http://127.0.0.1:8080

Copia la URL generada https://xxxxx.trycloudflare.com.

6. Agregar a Claude como un conector personalizado

En Claude Chat:

  1. Haz clic en el botón + cerca del área de entrada

  2. Abre Conectores -> Agregar conector -> Conector personalizado

  3. Ingresa la URL: https://xxxxx.trycloudflare.com/mcp

Usa https:// e incluye /mcp al final. No uses http://127.0.0.1:8080/mcp.

7. Autenticar

En Claude, di:

Please call begin_auth

Claude devolverá una URL de inicio de sesión y un código de dispositivo. Abre la URL, ingresa el código y completa el inicio de sesión de Microsoft. Luego verifica con:

Please call auth_status

8. Usarlo

Show me my recent outlook emails with attachments
Summarize the contents of the attachments from the email

Limitaciones importantes

  • Usuario único: El estado de autenticación se almacena en la memoria. Una instancia de servidor equivale a una cuenta de Microsoft.

  • Se requieren dos procesos: Tanto node server.mjs como cloudflared tunnel deben permanecer ejecutándose durante el uso.

  • Quick Tunnel es solo para pruebas: La URL de Cloudflare cambia cada vez que reinicias cloudflared.

  • Se requiere configuración manual: El registro de la aplicación de Azure, la configuración de .env y la configuración del conector siguen siendo manuales.


Solución de problemas

Problema

Solución

Claude no puede encontrar las herramientas MCP

Comprueba que tanto el servidor Node como el túnel Cloudflare sigan ejecutándose. La URL del túnel puede haber cambiado después del reinicio.

Error invalid_grant

Vuelve a verificar el registro de tu aplicación: tipos de cuenta admitidos, flujos de cliente público habilitados y permisos User.Read y Mail.Read concedidos.

El código de dispositivo no aparece

Asegúrate de que begin_auth se haya llamado correctamente. No inventes un código manualmente.

Quieres cambiar de cuenta

Detén el servidor Node, reinicia con npm start y usa una ventana de navegador privada para iniciar sesión.


Estructura del proyecto

MCP/
|-- server.mjs
|-- package.json
|-- .env.example
|-- .gitignore
|-- LICENSE
`-- README.md

Hoja de ruta

  • [ ] Configuración inicial más sencilla

  • [ ] Cierre de sesión y cambio de cuenta sin reiniciar

  • [ ] Modo de servicio en segundo plano de Windows

  • [ ] Guía de implementación de producción

  • [ ] Arquitectura de sesión multiusuario

  • [ ] Cobertura de idioma OCR más profunda y mejor resumen de archivos grandes


Notas de seguridad

Esta es una implementación de prototipo y prueba local. No está lista para producción para despliegue público. Antes de desplegar públicamente, necesitarías autenticación frente a /mcp, aislamiento de sesión por usuario, almacenamiento seguro de tokens, limitación de velocidad e infraestructura adecuada.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zacccck/Claude-MCP-Read-Email-Attachments'

If you have feedback or need assistance with the MCP directory API, please join our Discord server