Skip to main content
Glama
jawello
by jawello

TickTick MCP Server -- Claude のための完全な TickTick 統合

License: MIT Version Python Tools Glama

28 ツール。完全な CRUD。スマートクエリ。複数条件フィルタ。バッチ操作。GTD 対応。Dida365 互換。

Claude を TickTick アカウントに接続し、自然な会話でタスクシステム全体を管理しましょう -- タスクの作成、プロジェクト横断の検索、期限切れの確認、一括作成、アプリを開かずに整理整頓を実現します。

「何が期限切れ?」--> すべてのプロジェクトにわたる期限超過タスクを即座に表示します。


なぜこれなのか?

機能

このサーバー

TickTick 公式 MCP

jacepark12

ツール

28

22

~20

複数条件フィルタ

対応 (優先度 + タグ + 日付 + プロジェクト)

対応

非対応

プロジェクト間のタスク移動

対応

対応

非対応

一括完了

対応 (最大 20)

対応 (最大 20)

非対応

一括更新

対応

対応

非対応

完了タスクの表示

対応

対応

非対応

プロジェクト横断検索

全文検索

対応

対応

サブタスク

対応

非対応

非対応

GTD フォーカスビュー

対応 (高優先度 + 期限 + 期限切れ)

非対応

一部

Dida365 対応

対応 (ベース URL 設定可能)

非対応

対応

非同期 (httpx)

対応

N/A

非対応 (同期リクエスト)

Pydantic バリデーション

対応 (型付き入力)

N/A

非対応

MCP アノテーション

対応 (readOnly、破壊的ヒント)

N/A

非対応

セルフホスト / オープンソース

対応

非対応 (ホスト型サービス)

対応

プライバシー

100% ローカル、トークンのみ

TickTick サーバー経由

100% ローカル


Related MCP server: TickTick MCP

クイックスタート

前提条件

ステップ 1 -- クローンしてインストール

git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

ステップ 2 -- TickTick 開発者アプリを登録

  1. developer.ticktick.com にアクセス

  2. New App をクリックし、任意の名前を入力

  3. OAuth Redirect URLhttp://localhost:8080/callback に設定

  4. Client IDClient Secret をコピー

ステップ 3 -- 認証

TICKTICK_CLIENT_ID=your_id TICKTICK_CLIENT_SECRET=your_secret .venv/bin/python3 setup_auth.py

ブラウザが開き、アプリの認証が求められます。Allow をクリック -- トークンは ~/.ticktick_mcp/tokens.json に保存され、自動的に更新されます。

ステップ 4 -- Claude Code に登録

claude mcp add ticktick \
  -e TICKTICK_CLIENT_ID=your_id \
  -e TICKTICK_CLIENT_SECRET=your_secret \
  -- /path/to/ticktick-mcp/.venv/bin/python3 /path/to/ticktick-mcp/server.py

Claude Desktop の場合

claude_desktop_config.json に追加:

{
  "mcpServers": {
    "ticktick": {
      "type": "stdio",
      "command": "/path/to/ticktick-mcp/.venv/bin/python3",
      "args": ["/path/to/ticktick-mcp/server.py"],
      "env": {
        "TICKTICK_CLIENT_ID": "your_id",
        "TICKTICK_CLIENT_SECRET": "your_secret"
      }
    }
  }
}

ステップ 5 -- 生産性スキルを追加 (任意)

mkdir -p ~/.claude/skills/ticktick
cp skills/ticktick/SKILL.md ~/.claude/skills/ticktick/

Dida365 対応

Dida365 (TickTick の中国版) を使用する場合は、以下の環境変数を設定します:

TICKTICK_BASE_URL=https://api.dida365.com/open/v1
TICKTICK_TOKEN_URL=https://dida365.com/oauth/token

使用例

ユーザーの発言

動作

「金曜日に歯医者に電話するのをリマインドして」

期限付きでタスクを作成

「'Q1 レポートのレビュー' を Work に、高優先度で追加して」

Work プロジェクトに優先度 5 のタスクを作成

「何が期限切れ?」

全プロジェクトの期限超過タスクを表示

「何に集中すべき?」

GTD ビュー: 高優先度 + 本日期限 + 期限切れ

「'予算' について何か検索して」

全プロジェクトを横断して全文検索

「高優先度のタスクをすべて表示して」

全プロジェクトで優先度=5 でフィルタ

「今週の期限は?」

今後 7 日以内に期限のタスク

「タスクを作成: 牛乳を買う、ジョンに電話、レポート提出」

3 つのタスクを一括作成

「'バケーション計画' というプロジェクトを作成して」

