Tick Tick Mcp について
Tick Tick McpはTickTickのタスク・プロジェクト管理をClaudeに接続し、会話を通じてタスクを扱いたいユーザー向けです。プロジェクト横断検索、一括操作、サブタスク、GTDフォーカス表示に対応し、OAuthトークンをローカルに保存します。
主な機能
- 01タスクとプロジェクトのCRUD
- 02プロジェクト横断検索と絞り込み
- 03タスクの一括作成・更新・完了
- 04サブタスク管理とタスク移動
- 05GTDフォーカス表示
- 06OAuthトークンの自動更新
活用シーン
- 01会話で期限付きタスクを作成
- 02期限超過や今週のタスクを確認
- 03タスクをまとめて完了・更新
- 04優先度、タグ、プロジェクトで絞り込み
MCP 対応
OAuthでアカウントに接続し、TickTickのプロジェクトとタスクを管理するツールをClaudeに提供します。Dida365のAPIアドレス設定にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TickTick MCP サーバー -- Claude 向け TickTick 完全統合
28 個のツール。完全な CRUD。スマートクエリ。複数条件のフィルター。一括操作。GTD に対応。Dida365 と互換性あり。
Claude を TickTick アカウントに接続し、自然な会話を通じてタスクシステム全体を管理できます。タスクの作成、プロジェクト横断の検索、期限切れタスクの確認、項目の一括作成などを行い、アプリを開かずに整理整頓を続けられます。
「期限切れのタスクは?」--> すべてのプロジェクトで期限を過ぎたタスクを即座に表示します。
このサーバーを選ぶ理由
| 機能 | このサーバー | TickTick 公式 MCP | jacepark12 |
|---|---|---|---|
| ツール | 28 | 22 | ~20 |
| 複数条件のフィルター | はい(優先度+タグ+日付+プロジェクト) | はい | いいえ |
| プロジェクト間でタスクを移動 | はい | はい | いいえ |
| 一括完了 | はい(最大 20 件) | はい(最大 20 件) | いいえ |
| 一括更新 | はい | はい | いいえ |
| 完了済みタスクの表示 | はい | はい | いいえ |
| プロジェクト横断検索 | 全文検索 | はい | はい |
| サブタスク | はい | いいえ | いいえ |
| GTD フォーカスビュー | はい(高優先度+期限到来+期限切れ) | いいえ | 一部対応 |
| Dida365 対応 | はい(ベース URL を設定可能) | いいえ | はい |
| 非同期(httpx) | はい | 該当なし | いいえ(同期リクエスト) |
| Pydantic による検証 | はい(型付き入力) | 該当なし | いいえ |
| MCP アノテーション | はい(readOnly、破壊的操作のヒント) | 該当なし | いいえ |
| セルフホスト可能/オープンソース | はい | いいえ(ホスト型サービス) | はい |
| プライバシー | すべてローカルで処理し、トークンのみを使用 | TickTick のサーバーを経由 | すべてローカルで処理 |
クイックスタート
前提条件
- TickTick アカウント
- Python 3.10+
- Claude Code または Claude Desktop
手順 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 の開発者アプリを登録
- developer.ticktick.com にアクセスします
- New App をクリックし、任意の名前を入力します
- OAuth Redirect URL に
http://localhost:8080/callbackを設定します - Client ID と Client 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
使用例
| あなたの指示 | 動作 |
|---|---|
| 「金曜日に歯医者へ電話するようリマインドして」 | 期限付きのタスクを作成します |
| 「Work に『第 1 四半期のレポートを確認』を追加して。優先度は高めで」 | Work プロジェクトに優先度 5 のタスクを作成します |
| 「期限切れのタスクは?」 | プロジェクトを横断して期限切れのタスクをすべて表示します |
| 「何に集中すればいい?」 | GTD ビューを表示します:高優先度+今日が期限+期限切れ |
| 「『budget』に関するものを検索して」 | すべてのプロジェクトを対象に全文検索します |
| 「優先度の高いタスクをすべて表示して」 | プロジェクトを横断して priority=5 で絞り込みます |
| 「今週が期限のタスクは?」 | 今後 7 日以内が期限のタスクを表示します |
| 「タスクを作成して:牛乳を買う、John に電話する、レポートを提出する」 | タスクを 3 件一括作成します |
| 「『Vacation Planning』というプロジェクトを作成して」 | 新しいプロジェクトを作成します |
| 「休暇のタスクの下にサブタスク『日焼け止めを買う』を追加して」 | サブタスクを作成します |
| 「歯医者のタスクを終えました」 | タスクを完了済みにします |
| 「古い Sprint プロジェクトを削除して」 | プロジェクトとそのすべてのタスクを削除します |
MCP ツールのリファレンス
プロジェクト(5 ツール)
| ツール | 説明 |
|---|---|
ticktick_list_projects | ID、名前、色を含むすべてのプロジェクトを一覧表示します |
ticktick_get_project | 特定のプロジェクトの詳細を取得します |
ticktick_get_project_with_tasks | 1 回の呼び出しでプロジェクトの詳細と未完了のタスクをすべて取得します |
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 | ユーザー設定(タイムゾーン、週の開始曜日など)を取得します |
アーキテクチャ
server.py # 20 MCP tools, async httpx, Pydantic validation
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を使用します - Pydantic 入力モデル -- 明確なエラーメッセージを備えた、型安全で検証済みの入力です
- MCP アノテーション -- より安全にツールを使用できるよう、
readOnlyHintとdestructiveHintを指定します - トークンの自動更新 -- 60 秒の余裕を持って、トークンを透過的に更新します
トラブルシューティング
「Given client ID does not match」 -- developer.ticktick.com でクライアント 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。