项目简介

这是一个基于 Model Context Protocol (MCP) 实现的服务器,用于将 TickTick 任务管理应用程序的功能通过标准化的 MCP 工具暴露给大型语言模型 (LLM) 客户端。它作为 LLM 与 TickTick 之间沟通的桥梁,允许 LLM 查询、创建、更新和管理 TickTick 中的任务和项目。

主要功能点

该服务器提供了一系列工具,让 LLM 可以执行以下操作:

  • 任务管理:
    • 获取特定项目或所有项目中的任务列表。
    • 创建带有标题、内容、描述、截止日期、优先级和所属项目的新任务。
    • 更新现有任务的任意属性。
    • 将任务标记为完成。
    • 删除任务。
  • 项目管理:
    • 获取用户的所有项目列表。
    • 创建新的项目,并可指定颜色、视图模式(列表、看板、时间轴)和类型(任务或笔记)。

安装步骤

使用此 MCP 服务器前,您需要安装 Node.js (版本 18 或更高) 并获取您的 TickTick API 访问令牌。

  1. 克隆仓库:
    git clone https://github.com/shidhincr/ticktick-mcpserver.git
    cd ticktick-mcpserver
  2. 安装依赖:
    npm install
  3. 构建项目:
    npm run build
  4. 设置 TickTick API 访问令牌: 在启动服务器前,您必须将获取到的 TickTick API 访问令牌设置为环境变量 'TICKTICK_ACCESS_TOKEN'。
    export TICKTICK_ACCESS_TOKEN=您的访问令牌
    (请注意,'export' 命令只在当前终端会话有效。为了永久设置,请将其添加到您的 shell 配置文件中,如 '.bashrc', '.zshrc' 或 '.profile'。)
  5. 启动服务器:
    npm start
    服务器默认通过标准输入/输出 (Stdio) 协议与客户端通信。

服务器配置

MCP 客户端(如某些支持 MCP 的 LLM 客户端)需要知道如何启动并连接到此服务器。由于此服务器使用 Stdio 传输协议,客户端通常需要提供服务器的启动命令和参数。

典型的 MCP 客户端配置中,用于启动此服务器的配置片段可能如下所示(请注意,这只是配置信息的描述,不是直接可运行的代码):

  • 服务器名称 (server name): 'ticktick-mcp-server'
  • 启动命令 (command): 通常是 Node.js 的执行路径,例如 'node'
  • 参数 (args): 启动服务器脚本的路径,例如 '["dist/index.js"]'
  • 环境变量 (env): 必须包含 'TICKTICK_ACCESS_TOKEN' 及其值。

完整的配置方式取决于您使用的 MCP 客户端。请查阅您的 MCP 客户端文档,了解如何添加外部 MCP 服务器以及如何配置其启动命令和环境变量。

基本使用方法

配置好服务器并在 MCP 客户端中启动后,LLM 可以通过 MCP 协议与服务器交互。

  1. 发现能力: LLM 客户端可以向服务器发送 'list_tools' 请求,以获取服务器提供的所有工具(如 'ticktick_get_tasks', 'ticktick_create_task' 等)及其功能描述和所需的输入参数格式。
  2. 调用工具: LLM 客户端根据用户指令判断需要使用的工具,并向服务器发送 'call_tool' 请求,提供工具名称和符合该工具输入参数格式的 JSON 对象作为参数。
  3. 执行操作: 服务器接收到 'call_tool' 请求后,会调用相应的内部处理逻辑,通过 TickTick Open API 执行实际的任务或项目操作。
  4. 返回结果: 服务器将 API 调用结果格式化后,通过 JSON-RPC 响应返回给 LLM 客户端,通常包含文本形式的操作结果或错误信息。

例如,当 LLM 需要获取任务列表时,它会向服务器发送一个 'call_tool' 请求,工具名为 'ticktick_get_tasks',参数可以指定项目 ID 或为空以获取所有任务。服务器收到请求后,调用 TickTick API 查询任务,并将查询结果以文本格式返回。

信息

分类

生产力应用