TickTick MCP Server について
TickTick Open API を通じてタスクやプロジェクトを管理する、AI アシスタント向けの MCP サーバーです。タスクの更新や完了に加え、プロパティを指定したプロジェクト作成にも対応します。
主な機能
- 01単一または全プロジェクトのタスク取得
- 02期限や優先度を指定したタスク作成
- 03タスクの更新、完了、削除
- 04既存プロジェクトの一覧表示
- 05カスタムプロパティ付きプロジェクトの作成
活用シーン
- 01TickTick の各プロジェクトのタスク確認
- 02期限や優先度を付けたタスクの追加
- 03AI アシスタントによるタスクの更新や完了
- 04作業の種類ごとのプロジェクト作成
MCP 対応
TickTick Open API とアクセストークンを使い、タスクやプロジェクトの操作を MCP クライアント向けのツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TickTick MCP サーバー
人気のタスク管理アプリケーションである TickTick 向けの Model Context Protocol(MCP)サーバー実装です。このサーバーを使うと、AI アシスタントが TickTick Open API を通じて TickTick とやり取りできます。
📋 機能
- プロジェクトからタスクを取得
- 期限、優先度、説明などの詳細を指定して新しいタスクを作成
- 既存のタスクを更新
- タスクを完了としてマーク
- タスクを削除
- プロジェクトの一覧を取得
- カスタムプロパティを指定して新しいプロジェクトを作成
🚀 クイックスタート
前提条件
- Node.js(v18 以降)
- TickTick 開発者アカウント
- TickTick API アクセストークン
インストール
-
このリポジトリをクローンします。
git clone https://github.com/shidhincr/ticktick-mcpserver.git cd ticktick-mcpserver -
依存関係をインストールします。
npm install -
プロジェクトをビルドします。
npm run build -
アクセストークンを環境変数に設定します。
export TICKTICK_ACCESS_TOKEN=your_access_token_here -
サーバーを起動します。
npm start
🔑 認証の設定
1. TickTick 開発者アカウントを登録する
- TickTick Developer Center にアクセスします
- アカウントを作成し、アプリケーションを登録します
- クライアント ID とクライアントシークレットを取得します
2. アクセストークンを取得する
OAuth2 フローに従ってアクセストークンを取得します。
-
ユーザーを TickTick の認証ページにリダイレクトします。
https://ticktick.com/oauth/authorize?scope=tasks:read tasks:write&client_id=YOUR_CLIENT_ID&state=STATE&redirect_uri=YOUR_REDIRECT_URI&response_type=code -
受け取ったコードをアクセストークンと交換します。
https://ticktick.com/oauth/tokenに次の内容で POST リクエストを送信します。- ヘッダー:クライアント ID とクライアントシークレットを使った Basic 認証
- 本文(application/x-www-form-urlencoded):
- code:受け取った認証コード
- grant_type:authorization_code
- scope:tasks:read tasks:write
- redirect_uri:リダイレクト URI
-
受け取ったアクセストークンを安全に保管します。
🛠️ 利用可能なツール
このサーバーは、AI とのやり取りに次のツールを実装しています。
タスク管理
-
ticktick_get_tasks- 特定のプロジェクトまたはすべてのプロジェクトからタスクを取得{ project_id?: string; // Optional project ID limit?: number; // Optional result limit (default: 10) } -
ticktick_create_task- 新しいタスクを作成{ title: string; // Required: Task title content?: string; // Optional: Task content desc?: string; // Optional: Task description project_id: string; // Required: Project ID due_date?: string; // Optional: Due date (ISO format) priority?: number; // Optional: Priority (0, 1, 3, 5) is_all_day?: boolean; // Optional: All-day task flag } -
ticktick_update_task- 既存のタスクを更新{ project_id: string; // Required: Project ID task_id: string; // Required: Task ID title?: string; // Optional: New title // ... other task properties } -
ticktick_complete_task- タスクを完了としてマーク{ project_id: string; // Required: Project ID task_id: string; // Required: Task ID } -
ticktick_delete_task- タスクを削除{ project_id: string; // Required: Project ID task_id: string; // Required: Task ID }
プロジェクト管理
-
ticktick_get_projects- すべてのプロジェクトの一覧を取得 -
ticktick_create_project- 新しいプロジェクトを作成{ name: string; // Required: Project name color?: string; // Optional: Color code (e.g. "#F18181") view_mode?: string; // Optional: View mode ("list", "kanban", "timeline") kind?: string; // Optional: Project kind ("TASK", "NOTE") }
📁 プロジェクト構成
ticktick-mcpserver/
├── dist/ # Compiled TypeScript (generated after building)
├── src/
│ └── index.ts # Main server implementation
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # Documentation
🤝 コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📚 API リファレンス
このプロジェクトでは TickTick Open API を使用しています。API エンドポイントとパラメーターの詳細については、公式ドキュメントを参照してください。
📝 ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
🙏 謝辞
- API を提供している TickTick
- プロトコル仕様を提供している Model Context Protocol (MCP)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。