mcpField
T
Todoist MCP Server

Todoist MCP Server

ローカル
github.com/naotama2002生産性112 週間前に更新

Todoist MCP Server について

Todoist MCP Server は、Todoist REST API v2 を通じて AI アシスタントがタスクやプロジェクトを管理できる Go 製サーバーです。stdio と HTTP の両モードに対応し、タスクの絞り込みや詳細取得、編集を行えます。

主な機能

  1. 01条件を指定したタスクの検索・取得
  2. 02タスクの作成・更新・完了・削除
  3. 03プロジェクト一覧と詳細の取得
  4. 04stdio と HTTP モードでの実行
  5. 05Todoist API token による認証

活用シーン

  1. 01プロジェクトや条件を指定してタスクを検索
  2. 02ToDo を作成して内容を変更
  3. 03処理済みタスクを完了または削除
  4. 04Todoist のプロジェクトと詳細を確認

MCP 対応

Todoist のタスク・プロジェクト操作を MCP クライアント向けのツールとして公開し、Todoist API token で REST API v2 にアクセスします。stdio または HTTP モードで実行できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Todoist MCP サーバー

AI アシスタント向けに Todoist API との連携機能を提供する Model Context Protocol(MCP)サーバーです。

概要

Todoist MCP サーバーを使うと、AI アシスタントが Todoist と連携し、ユーザーに代わってタスクやプロジェクトを管理できます。このサーバーは、AI システムが Todoist の機能にアクセスするための標準インターフェースとして、Model Context Protocol(MCP)を実装しています。

機能

  • タスク管理

    • タスクのフィルタリングルールと例を取得
    • フィルタリングオプションを指定してタスクを取得
    • タスクの詳細を取得
    • タスクを新規作成
    • 既存のタスクを更新
    • タスクを完了済みにする
    • タスクを削除
  • プロジェクト管理

    • すべてのプロジェクトを取得
    • プロジェクトの詳細を取得

インストール

前提条件
  • Go 1.21 以降(ソースからビルドする場合)
  • Docker(Docker でインストールする場合)
  • Todoist API トークン
ソースからビルド
  1. リポジトリをクローンします。
git clone https://github.com/naotama2002/todoist-go-mcp-server.git
cd todoist-go-mcp-server
  1. 依存関係をインストールします。
go mod download
  1. バイナリをビルドします。
make build
Docker を使用

Docker を使って todoist-mcp-server を実行することもできます。Docker を使うと、環境の一貫性を保ち、デプロイを簡単に行えます。

GitHub Container Registry から取得
# Pull the latest image
docker pull ghcr.io/naotama2002/todoist-go-mcp-server:latest

# Or pull a specific version
docker pull ghcr.io/naotama2002/todoist-go-mcp-server:{TAG}
ローカルでビルド
# Build the Docker image
docker build -t todoist-mcp-server .
セットアップ

Todoist API トークンを設定します。

ルートディレクトリに、次の内容を記述した .envrc ファイルを作成します。

export TODOIST_API_TOKEN=your_todoist_api_token

direnv を使用する場合は、次を実行します。

direnv allow

または、環境変数を直接設定します。

export TODOIST_API_TOKEN=your_todoist_api_token

使用方法

サーバーの実行
バイナリの使用
HTTP モード

サーバーを HTTP モードで実行します。

go run cmd/todoist-mcp-server/main.go --mode http --addr :8080

または、ビルド済みのバイナリを使います。

./build/todoist-mcp-server --mode http --addr :8080
標準入出力モード

MCP クライアントと連携するため、サーバーを stdio モードで実行します。

go run cmd/todoist-mcp-server/main.go --mode stdio

または、ビルド済みのバイナリを使います。

./build/todoist-mcp-server --mode stdio
Docker の使用
HTTP モード
# Basic usage with Docker
docker run --rm -it -p 8080:8080 -e TODOIST_API_TOKEN=your_todoist_api_token \
  ghcr.io/naotama2002/todoist-go-mcp-server:latest --mode http --addr :8080

# With custom port
docker run --rm -it -p 3000:3000 -e TODOIST_API_TOKEN=your_todoist_api_token \
  ghcr.io/naotama2002/todoist-go-mcp-server:latest --mode http --addr :3000

