日历邮件协议服务器

一个提供AI助手访问多账户邮件、日历和联系人数据的协议服务器,支持Microsoft 365、Outlook.com、Google Workspace等平台。

  • by rockfordlhotka
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 rockfordlhotka/calendar-mcp

使用说明

日历和电子邮件MCP服务器

一个模型上下文协议(MCP)服务器,使AI助手能够跨多个帐户访问电子邮件、日历和联系人数据——Microsoft 365、Outlook.com、Google Workspace、ICS提要和JSON日历文件。

概述

日历MCP将来自多个提供商的电子邮件、日历和联系人信息聚合到一组统一的MCP工具中。像Claude Desktop、VS Code with Copilot和其他MCP兼容客户端这样的人工智能助手可以一次查询您的所有帐户,搜索电子邮件,查看日历,查找空闲时间,发送消息,创建事件和管理联系人。

支持的提供商

提供商 电子邮件 日历 联系人 身份验证
Microsoft 365 是 是 有 OAuth 2.0(SOAP)
Outlook.com 是 是 有 OAuth 2.0(SOAP)
谷歌工作区/Gmail 是 是 有 OAuth 2.0
ICS日历源 -- 只读 -- 无(公共URL)
JSON日历文件 -- 只读 -- 无(本地文件)

MCP工具

服务器将这些工具暴露给AI助手:

  • list_计数 --列出所有已配置的帐户
  • 获取电子邮件 / 搜索邮件 --跨帐户阅读和搜索电子邮件
  • get_email_details --获取完整的电子邮件内容
  • get_textual_email_summary --基于人工智能的主题聚类和人物角色分析
  • send_邮件 --使用基于智能域的路由发送电子邮件
  • 列表_日历 / get_calendar_events --查看日历和事件
  • get_calendar_event_details --获取完整的活动详细信息
  • 查找可用时间 --在所有日历中查找空闲时间
  • create_event --创建日历事件
  • 删除事件 --删除日历事件(需要组织者/编辑权限)
  • 响应事件 --接受、暂时接受或拒绝活动邀请
  • get_contacts / search_contacts --跨帐户读取和搜索联系人
  • get_contact_details --获取完整的联系信息
  • create_contact / update_contact / 删除联系人 --管理联系人

看 docs/mcp-tools.md 了解完整的工具规格。

入门指南

先决条件

预构建二进制文件 是自给自足的——不是的。NET运行时需要。

从源头构建 需要。NET 10 SDK。

安装

从下载预构建包 发布:

平台 套餐
Windows(安装程序) calendar-mcp-setup-win-x64.exe
窗口(zip) calendar-mcp-win-x64.zip
Linux x64 calendar-mcp-linux-x64.tar.gz
macOS英特尔 calendar-mcp-osx-x64.tar.gz
macOS苹果硅 calendar-mcp-osx-arm64.tar.gz

看 安装指南 详细步骤。

配置帐户

使用CLI添加帐户:

# Microsoft 365 or Outlook.com
CalendarMcp.Cli add-m365-account

# Google Workspace or Gmail
CalendarMcp.Cli add-google-account

# Verify
CalendarMcp.Cli list-accounts
CalendarMcp.Cli test-account <account-id>

帐户设置指南:

连接您的AI助手

克劳德桌面 --添加到您的配置中(%APPDATA%\Claude\claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "calendar-mcp": {
      "command": "C:\\Program Files\\Calendar MCP\\CalendarMcp.StdioServer.exe",
      "args": [],
      "env": {}
    }
  }
}

看 Claude桌面设置指南 适用于所有平台和故障排除。

部署选项

标准服务器(本地)

默认模式。AI助手将服务器作为通过stdin/stdout通信的子进程启动。

CalendarMcp.StdioServer

HTTP服务器(容器化)

用于远程或共享部署。包括一个DateTimeadmin UI和健康检查端点。

# Run directly
dotnet run --project src/CalendarMcp.HttpServer

# Or via Docker
docker build -t calendar-mcp-http .
docker run -p 8080:8080 -v calendar-mcp-data:/app/data calendar-mcp-http

请参阅Kubernetes和其他容器编排设置的HTTP传输文档。

从源头构建

git clone https://github.com/MarimerLLC/calendar-mcp.git
cd calendar-mcp
dotnet build src/calendar-mcp.slnx --configuration Release

项目结构

src/
├── CalendarMcp.Core           Core library — models, providers, MCP tools, services
├── CalendarMcp.Auth           Authentication helpers (MSAL, Google OAuth)
├── CalendarMcp.Cli            CLI for account management
├── CalendarMcp.StdioServer    MCP server (stdio transport)
└── CalendarMcp.HttpServer     MCP server (HTTP transport) with admin UI

从源代码运行

# Stdio server
dotnet run --project src/CalendarMcp.StdioServer

# HTTP server
dotnet run --project src/CalendarMcp.HttpServer

# CLI
dotnet run --project src/CalendarMcp.Cli -- list-accounts

配置

帐户和服务器配置存储在JSON文件中:

平台 位置
窗户 %LOCALAPPDATA%\CalendarMcp\
Linux/macOS ~/.local/share/CalendarMcp/
覆盖 设置 CALENDAR_MCP_CONFIG 环境变量

看 docs/configuration.md 以获取完整的配置参考。

文档

主题 链接
安装 docs/INSTALLATION.md
建筑 docs/architecture.md
MCP工具 docs/mcp-tools.md
供应商 docs/providers.md
身份验证 docs/authentication.md
配置 docs/configuration.md
安全 docs/security.md
遥测 docs/telemetry.md
智能路由 docs/route.md
设计 docs/DESIGN.md

贡献

欢迎捐款。请阅读我们的 行为准则 在参与之前。

以下是如何开始:

  1. 分叉存储库并创建功能分支。
  2. 构建并验证您的更改是否编译: dotnet build src/calendar-mcp.slnx
  3. 遵循现有的代码风格和模式——该项目使用标准的C#/。NET规范。
  4. 打开一个pull请求 main。CI工作流将自动构建。

持续集成

GitHub Actions工作流在所有PR上运行,并推送到 main,构建解决方案。网10。

兴趣领域

  • 其他日历/电子邮件提供商
  • 提高了测试覆盖率
  • 文档改进
  • 性能优化
  • 管理UI中的可访问性改进

许可证

麻省理工学院 --版权所有(c)2025罗克福德Lhotka

该项目与微软、谷歌或Anthropic无关。