Outlook Email Processor

Outlook Email Processor

🚀 电子邮件处理 MCP 服务器

本 MCP 服务器专注于电子邮件处理,集成了 MongoDB 进行语义搜索,同时采用 SQLite 实现高效的存储与检索功能,为用户提供了强大且稳定的电子邮件处理解决方案。

✨ 主要特性

现有功能

  • 支持处理带有日期范围过滤的 Outlook 电子邮件,方便用户筛选特定时间段内的邮件。
  • 可在 SQLite 数据库中存储电子邮件,并进行适当的连接管理,确保数据的稳定存储。
  • 借助 Ollama 生成向量嵌入,为语义搜索提供支持。
  • 支持多邮箱,满足不同用户的多样化需求。
  • 支持 Inbox、Sent Items 和可选的 Deleted Items 文件夹,覆盖常见的邮件使用场景。

待实现功能

  • 带有语义能力的电子邮件搜索,提升搜索的准确性和效率。
  • 使用 LLM 的电子邮件摘要,帮助用户快速了解邮件内容。
  • 自动电子邮件分类,实现邮件的智能整理。
  • 可自定义的电子邮件报告,满足个性化的数据分析需求。
  • 高级过滤选项,提供更精细的邮件筛选方式。
  • Outlook 草拟电子邮件响应,节省用户的回复时间。
  • Outlook 规则建议,优化邮件管理流程。
  • 扩展数据库选项,集成 Neo4j 和 ChromaDB,增强数据存储和处理能力。

📦 安装指南

先决条件

  • 需安装 Python 3.10 或更高版本。
  • Ollama 需在本地运行,用于生成嵌入。
  • 需安装 Microsoft Outlook。
  • 操作系统需为 Windows,以实现 Outlook 集成。
  • 需运行 MongoDB 服务器,用于存储嵌入。

安装步骤

  1. 安装 uv(如果尚未安装):
    pip install uv
    
  2. 创建虚拟环境:
    uv venv .venv
    
  3. 激活虚拟环境:
    • Windows:
    .venv\Scripts\activate
    
    • macOS/Linux:
    source .venv/bin/activate
    
  4. 安装依赖项:
uv pip install -e .
  1. 安装 fastmcp 包:
uv pip install fastmcp
  1. 确保 Ollama 本地运行并安装所需模型:
ollama pull nomic-embed-text

📚 详细文档

配置

将服务器添加到您的 Claude for Desktop 配置文件中:

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"outlook-email": {
"command": "C:/Users/username/path/to/mcp-server-outlook-email/.venv/Scripts/python",
"args": [
"C:/Users/username/path/to/mcp-server-outlook-email/src/mcp_server.py"
],
"env": {
"MONGODB_URI": "mongodb://localhost:27017/MCP?authSource=admin",
"SQLITE_DB_PATH": "email_processing.db",
"OLLAMA_HOST": "localhost",
"OLLAMA_PORT": 11434
}
}
}
}

示例用法在 Claude 中

"Process emails from February 1st to February 17th from all mailboxes"

架构

服务器采用混合搜索方法:

  1. SQLite 数据库用于:
    • 主电子邮件存储
    • 全文搜索功能
    • 处理状态跟踪
    • 高效过滤
    • 目录自动创建(如果不存在)
    • 连接在服务器关闭时正确关闭,以防止“无法操作已关闭数据库”错误
  2. MongoDB 用于:
    • 嵌入式向量存储
    • 语义相似性搜索
    • 元数据过滤
    • 高效检索
    • 在服务器关闭后正确关闭连接

错误处理

服务器提供详细错误消息,针对常见问题:

  • 无效日期格式
  • 与 Outlook 的连接问题
  • MongoDB 错误
  • 嵌入式生成失败并带有重试逻辑
  • SQLite 存储错误
  • Ollama 服务器连接问题的自动重试

资源管理

服务器实现适当的资源管理以防止问题:

  • 数据库连接(SQLite 和 MongoDB)在服务器生命周期内保持打开状态,以防止“无法操作已关闭数据库”错误
  • 连接仅在服务器关闭时关闭,使用 atexit 处理器
  • 使用破坏性和上下文管理器作为最后手段,确保连接在对象垃圾回收时关闭
  • 旨在平衡资源使用与运营可靠性的连接管理
  • 健壮的重试逻辑用于外部服务(如 Ollama),以处理临时连接问题

安全注意事项

  • 服务器仅处理指定邮箱的电子邮件
  • 所有数据本地存储(SQLite)并在 MongoDB 中
  • 除本地 Ollama 服务器外,没有进行任何外部 API 调用
  • 需要明确用户批准才能进行电子邮件处理
  • 通过 MCP 接口不会暴露任何敏感的电子邮件数据

调试

遇到问题时:

  1. 验证电子邮件是否成功处理(检查 process_emails 响应)
  2. 确保 Ollama 服务器在嵌入生成期间运行
  3. 检查 SQLite 数据库是否可访问
  4. 验证 MongoDB 连接是否正常工作
  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-19 04:21

相似服务问题