Dida MCP Server について
Dida MCP Server は TickTick/Dida365 API を使い、AI アシスタントによるタスク、プロジェクト、タグの管理を支援します。GTD に基づくプロンプトを備え、タスクの一括操作にも対応します。
主な機能
- 01タスクの作成、参照、更新、削除
- 02プロジェクト管理とタスクの移動
- 03タスクの一括更新、削除、移動
- 04OAuth とユーザー名・パスワード認証
- 05GTD に基づく整理用プロンプト
- 06プロジェクトとタグのキャッシュ
活用シーン
- 01TickTick/Dida365 のタスクとプロジェクトの管理
- 02複数タスクの整理や一括移動
- 03GTD に沿った受信箱タスクの処理
- 04キャッシュ済みプロジェクトとタグの確認
MCP 対応
MCP サーバーとして、TickTick/Dida365 のタスク、プロジェクト、認証、キャッシュデータ用のツールを互換クライアントに公開し、GTD 関連のプロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dida MCP Server
TickTick/Dida365 タスク管理サービスと連携するための Model Context Protocol(MCP)サーバーです。このサーバーは TickTick API を通じて、タスク、プロジェクト、タグを管理するツールを提供します。
概要
Dida MCP Server は Model Context Protocol フレームワーク上に構築されており、AI アシスタントが TickTick/Dida365 アカウントと連携できるようにします。タスクやプロジェクトを管理するための包括的なツールセットを提供し、GTD(Getting Things Done)の原則に沿ってタスクを整理できるよう、AI アシスタントが支援します。
機能
- 認証:TickTick/Dida365 API による OAuth ベースの認証
- タスク管理:タスクの作成、読み取り、更新、削除、移動
- プロジェクト管理:プロジェクトの作成、読み取り、更新、削除
- 一括操作:複数のタスクを一度に効率よく管理
- GTD アシスタント:GTD に基づくタスク整理のための組み込みシステムプロンプト
- データのキャッシュ:プロジェクトとタグのデータを効率的にキャッシュ
前提条件
- Node.js(v16 以降)
- npm(v7 以降)
- TickTick/Dida365 アカウント
- Dida365 Developer Center で取得したクライアント ID とクライアントシークレット(OAuth 認証用)
インストール
オプション 1:npm からインストール(推奨)
# Install globally
npm install -g dida-mcp-server
# Or install locally in your project
npm install dida-mcp-server
オプション 2:ソースからインストール
# Clone the repository
git clone https://github.com/zhongwencool/dida-mcp-server.git
cd dida-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
認証
サーバーを使用する前に、TickTick/Dida365 で認証する必要があります。このサーバーは、次の 2 種類の認証方法をサポートしています。
- OAuth 認証(V1 API):OAuth トークンを使用して Dida365 Open API に接続します
- ユーザー名とパスワードによる認証(V2 API):セッショントークンを使用して内部 API に接続します
get-access-token の使用
get-access-token スクリプトは、両方の API バージョンの認証処理を行います。使用するには、次の手順に従います。
# If installed globally
dida-get-token
# If installed locally or from source
npm run get-token
スクリプトは次の処理を行います。
- TickTick/Dida365 のユーザー名とパスワードの入力を求めます(V2 API 用)
- クライアント ID とクライアントシークレット の入力を求めます([V1 API OAuth 用])
- OAuth コールバックを処理するため、ポート 3000 でローカルサーバーを起動します
- アプリケーションを認証するため、ブラウザーを開きます
- 認証コードをアクセストークンと交換します
- 両方のトークンを
~/.dida-mcp-config.jsonの設定ファイルに保存します - トークン情報と MCP サーバーの設定を含む成功ページを表示します
OAuth 認証の前提条件
OAuth 認証を使用するには、次の作業が必要です。
- Dida365 Developer Center にアプリケーションを登録します
- リダイレクト URI を
http://localhost:3000/oauth/callbackに設定します - クライアント ID とクライアントシークレットを取得します
設定ファイル
認証処理によって、次の構造の設定ファイルが ~/.dida-mcp-config.json に作成されます。
{
"access_token": "your-v1-oauth-token",
"refresh_token": "your-refresh-token",
"expires_at": 1234567890000,
"token_type": "bearer",
"v2_access_token": "your-v2-session-token",
"inboxId": "your-inbox-project-id"
}
このファイルはサーバーの起動時に自動的に検出され、使用されます。
使用方法
サーバーの起動
# If installed globally
dida-mcp-server
# If installed locally or from source
npm start
サーバーは保存済みのトークンを使用して自動的に認証を試み、認証状態を表示します。
MCP クライアントとの接続
MCP 互換のクライアントであれば、どれでもサーバーに接続できます。サーバーが提供する設定を、MCP クライアントの設定に追加できます。
{
"mcpServers": {
"dida": {
"command": "dida-mcp-server"
}
}
}
ローカルにインストールした場合は、次のようにします。
{
"mcpServers": {
"dida": {
"command": "node",
"args": [
"/path/to/node_modules/dida-mcp-server/dist/index.js"
]
}
}
}
利用可能なツール
認証ツール
check-auth-status:現在の認証状態を確認します
プロジェクト管理ツール
list-projects:すべてのプロジェクトを取得しますcreate-project:新しいプロジェクトを作成しますupdate-project:既存のプロジェクトを更新しますdelete-project:プロジェクトを削除しますrefresh-project-cache:プロジェクトのキャッシュを手動で更新します
タスク管理ツール
list-tasks:プロジェクトのタスクを取得します(デフォルトは受信トレイです)create-task:新しいタスクを作成しますget-task:IDを指定して特定のタスクを取得しますupdate-task:タスクを更新しますbatch-update-tasks:複数のタスクを一括で更新しますcomplete-task:タスクを完了としてマークしますdelete-task:タスクを削除しますbatch-delete-tasks:複数のタスクを一括で削除しますmove-task:タスクを別のプロジェクトに移動しますbatch-move-tasks:複数のタスクを別のプロジェクトに移動します
データクエリツール
list-cached-data:キャッシュされたプロジェクトとタグのデータを表示します
システムプロンプト
サーバーには、次の2つの組み込みプロンプトがあります。
- GTD アシスタントプロンプト:GTD の手法を実践するためのツールの使い方を案内するシステムプロンプトです
- 受信トレイ整理プロンプト:GTD の原則に従って受信トレイのタスクを整理するためのユーザーレベルのプロンプトです
開発
開発モードで実行する
npm run dev
これにより、サーバーが監視モードで起動し、変更が加えられると自動的に再コンパイルして再起動します。
テストの実行
npm test
または、監視モードでテストを実行するには、次のようにします。
npm run test:watch
プロジェクト構成
├── dist/ # Compiled JavaScript files
├── src/
│ ├── auth/ # Authentication-related code
│ ├── projects/ # Project management tools
│ ├── resources/ # Resource definitions (cached data)
│ ├── tasks/ # Task management tools
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ ├── config.ts # Configuration management
│ ├── get-access-token.ts # Token acquisition script
│ ├── index.ts # Main server entry point
│ └── systemPrompt.ts # GTD assistant system prompt
├── tests/ # Test files
├── package.json # Project metadata and dependencies
├── LICENSE # ISC License file
└── tsconfig.json # TypeScript configuration
API ドキュメント
このプロジェクトでは Dida365 Open API を使用しています。詳細については、Dida365 Open API ドキュメントを参照してください。
ライセンス
ISC
NPM への公開
パッケージを NPM に公開するには、次の手順に従ってください。
# Login to npm (if not already logged in)
npm login
# Build the project
npm run build
# Test the package
npm test
# Publish to npm
npm publish
パッケージを更新するには:
package.jsonのバージョンを更新しますnpm publishを実行します
コントリビューション
コントリビューションを歓迎します!お気軽に Pull Request を送信してください。
謝辞
- MCP フレームワークを提供している Model Context Protocol
- タスク管理サービスを提供している TickTick/Dida365
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。