使用说明
节点MCP服务器-谷歌日历集成
一个模型上下文协议(MCP)服务器,提供与谷歌日历的无缝集成,允许人工智能助手和其他MCP客户端以编程方式管理日历事件。
特性
- 完整日历管理:创建、读取、更新和删除Google日历事件
- MCP协议合规性:使用官方MCP SDK构建,实现无缝集成
- Google OAuth身份验证:使用Google Calendar API进行安全身份验证
- MongoDB令牌存储:用于无缝重新身份验证的持久令牌存储
- 灵活的事件处理:支持定时事件和全天事件
- 与会者管理:添加和管理活动参与者
- 丰富的活动详细信息:支持描述、位置和其他事件元数据
先决条件
- Node.js(v18或更高版本)
- MongoDB实例
- 启用日历API的谷歌云项目
- 谷歌OAuth 2.0证书
安装
-
克隆存储库
git clone <repository-url> cd node-mcp-server -
安装依赖项
npm install -
设置环境变量 创建一个
.env根目录中的文件:MONGO_URI=mongodb://localhost:27017 MONGO_DB_NAME=your_database_name -
配置Google OAuth
- 在中创建项目 谷歌云控制台
- 启用Google日历API
- 创建OAuth 2.0凭据(桌面应用程序)
- 下载凭据JSON文件并将其另存为
credentials_desktop.json在项目根中
用法
运行MCP服务器
该服务器可以作为独立的MCP服务器运行:
node mcp-server.js
使用测试客户端进行测试
使用附带的测试客户端验证功能:
node test-client.js
与MCP客户端集成
此服务器可以与任何兼容MCP的客户端集成。服务器提供以下工具:
可用工具
-
createEvent -创建新的日历事件
- 参数:
summary,startDateTime,endDateTime,attendees(可选),description(可选),isFullday(可选)
- 参数:
-
listEvents -列出即将到来的日历事件
- 参数:
maxResults(可选),timeMin(可选)
- 参数:
-
getEvent -获取特定事件的详细信息
- 参数:
eventId
- 参数:
-
updateEvent -更新现有事件
- 参数:
eventId,summary(可选),startDateTime(可选),endDateTime(可选),attendees(可选),description(可选),location(可选),isFullday(可选)
- 参数:
-
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(),
},
});