# Using locally built image
docker run --rm -it -p 8080:8080 -e TODOIST_API_TOKEN=your_todoist_api_token \
  todoist-mcp-server --mode http --addr :8080
標準入出力モード
# For stdio mode (used with MCP clients)
docker run --rm -i -e TODOIST_API_TOKEN=your_todoist_api_token \
  ghcr.io/naotama2002/todoist-go-mcp-server:latest --mode stdio

# Using locally built image
docker run --rm -i -e TODOIST_API_TOKEN=your_todoist_api_token \
  todoist-mcp-server --mode stdio
コマンドラインオプション

サーバーでは、次のコマンドラインオプションを使用できます。

  • --mode <mode>:サーバーモード。'http' または 'stdio' を指定します(デフォルト:"http")
    • http:HTTP サーバーとして実行します
    • stdio:MCP 通信に標準入出力を使用して実行します
  • --addr <address>:HTTP モードでリッスンするアドレス(デフォルト:":8080")
  • --token <token>:Todoist API トークン(TODOIST_API_TOKEN 環境変数でも設定できます)

例:

# Run HTTP server on port 3000
go run cmd/todoist-mcp-server/main.go --mode http --addr :3000

# Run with a specific Todoist API token
go run cmd/todoist-mcp-server/main.go --mode http --token your_todoist_api_token

# Run in stdio mode
go run cmd/todoist-mcp-server/main.go --mode stdio
MCP クライアントでのテスト

付属のテストクライアントを使用して、サーバーをテストできます。

go run cmd/test-mcp-client/main.go

利用可能なツール

タスク管理
todoist_get_task_filter_rules

Todoist のタスクフィルターに関するルールと例を取得します。このツールは、自然言語のクエリを todoist_get_tasks ツールで使う Todoist フィルター構文に変換するのに役立ちます。

パラメーター:なし

応答例(Markdown 形式):

# Introduction to Filters

Filters in Todoist are custom views that display tasks based on specific criteria. You can filter tasks by name, date, project, label, priority, creation date, and more.

## Creating Filters

1. Select "Filters & Labels" in the sidebar
2. Click the add icon next to Filters
3. Enter a name for your filter and change its color (optional)
4. Enter your filter query
5. Click "Add" to save your filter

## Filter Symbols

| Symbol | Meaning | Example |
|--------|---------|--------|
| \| | OR | today \| overdue |
| & | AND | today & p1 |
| ! | NOT | !subtask |
| () | Priority processing | (today \| overdue) & #work |

## Advanced Queries

### Keyword-Based Filters

| Description | Query |
|-------------|-------|
| Tasks containing "meeting" | search: meeting |
| Tasks containing "meeting" scheduled for today | search: meeting & today |

### Date-Based Filters

| Description | Query |
|-------------|-------|
| Tasks for a specific date | date: jan 3 |
| Tasks before a specific date | before: may 5 |
| Tasks with no date | no date |

## Useful Filter Examples

| Description | Query |
|-------------|-------|
| Overdue or today's tasks in "Work" project | (today \| overdue) & #work |
| Tasks with no date | no date |
| Tasks with @waiting label in the next 7 days | 7 days & @waiting |

#### `todoist_get_tasks`

Get a list of tasks with filtering options.

Parameters:
- `projectId` (string, optional): Filter tasks by project ID
- `filter` (string, optional): Todoist filter query using the Todoist filter syntax

