Todoist MCP
公式LLMから直接Todoistのタスクやプロジェクトを管理できます。
Todoist MCPで何ができますか?
- 日付でタスクを検索 — アシスタントに特定の日に予定されているタスクを
findTasksByDateを使って探してもらいます。 - 新しいタスクを追加 — アシスタントに
addTasksツールを使って Todoist タスクを1つ以上作成してもらいます。 - アカウントの本人確認 — 変更を加える前に、接続されている Todoist アカウントを確認し、
user-infoを使ってアクティブなユーザーを確認します。 - ツールを直接実行 —
npm run toolを使って、JSON 引数で任意のツールを単体で実行し、MCP サーバーを経由せずに操作します。
ドキュメント
Todoist MCP Server
AIエージェントをTodoistに接続するためのライブラリ。LLMに統合できるツールが含まれており、ユーザーに代わってTodoistアカウントにアクセスして変更することができます。
これらのツールは、MCPサーバーを介して使用することも、他のプロジェクトに直接インポートして独自のAI会話インターフェースに統合することもできます。
ツールの使用
1. このリポジトリを依存関係として追加
npm install @doist/todoist-mcp
2. ツールをインポートしてAIに接続
VercelのAI SDKを使用した例です。
import { findTasksByDate, addTasks } from '@doist/todoist-mcp'
import { TodoistApi } from '@doist/todoist-sdk'
import { streamText } from 'ai'
// Create Todoist API client
const client = new TodoistApi(process.env.TODOIST_API_KEY)
// Helper to wrap tools with the client
function wrapTool(tool, todoistClient) {
return {
...tool,
execute(args) {
return tool.execute(args, todoistClient)
},
}
}
const result = streamText({
model: yourModel,
system: 'You are a helpful Todoist assistant',
tools: {
findTasksByDate: wrapTool(findTasksByDate, client),
addTasks: wrapTool(addTasks, client),
},
})
MCPサーバーとしての使用
クイックスタート
npxを使用してMCPサーバーを直接実行できます:
npx @doist/todoist-mcp
セットアップガイド
Todoist MCPサーバーは、さまざまなAIクライアントと簡単に統合できるストリーミング可能なHTTPサービスとして利用できます:
プライマリURL(ストリーミングHTTP): https://ai.todoist.net/mcp
Claude Desktop
- 設定 → コネクタ → カスタムコネクタの追加を開く
https://ai.todoist.net/mcpを入力し、OAuth認証を完了する
Cursor
設定ファイルを作成します:
- グローバル:
~/.cursor/mcp.json - プロジェクト固有:
.cursor/mcp.json
{
"mcpServers": {
"todoist": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ai.todoist.net/mcp"]
}
}
}
プロンプトが表示されたら、Cursorの設定でサーバーを有効にします。
Claude Code (CLI)
最速のセットアップ方法は、MCPサーバーを自動で設定してくれる公式Todoistプラグインを使用することです:
/plugin marketplace add doist/todoist-mcp
/plugin install todoist@doist
OAuthは、Todoistツールを初めて使用するときにブラウザで実行されます。詳細はAnthropicのプラグインのドキュメントを参照してください。
MCPサーバーを手動で設定する場合は、次を実行します:
claude mcp add --transport http todoist https://ai.todoist.net/mcp
次にclaudeを起動し、/mcpを実行して、todoist MCPサーバーを選択して認証します。
Visual Studio Code
- コマンドパレットを開く → MCP: サーバーを追加
- HTTPトランスポートを選択して使用します:
{
"servers": {
"todoist": {
"type": "http",
"url": "https://ai.todoist.net/mcp"
}
}
}
その他のMCPクライアント
npx -y mcp-remote https://ai.todoist.net/mcp
カスタムサーバーの作成を含む、MCPサーバーのセットアップと使用の詳細については、docs/mcp-server.mdを参照してください。
機能
このプロジェクトの主な特徴は、ツールが再利用可能であり、MCPサーバーでの使用専用に書かれていないことです。他の会話型AIインターフェース(例:VercelのAI SDK)のツールとして接続できます。
このプロジェクトは初期段階にあります。今後、より多くの、そして/またはより優れたツールが追加される予定です。
それでも、私たちの目標は、単なるアトミックなアクションではなく、完全なワークフローを可能にする少数のツールセットを提供し、LLMにとっての柔軟性と効率性のバランスを取ることです。
設計思想、ガイドライン、開発パターンについては、docs/tool-design.mdを参照してください。
利用可能なツール
利用可能なツールの完全なリストについては、src/toolsディレクトリを参照してください。
OpenAI MCP互換性
このサーバーには、OpenAI MCP仕様に従うsearchおよびfetchツールが含まれており、OpenAIのMCPプロトコルとのシームレスな統合を可能にします。これらのツールは、より広範なMCPエコシステムとの互換性を維持しながら、OpenAIの要件に最適化されたJSONエンコードされた結果を返します。
依存関係
- 公式@modelcontextprotocol/serverを使用したMCPサーバー
- Todoist Typescript APIクライアント@doist/todoist-sdk
MCPサーバーのセットアップ
MCPサーバーのセットアップに関する完全な手順については、docs/mcp-server.mdを参照してください。
ローカル開発のセットアップ
完全なセットアップ手順についてはdocs/dev-setup.md、コントリビューターのワークフローと品質チェックについてはCONTRIBUTING.mdを参照してください。
MCP Apps
このプロジェクトには、AIチャットインターフェースにインラインでレンダリングされるインタラクティブなUIウィジェットであるMCP Appsのサポートが含まれています。ウィジェットは、プレーンテキストの代わりにツール出力(例:タスクリスト)のリッチな視覚表現を提供します。
ウィジェットのアーキテクチャ、ビルドパイプライン、開発ワークフローについては、docs/mcp-apps.mdを参照してください。
クイックスタート
リポジトリをクローンしてセットアップした後:
npm start- テスト用にMCPインスペクターをビルドして実行npm run dev- 自動リビルドと再起動を備えた開発モードnpm run tool:list- 直接実行するための利用可能なツールを一覧表示npm run tool -- <tool-name> '<json-args>'- MCPを使用せずにツールを直接実行
npm run toolを使用する場合は、ツールの引数の前に--を含めて、npmがそれらをscripts/run-tool.tsに転送するようにします。
書き込み操作の前のチェック例:
npm run tool -- user-info '{}'
これにより、現在のTODOIST_API_KEYがどのTodoistアカウントに接続されているかが確認されます。
run-toolは、npm run setupによって.env.exampleから作成された.envファイルのTODOIST_API_KEYを使用します。実際のデータを変更しないように、書き込み操作を実行するときはテストアカウントまたは一時プロジェクトを使用してください。
コントリビューション
CONTRIBUTING.mdを参照してください:
- 開発ワークフロー
scripts/run-tool.tsを使用したツールの直接実行- テストと品質チェック
- コミット規約
リリース
このプロジェクトは、バージョン管理とパッケージ公開を自動化するためにrelease-pleaseを使用しています。
仕組み
-
Conventional Commitsを使用して変更を加えます:
feat::新機能用(マイナーバージョンアップ)fix::バグ修正用(パッチバージョンアップ)feat!:またはfix!::破壊的変更用(メジャーバージョンアップ)docs::ドキュメント変更用chore::メンテナンスタスク用ci::CI変更用
-
コミットが
mainにプッシュされると:- Release-pleaseがリリースPRを自動的に作成/更新します
- PRにはバージョンアップとチェンジログの更新が含まれます
- PRをレビューし、準備ができたらマージします
-
リリースPRをマージした後:
- 新しいGitHubリリースが自動的に作成されます
- 新しいタグが作成されます
publishワークフローがトリガーされます- パッケージがnpmに公開されます