邮件摘要生成服务

一个基于Google Gemini的AI邮件摘要生成服务,可将邮件内容转化为美观的摘要卡片,提供关键点、行动项和情感分析等全面洞察。

  • by meprynshu
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 PriyanshuProgrammer/mcp-with-extension

使用说明

# 邮件摘要生成器MCP服务器

#演示

演示

一个强大的模型上下文协议(MCP)服务器,它利用Google Gemini将电子邮件数据转化为美观的、由AI生成的摘要卡片。

特点/功能

🤖 机器人 基于人工智能的摘要生成使用Google Gemini分析并总结电子邮件内容 📧(电子邮件符号,无具体文字含义) 漂亮的用户界面卡片生成具有专业样式的响应式HTML卡片 🎯(目标、瞄准) 智能分析提取要点、行动项、情感倾向和优先级 📊 表格/数据图表 全面见解提供阅读时间、分类和附件信息 🎨 表示“美术/艺术创作”的相关符号或表情。 响应式设计在桌面设备和移动设备上均能完美运行

快速入门

先决条件

  • 面包 运行时
  • 根据您的要求,以下是原文内容的翻译:“Google Gemini API key”翻译为“Google Gemini API密钥”在这里获取一个)

安装

  1. 克隆项目并导航至项目目录:
cd mcp-ui-server
  1. 安装依赖项:
bun install
  1. 启动服务器:
bun run index.ts

服务器将在 http://localhost:3000/mcp

使用

MCP 工具: summarize-email

分析电子邮件数据并生成精美的摘要卡片。

输入模式(或输入架构)

{
  apiKey: string;           // Your Google Gemini API key
  email: {
    subject: string;        // Email subject line
    sender: string;         // Sender email address
    recipient: string;      // Recipient email address
    timestamp: string;      // Email timestamp (ISO format)
    body: string;          // Email content
    attachments?: string[]; // Optional: attachment names
    priority?: 'low' | 'normal' | 'high'; // Optional: priority level
    category?: string;      // Optional: email category
  }
}

示例用法

const emailData = {
  subject: "Quarterly Marketing Review & Strategy Update",
  sender: "sarah.johnson@company.com",
  recipient: "team@company.com",
  timestamp: "2024-10-05T14:30:00Z",
  body: "Hi Team, I hope you're all doing well...",
  attachments: ["Q3_Report.pdf", "Campaign_Brief.docx"],
  priority: "high",
  category: "work"
};

// Call the MCP tool
const result = await callMCPTool('summarize-email', {
  apiKey: 'your-gemini-api-key',
  email: emailData
});

输出

该工具返回一个包含以下内容的精美HTML卡片:

  • 电子邮件元数据主题、发件人、时间戳、优先级徽章
  • AI摘要简洁概述(2-3句话)
  • 要点要点式的主要主题(3-5项)
  • 行动事项提取的任务和可交付成果
  • 智能洞察:
    • 情感分析(正面/中性/负面)
    • 类别检测(工作/个人/营销/等)
    • 阅读时间估算
    • 附件数量

用户界面功能

  • 优先徽章彩色编码的优先级指示器
  • 情感图标视觉情感表示
  • 类别标签分类并附上相关表情符号
  • 响应式设计针对所有屏幕尺寸进行了优化
  • 悬停效果交互式动画
  • 专业造型简洁、现代的设计

建筑学

├── index.ts                 # Main MCP server
├── types/
│   └── email.ts            # TypeScript interfaces
├── services/
│   └── emailSummarizer.ts  # Gemini integration service
├── components/
│   └── emailCard.ts        # HTML card generator
└── example-usage.js        # Usage examples

API 参考文档

邮件摘要服务

与Google Gemini集成的核心服务:

class EmailSummarizerService {
  constructor(apiKey: string)
  async summarizeEmail(emailData: EmailData): Promise<EmailSummary>
}

生成电子邮件卡片

从电子邮件摘要生成美观的HTML卡片:

function generateEmailCard(emailSummary: EmailSummary): string

错误处理

该工具包含全面的错误处理功能:

  • 无效的API密钥清晰的错误信息,附带故障排除提示
  • Gemini API 错误优雅地回退并提供错误详情
  • 格式错误的数据验证及有用的错误提示
  • 网络问题超时和重试逻辑

发展

在开发过程中运行

bun run index.ts

类型检查

该项目使用了启用严格类型检查的TypeScript。

测试

使用提供的 example-usage.js 用于测试功能的文件:

node example-usage.js

配置

环境变量

虽然不是必须的,但您可以设置这些环境变量:

PORT=3000                    # Server port (default: 3000)
GEMINI_API_KEY=your-key     # Default API key (optional)

定制化

造型

修改 components/emailCard.ts 自定义HTML/CSS样式。

AI提示词

更新提示中的内容 services/emailSummarizer.ts 调整人工智能行为。

模式/架构

扩展电子邮件架构(或模式) types/email.ts 用于额外字段。

安全

  • API密钥从不记录或存储
  • 输入验证可防止注入攻击
  • 建议在生产环境中使用限速机制
  • 已启用CORS以支持跨域请求

贡献;助力

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 进行你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

许可证

MIT 许可证 - 详见 LICENSE 文件。

支持

对于问题和疑问:

  • 查看示例用法文件
  • 检查HTML输出中的错误信息
  • 确保您的Gemini API密钥有效且有配额

注这个工具需要一个有效的Google Gemini API密钥。API密钥仅用于当前请求,不会被存储或记录。

安装依赖项:

bun install

运行:

bun run index.ts

这个项目是使用(以下工具/技术)创建的 bun init 在 bun v1.2.10 中。 面包 是一个快速的全能型JavaScript运行时。