本项目是一个使用 TypeScript 构建的 Model Context Protocol (MCP) 服务器,它集成了谷歌日历功能,能够帮助用户更便捷地管理谷歌日历。
npm install -g mcp-google-calendar
或直接运行:
npx -y mcp-google-calendar
credentials.json
在项目根目录创建一个 .env
文件:
# 服务器配置
PORT=3420
# 谷歌日历 API 配置
CREDENTIALS_PATH=./credentials.json
使用标准 WebSocket 运行:
npx -y mcp-google-calendar
使用 Server-Sent Events (SSE) 运行:
npx -y mcp-google-calendar --sse
在 claude_desktop_config.json
中添加如下配置:
{
"mcpServers": {
"mcp-google-calendar": {
"command": "npx",
"args": ["-y", "mcp-google-calendar"]
}
}
}
npm install -g mcp-google-calendar
或直接运行:
npx -y mcp-google-calendar
使用标准 WebSocket 运行:
npx -y mcp-google-calendar
使用 Server-Sent Events (SSE) 运行:
npx -y mcp-google-calendar --sse
在 claude_desktop_config.json
中添加如下配置:
{
"mcpServers": {
"mcp-google-calendar": {
"command": "npx",
"args": ["-y", "mcp-google-calendar"]
}
}
}
const calendar = await createCalendar({
summary: 'My New Calendar',
description: 'This is a new calendar created via API'
});
const event = await createEvent({
calendarId: 'primary',
summary: 'Meeting with Team',
description: 'Discuss Q4 project plan',
start: {
timeZone: 'Asia/Shanghai',
dateTime: '2023-10-05T09:00:00'
},
end: {
timeZone: 'Asia/Shanghai',
dateTime: '2023-10-05T10:30:00'
}
});
const events = await listEvents({
calendarId: 'primary',
timeMin: '2023-10-01T00:00:00',
timeMax: '2023-10-31T23:59:59'
});
const updatedEvent = await updateEvent({
calendarId: 'primary',
eventId: 'event_id_123',
summary: 'Updated Meeting'
});
await deleteEvent({
calendarId: 'primary',
eventId: 'event_id_123'
});
通过 SSE 实现事件的实时更新通知,订阅特定日历的所有事件变更。
src/
├── index.ts # 入口文件
├── calendar.ts # 日历管理模块
├── event.ts # 事件管理模块
└── auth.ts # 认证授权模块
npm install @types/googleapis google-auth-library
npx tsinit
npm run dev
本项目使用 TypeScript 构建,借助 Node.js 运行环境,通过 OAuth 2.0 认证与谷歌日历 API 进行交互。在代码结构上,将不同功能模块进行了分离,如认证授权模块、日历管理模块和事件管理模块,提高了代码的可维护性和可扩展性。同时,支持 WebSocket 和 Server-Sent Events (SSE) 两种通信协议,以满足不同的使用场景。
⚠️ 重要提示
- 确保
credentials.json
文件的安全性,避免泄露敏感信息。- 严格限制 API 调用的权限范围,防止越权操作。
- 实时监控 API 请求和响应,及时发现异常行为。
- 针对不同的 API 错误码和异常情况,设计完善的容错机制。