使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,它作为滴答清单 (TickTick) API 的桥梁,允许支持 MCP 协议的客户端(如AI助手)通过标准化的方式与您的滴答清单账户进行交互,实现任务和项目的管理。
主要功能点
- 用户认证:通过 OAuth 2.0 协议安全认证滴答清单账户。
- 项目管理:
- 获取所有项目列表。
- 创建新的项目。
- 任务管理:
- 获取指定项目或所有任务列表。
- 创建新的任务,可设置标题、内容、截止日期、优先级等详细信息。
- 更新现有任务的各项属性。
- 完成和删除任务。
- 本地时间工具: 提供获取服务器本地时间的工具。
安装步骤
- 克隆仓库
git clone https://github.com/iamjzx/dida.git cd dida - 安装依赖
确保您已安装 Node.js (v14 或更高版本) 和 npm。在项目根目录下运行:
npm install
服务器配置
为了使 MCP 客户端能够连接到此服务器,您需要提供以下配置信息。这是一个 JSON 格式的配置示例,您需要将其填入 MCP 客户端的服务器配置中。
{ "serverName": "ticktick", "command": "node", "args": [ "src/tick.js", "<YOUR_CLIENT_ID>", "<YOUR_CLIENT_SECRET>" ], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,这里设置为 'ticktick',用于在客户端标识该服务器。
- 'command': 启动服务器的命令,这里使用 'node' 来运行 JavaScript 代码。
- 'args': 传递给启动命令的参数列表。
- '"src/tick.js"': 指定服务器入口文件。
- '"<YOUR_CLIENT_ID>"': 替换为您的滴答清单应用的 Client ID。您需要在滴答清单开放平台 (Open API) 创建应用并获取 Client ID。
- '"<YOUR_CLIENT_SECRET>"': 替换为您的滴答清单应用的 Client Secret。同样需要在滴答清单开放平台获取。
- 'transport': 指定 MCP 服务器使用的传输协议,这里使用 'stdio' (标准输入输出),表示通过命令行管道进行通信。
获取 Client ID 和 Client Secret:
- 访问 滴答清单开放平台 并登录您的滴答清单账户。
- 创建一个新的应用。
- 在应用详情中,您将找到 'Client ID' 和 'Client Secret'。请将它们替换到上述 'args' 配置中。
基本使用方法
-
启动服务器 在项目根目录下,打开终端并运行以下命令启动 MCP 服务器 (请将 '<YOUR_CLIENT_ID>' 和 '<YOUR_CLIENT_SECRET>' 替换为实际值):
npm start -- <YOUR_CLIENT_ID> <YOUR_CLIENT_SECRET>或者,您也可以直接使用 'node src/tick.js <YOUR_CLIENT_ID> <YOUR_CLIENT_SECRET>' 命令。
-
客户端连接 配置您的 MCP 客户端,使用上面提供的服务器配置 JSON 连接到该服务器。
-
OAuth 授权 首次使用时,客户端调用 'dida365_authorize' 工具时,服务器会自动打开浏览器进行滴答清单 OAuth 授权。按照页面提示完成授权后,服务器将保存 Access Token。后续工具调用将自动使用该 Token。
-
调用工具 客户端可以使用以下工具与滴答清单进行交互 (工具名请参考 'README.md' 和 'src/tick.js' 文件中的 'server.tool()' 定义):
- 'dida365_getProjects': 获取所有项目。
- 'dida365_createTask': 创建新任务。
- 'dida365_updateTask': 更新任务。
- 'dida365_deleteTask': 删除任务。
- 'dida365_getTasks': 获取任务列表。
- 'dida365_createProject': 创建项目。
- 'dida365_updateProject': 更新项目。
- ... 等等。
每个工具的具体参数请参考 'README.md' 中 "MCP Tools" 部分的描述或 'src/tick.js' 中的工具定义。
示例:客户端调用 'dida365_getProjects' 工具
客户端发送 MCP 请求调用 'dida365_getProjects' 工具,服务器将返回滴答清单中的项目列表数据。客户端可以解析返回的数据并展示给用户或进行后续处理。
{ "jsonrpc": "2.0", "method": "call", "params": { "tool": "dida365_getProjects", "arguments": {} }, "id": "1" }
注意:
- 请务必妥善保管您的 'Client ID' 和 'Client Secret',避免泄露。
- 出于安全考虑,生产环境建议使用更安全的 Token 存储方案和 HTTPS 协议。
信息
分类
生产力应用