Email Processing MCP Server

Integrations

  • Stores email vector embeddings for semantic search capabilities, manages connections properly, and provides metadata filtering and efficient retrieval

  • Planned future integration for expanded database options and more advanced relationship modeling for emails

  • Generates vector embeddings for emails using models like nomic-embed-text for enhanced semantic search capabilities

电子邮件处理 MCP 服务器

该 MCP 服务器提供电子邮件处理功能,并集成 MongoDB 进行语义搜索,以及 SQLite 进行高效存储和检索。

特征

  • 使用日期范围过滤功能处理 Outlook 中的电子邮件
  • 使用适当的连接管理将电子邮件存储在 SQLite 数据库中
  • 使用 Ollama 生成向量嵌入
  • 多邮箱支持
  • 支持收件箱、已发送邮件和可选的已删除邮件文件夹

即将推出的功能

  • 具有语义功能的电子邮件搜索
  • 使用 LLM 进行电子邮件摘要
  • 自动电子邮件分类
  • 可定制的电子邮件报告
  • 高级过滤选项
  • Outlook 起草电子邮件回复
  • Outlook 规则建议
  • 通过 Neo4j 和 ChromaDB 集成扩展数据库选项

先决条件

  • Python 3.10 或更高版本
  • Ollama 本地运行(用于嵌入)
  • 已安装 Microsoft Outlook
  • Windows 操作系统(用于 Outlook 集成)
  • MongoDB 服务器(用于存储嵌入)

安装

  1. 安装 uv(如果尚未安装):
pip install uv
  1. 创建虚拟环境:
uv venv .venv
  1. 激活虚拟环境:视窗:
    .venv\Scripts\activate
    macOS/Linux:
    source .venv/bin/activate
  2. 安装依赖项:
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": "C:\\Users\\username\\path\\to\\mcp-server-outlook-email\\data\\emails.db", "EMBEDDING_BASE_URL": "http://localhost:11434", "EMBEDDING_MODEL": "nomic-embed-text", "COLLECTION_NAME": "outlook-emails", "PROCESS_DELETED_ITEMS": "false" } } } }

追踪与监控

该服务器已设计为支持外部跟踪和监控解决方案。MCP 日志记录实现已被有意移除,以支持更强大的跟踪方法,该方法将单独实现。

注意:请勿尝试重新实现之前的日志系统。后续会提供新的追踪方案。

配置字段说明:

  • command :虚拟环境中 Python 可执行文件的完整路径
  • args :包含 MCP 服务器脚本完整路径的数组
  • env :配置的环境变量
    • MONGODB_URI :MongoDB 连接字符串
    • SQLITE_DB_PATH :SQLite 数据库文件的绝对路径
    • EMBEDDING_BASE_URL :Ollama 服务器 URL
    • EMBEDDING_MODEL :用于嵌入的模型
    • LLM_MODEL :用于 LLM 操作的模型
    • COLLECTION_NAME :要使用的 MongoDB 集合的名称(必需)
    • PROCESS_DELETED_ITEMS :是否处理“已删除邮件”文件夹中的电子邮件(可选,默认值:“false”)
  • disabled :服务器是否被禁用(应为 false)
  • alwaysAllow :不需要用户确认的工具数组
  • autoApprove :可自动批准的工具数组

将路径替换为系统上的实际路径。请注意, env部分中的 Windows 路径应使用双反斜杠。

可用工具

1. process_emails

处理指定日期范围内的电子邮件:

{ "start_date": "2024-01-01", # ISO format date (YYYY-MM-DD) "end_date": "2024-02-15", # ISO format date (YYYY-MM-DD) "mailboxes": ["All"] # List of mailbox names or ["All"] for all mailboxes }

该工具将:

  1. 连接到指定的 Outlook 邮箱
  2. 从收件箱和已发送邮件文件夹(以及已删除邮件,如果启用)检索电子邮件
  3. 将电子邮件存储在 SQLite 数据库中
  4. 使用 Ollama 生成嵌入
  5. 将嵌入存储在 MongoDB 中以进行语义搜索

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 连接是否正常工作
-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

使用日期过滤功能处理来自 Outlook 的电子邮件,将其存储在 SQLite 数据库中,同时为 MongoDB 中的语义搜索功能生成向量嵌入。

  1. 特征
    1. 即将推出的功能
      1. 先决条件
        1. 安装
          1. 配置
            1. 追踪与监控
          2. 可用工具
            1. 1. process_emails
          3. Claude 中的示例用法
            1. 建筑学
              1. 错误处理
                1. 资源管理
                  1. 安全说明
                    1. 调试

                      Related MCP Servers

                      • -
                        security
                        F
                        license
                        -
                        quality
                        Enables querying log data stored in SQLite databases through the Model Context Protocol, allowing natural language interactions with log analysis.
                        Last updated -
                        Python
                      • -
                        security
                        F
                        license
                        -
                        quality
                        A protocol server that enables LLMs like Claude to interact with MongoDB databases, providing tools for schema exploration, aggregation queries, and data analysis through natural language in Cursor.
                        Last updated -
                        11
                        5
                        TypeScript
                        • Linux
                        • Apple
                      • -
                        security
                        A
                        license
                        -
                        quality
                        An MCP server that enables large language models to interact directly with MongoDB databases, allowing them to query collections, inspect schemas, and manage data through natural language.
                        Last updated -
                        340
                        MIT License
                        • Apple
                      • -
                        security
                        A
                        license
                        -
                        quality
                        A Model Context Protocol server that enables semantic search capabilities by providing tools to manage Qdrant vector database collections, process and embed documents using various embedding services, and perform semantic searches across vector embeddings.
                        Last updated -
                        89
                        TypeScript
                        MIT License

                      View all related MCP servers

                      ID: i2klzdyvt1