新しいプロジェクトを作成

「バケーションタスクの下にサブタスク '日焼け止めを買う' を追加して」

サブタスクを作成

「歯医者のタスクを完了した」

タスクを完了としてマーク

「古い Sprint プロジェクトを削除して」

プロジェクトと全タスクを削除


MCP ツールリファレンス

プロジェクト (5 ツール)

ツール

説明

ticktick_list_projects

ID、名前、色を含む全プロジェクトを一覧表示

ticktick_get_project

特定のプロジェクトの詳細を取得

ticktick_get_project_with_tasks

プロジェクト詳細 + 未完了タスクを一度に取得

ticktick_create_project

新しいプロジェクトを作成 (名前、色、ビューモード)

ticktick_update_project

プロジェクトの名前、色、ビューモードを更新

ticktick_delete_project

プロジェクトを完全に削除

タスク -- 基本 CRUD (7 ツール)

ツール

説明

ticktick_list_tasks

特定のプロジェクト内の全タスクを一覧表示

ticktick_create_task

タスクを作成 (タイトル、期限、優先度、プロジェクト、タグ)

ticktick_get_task

特定のタスクの完全な詳細を取得

ticktick_update_task

タイトル、内容、日付、優先度を更新

ticktick_complete_task

タスクを完了としてマーク

ticktick_delete_task

タスクを完全に削除

ticktick_create_subtask

親タスクの下にサブタスクを作成

タスク -- スマートクエリ (7 ツール)

ツール

説明

ticktick_get_all_tasks

全アクティブプロジェクトの全タスクを取得

ticktick_search_tasks

タイトル、内容、サブタスクを横断して全文検索

ticktick_get_tasks_by_priority

優先度でフィルタ (なし/低/中/高)

ticktick_get_tasks_due_today

全プロジェクトで本日期限のタスク

ticktick_get_overdue_tasks

全プロジェクトの期限超過タスク

ticktick_get_tasks_due_this_week

今後 7 日以内に期限のタスク

ticktick_get_tasks_due_in_days

ちょうど N 日後に期限のタスク

タスク -- バッチ & 生産性 (5 ツール)

ツール

説明

ticktick_batch_create_tasks

複数のタスクを一度に作成

ticktick_batch_update_tasks

複数のタスクを一度に更新

ticktick_complete_tasks_bulk

最大 20 件のタスクを一度に完了としてマーク

ticktick_move_task

タスクを別のプロジェクトに移動

ticktick_get_focus_tasks

GTD フォーカスビュー: 高優先度 + 本日期限 + 期限切れ

タスク -- 高度なフィルタ (2 ツール)

ツール

説明

ticktick_filter_tasks

複数条件フィルタ: 優先度 + タグ + 日付範囲 + プロジェクト + ステータス

ticktick_get_completed_tasks

プロジェクト内の完了タスクを表示

ユーザー (1 ツール)

ツール

説明

ticktick_get_user_preferences

ユーザー設定を取得 (タイムゾーン、週の開始日など)


アーキテクチャ

ticktick_mcp/server.py # All MCP tools, async httpx, flat tool arguments
server.py              # Thin entry point re-exporting the package
setup_auth.py          # One-time OAuth 2.0 setup (browser-based)
~/.ticktick_mcp/       # Token storage (auto-refreshed)
skills/ticktick/       # Claude skill for natural task language

設計上の選択:

  • すべて非同期 -- ノンブロッキング API 呼び出しのための httpx.AsyncClient

  • フラットなツール引数 -- 単一の params オブジェクトではなく、引数ごとに Annotated[T, Field(...)]: エージェントはフラットな引数を確実に生成し、ラッパーを頻繁に落とすため

  • MCP アノテーション -- より安全なツール使用のための readOnlyHintdestructiveHint

  • 自動トークン更新 -- 60 秒のバッファでトークンが透過的に更新


トラブルシューティング

「Given client ID does not match」 -- developer.ticktick.com で Client ID を再確認してください。

ポート 8080 が使用中 -- lsof -ti:8080 | xargs kill -9 を実行してから再試行してください。

トークンの期限切れ -- setup_auth.py を再実行して新しいトークンを取得してください。

Claude がツールを認識しない -- claude mcp list を実行して登録を確認してください。


コントリビューション

コントリビューション歓迎です! 変更したい内容について話し合うため、まず issue を開いてください。

git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# Make your changes to server.py
# Test: python3 -c "from server import mcp; print(len(mcp._tool_manager._tools), 'tools')"

リンク


ライセンス

MIT (c) Salen-Project

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jawello/ticktick-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server