使用说明
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许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行linting:
uvx ruff check --fix && uvx ruff format - 提交拉取请求
支持
对于问题和疑问:
- 检查现有问题
- 创建包含详细信息的新问题
- 包括你的Python版本和操作系统