通知管理服务

提供电子邮件发送、Google日历事件管理和Microsoft To-Do任务管理的通知服务。

  • by jpoullet2000
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jpoullet2000/egile-mcp-notifier

使用说明

Egile MCP通知器

MCP服务器提供通知功能,包括电子邮件发送、Google日历事件管理和Microsoft待办事项管理。

特性

  • 电子邮件通知:通过SMTP发送电子邮件
  • 谷歌日历集成:创建、更新和管理日历事件
  • 微软做集成:创建、更新和管理任务和待办事项列表
  • 灵活的配置:支持多个电子邮件提供商和日历帐户

安装

pip install -e .

配置

创建一个 .env 包含以下变量的文件:

# Email Configuration
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
DEFAULT_FROM_EMAIL=your-email@gmail.com

# Google Calendar Configuration
GOOGLE_CALENDAR_CREDENTIALS_FILE=credentials.json
GOOGLE_CALENDAR_TOKEN_FILE=token.json
DEFAULT_CALENDAR_ID=primary

# Microsoft To-Do Configuration
MS_TODO_CLIENT_ID=your-azure-app-client-id
MS_TODO_TENANT_ID=common
MS_TODO_TOKEN_FILE=ms_token_cache.json

Gmail设置

  1. 在您的Google帐户中启用双因素身份验证
  2. 生成应用程序密码: 谷歌应用密码
  3. 使用您的应用程序密码 .env 文件

谷歌日历设置

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google日历API
  4. 创建OAuth 2.0凭据(桌面应用程序)
  5. 下载凭据并另存为 credentials.json
  6. 首次运行时,系统将提示您授权应用程序

Microsoft待办安装

  1. 首选 Azure 门户
  2. 导航到“Azure Active Directory”>“应用程序注册”
  3. 点击“新建注册”
  4. 输入应用程序的名称(例如“Egile Notifier”)
  5. 在“支持的帐户类型”下,选择“任何组织目录中的帐户和个人Microsoft帐户”
  6. 暂时将“重定向URI”留空
  7. 点击“注册”
  8. 复制“应用程序(客户端)ID”-这是您的 MS_TODO_CLIENT_ID
  9. 转到“API权限”>“添加权限”>《Microsoft Graph》>“委派权限”
  10. 添加以下权限:
    • Tasks.ReadWrite
    • offline_access
  11. 点击“添加权限”
  12. 首次运行时,系统将提示您使用设备代码进行身份验证

详细的设置说明:参见 MS_TODO_SETUP.md 获取完整的分步指南。

用法

作为MCP服务器

egile-mcp-notifier

可用工具

send_邮件

发送电子邮件通知。

{
    "to": "recipient@example.com",
    "subject": "Hello",
    "body": "This is a test email",
    "cc": ["cc@example.com"],  # optional
    "bcc": ["bcc@example.com"],  # optional
    "html": True  # optional, default False
}

create_calendar_event

创建一个谷歌日历事件。

{
    "summary": "Meeting with Team",
    "start_time": "2026-01-20T10:00:00",
    "end_time": "2026-01-20T11:00:00",
    "description": "Discuss project updates",  # optional
    "location": "Conference Room A",  # optional
    "attendees": ["attendee@example.com"],  # optional
    "calendar_id": "primary"  # optional
}

list_calendar_events

列出即将到来的日历事件。

{
    "max_results": 10,  # optional, default 10
    "calendar_id": "primary",  # optional
    "time_min": "2026-01-17T00:00:00",  # optional
    "time_max": "2026-01-31T23:59:59"  # optional
}

update_calendar_event

更新现有日历事件。

{
    "event_id": "event123",
    "summary": "Updated Meeting",  # optional
    "start_time": "2026-01-20T10:30:00",  # optional
    "end_time": "2026-01-20T11:30:00",  # optional
    "description": "Updated description",  # optional
    "location": "New location",  # optional
    "calendar_id": "primary"  # optional
}

删除日历事件

删除日历事件。

{
    "event_id": "event123",
    "calendar_id": "primary"  # optional
}

create_todo

创建Microsoft待办事项任务。

{
    "title": "Complete project documentation",
    "body": "Add examples and API reference",  # optional
    "due_date": "2026-01-25",  # optional, ISO format
    "importance": "high",  # optional: "low", "normal", "high"
    "list_id": "list-id-123",  # optional, uses default list
    "reminder_date": "2026-01-24T09:00:00"  # optional, ISO format
}

list_所有

列出Microsoft待办事项。

{
    "list_id": "list-id-123",  # optional, uses default list
    "filter_status": "notStarted",  # optional: "notStarted", "inProgress", "completed"
    "max_results": 50  # optional, default 50
}

更新待办事项

更新Microsoft待办事项任务。

{
    "task_id": "task-id-123",
    "list_id": "list-id-123",  # optional
    "title": "Updated task title",  # optional
    "body": "Updated notes",  # optional
    "status": "completed",  # optional: "notStarted", "inProgress", "completed"
    "importance": "low",  # optional: "low", "normal", "high"
    "due_date": "2026-01-26"  # optional
}

delete_todo

删除Microsoft待办事项任务。

{
    "task_id": "task-id-123",
    "list_id": "list-id-123"  # optional
}

list_todo_lists

列出所有Microsoft待办事项列表。

{}

许可证

麻省理工学院