返回 MCP 目录
public公开dns本地运行

Outlook Email Processor

一个提供电子邮件处理能力的MCP服务器,集成MongoDB语义搜索和SQLite高效存储

article

README

🚀 电子邮件处理 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 连接是否正常工作
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端