Google日历集成服务器

基于MCP协议的Google日历集成服务器,支持通过Claude Desktop等MCP客户端添加和查询Google日历事件。

  • by iamapark
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 iamapark/mcp-server-google-calendar

使用说明

MCP谷歌日历服务器

基于模型上下文协议(MCP)的Google Calendar集成服务器。支持在Claude Desktop等MCP客户端上向Google Calendar添加日历。

功能

  • Google OAuth 2.0认证
  • 添加Google Calendar日历
  • Google Calendar日历查询(支持历史查询)
  • 查询今天的日期
  • 韩国时区(KST)支持
  • 详细的错误处理和记录

安装方法

  1. 存储库克隆
git clone [repository-url]
cd mcp-server-google-calendar
  1. 依赖性安装
npm install
  1. 设置环境变量 .env 创建文件并添加以下内容:
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret

Google Cloud Console设置

  1. 谷歌云控制台在中创建新项目。
  2. 激活Google Calendar API。
  3. 创建OAuth 2.0客户端ID:
    • 应用程序类型:“桌面应用程序”
    • 生成的客户端ID和秘密 .env 在文件中设置

Claude Desktop集成设置

  1. Claude桌面安装

  2. MCP服务器设置

    • ~/Library/Application Support/Claude/claude_desktop_config.json 创建文件并添加以下内容:
    {
      "mcp-server-google-calendar": {
        "command": "/usr/local/bin/node",
        "args": ["/{절대경로}/mcp-server-google-calendar/dist/main.js"],
        "env": {
          "GOOGLE_CLIENT_ID": "your_client_id",
          "GOOGLE_CLIENT_SECRET": "your_client_secret",
          "NODE_ENV": "production"
        }
      }
    }
    

    设置项目说明:

    • command:Node.js可执行文件的绝对路径
    • args:要运行的JavaScript文件的绝对路径(构建TypeScript后生成的文件)
    • cwd:项目的工作目录绝对路径
    • env:设置环境变量
      • GOOGLE_CLIENT_ID:在Google Cloud Console中创建的客户端ID
      • GOOGLE_CLIENT_SECRET:在Google Cloud Console中创建的客户端机密
      • NODE_ENV:设置执行首选参数

    注意:以上示例是根据当前安装的路径创建的。在其他环境中,必须将其修改为该环境的绝对路径。

  3. 构建和准备

    # TypeScript 컴파일
    npm run build
    
    # Node.js 실행 파일 위치 확인
    which node
    
  4. 重新启动Claude Desktop

    • 重新启动Claude Desktop以应用设置。
    • 单击状态图标可查看服务器连接状态。
    • 检查连接出现问题时的日志。

可用工具

googleAuthLogin

执行Google Calendar API身份验证。

// Claude에서 사용 예시
tool("googleAuthLogin");

addCalendarEvent

在Google Calendar中添加新日历。

// Claude에서 사용 예시
tool("addCalendarEvent", {
  title: "회의",
  startTime: "2024-03-20 15:00", // YYYY-MM-DD HH:mm 형식
  duration: "60", // 분 단위
});

list日历活动

查看特定时间段的Google Calendar日历。

// Claude에서 사용 예시
tool("listCalendarEvents", {
  period: "2024-03-20~2024-03-27", // YYYY-MM-DD~YYYY-MM-DD 형식
});

getToday 日期

以YYYY-MM-DD格式返回今天的日期。

// Claude에서 사용 예시
tool("getTodayDate");

调试

检查日志

# 실시간 로그 확인
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log

激活开发者工具

  1. 创建开发者配置文件:
echo '{"allowDevTools": true}' > ~/Library/Application\ Support/Claude/developer_settings.json
  1. 打开开发者工具: Command-Option-Shift-i

错误处理

服务器在以下情况下返回相应的错误消息:

  • 如果需要Google认证
  • 输入的时间格式无效
  • 缺少必需参数。
  • Google Calendar API调用失败

记录

服务器使用Pino记录器记录以下信息:

  • 服务器启动/关闭
  • 工具调用和响应
  • 认证过程
  • 错误和异常情况

设置开发环境

  1. 编译TypeScript
npm run build
  1. 运行开发模式(自动重新启动)
npm run dev
  1. 林特检查
npm run lint

故障排除

  1. 服务器连接问题

    • 查看Claude Desktop日志
    • 检查服务器进程运行状态
    • 验证环境变量设置
    • 验证是否使用绝对路径
  2. 认证问题

    • 在Google Cloud Console中查看API激活状态
    • 重新确认客户端ID和秘密
    • 确认OAuth同意的屏幕设置

许可证

MIT许可证