IMAP邮件管理服务器

MCP IMAP Server是一个功能全面的IMAP邮件管理服务器,提供高级搜索、批量操作和安全凭证存储功能,适用于需要高效邮件管理的场景。

  • by jangop
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jangop/mcp-imap-server

使用说明

MCP IMAP服务器

一个全面的模型上下文协议(MCP)服务器,用于功能齐全的IMAP电子邮件管理,具有高级搜索、批量操作和安全凭据存储功能。

特性

🔐 身份验证和安全

  • 使用系统密钥环保护凭据存储
  • 支持多个IMAP帐户
  • SSL/TLS连接支持
  • 连接测试和诊断

📧 电子邮件操作

  • 基本操作:列出、阅读、标记为已读/未读、删除电子邮件
  • 批量操作:将多封电子邮件标记为已读,批量删除
  • 搜索:按日期、大小、发件人、主题、正文、标志进行高级搜索
  • 附件:提取并保存电子邮件附件
  • 构图:创建并保存电子邮件草稿

🎯 智能内容处理

  • 智能内容选择:根据内容质量自动选择纯文本或HTML进行标记
  • 树桩检测:标识占位符文本(例如“浏览器中的视图”)并使用HTML内容
  • 代币效率:通过智能内容选择将令牌使用量减少60-80%
  • 格式灵活性:针对不同客户需求的五种内容格式选项:
    • default -智能选择:有意义的明文或HTML标记
    • original_plaintext -原始明文内容
    • original_html -原始HTML内容
    • markdown_from_html -从HTML转换的干净标记
    • all -所有可用格式,实现最大灵活性

📁 文件夹管理

  • 列出所有邮箱/文件夹
  • 在文件夹之间切换
  • 文件夹统计和分析
  • 对大型文件夹的分页支持

🔍 高级搜索功能

  • 日期范围搜索
  • 基于大小的过滤
  • 正文和主题中的文本搜索
  • 基于标记的过滤(已读/未读、标记、删除等)
  • 附件存在过滤
  • 组合搜索条件

安装

根据您的设置,您可能希望您的代理处理服务器, 因此,您不需要手动安装/启动。 但是,要管理凭据(您的imap服务器、用户名和密码), 您应该使用命令行界面。

随着 紫外线,这变得微不足道。

先决条件

  • 安装uv 如果你还没有这样做。

通过命令行界面添加凭据

使用 uvx 向 在不安装的情况下调用应用程序 它

uvx --from git+https://github.com/jangop/mcp-imap-server mcp-imap-credentials add

按照要求输入您的凭据。 它们将被安全地存储在本地。

或者,安装应用程序——但为什么呢?

运行MCP服务器

你可以使用 uv/uvx 安装/运行服务器,但您可能希望您的代理(MCP客户端)处理它。

根据您的设置,您可能希望您的代理处理服务器。 在配置中使用以下内容:

  "mcpServers": {
    "mcp-imap-server": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/jangop/mcp-imap-server", "mcp-imap-server"]
    }
  }

Gemini CLI

例如,要配置 Gemini CLI 为了使用该服务器, 将以下内容放入 ~/.gemini/extensions/mcp-imap-server/gemini-extension.json, 向 将服务器作为扩展安装:

{
  "name": "mcp-imap-server",
  "version": "0.0.1",
  "mcpServers": {
    "mcp-imap-server": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/jangop/mcp-imap-server", "mcp-imap-server"]
    }
  }
}

那么,只是 启动Gemini CLI:

npx https://github.com/google-gemini/gemini-cli

MCP工具可用

认证

  • login(username, password, server) -连接到IMAP服务器
  • logout() -断开与服务器的连接
  • list_stored_accounts() -列出已配置的帐户

电子邮件操作

  • list_emails(limit, headers_only, content_format) -列出最近使用智能内容处理的电子邮件
  • filter_emails_by_sender(sender, limit, headers_only, content_format) -按发件人筛选电子邮件
  • filter_emails_by_subject(subject, limit, headers_only, content_format) -按主题过滤电子邮件
  • get_recent_emails(count, headers_only, content_format) -获取最新电子邮件
  • read_email(uid, content_format) -获取包含完整内容的特定电子邮件
  • mark_as_read(uid) -将电子邮件标记为已读
  • delete_email(uid, expunge) -删除电子邮件
  • bulk_mark_as_read(uids) -将多封电子邮件标记为已读

搜索操作

  • search_emails_by_date_range(start_date, end_date, headers_only, content_format) -按日期搜索
  • search_emails_by_size(min_size, max_size, headers_only, content_format) -按大小搜索
  • search_emails_by_body_text(search_text, headers_only, content_format) -在正文/主题中搜索
  • search_emails_with_attachments(min_attachments, headers_only, content_format) -查找带有附件的电子邮件
  • search_emails_by_flags(seen, flagged, deleted, headers_only, content_format) -按旗帜搜索
  • advanced_email_search(..., content_format) -具有多个条件的组合搜索

文件夹管理

  • list_folders() -列出所有文件夹
  • select_folder(folder_name) -切换到文件夹
  • get_folder_statistics(folder_name) -获取文件夹统计信息
  • get_emails_paginated(page, page_size, folder_name, headers_only, content_format) -分页电子邮件检索
  • search_emails_paginated(search_criteria, page, page_size, headers_only, content_format) -分页搜索结果
  • get_emails_by_flag_paginated(flag, page, page_size, headers_only, content_format) -基于分页标志的检索

附件

  • extract_attachments(uid, save_path, include_inline) -提取附件

电子邮件撰写

  • append_email(folder, subject, from_address, to_addresses, ...) -创建电子邮件草稿

配置

凭据存储

使用系统密钥环安全地存储凭据:

  • Linux:用途 secretstorage 或 kwallet
  • macOS:用途 keychain (未经测试)
  • 视窗:用途 win32crypt (未经测试)

支持的IMAP服务器

  • Gmail: imap.gmail.com:993 (未经测试)
  • Outlook/Office365: outlook.office365.com:993 (未经测试)
  • 雅虎: imap.mail.yahoo.com:993 (未经测试)
  • 自定义服务器:任何支持SSL的IMAP服务器

发展

设置开发环境

# Install development dependencies
uv sync --dev

# Run linting and formatting
uvx ruff check --fix && uvx ruff format

# Run tests (if available)
uvx pytest

项目结构

src/mcp_imap_server/
├── cli/                 # Command-line interface
│   ├── commands.py     # Account management commands
│   └── testing.py      # Connection testing tools
├── server/             # MCP server implementation
│   ├── auth.py         # Authentication tools
│   ├── compose.py      # Email composition
│   ├── email/          # Email operations
│   │   ├── attachments.py
│   │   ├── basic_operations.py
│   │   ├── bulk_operations.py
│   │   ├── content_processing.py  # Intelligent content processing & formatting
│   │   └── search.py
│   ├── folder/         # Folder management
│   │   ├── management.py
│   │   ├── pagination.py
│   │   └── statistics.py
│   └── state.py        # Server state management
└── shared/             # Shared utilities
    └── credentials.py  # Credential management

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行linting: uvx ruff check --fix && uvx ruff format
  5. 提交拉取请求

支持

对于问题和疑问:

  • 检查现有问题
  • 创建包含详细信息的新问题
  • 包括你的Python版本和操作系统