Mcp Google Calendar Server

Mcp Google Calendar Server

🚀 谷歌日历模型上下文协议服务器(Google Calendar MCP Server)

这是一个用于与谷歌日历交互的服务器端项目,支持创建、读取、更新和删除日历事件,还能查找空闲时间段。项目使用 Node.js 编写,并通过 OAuth 2.0 进行身份验证。

🚀 快速开始

本项目是用于与谷歌日历交互的服务器端项目,支持对日历事件的 CRUD 操作以及查找空闲时间段。使用 Node.js 编写,通过 OAuth 2.0 进行身份验证。

✨ 主要特性

  • 创建事件:可添加新的日历事件。
  • 读取事件:能获取指定时间段内的所有事件。
  • 更新事件:可修改现有事件的详细信息。
  • 删除事件:能移除特定的日历事件。
  • 查找空闲时间:可在指定时间段内查找可用时间窗口。

📦 安装指南

1. 准备工作

  • 下载项目文件并解压到目标目录。
  • 确保已安装 Node.js(建议版本 8.0 或更高)和 npm。

2. 安装依赖项

在项目根目录中运行以下命令:

npm install

3. 配置环境变量

复制 .env.example 文件为 .env,并根据实际情况填写以下内容:

CLIENT_ID=你的客户端ID
CLIENT_SECRET=你的客户端密码
REDIRECT_URI=重定向链接地址(例如:http://localhost:3000/oauth2callback)
REFRESH_TOKEN=获取的刷新令牌

💻 使用示例

基础用法

作为 HTTP/SSE 服务器

  • 在项目根目录中运行以下命令启动服务:
npm run start:http
  • 默认监听地址为 http://localhost:3334

作为 CLI 工具

  • 运行以下命令以控制台模式启动:
npm run start:stdio

高级用法

创建事件

{
"summary": "会议",
"description": "重要项目讨论会",
"start": {
"dateTime": "2023-10-10T09:00:00+08:00"
},
"end": {
"dateTime": "2023-10-10T11:00:00+08:00"
}
}

📚 详细文档

获取刷新令牌

步骤说明

  1. 运行以下脚本以启动授权流程:
const { google } = require('googleapis');
const http = require('http');
const url = require('url');

// 替换为你的实际信息
const CLIENT_ID = '你的客户端ID';
const CLIENT_SECRET = '你的客户端密码';
const REDIRECT_URI = 'http://localhost:3000/oauth2callback';

const oauth2Client = new google.auth.OAuth2(
CLIENT_ID,
CLIENT_SECRET,
REDIRECT_URI
);

const scopes = [
'https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/calendar.events'
];

function getRefreshToken() {
const server = http.createServer(async (req, res) => {
const queryParams = url.parse(req.url, true).query;

if (queryParams.code) {
try {
const { tokens } = await oauth2Client.getToken(queryParams.code);
console.log('刷新令牌:', tokens.refresh_token);
res.end('身份验证成功!你可以关闭此窗口。');
server.close();
} catch (error) {
console.error('获取令牌失败:', error);
res.end('身份验证失败!');
}
}
}).listen(3000, () => {
const authUrl = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: scopes,
prompt: 'consent'
});

console.log('在浏览器中打开以下链接:');
console.log(authUrl);
});
}

getRefreshToken();
  1. 根据脚本输出的 URL,在浏览器中访问并按照提示完成授权流程。
  2. 授权完成后,控制台将显示新的刷新令牌。

开发与调试

npm run dev

常见问题解决

  • 认证错误:检查客户端 ID、密码和重定向 URI 是否正确配置。
  • 服务器启动失败:确保端口未被占用或权限设置正确。

📄 许可证

本项目的使用遵循 ISC 协议。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-29 06:09

相似服务问题