项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,用于将 TickTick 任务管理应用程序的功能通过标准化的 MCP 工具暴露给大型语言模型 (LLM) 客户端。它作为 LLM 与 TickTick 之间沟通的桥梁,允许 LLM 查询、创建、更新和管理 TickTick 中的任务和项目。
主要功能点
该服务器提供了一系列工具,让 LLM 可以执行以下操作:
- 任务管理:
- 获取特定项目或所有项目中的任务列表。
- 创建带有标题、内容、描述、截止日期、优先级和所属项目的新任务。
- 更新现有任务的任意属性。
- 将任务标记为完成。
- 删除任务。
- 项目管理:
- 获取用户的所有项目列表。
- 创建新的项目,并可指定颜色、视图模式(列表、看板、时间轴)和类型(任务或笔记)。
安装步骤
使用此 MCP 服务器前,您需要安装 Node.js (版本 18 或更高) 并获取您的 TickTick API 访问令牌。
- 克隆仓库:
git clone https://github.com/shidhincr/ticktick-mcpserver.git cd ticktick-mcpserver - 安装依赖:
npm install - 构建项目:
npm run build - 设置 TickTick API 访问令牌:
在启动服务器前,您必须将获取到的 TickTick API 访问令牌设置为环境变量 'TICKTICK_ACCESS_TOKEN'。
(请注意,'export' 命令只在当前终端会话有效。为了永久设置,请将其添加到您的 shell 配置文件中,如 '.bashrc', '.zshrc' 或 '.profile'。)export TICKTICK_ACCESS_TOKEN=您的访问令牌 - 启动服务器:
服务器默认通过标准输入/输出 (Stdio) 协议与客户端通信。npm start
服务器配置
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 协议与服务器交互。
- 发现能力: LLM 客户端可以向服务器发送 'list_tools' 请求,以获取服务器提供的所有工具(如 'ticktick_get_tasks', 'ticktick_create_task' 等)及其功能描述和所需的输入参数格式。
- 调用工具: LLM 客户端根据用户指令判断需要使用的工具,并向服务器发送 'call_tool' 请求,提供工具名称和符合该工具输入参数格式的 JSON 对象作为参数。
- 执行操作: 服务器接收到 'call_tool' 请求后,会调用相应的内部处理逻辑,通过 TickTick Open API 执行实际的任务或项目操作。
- 返回结果: 服务器将 API 调用结果格式化后,通过 JSON-RPC 响应返回给 LLM 客户端,通常包含文本形式的操作结果或错误信息。
例如,当 LLM 需要获取任务列表时,它会向服务器发送一个 'call_tool' 请求,工具名为 'ticktick_get_tasks',参数可以指定项目 ID 或为空以获取所有任务。服务器收到请求后,调用 TickTick API 查询任务,并将查询结果以文本格式返回。
信息
分类
生产力应用