TickTick任务管理MCP服务

一个将TickTick Open API暴露为MCP协议的Ruby库,允许LLM直接管理TickTick项目和任务。

  • by j-o-lantern0422
  • Ruby
  • 本地部署
  • 更新于
在 GitHub 查看 j-o-lantern0422/ticktick-mcp-server

使用说明

ticktick mcp服务器

一个Ruby宝石,它暴露了 TickTick开放API 作为一个 MCP(模型上下文协议) 服务器。这允许像Claude这样的LLM直接管理您的TickTick项目和任务。

需求

  • TickTick帐户,带有开放式API访问令牌
  • 以下之一:
    • Docker(推荐——不需要Ruby)
    • Ruby>=3.1.0

安装

选项1:Docker(推荐)

无需安装Ruby。从GitHub容器注册表中提取预构建映像:

docker pull ghcr.io/j-o-lantern0422/ticktick-mcp-server:latest

或者从存储库本地构建:

docker build -t ticktick-mcp-server https://github.com/j-o-lantern0422/ticktick-mcp-server.git#main

选项2:红宝石

gem install ticktick-mcp-server

选项3:克隆存储库

git clone https://github.com/j-o-lantern0422/ticktick-mcp-server
cd ticktick-mcp-server
bundle install
bundle exec rake install

配置

使用TickTick Open API访问令牌设置以下环境变量:

TICKTICK_ACCESS_TOKEN=your_access_token_here

获取访问令牌

使用内置 ticktick-auth 通过OAuth2获取令牌的工具。

第一步:注册您的申请

去 TickTick开发者中心 并创建OAuth2应用程序。 将重定向URI设置为:

http://localhost:8585/callback

步骤2:运行身份验证工具

使用Docker:

docker run --rm -p 8585:8585 ghcr.io/j-o-lantern0422/ticktick-mcp-server:latest \
  ticktick-auth --client-id=YOUR_CLIENT_ID --client-secret=YOUR_CLIENT_SECRET

在本地安装gem后:

ticktick-auth --client-id=YOUR_CLIENT_ID --client-secret=YOUR_CLIENT_SECRET

您还可以通过环境变量而不是标志传递凭据:

export TICKTICK_CLIENT_ID=YOUR_CLIENT_ID
export TICKTICK_CLIENT_SECRET=YOUR_CLIENT_SECRET
ticktick-auth

注: 默认回调端口为 8585.使用 --port PORT (或 TICKTICK_AUTH_PORT)改变它。 如果更改端口,请相应地更新开发人员设置中的重定向URI。

步骤3:在浏览器中授权

该工具将打印一个授权URL。在浏览器中打开它并批准请求。

步骤4:复制令牌

授权后,令牌将打印到stdout:

TICKTICK_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

复制此值并将其用作您的 TICKTICK_ACCESS_TOKEN.

用法

使用Docker运行

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "ticktick": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "TICKTICK_ACCESS_TOKEN=your_access_token_here",
        "ghcr.io/j-o-lantern0422/ticktick-mcp-server:latest"
      ]
    }
  }
}

注:

  • -i Claude Desktop和MCP服务器之间的STDIO通信需要。
  • 做 不 使用 -t (伪tty)。它会导致CR/LF转换,从而破坏JSON-RPC协议。
  • --rm 会话结束时自动删除容器。

Claude桌面集成(本地安装gem)

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "ticktick": {
      "command": "ticktick-mcp-server",
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

在本地运行而不安装Gem

如果您更喜欢直接从克隆的存储库运行服务器:

{
  "mcpServers": {
    "ticktick": {
      "command": "bundle",
      "args": ["exec", "exe/ticktick-mcp-server"],
      "cwd": "/path/to/ticktick-mcp-server",
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

可用工具

项目管理

工具 描述 必需参数
list_projects 列出所有项目 --
get_project 按ID获取项目 project_id
get_project_data 获取项目详细信息,包括任务和列 project_id
create_project 创建新项目 name
update_project 更新现有项目 project_id
delete_project 删除项目 project_id

任务管理

工具 描述 必需参数
list_all_tasks 列出所有项目中的所有任务 --
create_task 创建新任务 title, project_id
update_task 更新现有任务 task_id, project_id
complete_task 将任务标记为已完成 project_id, task_id
delete_task 删除任务 project_id, task_id

发展

bundle exec rake          # Run tests + RuboCop
bundle exec rspec         # Run tests only
bundle exec rubocop       # Run linter only

许可证

根据以下条款,gem可作为开源软件使用 MIT许可证.