返回 MCP 目录
public公开dns本地运行

protonmail-mcp

一个通过Protonmail SMTP服务发送邮件的MCP服务器,兼容Claude桌面应用和Cline VSCode扩展。

article

README

🚀 Protonmail MCP 服务器

该MCP服务器由 amotivv 提供,用于与Protonmail服务集成。它专为需要通过Model Context Protocol(MCP)协议连接到外部服务的用户设计,能帮助用户轻松实现相关功能。

🚀 快速开始

此MCP服务器由 amotivv 提供,可直接与Protonmail服务集成,为需通过MCP协议连接外部服务的用户带来便利。

✨ 主要特性

  • 直接集成:无需额外配置,即可直接连接到Protonmail服务。
  • 安全传输:支持通过SSL/TLS加密通信,确保数据传输的安全性。
  • 多线程支持:服务器能够处理多个并发请求,提升性能和响应速度。
  • 日志记录:内置详细的日志系统,便于调试和监控服务器状态。

📦 安装指南

快速安装

  1. 克隆仓库:
git clone https://github.com/amotivv/protonmail-mcp.git
cd protonmail-mcp
  1. 安装依赖并构建:
npm install
npm run build
  1. 配置环境变量,设置Protonmail API密钥和端点。
  2. 启动服务器:
npm start

扩展功能

  • 自定义日志:允许用户根据需求扩展日志记录的功能。
  • 插件支持:提供灵活的插件系统,便于添加额外功能模块。

📚 详细文档

配置说明

环境变量配置

以下是服务器运行所需的关键环境变量: | 变量名 | 类型 | 必填 | 描述 | |---------------------|--------|------|--------------------------| | PROTONMAIL_API_KEY | String | 是 | Protonmail API访问密钥 | | PROTONMAIL_ENDPOINT | String | 否 | 默认为api.proton.me | | PORT | Number | 否 | 默认端口为3001 |

日志配置

用户可以选择输出格式和日志级别,支持以下选项:

  • JSON格式:便于机器解析。
  • PLAIN文本:适合手动查看。
  • SYSLOG格式:兼容系统日志记录工具。

使用说明

如何发送邮件

const { ProtonmailService } = require('protonmail-mcp');

async function sendEmail(to, subject, text) {
    const service = new ProtonmailService({
        apiKey: 'your_api_key',
        endpoint: 'api.proton.me'
    });

    await service.send({
        to,
        subject,
        text
    });
}

// 示例调用
sendEmail('user@example.com', '测试邮件', '这是一封测试邮件。')
    .then(() => console.log('邮件发送成功!'))
    .catch(err => console.error('发送失败:', err));

故障排除

常见问题解答

  1. 连接超时
    • 检查网络是否正常。
    • 确保Protonmail API端点可用。
    • 查看服务器日志获取更多信息。
  2. 认证失败
    • 验证API密钥的正确性。
    • 确保密钥未过期或被锁定。
    • 联系Protonmail支持团队确认密钥状态。
  3. 邮件发送限制
    • 检查速率限制文档。
    • 分散邮件发送频率,避免触发限制。
    • 升级到高级账户以提高发送限制。

💻 使用示例

基础用法

const { ProtonmailService } = require('protonmail-mcp');

async function main() {
    const service = new ProtonmailService({
        apiKey: process.env.PROTONMAIL_API_KEY,
        endpoint: process.env.PROTONMAIL_ENDPOINT
    });

    try {
        await service.sendEmail('to@example.com', '测试主题', '测试内容');
        console.log('邮件发送成功');
    } catch (error) {
        console.error('发送失败:', error);
    }
}

main();

高级用法

const { ProtonmailService, Logger } = require('protonmail-mcp');

// 自定义日志记录器
const logger = new Logger({
    format: 'json',
    level: 'debug'
});

async function processEmails(emails) {
    const service = new ProtonmailService({
        apiKey: process.env.PROTONMAIL_API_KEY,
        endpoint: process.env.PROTONMAIL_ENDPOINT,
        logger
    });

    for (const email of emails) {
        try {
            await service.send(email);
            logger.info(`邮件已发送到 ${email.to}`);
        } catch (error) {
            logger.error(`发送失败:${email.to}`, error);
        }
    }
}

// 示例调用
processEmails([
    { to: 'user1@example.com', subject: '通知', text: '新的消息提醒' },
    { to: 'user2@example.com', subject: '更新', text: '系统已更新,请检查。' }
]);

文档资源

  • 官方文档:详细说明了API使用方法和最佳实践。
  • 示例代码仓库:提供多种应用场景的代码示例。

贡献指南

欢迎社区贡献代码或提出建议,帮助我们共同完善这个项目。

提交规范

  1. 为每个提交创建清晰的问题描述。
  2. 确保代码遵循项目的编码风格。
  3. 提供详细的变更日志和测试用例。

📄 许可证

该软件基于MIT许可证发布,允许自由使用、修改和分发,但需保留版权声明。

📞 联系方式

如需反馈或技术支持,请访问我们的 GitHub仓库 提交问题。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端