Token导航 LogoToken导航TokenDH.com
Email Processing MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Email Processing MCP Server

MCP Server

一个跨平台的MCP服务器,用于处理Microsoft Outlook电子邮件,使用Ollama生成向量嵌入并提供语义搜索功能。

工具数

11

提示词数

0

GitHub Stars

14

资源数

0
跨平台PythonClaude搜索Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Cam10001110101

提供方

Cam10001110101

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install uv

详细介绍

](https://mseep.ai/app/cam10001110101-mcp-server-outlook-email)

电子邮件处理MCP服务器

一个跨平台的MCP服务器,处理Microsoft Outlook电子邮件,使用Ollama生成向量嵌入,并提供语义搜索功能。工作在 视窗, macOS,以及 通过Microsoft Graph API的任何平台.

服务器符合 模型上下文协议(MCP)2025-06-18规范 并使用官方的MCP SDK。

特性

核心能力

  • 使用日期范围筛选处理来自Outlook的电子邮件
  • 通过适当的连接管理将电子邮件存储在SQLite数据库中
  • 使用Ollama生成向量嵌入(nomic嵌入文本)
  • 通过MongoDB矢量存储跨电子邮件内容进行语义搜索
  • 支持多邮箱和多账户
  • 支持收件箱、已发送邮件和可选的已删除邮件文件夹

与跨平台支持

  • 视窗:通过pywin32实现本机Outlook COM自动化
  • macOS:AppleScript与Outlook for Mac的集成
  • 任何平台:用于基于云的访问的Microsoft Graph API(Windows、macOS、Linux、容器)

MCP 2025-06-18合规性

  • 结构化工具结果:工具返回正确键入、验证的Pydantic模型
  • HTTP传输:支持STDIO和HTTP(流式HTTP)传输
  • 协议协商:在握手过程中声明协议版本
  • 增强元数据:用于更好地集成UI的工具标题和描述

可用工具(12+)

类别工具
电子邮件处理process_emails
搜索与分析search_emails, analyze_email_sentiment, find_actionable_items
数据导出export_email_data (CSV、JSON、HTML、Excel)
文件夹管理list_outlook_folders, get_folder_statistics, organize_emails_by_rules
联系人管理extract_contacts
统计数据get_email_statistics, check_data_consistency

先决条件

必需(所有平台)

  • Python 3.10或更高版本
  • Ollama在当地跑步 nomic-embed-text 模型
  • MongoDB服务器(用于存储嵌入)

平台特定要求

平台要求
Windows已安装Microsoft Outlook+pywin32
macOS已安装Microsoft Outlook for Mac
图形APIAzure AD应用程序注册邮件。读取权限

安装

1.安装uv(如果尚未安装)

pip install uv

2.创建并激活虚拟环境

uv venv .venv

# Windows
.venv\Scripts\activate

# macOS/Linux
source .venv/bin/activate

3.安装依赖项

核心安装(必需):

uv pip install -e .

平台特定附加功能:

# Windows (adds pywin32 for COM automation)
uv pip install -e ".[windows]"

# Graph API support (cross-platform cloud access)
uv pip install -e ".[graph]"

# All optional dependencies
uv pip install -e ".[all]"

4.安装Ollama嵌入模型

ollama pull nomic-embed-text

5.(仅限Graph API)注册Azure AD应用程序

如果使用Microsoft Graph API,则需要在Azure AD中注册应用程序:

  1. 首选 Azure门户 → Azure Active Directory→ 应用程序注册
  2. 点击“新建注册”
  3. 命名您的应用程序并选择“仅此组织目录中的帐户”
  4. 创建后,请注意 应用程序(客户端)ID目录(租户)ID
  5. 转到“证书和机密”→ “新客户机密”→ 注意秘密值
  6. 转到“API权限”→ “添加权限”→ “Microsoft Graph”→ “应用程序权限”
  7. 添加: Mail.Read, User.Read.All (用于多帐户发现)
  8. 点击“授予管理员同意”

配置

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

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

环境变量

变量描述必填
MONGODB_URIMongoDB连接字符串
SQLITE_DB_PATHSQLite数据库文件的路径
EMBEDDING_BASE_URLOllama服务器URL(默认值:http://localhost:11434)没有
EMBEDDING_MODEL嵌入模型名称(默认:nomic嵌入文本)
COLLECTION_NAMEMongoDB集合名称
PROCESS_DELETED_ITEMS处理已删除邮件文件夹(默认:“false”)
OUTLOOK_PROVIDER提供商: auto, windows, mac, graph (默认:“自动”)
LOCAL_TIMEZONE日期时区(默认值:“UTC”,例如“美洲/芝加哥”)

图形API变量(当 OUTLOOK_PROVIDER=graph):

变量描述
GRAPH_CLIENT_IDAzure AD应用程序(客户端)ID
GRAPH_CLIENT_SECRETAzure AD客户端机密
GRAPH_TENANT_IDAzure AD租户ID
GRAPH_USER_EMAILS邮箱:逗号分隔列表或“全部”用于自动发现

______________________________________________________________________

Windows配置(COM自动化)

通过pywin32使用本机Outlook COM自动化。

{
  "mcpServers": {
    "outlook-email": {
      "command": "C:/path/to/.venv/Scripts/python",
      "args": ["C:/path/to/src/mcp_server.py"],
      "env": {
        "MONGODB_URI": "mongodb://localhost:27017/MCP?authSource=admin",
        "SQLITE_DB_PATH": "C:\\path\\to\\data\\emails.db",
        "EMBEDDING_BASE_URL": "http://localhost:11434",
        "EMBEDDING_MODEL": "nomic-embed-text",
        "COLLECTION_NAME": "outlook-emails",
        "OUTLOOK_PROVIDER": "windows",
        "LOCAL_TIMEZONE": "America/Chicago"
      }
    }
  }
}

macOS配置(AppleScript)

使用AppleScript与Outlook for Mac通信。

{
  "mcpServers": {
    "outlook-email": {
      "command": "/path/to/.venv/bin/python",
      "args": ["/path/to/src/mcp_server.py"],
      "env": {
        "MONGODB_URI": "mongodb://localhost:27017/MCP?authSource=admin",
        "SQLITE_DB_PATH": "/path/to/data/emails.db",
        "EMBEDDING_BASE_URL": "http://localhost:11434",
        "EMBEDDING_MODEL": "nomic-embed-text",
        "COLLECTION_NAME": "outlook-emails",
        "OUTLOOK_PROVIDER": "mac",
        "LOCAL_TIMEZONE": "America/Los_Angeles"
      }
    }
  }
}

图形API配置(跨平台)

适用于任何具有Azure AD凭据的平台。支持单个或多个邮箱。

单个邮箱或特定邮箱:

{
  "mcpServers": {
    "outlook-email": {
      "command": "python",
      "args": ["src/mcp_server.py"],
      "env": {
        "MONGODB_URI": "mongodb://localhost:27017/MCP",
        "SQLITE_DB_PATH": "/data/emails.db",
        "EMBEDDING_BASE_URL": "http://localhost:11434",
        "EMBEDDING_MODEL": "nomic-embed-text",
        "COLLECTION_NAME": "outlook-emails",
        "OUTLOOK_PROVIDER": "graph",
        "GRAPH_CLIENT_ID": "your-azure-ad-client-id",
        "GRAPH_CLIENT_SECRET": "your-client-secret",
        "GRAPH_TENANT_ID": "your-tenant-id",
        "GRAPH_USER_EMAILS": "user1@example.com,user2@example.com"
      }
    }
  }
}

租户中的所有邮箱(自动发现):

{
  "mcpServers": {
    "outlook-email": {
      "command": "python",
      "args": ["src/mcp_server.py"],
      "env": {
        "MONGODB_URI": "mongodb://localhost:27017/MCP",
        "SQLITE_DB_PATH": "/data/emails.db",
        "EMBEDDING_BASE_URL": "http://localhost:11434",
        "EMBEDDING_MODEL": "nomic-embed-text",
        "COLLECTION_NAME": "outlook-emails",
        "OUTLOOK_PROVIDER": "graph",
        "GRAPH_CLIENT_ID": "your-azure-ad-client-id",
        "GRAPH_CLIENT_SECRET": "your-client-secret",
        "GRAPH_TENANT_ID": "your-tenant-id",
        "GRAPH_USER_EMAILS": "All"
      }
    }
  }
}

提供商自动检测

OUTLOOK_PROVIDER 设置为 auto (默认),服务器会自动选择最佳提供商:

平台自动选择提供程序
窗户windows (COM自动化)
macOSmac (AppleScript)
Linux/其他graph (需要Azure AD设置)

HTTP传输(符合2025-06-18标准)

对于HTTP传输,请使用以下命令运行服务器 --http 标志:

python src/mcp_server.py --http

这将在以下位置启动服务器 http://localhost:8000/mcp 完全符合2025-06-18协议,包括:

  • 协议版本协商
  • 结构化输出模式
  • HTTP标头验证
  • 正确的错误处理

HTTP传输支持有状态和无状态操作模式。

______________________________________________________________________

可用工具

1.处理邮件

处理指定日期范围内的电子邮件并返回结构化结果:

输入:

{
  "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
}

输出(结构化):

{
  "success": true,
  "processed_count": 150,
  "retrieved_count": 200,
  "stored_count": 180,
  "failed_count": 20,
  "message": "Successfully processed 150 emails (retrieved: 200, stored: 180, failed: 20)",
  "error": null
}

该工具将:

  1. 连接到指定的Outlook邮箱
  2. 从收件箱和已发送邮件文件夹(以及已删除邮件,如果启用)中检索电子邮件
  3. 将电子邮件存储在SQLite数据库中
  4. 使用Olama生成嵌入
  5. MongoDB中用于语义搜索的存储嵌入
  6. 返回具有详细统计信息的结构化结果

Claude中的示例用法

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

建筑

基于提供者的连接器设计

服务器使用 基于提供者的抽象 对于跨平台电子邮件访问:

src/connectors/
├── base.py               # OutlookConnectorBase (abstract interface)
├── factory.py            # create_connector() with auto-detection
├── windows_connector.py  # Windows COM via pywin32
├── mac_connector.py      # macOS AppleScript via osascript
└── graph_connector.py    # Microsoft Graph API (cross-platform)

所有连接器实现相同的接口,返回标准化 EmailMetadata 无论平台如何。

双数据库架构

服务器使用混合存储方法:

SQLite数据库:

  • 主电子邮件存储和元数据
  • 全文搜索功能
  • 处理状态跟踪
  • 日期范围和文件夹筛选
  • 快速结构化查询

MongoDB:

  • 矢量嵌入存储(768维)
  • 语义相似度搜索
  • 元数据与嵌入一起存储
  • 启用AI驱动的搜索

错误处理

服务器为常见问题提供详细的错误消息:

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

资源管理

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

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

MCP 2025-06-18合规性

此服务器已升级为符合MCP 2025-06-18规范:

协议特性

  • 协议版本:声明 protocolVersion: "2025-06-18" 握手时
  • 结构化输出:所有工具都返回键入、验证的Pydantic模型
  • HTTP传输:支持具有适当标头验证的流式HTTP
  • 工具元数据:通过标题和模式增强工具描述
  • 错误处理:带有详细信息的结构化错误响应

运输支持

  • 工作室:传统stdin/stdout通信(默认)
  • 超文本传输协议:本地主机上的流式HTTP:8000/mcp,带标头验证
  • 协议头:验证MCP协议版本和源标头
  • 单消息JSON-RPC:根据2025-06-18规范,不支持批量请求

结构化输出

process_emails 工具返回结构化 ProcessEmailsResult 与:

  • success:布尔值表示操作成功
  • processed_count:成功处理的电子邮件数量
  • retrieved_count:从Outlook检索到的电子邮件总数
  • stored_count:SQLite中存储的电子邮件数量
  • failed_count:处理失败的电子邮件数量
  • message:人类可读的状态消息
  • error:操作失败时的错误详细信息

安全说明

  • 服务器仅处理来自指定邮箱的电子邮件
  • 所有数据都存储在本地(SQLite)和MongoDB中
  • 除了对本地Ollama服务器(以及使用该提供程序的Microsoft Graph)的调用外,没有外部API调用
  • 电子邮件处理需要明确的用户批准
  • MCP接口不会暴露敏感电子邮件数据
  • 为了安全起见,HTTP传输仅绑定到localhost
  • Graph API使用带有Azure AD的OAuth 2.0客户端凭据流
  • 安全地存储Azure AD凭据(环境变量,不在代码中)

调试

如果您遇到问题:

  1. 验证电子邮件是否已成功处理(检查process_emails响应)
  2. 确保Ollama服务器正在运行以进行嵌入式生成
  3. 检查SQLite数据库是否可访问
  4. 验证MongoDB连接是否正常工作
  5. 使用 check_data_consistency 用于验证SQLite/MongoDB同步的工具

平台特定调试

窗户:

  • 确保Outlook正在运行且可访问
  • 检查是否安装了pywin32: pip show pywin32
  • 验证COM自动化是否正常工作: python -c "import win32com.client; print('OK')"

macOS:

  • 确保已安装Outlook for Mac(而不仅仅是“新Outlook”web应用程序)
  • 测试AppleScript访问: osascript -e 'tell application "Microsoft Outlook" to get name'
  • 在系统首选项中授予终端/IDE权限→ 安全与隐私→ 自动化

图形API:

  • 验证Azure AD应用程序是否具有正确的权限(Mail.Read、User.Read.All)
  • 检查是否已授予管理员同意
  • 测试令牌获取:启动时记录凭据
  • 验证 GRAPH_USER_EMAILS 设置正确(“全部”或逗号分隔的电子邮件)

平台限制

平台限制
Windows需要运行Outlook桌面应用程序
macOS“新Outlook”可能对AppleScript的支持有限;使用Graph API作为回退
Graph API需要Azure AD设置;强制执行30天的最大日期范围
全部每个请求最多可处理30天

即将推出的功能

  • 使用LLM进行电子邮件摘要
  • 自动电子邮件分类
  • 可定制的电子邮件报告
  • Outlook正在起草电子邮件回复
  • Outlook规则建议
  • 通过Neo4j和ChromaDB集成扩展数据库选项

目录标签

目录标签

跨平台PythonClaude搜索邮件处理本地部署语义搜索向量嵌入微软Outlook

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP