README
🚀 Protonmail MCP 服务器
该MCP服务器由 amotivv 提供,用于与Protonmail服务集成。它专为需要通过Model Context Protocol(MCP)协议连接到外部服务的用户设计,能帮助用户轻松实现相关功能。
🚀 快速开始
此MCP服务器由 amotivv 提供,可直接与Protonmail服务集成,为需通过MCP协议连接外部服务的用户带来便利。
✨ 主要特性
- 直接集成:无需额外配置,即可直接连接到Protonmail服务。
- 安全传输:支持通过SSL/TLS加密通信,确保数据传输的安全性。
- 多线程支持:服务器能够处理多个并发请求,提升性能和响应速度。
- 日志记录:内置详细的日志系统,便于调试和监控服务器状态。
📦 安装指南
快速安装
- 克隆仓库:
git clone https://github.com/amotivv/protonmail-mcp.git
cd protonmail-mcp
- 安装依赖并构建:
npm install
npm run build
- 配置环境变量,设置Protonmail API密钥和端点。
- 启动服务器:
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));
故障排除
常见问题解答
- 连接超时:
- 检查网络是否正常。
- 确保Protonmail API端点可用。
- 查看服务器日志获取更多信息。
- 认证失败:
- 验证API密钥的正确性。
- 确保密钥未过期或被锁定。
- 联系Protonmail支持团队确认密钥状态。
- 邮件发送限制:
- 检查速率限制文档。
- 分散邮件发送频率,避免触发限制。
- 升级到高级账户以提高发送限制。
💻 使用示例
基础用法
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使用方法和最佳实践。
- 示例代码仓库:提供多种应用场景的代码示例。
贡献指南
欢迎社区贡献代码或提出建议,帮助我们共同完善这个项目。
提交规范
- 为每个提交创建清晰的问题描述。
- 确保代码遵循项目的编码风格。
- 提供详细的变更日志和测试用例。
📄 许可证
该软件基于MIT许可证发布,允许自由使用、修改和分发,但需保留版权声明。
📞 联系方式
如需反馈或技术支持,请访问我们的 GitHub仓库 提交问题。
Scan to contact