日历事件检索服务

一个基于MCP协议的服务器,提供Google日历集成,允许AI助手按日期检索日历事件。

  • by Emon3469
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 emon3469/mcp-calendar-server-google-calendar-integration-for-ai-assistants

使用说明

MCP日历服务器

一个模型上下文协议(MCP)服务器,提供谷歌日历集成,允许人工智能助手按日期检索日历事件。

🚀 特性

  • 谷歌日历集成:无缝连接到Google日历API
  • 基于日期的事件检索:获取特定日期的日历事件
  • MCP协议合规性:使用官方MCP SDK构建
  • Docker支持:容器化部署就绪
  • 环境配置:安全的API密钥管理

📋 先决条件

  • Node.js 18+
  • Google日历API凭证
  • npm或yarn包管理器

🛠️ 安装

地方发展

  1. 克隆存储库

    git clone <repository-url>
    cd mcp_server_3
    
  2. 安装依赖项

    npm install
    
  3. 环境设置

    创建一个 .env 根目录中的文件:

    GOOGLE_PUBLIC_API_KEY=your_google_api_key_here
    CALENDER_ID=your_calendar_id@gmail.com
    
  4. 启动服务器

    npm start
    

Docker部署

  1. 构建Docker镜像

    docker build -t mcp-calendar-server .
    
  2. 使用Docker Compose运行

    docker-compose up -d
    

🔧 配置

Google日历API设置

  1. 转到 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google日历API
  4. 创建凭据(API密钥)
  5. 将API密钥添加到 .env 文件

环境变量

变量 描述 必填
GOOGLE_PUBLIC_API_KEY Google日历API密钥 是
CALENDER_ID 目标日历ID(通常是您的电子邮件) 是

📖 api参考

工具

getMyCalendarDataByDate

检索特定日期的日历事件。

参数:

  • date (字符串):ISO格式的日期(例如,“2024-01-15”)

答复:

{
  "meetings": [
    "Meeting Title at 2024-01-15T10:00:00Z",
    "Another Event at 2024-01-15T14:30:00Z"
  ]
}

错误响应:

{
  "error": "Error message description"
}

🐳 码头工人

Dockerfile功能

  • 多阶段构建:针对生产进行了优化
  • 安全:非root用户执行
  • 健康检查:集装箱健康监测
  • Alpine Linux:最小图像大小

Docker Compose

这 docker-compose.yaml 包括:

  • 服务编排
  • 环境变量管理
  • 网络配置
  • 健康检查
  • 批量安装用于开发

🔒 安全

  • API密钥存储在环境变量中
  • Docker容器以非root用户身份运行
  • .gitignore 排除敏感文件
  • 源代码中没有硬编码凭据

📁 项目结构

mcp_server_3/
├── .env                    # Environment variables (not in repo)
├── .gitignore             # Git ignore rules
├── Dockerfile             # Docker container configuration
├── docker-compose.yaml    # Docker Compose orchestration
├── package.json           # Node.js dependencies and scripts
├── server.js              # Main MCP server implementation
└── README.md              # Project documentation

🚀 发展

以开发模式运行

# Install dependencies
npm install

# Start the server
npm start

代码的风格

  • ES6模块
  • 异步/等待异步操作
  • Zod用于输入验证
  • 基于环境的配置

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 许可证

此项目根据ISC许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆘 故障排除

常见问题

  1. “找不到模块”错误

    • 确保 package.json 有 "type": "module"
    • 检查所有导入语句是否使用ES6语法
  2. Google API身份验证错误

    • 验证您的API密钥是否正确
    • 确保Google日历API已启用
    • 检查日历ID格式
  3. Docker构建失败

    • 确保Docker正在运行
    • 检查Dockerfile语法
    • 验证所有文件是否存在

调试模式

要使用调试日志运行,请执行以下操作:

DEBUG=* npm start

📞 支持

有关支持和问题:

  • 在存储库中创建问题
  • 检查现有文档
  • 查看Google日历API文档

🔄 更新日志

v1.0.0

  • 初始版本
  • 谷歌日历集成
  • MCP协议实现
  • Docker支持
  • 基本错误处理

内置于❤️ 使用模型上下文协议