Example:
```json
{
  "projectId": "2203306141",
  "filter": "today"
}
todoist_get_task

特定のタスクの詳細を取得します。

パラメーター:

  • id(文字列、必須):タスクの一意の識別子

例:

{
  "id": "2995104339"
}
todoist_create_task

新しいタスクを作成します。

パラメーター:

  • content(文字列、必須):タスクの内容
  • description(文字列、任意):タスクの詳細な説明またはメモ
  • projectId(文字列、任意):タスクを割り当てるプロジェクト ID
  • parentId(文字列、任意):サブタスクを作成する際の親タスク ID
  • order(整数、任意):タスクの位置を指定する順序の値
  • priority(整数、任意):タスクの優先度:1(通常)、2(中)、3(高)、4(緊急)
  • dueString(文字列、任意):自然言語で指定する期限。例:'today'、'tomorrow'
  • dueDate(文字列、任意):YYYY-MM-DD 形式の期限
  • dueDatetime(文字列、任意):RFC3339 形式の期限日時

例:

{
  "content": "Buy groceries",
  "description": "Need to buy milk, eggs, and bread",
  "projectId": "2203306141",
  "priority": 2,
  "dueString": "tomorrow at 10am"
}
todoist_update_task

既存のタスクを更新します。

Parameters:

  • id (string, required): 更新するタスクの一意の識別子
  • content (string, optional): タスクの新しい内容
  • description (string, optional): タスクの詳細な説明またはメモ
  • priority (integer, optional): タスクの優先度:1(通常)、2(中)、3(高)、4(緊急)
  • dueString (string, optional): 自然言語で指定した期限
  • dueDate (string, optional): YYYY-MM-DD 形式の期限
  • dueDatetime (string, optional): RFC3339 形式の期限と時刻

例:

{
  "id": "2995104339",
  "content": "Buy groceries and household items",
  "priority": 1
}
todoist_close_task

タスクを完了としてマークします。

Parameters:

  • id (string, required): 完了としてマークするタスクの一意の識別子

例:

{
  "id": "2995104339"
}
todoist_delete_task

タスクを削除します。

Parameters:

  • id (string, required): 削除するタスクの一意の識別子

例:

{
  "id": "2995104339"
}
プロジェクト管理
todoist_get_projects

すべてのプロジェクトの一覧を取得します。

Parameters: なし

todoist_get_project

特定のプロジェクトの詳細を取得します。

Parameters:

  • id (string, required): プロジェクトの一意の識別子

例:

{
  "id": "2203306141"
}

Claude Desktop との連携

Todoist MCP Server を Claude Desktop で使用するには、Claude Desktop の設定に追加する必要があります。

GitHub Releases からダウンロード

最も簡単に始めるには、GitHub Releases ページからビルド済みのバイナリをダウンロードします。

  1. Releases ページにアクセスし、お使いのプラットフォーム向けの最新リリースをダウンロードします。

    • Linux:todoist-mcp-server_Linux_x86_64.tar.gz または todoist-mcp-server_Linux_arm64.tar.gz
    • macOS:todoist-mcp-server_Darwin_x86_64.tar.gz または todoist-mcp-server_Darwin_arm64.tar.gz
    • Windows:todoist-mcp-server_Windows_x86_64.zip
  2. アーカイブを展開し、todoist-mcp-server バイナリを取得します。

    # For Linux/macOS
    tar -xzf todoist-mcp-server_*_*.tar.gz
    
    # For Windows
    # Extract the zip file using Windows Explorer or a tool like 7-Zip
    
  3. バイナリを実行可能にします(Linux/macOS のみ)。

    chmod +x todoist-mcp-server
    
  4. 必要に応じて、バイナリを PATH 内の場所に移動します。

    # Linux/macOS
    sudo mv todoist-mcp-server /usr/local/bin/
    
    # Windows
    # Move the .exe file to a location in your PATH
    
ソースからビルド

または、ソースからバイナリをビルドできます。

# Build the binary
make build
設定

Todoist MCP Server を Claude Desktop の設定に追加します。

HTTP モード
  1. Todoist MCP Server を HTTP モードで実行します。
todoist-mcp-server --mode http --addr :8080
  1. 次の設定を Claude Desktop の設定に追加します。
{
  "name": "Todoist",
  "description": "Manage Todoist tasks and projects",
  "endpoint": "http://localhost:8080",
  "tools": [
    {
      "name": "todoist_get_task_filter_rules",
      "description": "Get filter rules and examples for Todoist task filters"
    },
    {
      "name": "todoist_get_tasks",
      "description": "Get a list of tasks with filtering options"
    },
    {
      "name": "todoist_get_task",
      "description": "Get details of a specific task"
    },
    {
      "name": "todoist_create_task",
      "description": "Create a new task"
    },
    {
      "name": "todoist_update_task",
      "description": "Update an existing task"
    },
    {
      "name": "todoist_close_task",
      "description": "Mark a task as completed"
    },
    {
      "name": "todoist_delete_task",
      "description": "Delete a task"
    },
    {
      "name": "todoist_get_projects",
      "description": "Get a list of all projects"
    },
    {
      "name": "todoist_get_project",
      "description": "Get details of a specific project"
    }
  ]
}
Stdio モード
バイナリを使用する場合

Claude Desktop / Cline、Roo Cline / Windsurf

{
  "mcpServers": {
    "todoist": {
      "command": "/path/to/todoist-mcp-server",
      "args": ["--mode", "stdio"],
      "env": {
        "TODOIST_API_TOKEN": "<YOUR_TODOIST_API_TOKEN>"
      }
    }
  }
}

VSCode

{
  "mcp": {
    "servers": {
      "todoist": {
        "command": "/path/to/todoist-mcp-server",
        "args": ["--mode", "stdio"],
        "env": {
          "TODOIST_API_TOKEN": "<YOUR_TODOIST_API_TOKEN>"
        }
      }
    }
  }
}
Docker を使用する場合

Claude Desktop / Cline、Roo Cline / Windsurf

{
  "mcpServers": {
    "todoist": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "TODOIST_API_TOKEN=<YOUR_TODOIST_API_TOKEN>",
        "ghcr.io/naotama2002/todoist-go-mcp-server:latest",
        "--mode",
        "stdio"
      ]
    }
  }
}

VSCode

{
  "mcp": {
    "servers": {
      "todoist": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "-e",
          "TODOIST_API_TOKEN=<YOUR_TODOIST_API_TOKEN>",
          "ghcr.io/naotama2002/todoist-go-mcp-server:latest",
          "--mode",
          "stdio"
        ]
      }
    }
  }
}

/path/to/todoist-mcp-server をバイナリの実際のパスに、<YOUR_TODOIST_API_TOKEN> を Todoist API トークンに置き換えてください。

  1. Claude Desktop で「Settings > Tools > Add Tool」に移動し、適切な JSON 設定を貼り付けます。

  2. 設定を保存し、必要に応じて Claude Desktop を再起動します。

これで、自然言語を使って Claude に Todoist のタスクやプロジェクトを管理してもらえます。

コントリビューション

コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。

トラブルシューティング

Docker の問題
ポートがすでに使用されている

「port already in use」エラーが発生した場合は、競合するサービスを停止するか、別のポートを使用してください。

# Use a different port
docker run --rm -it -p 3335:8080 -e TODOIST_API_TOKEN=your_todoist_api_token \
  ghcr.io/naotama2002/todoist-go-mcp-server:latest --mode http --addr :8080
MCP クライアントのネットワークの問題

MCP クライアントが Docker コンテナに接続できない場合は、ホストネットワークを使用してみてください。

# Use host networking mode
docker run --rm -i --net=host -e TODOIST_API_TOKEN=your_todoist_api_token \
  ghcr.io/naotama2002/todoist-go-mcp-server:latest --mode stdio
環境変数の問題

Todoist API トークンが正しく設定されていることを確認してください。

# Check if the token is set correctly
docker run --rm -i -e TODOIST_API_TOKEN=your_actual_token \
  ghcr.io/naotama2002/todoist-go-mcp-server:latest --mode stdio
認証データをクリアする

認証に問題がある場合は、Todoist API トークンを確認してください。

  1. Todoist Integrationsにアクセスします
  2. API トークンをコピーします
  3. 環境に正しく設定されていることを確認します

ライセンス

このプロジェクトは MIT License のもとでライセンスされています。詳細については、LICENSE ファイルを参照してください。

Acknowledgments

Development

Project Structure
todoist-go-mcp-server/
├── cmd/
│   ├── test-client/        # Test client for the Todoist API
│   ├── test-mcp-client/    # Test client for the MCP server
│   └── todoist-mcp-server/ # Main MCP server application
├── docs/                   # Documentation
├── pkg/
│   ├── log/                # Logging utilities
│   ├── todoist/            # Todoist API client and tools
│   └── toolsets/           # MCP toolset definitions
└── todo/                   # Implementation plans and notes
Running Tests
make test

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。