项目简介

'cal2prompt' 是一个命令行工具,它可以从您的 Google 日历中获取日程安排,并使用 Jinja2 模板引擎将其转换为定制化的 Prompt 或文本片段。除了作为命令行工具使用,'cal2prompt' 还可以作为实验性的 Model Context Protocol (MCP) 服务器 运行,为支持 MCP 协议的 LLM 客户端提供日历上下文信息。

主要功能点

  • Google 日历集成:利用 Google Calendar API v3 获取您的日历日程。
  • 灵活的 Prompt 定制:使用 Jinja2 模板引擎,您可以根据需求自定义 Prompt 的格式和内容。
  • 实验性 MCP 服务器模式:可以将 'cal2prompt' ���为一个 MCP 服务器启动,通过标准输入/输出 (stdio) 与 MCP 客户端进行 JSON-RPC 通信。
  • 快速高效:基于 Rust 编写,性能优秀。

安装步骤

您可以选择使用 Brew (MacOS) 或 Cargo (git) 进行安装。

Brew (MacOS)

brew install shuntaka9576/tap/cal2prompt

Cargo (git)

git clone https://github.com/shuntaka9576/cal2prompt
cd cal2prompt
cargo install --path .

安装完成后,请确保 'cal2prompt' 命令在您的 PATH 环境变量中。

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到 'cal2prompt' MCP 服务器,您需要在客户端的配置文件中指定服务器的启动命令和参数。以下是 Claude Desktop 客户端的配置示例,您需要根据您的实际安装路径进行调整。

Claude Desktop 配置示例 ( '~/Library/Application\ Support/Claude/claude_desktop_config.json' )

{
  "mcpServers": {
    "cal2prompt": {
      "command": "/Users/username/.cargo/bin/cal2prompt",
      "args": ["mcp"],
      "env": {
        "HOME": "/Users/username"
      }
    }
  }
}

配置参数说明:

  • '"command"': 必需。指定 'cal2prompt' 可执行文件的完整路径。您可以使用 'which cal2prompt' 命令来查找安装路径,并替换 '/Users/username/.cargo/bin/cal2prompt' 为实际路径。
  • '"args": ["mcp"]': 必需。指定启动 'cal2prompt' MCP 服务器模式的参数。
  • '"env": { "HOME": "/Users/username" }': 推荐。显式设置 'HOME' 环境变量,确保 'cal2prompt' 可以正确加载配置文件。将 '/Users/username' 替换为您的用户主目录路径。

注意: MCP 客户端通常只需要配置 'command' 和 'args' 即可连接到 MCP 服务器。以上 JSON 配置示例提供了 Claude Desktop 的配置参考,其他 MCP 客户端的配置方式可能略有不同,请参考相应客户端的文档。

基本使用方法

  1. 完成初始设置

    • 按照仓库 README 中的指引,配置 Google OAuth 2.0 客户端并获取 OAuth 令牌。
    • 创建并配置 '~/.config/cal2prompt/secrets.lua' 和 '~/.config/cal2prompt/config.lua' 文件,填入您的 Google API 凭据和日历 ID 等信息。
  2. 启动 MCP 服务器: 打开终端,运行以下命令启动 'cal2prompt' MCP 服务器:

    cal2prompt mcp

    服务器成功启动后,将等待 MCP 客户端的连接和请求。

  3. 在 MCP 客户端中配置并连接服务器: 根据您的 MCP 客户端类型(例如 Claude Desktop),按照客户端的指引配置 MCP 服务器连接信息,主要是指定 'cal2prompt' 的启动命令和参数(如上述服务器配置示例)。

  4. 使用 LLM 与日历信息交互: 连接成功后,您可以在 MCP 客户端中使用 LLM,并利用 'cal2prompt' 提供的日历上下文信息进行对话或完成任务。例如,您可以询问 LLM 关于您今天或未来日程安排的问题,或者让 LLM 根据日历信息生成 Prompt。

配置文件

'cal2prompt' 使用 Lua 配置文件,默认配置文件路径为 '~/.config/cal2prompt/config.lua'。您可以根据需要修改配置文件,例如更改时区、OAuth 文件路径、Google Calendar API 相关配置、Prompt 模板等。详细配置选项请参考仓库 README 文档。

信息

分类

生产力应用