日历管理服务

一个与Google日历无缝集成的MCP服务器,允许AI助手和其他MCP客户端以编程方式管理日历事件。

  • by Potato-29
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 potato-29/node-mcp-server

使用说明

节点MCP服务器-谷歌日历集成

一个模型上下文协议(MCP)服务器,提供与谷歌日历的无缝集成,允许人工智能助手和其他MCP客户端以编程方式管理日历事件。

特性

  • 完整日历管理:创建、读取、更新和删除Google日历事件
  • MCP协议合规性:使用官方MCP SDK构建,实现无缝集成
  • Google OAuth身份验证:使用Google Calendar API进行安全身份验证
  • MongoDB令牌存储:用于无缝重新身份验证的持久令牌存储
  • 灵活的事件处理:支持定时事件和全天事件
  • 与会者管理:添加和管理活动参与者
  • 丰富的活动详细信息:支持描述、位置和其他事件元数据

先决条件

  • Node.js(v18或更高版本)
  • MongoDB实例
  • 启用日历API的谷歌云项目
  • 谷歌OAuth 2.0证书

安装

  1. 克隆存储库

    git clone <repository-url>
    cd node-mcp-server
    
  2. 安装依赖项

    npm install
    
  3. 设置环境变量 创建一个 .env 根目录中的文件:

    MONGO_URI=mongodb://localhost:27017
    MONGO_DB_NAME=your_database_name
    
  4. 配置Google OAuth

    • 在中创建项目 谷歌云控制台
    • 启用Google日历API
    • 创建OAuth 2.0凭据(桌面应用程序)
    • 下载凭据JSON文件并将其另存为 credentials_desktop.json 在项目根中

用法

运行MCP服务器

该服务器可以作为独立的MCP服务器运行:

node mcp-server.js

使用测试客户端进行测试

使用附带的测试客户端验证功能:

node test-client.js

与MCP客户端集成

此服务器可以与任何兼容MCP的客户端集成。服务器提供以下工具:

可用工具

  1. createEvent -创建新的日历事件

    • 参数: summary, startDateTime, endDateTime, attendees (可选), description (可选), isFullday (可选)
  2. listEvents -列出即将到来的日历事件

    • 参数: maxResults (可选), timeMin (可选)
  3. getEvent -获取特定事件的详细信息

    • 参数: eventId
  4. updateEvent -更新现有事件

    • 参数: eventId, summary (可选), startDateTime (可选), endDateTime (可选), attendees (可选), description (可选), location (可选), isFullday (可选)
  5. deleteEvent -从日历中删除事件

    • 参数: eventId

示例用法

// Create a new event
const result = await client.callTool({
  name: "createEvent",
  arguments: {
    summary: "Team Meeting",
    startDateTime: "2025-01-15T10:00:00Z",
    endDateTime: "2025-01-15T11:00:00Z",
    attendees: ["colleague@example.com"],
    description: "Weekly team sync meeting",
    isFullday: false,
  },
});

// List upcoming events
const events = await client.callTool({
  name: "listEvents",
  arguments: {
    maxResults: 10,
    timeMin: new Date().toISOString(),
  },
});

项目结构