T-Online电子邮件MCP服务器
用于管理在线电子邮件的模型上下文协议(MCP)服务器。
特性
- 📧 电子邮件搜索:按发件人、收件人、主题、内容和日期搜索电子邮件
- 📁 文件夹管理:创建、删除和管理电子邮件文件夹
- ↔️ 电子邮件移动:在文件夹之间移动电子邮件
- 👁️ 状态管理:将电子邮件标记为已读/未读
- 🗑️ 电子邮件删除:永久删除电子邮件
- 🔒 安全连接:使用安全的IMAP/SMTP连接联机
- ⚙️ 通过.env进行配置:所有设置都从.env文件加载
安装
- 安装依赖项:
npm install- 创建配置:
cp .env.example .env编辑 .env 使用您的t-online凭据进行归档:
EMAIL_ADDRESS=your-email@t-online.de
EMAIL_PASSWORD=your-app-password重要提示: 服务器仅使用 .env 配置文件。所有设置都必须在那里设置。
- 编译项目:
npm run build配置(.env文件)
MCP服务器使用 专门 这 .env 所有配置设置的文件:
# Email credentials (REQUIRED)
EMAIL_ADDRESS=your-email@t-online.de
EMAIL_PASSWORD=your-app-password
# IMAP settings (optional, defaults for t-online)
IMAP_HOST=secureimap.t-online.de
IMAP_PORT=993
IMAP_TLS=true
# SMTP settings (optional, for future features)
SMTP_HOST=securesmtp.t-online.de
SMTP_PORT=587
SMTP_TLS=true
# Server settings (optional)
MCP_SERVER_NAME=t-online-email-server
DEBUG=false所有配置都是通过.env文件完成的 -不需要shell或Claude Desktop配置中的环境变量!
MCP工具
search_emails
按各种条件搜索电子邮件。
参数:
folder(字符串,可选):要搜索的电子邮件文件夹(默认:“收件箱”)from(字符串,可选):发件人电子邮件地址to(字符串,可选):收件人电子邮件地址subject(字符串,可选):主题搜索词body(字符串,可选):正文内容搜索词since(字符串,可选):起始日期(YYYY-MM-DD格式)before(字符串,可选):之前的日期(YYYY-MM-DD格式)seen(布尔值,可选):读取状态(true=已读,false=未读)limit(数字,可选):最大结果数(默认值:50)
get_email_stats
显示有关电子邮件帐户的详细统计信息。
退货: 全面概述电子邮件总数、未读邮件数和文件夹统计信息。
get_folders
列出所有可用的电子邮件文件夹。
退货: 所有文件夹及其路径和属性的数组。
create_folder
创建一个新的电子邮件文件夹。
参数:
folderName(字符串,必填):要创建的文件夹的名称(可以包含带“/”的层次结构)
delete_folder
删除电子邮件文件夹。
参数:
folderName(字符串,必填):要删除的文件夹的名称
move_email
在文件夹之间移动电子邮件。
参数:
uid(数字,必填):电子邮件的唯一IDfromFolder(字符串,必填):源文件夹名称toFolder(字符串,必填):目标文件夹名称
mark_as_read
将电子邮件标记为已读。
参数:
uid(数字,必填):电子邮件的唯一IDfolder(字符串,可选):电子邮件文件夹(默认:“收件箱”)
mark_as_unread
将电子邮件标记为未读。
参数:
uid(数字,必填):电子邮件的唯一IDfolder(字符串,可选):电子邮件文件夹(默认:“收件箱”)
delete_email
永久删除电子邮件。
参数:
uid(数字,必填):电子邮件的唯一IDfolder(字符串,可选):电子邮件文件夹(默认:“收件箱”)
用法
发展
npm run dev生产
npm start启用调试模式
# In .env file:
DEBUG=true使用Claude Desktop进行配置
将以下配置添加到您的Claude Desktop MCP设置中:
{
"mcpServers": {
"t-online-email": {
"command": "node",
"args": ["/Users/jens/Projects/MCP/t-online-email-server/dist/index.js"]
}
}
}重要提示: 所有配置均通过 .env 文件。Claude Desktop不需要环境变量!
例子
搜索来自特定发件人的电子邮件
await searchEmails({
from: "example@domain.com",
limit: 10
});显示新电子邮件(未读)
await searchEmails({
seen: false,
folder: "INBOX"
});将电子邮件移动到另一个文件夹
await moveEmail({
uid: 12345,
fromFolder: "INBOX",
toFolder: "Archive"
});创建新文件夹
await createFolder({
folderName: "Projects/MCP"
});配置验证
服务器自动验证所有 .env 启动时的设置:
- ✅ 电子邮件格式 已检查
- ✅ 必填字段 受到控制
- ✅ 端口号 被验证
- ✅ 布尔值 正确解析
- ❌ 配置错误 使用有用的提示停止服务器
安全
- ✅ 始终使用应用程序密码,永远不要使用主密码
- ✅ 将凭据安全地存储在
.env文件 - ✅ 使用TLS加密连接(默认启用)
- ✅ 首先使用单独的测试帐户进行测试
- ✅
.env文件包含在.gitignore
故障排除
配置错误
❌ Configuration error in .env file:
- EMAIL_ADDRESS: Valid email address required解决方案:
- 检查你的
.env项目目录中的文件 - 使用
.env.example作为模板 - 确保已设置EMAIL_ADDRESS和EMAIL_PASSWORD
连接错误
- 在
.env文件 - 确保您的t-online帐户已启用IMAP
- 使用有效的应用程序密码
t-online的IMAP设置
- 伺服器:securemap.t-online.de
- 端口: 993
- 加密:TLS/SSL
- SMTP服务器网站:securesmtp.t-online.de
- 端口: 587
- 加密:STARTTLS
发展
项目结构
src/
├── index.ts # Main MCP server
├── email-client.ts # IMAP/Email client
├── types.ts # TypeScript types and schemas
└── config/
└── index.ts # Configuration management and validation扩展
您可以轻松扩展服务器:
- 添加新工具:扩展
setupToolHandlers()方法 - 其他电子邮件提供商:在中调整IMAP配置
config/index.ts - 扩展搜索功能:中的新搜索条件
SearchParamsSchema - 电子邮件发送:SMTP节点邮件程序的集成
扩展配置
添加新的配置选项:
- 在……里面
.env.example添加新变量 - 在……里面
config/index.ts扩展架构:
const EnvSchema = z.object({
// ... existing fields
NEW_SETTING: z.string().default('default-value'),
});- 在……里面
config/index.ts扩大出口
测试
# Run unit tests (if implemented)
npm test
# Linting
npm run lint许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
对于问题或疑问:
- 检查
.env文件完整性 - 启用调试模式
DEBUG=true - 检查服务器日志以获取详细的错误消息
- 看
docs/适用于扩展指南
______________________________________________________________________
备注:此MCP服务器使用 .env 文件以完成配置。对于其他电子邮件提供商,请在 .env 文件可能是必需的。
