Skip to main content
Glama

MCP Todoist

by kentaroh7777
README.md12.3 kB
# MCP Todoist Todoist API互換のMCPサーバー実装 ## 技術スタック - **MCPサーバー**: Node.js + TypeScript - **プロトコル**: MCP (Model Context Protocol) stdio transport - **外部API**: Todoist REST API - **言語**: TypeScript - **ランタイム**: tsx ## アーキテクチャ ``` ├── フロントエンド (Next.js 14) │ ├── React Server Components │ ├── Client Components │ └── API Routes ├── MCP Server Layer │ ├── Protocol Handler │ ├── Todoist API Adapter │ └── Tool Registry ├── バックエンド (Convex) │ ├── Database Functions │ ├── Mutations │ ├── Queries │ └── Actions └── 外部API └── Todoist API ``` ## 主要機能 ### 実装済み - [x] MCP Protocol Handler (stdio transport) - [x] Todoist APIクライアント - [x] MCPツール実装 - [x] `todoist_get_tasks` - タスク一覧取得 - [x] `todoist_create_task` - タスク作成 - [x] `todoist_update_task` - タスク更新 - [x] `todoist_close_task` - タスク完了 - [x] `todoist_get_projects` - プロジェクト一覧取得 - [x] `todoist_create_project` - プロジェクト作成 - [x] `todoist_update_project` - プロジェクト更新 - [x] `todoist_delete_project` - プロジェクト削除 - [x] ツール可視性制御システム ### ツール可視性設定 セキュリティと用途に応じて、各ツールの公開・非公開を設定できます。 **現在の設定:** - **公開ツール**: `todoist_get_tasks`, `todoist_create_task`, `todoist_update_task`, `todoist_close_task`, `todoist_get_projects`, `todoist_move_task` - **非公開ツール**: `todoist_create_project`, `todoist_update_project`, `todoist_delete_project` > 📖 **詳細**: ツールの可視性設定の詳細については [TOOL_VISIBILITY.md](./TOOL_VISIBILITY.md) を参照してください。 ## クイックスタート ### 1. 依存関係のインストール ```bash npm install ``` ### 2. MCPサーバーのビルド ```bash cd packages/mcp-server npm run build cd ../.. ``` ### 3. MCPサーバーのテスト ```bash # タスクリスト取得のテスト echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"todoist_get_tasks","arguments":{}}}' | TODOIST_API_TOKEN=your-api-token tsx script/run-mcp-server.ts ``` ## 🚀 Cursor AI 自動セットアップガイド ### 前提条件 - Node.js 18+ がインストールされている - npm または yarn がインストールされている - Cursor AI がインストールされている - Todoist アカウントを持っている ### Step 1: プロジェクトのセットアップ ```bash # リポジトリをクローン(または既存プロジェクトの場合はスキップ) git clone <repository-url> cd mcp-todoist # 依存関係のインストール npm install # MCPサーバーのビルド cd packages/mcp-server npm run build cd ../.. ``` ### Step 2: Todoist API トークンの取得 1. [Todoist App Console](https://todoist.com/app_console) にアクセス 2. 「Create a new app」をクリック 3. アプリ名を入力(例:「MCP Todoist Integration」) 4. 「Create app」をクリック 5. 表示されたAPI tokenをコピー(例:`61dae250699e84eb85b9c2ab9461c0581873566d`) ### Step 3: プロジェクトパスの確認 ```bash # 現在のプロジェクトの絶対パスを取得 pwd ``` **出力例**: `/Users/username/projects/mcp-todoist` ### Step 4: Cursor AI MCP設定の自動セットアップ **方法A: 自動設定スクリプト実行** 以下のコマンドを実行して、Cursor AI設定を自動生成: ```bash # 現在のディレクトリパスを取得 CURRENT_DIR=$(pwd) # Cursor AI設定ディレクトリを作成 mkdir -p ~/.cursor # MCP設定ファイルを自動生成 cat > ~/.cursor/mcp.json << EOF { "mcpServers": { "mcp-todoist": { "command": "tsx", "args": ["$CURRENT_DIR/script/run-mcp-server.ts"], "env": { "TODOIST_API_TOKEN": "YOUR_TODOIST_API_TOKEN_HERE" } } } } EOF echo "✅ MCP設定ファイルを作成しました: ~/.cursor/mcp.json" echo "⚠️ 次のステップ: YOUR_TODOIST_API_TOKEN_HERE を実際のAPIトークンに置き換えてください" ``` **方法B: 手動設定** 1. **設定ファイルの場所を確認**: ```bash # macOS/Linux ls -la ~/.cursor/ # Windowsの場合: %USERPROFILE%\.cursor\ ``` 2. **設定ファイルを作成/編集**: ```bash # macOS/Linux nano ~/.cursor/mcp.json # または code ~/.cursor/mcp.json ``` 3. **以下の内容をコピー&ペースト**: ```json { "mcpServers": { "mcp-todoist": { "command": "tsx", "args": ["/REPLACE_WITH_YOUR_PROJECT_PATH/script/run-mcp-server.ts"], "env": { "TODOIST_API_TOKEN": "REPLACE_WITH_YOUR_API_TOKEN" } } } } ``` 4. **プレースホルダーを置き換え**: - `/REPLACE_WITH_YOUR_PROJECT_PATH` → 実際のプロジェクトパス - `REPLACE_WITH_YOUR_API_TOKEN` → 実際のTodoist APIトークン ### Step 5: 設定の検証 ```bash # 設定ファイルの内容を確認 cat ~/.cursor/mcp.json # MCPサーバーが正常に動作するかテスト echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | TODOIST_API_TOKEN=your-actual-token tsx script/run-mcp-server.ts ``` 正常な場合の出力例: ```json {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{"listChanged":true},"resources":{"subscribe":true,"listChanged":true},"prompts":{"listChanged":true}},"serverInfo":{"name":"mcp-todoist","version":"1.0.0"}}} ``` ### Step 6: Cursor AI での確認 1. **Cursor AI を完全に再起動** 2. **設定確認**: - `⌘+,` (Mac) または `Ctrl+,` (Windows) で設定を開く - "MCP" を検索 - `mcp-todoist` サーバーが表示され、緑のインジケーターが点灯していることを確認 3. **動作テスト**: - `⌘+L` でチャットを開く - 「Todoistからタスクリストを取得して」と入力 - MCPツールが自動実行され、タスクリストが表示されることを確認 ## 🔧 AI アシスタント向け自動セットアップ手順 **AIアシスタントがこのREADMEを読んで自動セットアップを実行する場合の手順:** 1. **環境確認**: ```bash node --version # 18+ であることを確認 npm --version # インストールされていることを確認 ``` 2. **プロジェクト準備**: ```bash # プロジェクトディレクトリに移動していることを確認 pwd # 依存関係インストール npm install # MCPサーバービルド cd packages/mcp-server && npm run build && cd ../.. ``` 3. **パス取得**: ```bash CURRENT_DIR=$(pwd) echo "プロジェクトパス: $CURRENT_DIR" ``` 4. **Cursor AI設定作成**: ```bash mkdir -p ~/.cursor cat > ~/.cursor/mcp.json << EOF { "mcpServers": { "mcp-todoist": { "command": "tsx", "args": ["$CURRENT_DIR/script/run-mcp-server.ts"], "env": { "TODOIST_API_TOKEN": "PLACEHOLDER_FOR_USER_TOKEN" } } } } EOF ``` 5. **ユーザーに指示**: ``` ✅ MCP設定ファイルを作成しました! 📝 次の手順を完了してください: 1. Todoist API トークンを取得: https://todoist.com/app_console 2. 以下のコマンドで設定ファイルを編集: nano ~/.cursor/mcp.json 3. "PLACEHOLDER_FOR_USER_TOKEN" を実際のAPIトークンに置き換え 4. Cursor AI を再起動 5. チャットで「Todoistからタスクリストを取得して」とテスト ``` 6. **設定検証**: ```bash echo "設定ファイルの内容:" cat ~/.cursor/mcp.json echo "" echo "APIトークンを設定後、以下でテスト:" echo 'echo \'{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"todoist_get_tasks","arguments":{}}}\' | TODOIST_API_TOKEN=your-token tsx script/run-mcp-server.ts' ``` ## 利用可能なMCPツール | ツール名 | 説明 | パラメータ | |---------|------|-----------| | `todoist_get_tasks` | タスク一覧取得 | `project_id`, `filter`, `limit` (すべて任意) | | `todoist_create_task` | タスク作成 | `content` (必須), `description`, `project_id`, `priority`, `due_string`, `labels` | | `todoist_update_task` | タスク更新 | `task_id` (必須), `content`, `description`, `priority`, `due_string`, `labels` | | `todoist_close_task` | タスク完了 | `task_id` (必須) | | `todoist_get_projects` | プロジェクト一覧取得 | なし | | `todoist_create_project` | プロジェクト作成 | `name` (必須), `color`, `parent_id`, `is_favorite` | | `todoist_update_project` | プロジェクト更新 | `project_id` (必須), `name`, `color`, `is_favorite` | | `todoist_delete_project` | プロジェクト削除 | `project_id` (必須) | ## 使用例 ### Cursor AIでの基本操作 ``` 「Todoistからタスクリストを取得して」 「新しいタスク『プロジェクト資料作成』を優先度2で作成して」 「プロジェクト一覧を表示して」 「タスクID 123456789 を完了にして」 ``` ### コマンドラインでの直接テスト ```bash # 初期化 echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | TODOIST_API_TOKEN=your-token tsx script/run-mcp-server.ts # ツール一覧 echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | TODOIST_API_TOKEN=your-token tsx script/run-mcp-server.ts # タスク作成 echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"todoist_create_task","arguments":{"content":"テストタスク","priority":2}}}' | TODOIST_API_TOKEN=your-token tsx script/run-mcp-server.ts ``` ## トラブルシューティング ### よくある問題 1. **「Module not found」エラー** - `cd packages/mcp-server && npm run build` でビルドを実行 2. **Cursor AIでMCPサーバーが認識されない** - Cursor AIを完全に再起動 - `~/.cursor/mcp.json` のパスが正しいか確認 - 環境変数 `TODOIST_API_TOKEN` が設定されているか確認 3. **Todoist API エラー** - APIトークンが有効か確認 - [Todoist API ドキュメント](https://developer.todoist.com/rest/v2/) で制限事項を確認 ## 他の環境での使用 このMCPサーバーはCursor AI以外の環境でも使用できます: - **Claude Desktop**: 設定ファイル `~/.config/claude/claude_desktop_config.json` - **その他のMCPクライアント**: stdio transportをサポートするクライアント 設定方法は基本的に同じで、コマンドとパスを適切に指定するだけです。 ## 🌟 主な特徴 - **🤖 AI統合**: Cursor AI、Claude Desktopなど複数のAIツールからTodoistを操作 - **🚀 簡単セットアップ**: 3ステップで導入完了 - **📋 高度なタスク管理**: AIアシスタントでGTD、タスク整理、プロジェクト管理が効率化 - **🔄 リアルタイム同期**: Todoist APIと直接連携 - **🛠️ 拡張可能**: オープンソースで自由にカスタマイズ - **💾 stdio transport**: 標準的なMCPプロトコル準拠 ## 📖 ライセンス MIT License - 詳細は [LICENSE](LICENSE) ファイルを参照 ## 🔗 リンク - **GitHub**: [https://github.com/kentaroh7777/mcp-todoist](https://github.com/kentaroh7777/mcp-todoist) - **MCP Protocol**: [https://modelcontextprotocol.io](https://modelcontextprotocol.io) - **Todoist API**: [https://developer.todoist.com](https://developer.todoist.com) ## 🤝 コントリビューション プルリクエスト、イシュー報告、機能提案を歓迎します! 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request --- **🎯 AIでタスク管理を革新しよう!**

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/kentaroh7777/mcp-todoist'

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