Skip to main content
Glama

todoist-v1-mcp-server

Todoistのためのクリーンで信頼性の高いMCP(Model Context Protocol)サーバー — Todoist unified API v1に基づいて構築されています。

なぜこれが必要なのか

公式のTodoist web MCP (todoist-ai) には、Anthropic側で毎日再接続が必要になるという既知の永続的な切断バグがあります。コミュニティによる代替案は、非推奨のREST API v2に基づいて構築されているか、TodoistのAPIが進化して新しいフィールドが追加された際に失敗を引き起こすスキーマ検証のバグを抱えています。

このサーバーの特徴:

  • 現在のTodoist API v1をターゲットにしています(非推奨のv2ではありません)

  • stdioトランスポートを使用 — クラウドへの依存や毎日の再接続は不要です

  • 最新のMCP SDK registerTool() APIを使用(非推奨の setRequestHandler パターンではありません)

  • APIレスポンスに対して厳格な出力スキーマを強制しません — Todoistが新しいフィールドを追加しても、何も壊れることなく動作します

  • SDKラッパーへの依存ゼロ — axiosを介した直接的なHTTP呼び出しを行うため、APIから乖離する中間ライブラリが存在しません

ツール(合計20個)

タスク

ツール

説明

todoist_get_tasks

タスクの一覧表示/フィルタリング — "today""overdue""p1""#ProjectName""7 days" といったTodoistのフィルタ文字列をサポート

todoist_get_task

IDで単一のタスクを取得

todoist_create_task

自然言語の期限("tomorrow""every monday"など)でタスクを作成

todoist_update_task

フィールドを更新。期限を削除するには clear_due_date: true を渡します

todoist_complete_task

タスクを完了にする

todoist_reopen_task

完了したタスクを再開する

todoist_delete_task

タスクを完全に削除する

プロジェクト

ツール

説明

todoist_get_projects

すべてのプロジェクトを一覧表示

todoist_get_project

IDで単一のプロジェクトを取得

todoist_create_project

プロジェクトを作成(色、表示スタイル、親プロジェクトを指定可能)

todoist_update_project

プロジェクトを更新

todoist_delete_project

プロジェクトとそのすべてのタスクを完全に削除

セクション

ツール

説明

todoist_get_sections

プロジェクト内のセクションを一覧表示

todoist_create_section

セクションを作成

todoist_update_section

セクション名を変更

todoist_delete_section

セクションを削除

ラベル

ツール

説明

todoist_get_labels

すべての個人用ラベルを一覧表示

todoist_create_label

ラベルを作成

todoist_update_label

ラベルを更新

todoist_delete_label

ラベルを削除

セットアップ

1. Todoist APIトークンの取得

Todoist → 設定 → 連携機能 → 開発者 に移動し、APIトークンをコピーします。

2. インストールとビルド

git clone https://github.com/christulino/todoist-v1-mcp-server
cd todoist-v1-mcp-server
npm install
npm run build

3. Claude Desktopの設定

~/Library/Application Support/Claude/claude_desktop_config.json を編集します:

{
  "mcpServers": {
    "todoist": {
      "command": "node",
      "args": ["/absolute/path/to/todoist-v1-mcp-server/dist/index.js"],
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Claude Desktopを再起動します。接続されたMCPサーバーに「todoist」が表示されるはずです。

4. Claude Codeの設定(オプション)

claude mcp add todoist -- node /absolute/path/to/todoist-v1-mcp-server/dist/index.js

次に環境変数を設定します:

export TODOIST_API_TOKEN=your_api_token_here

または、シェルプロファイルに追加してください。

使用例

接続後、Claudeは以下のような自然言語を処理できます:

  • "今日の予定は?"filter: "today" を指定して todoist_get_tasks を使用

  • "来週の火曜日に歯医者に行くタスクを追加して"todoist_create_task を使用

  • "歯医者のタスクを完了にして"todoist_complete_task を使用

  • "期限切れのタスクをすべて見せて"filter: "overdue" を指定して todoist_get_tasks を使用

  • "Home Renovationというプロジェクトを作成して"todoist_create_project を使用

  • "どんなプロジェクトがある?"todoist_get_projects を使用

Todoistフィルタ構文

todoist_get_tasksfilter パラメータは、Todoistの完全な自然言語フィルタ構文をサポートしています:

フィルタ

意味

today

今日の期限

overdue

期限切れ

7 days

今後7日以内の期限

p1

緊急の優先度

#ProjectName

特定のプロジェクト内のタスク

@labelname

特定のラベルが付いたタスク

no due date

期限のないタスク

`today

overdue`

今日または期限切れ(`

` で結合)

today & @waiting

今日かつ 'waiting' ラベルが付いたもの

フィルタの完全なドキュメント: https://todoist.com/help/articles/introduction-to-filters

要件

  • Node.js 18以上

  • Todoistアカウント(無料プランでも動作します)

開発

npm run dev   # tsx watch mode with auto-reload
npm run build # compile TypeScript
npm start     # run compiled server

テスト

テストスイートは実際のTodoist APIにアクセスし、タスク、プロジェクト、セクション、ラベル全体で完全なCRUDサイクルを実行します。すべてのテストデータには [mcp-test] というプレフィックスが付き、自動的にクリーンアップされます。

TODOIST_API_TOKEN=your_token npm test

APIトークンは Todoist → 設定 → 連携機能 → 開発者 にあります。これは claude_desktop_config.json に入力したものと同じトークンです。

コントリビューション

プルリクエストを歓迎します。目標は、Todoist API v1の最新状態を維持する、最小限で正確な実装です。優先事項:

  1. 巧妙さよりも正確さ

  2. 寛容な出力処理(未知のAPIフィールドを拒否しない)

  3. 何が問題でどう修正すべきかを伝える役立つエラーメッセージ

ライセンス

MIT

Latest Blog Posts

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/christulino/todoist-v1-mcp-server'

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