mcpField
C
ClickUp MCP Server

ClickUp MCP Server

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

ClickUp MCP Server について

ClickUp MCP Server は、Personal API Token を用いて AI アシスタントを ClickUp ワークスペースに接続する、Stdio 方式の MCP サーバーです。アシスタントとの会話から ClickUp のタスク、スペース、ドキュメントを管理したい利用者向けです。

主な機能

  1. 01タスクの作成と更新
  2. 02チーム、スペース、フォルダ、リストの管理
  3. 03カスタムフィールド値の読み取りと設定
  4. 04Doc ページの作成、編集、検索
  5. 05ビューの管理とビュー内タスクの取得

活用シーン

  1. 01AI アシスタントによる ClickUp リストへの複数タスクの一括作成
  2. 02ワークスペース構造の照会とスペース・フォルダの整理
  3. 03ClickUp Doc の内容を Markdown で読み書き

MCP 対応

本プロジェクトは MCP サーバーであり、ClickUp のタスク、スペース、フォルダ、フィールド、ドキュメント、ビューの操作を MCP クライアントへツールとして公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"clickup-mcp-server-nazruden": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

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

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

詳細

ClickUp MCP Server

smithery badge npm version License: MIT コーヒーをごちそうしてください

ClickUp との連携を実現し、AI アシスタントが ClickUp ワークスペースを操作できるようにする、Model Context Protocol サーバーの実装です。

このサーバーは、MCP クライアントから呼び出されると、MCP 仕様に従って Stdio 経由で実行されます。

ClickUp Server MCP サーバー

クイックスタート

このサーバーでは、認証に ClickUp Personal API Token を使用します。

  1. Personal API Token を生成します: ClickUp の設定で、「My Settings」>「Apps」に移動し、トークンを生成します。
  2. MCP クライアント(例:Claude for Desktop)を設定します: クライアント用にサーバーを設定する際、必要な環境変数を設定します。

MCP クライアントの設定例:

{
  "mcpServers": {
    "clickup": {
      "command": "npx",
      "args": ["@nazruden/clickup-server"],
      "env": {
        "CLICKUP_PERSONAL_TOKEN": "your_personal_api_token_here"
      }
    }
  }
}
  1. MCP クライアントを再起動します。

必要に応じて、MCP クライアントがサーバーを自動的にダウンロードして起動します。

Smithery 経由でのインストール

Smithery 経由で ClickUp MCP Server を Claude Desktop に自動的にインストールするには:

npx -y @smithery/cli install @Nazruden/clickup-mcp-server --client claude

環境変数

必須
  • CLICKUP_PERSONAL_TOKEN:ClickUp Personal API Token です。サーバーが ClickUp API で認証するために必須です。
任意
  • LOG_LEVEL:サーバーのログレベルです。error、warn、info、debug をサポートしています。デフォルトは info です。
  • ENCRYPTION_KEY:永続的な 32 バイトの 16 進数エンコードキーです。設定システム(src/config/app.config.ts)がこのキーを読み込むか生成し、src/security.ts に暗号化/復号化関数が含まれています。ただし、この仕組みは 現在、ClickUpService の Personal API Token 認証フローで CLICKUP_PERSONAL_TOKEN を暗号化するためには使用されていません。
  • PORT:サーバーのポートです。デフォルトの Stdio MCP サーバーモードでは 使用されません が、HTTP トランスポートや追加の HTTP 機能(独立したヘルスチェックエンドポイントなど)が明示的に追加された場合は関係する可能性があります。設定で読み込まれる場合、デフォルトは 3000 です。

利用可能なツール

現在、以下の MCP ツールが実装されています。

タスク管理
  • clickup_create_task:ClickUp リストに新しいタスクを作成します。
    • 必須:list_id、name。
    • 任意:description、status、priority、assignees、due_date、time_estimate、tags。
  • clickup_update_task:既存のタスクのプロパティを更新します。
    • 必須:task_id。
    • 任意:書き込み可能な ClickUpTask プロパティ。
チームとリストの管理
  • clickup_get_teams:アクセス可能なすべてのチーム(ClickUp API v2 におけるワークスペース)を取得します。
  • clickup_get_lists:特定のフォルダー内のすべてのリストを取得します。
    • 必須:folder_id。
ボード管理
  • clickup_create_board:ClickUp スペースに新しいボードを作成します。
    • 必須:space_id、name。
スペース管理
  • clickup_get_spaces:指定したワークスペース(チーム)のすべてのスペースを取得します。
    • 必須:team_id(ワークスペース ID)。
    • 任意:archived(ブール値、デフォルトは false)。
  • clickup_create_space:ワークスペース内に新しいスペースを作成します。
    • 必須:team_id(ワークスペース ID)、name。
    • 任意:multiple_assignees(ブール値)、features(due_dates、time_tracking などの機能フラグを含むオブジェクト)。
  • clickup_get_space:特定のスペースの詳細を取得します。
    • 必須:space_id。
  • clickup_update_space:既存のスペースを更新します。
    • 必須:space_id。
    • 任意:name、color、private、admin_can_manage、archived、features。
  • clickup_delete_space:スペースを削除します。
    • 必須:space_id。
フォルダー管理
  • clickup_get_folders:指定したスペース内のすべてのフォルダーを取得します。
    • 必須:space_id。
    • 任意:archived(ブール値、デフォルトは false)。
  • clickup_create_folder:スペース内に新しいフォルダーを作成します。
    • 必須:space_id、name。
  • clickup_get_folder:特定のフォルダーの詳細を取得します。
    • 必須:folder_id。
  • clickup_update_folder:既存のフォルダーを更新します。
    • 必須:folder_id、name。
  • clickup_delete_folder:フォルダーを削除します。
    • 必須:folder_id。
カスタムフィールド管理
  • clickup_get_custom_fields:指定したリストでアクセス可能なすべてのカスタムフィールドを取得します。
    • 必須:list_id。
  • clickup_set_task_custom_field_value:特定のタスクのカスタムフィールドに値を設定します。
    • 必須:task_id、field_id、value。
    • 任意:value_options(オブジェクト。日付フィールドの場合は { "time": true } など)。
  • clickup_remove_task_custom_field_value:特定のタスクのカスタムフィールドの値を削除/クリアします。
    • 必須:task_id、field_id。
ドキュメント管理

注: ClickUp の Docs API(特に v2。一部の操作では v3 が使われるようになっています)には制限があります。コンテンツは主に Markdown として扱われます。高度な書式設定や複雑な埋め込みは、完全にはサポートされない場合があります。ClickUp の V3 /docs エンドポイントでは、現在 API 経由でドキュメントを直接削除することはサポートされていません。アーカイブやページ操作を通じて Docs のライフサイクルを管理してください。

  • clickup_search_docs:ワークスペース(チーム)内の Docs を検索します。
    • 必須:workspace_id。
    • 任意:query(文字列)、include_archived(ブール値)。
  • clickup_create_doc:新しい Doc を作成します。
    • 必須:workspace_id、name。
    • 任意:parent(id と type を含むオブジェクト)、visibility(文字列:「private」、「workspace」、「public」)、create_page(ブール値)。
  • clickup_get_doc_pages:特定の Doc 内のページ一覧を取得します。
    • 必須:doc_id。
  • clickup_create_doc_page:特定の Doc 内に新しいページを作成します。
    • 必須:workspace_id、doc_id、name(ページタイトル)。
    • 任意:content(Markdown)、orderindex(数値。ただし、v3 API では使用されない場合があります)、parent_page_id(文字列)、sub_title(文字列)、content_format(文字列)。
  • clickup_get_doc_page_content:特定の Doc ページのコンテンツ(Markdown)を取得します。
    • 必須:workspace_id、doc_id、page_id。
    • 任意:content_format(文字列)。
  • clickup_edit_doc_page_content:特定の Doc ページのコンテンツおよび/またはタイトルを更新します。
    • 必須:workspace_id、doc_id、page_id、content(Markdown)。
    • 任意:title(文字列。API の name に対応)、sub_title(文字列)、content_edit_mode(文字列:「replace」、「append」、「prepend」)、content_format(文字列)。
ビュー管理
  • clickup_get_views:指定した親リソース(Team、Space、Folder、List)のすべてのビューを取得します。
    • 必須:parent_id(親リソースの ID)、parent_type(文字列:「team」、「space」、「folder」、または「list」)。
  • clickup_create_view:Team、Space、Folder、List 内に新しいビューを作成します。
    • 必須:parent_id、parent_type、name(文字列:新しいビューの名前)、type(文字列:ビューの種類。例:「list」、「board」、「calendar」、「gantt」)。
    • 任意:grouping、divide、sorting、filters、columns、team_sidebar、settings(ビューの設定を定義するオブジェクト)。
  • clickup_get_view_details:特定のビューの詳細を取得します。
    • 必須:view_id。
  • clickup_update_view:既存のビューを更新します。
    • 必須:view_id。
    • 任意:name(文字列)、grouping、divide、sorting、filters、columns、team_sidebar、settings。
  • clickup_delete_view:ビューを削除します。
    • 必須:view_id。
  • clickup_get_view_tasks:特定のビューに属するタスクを取得します。
    • 必須:view_id。
    • 任意:page(数値:ページネーション用の 0 始まりのページ番号)。

開発

  1. リポジトリをクローンします:

    git clone <repository_url>
    cd clickup-mcp-server
    
  2. 依存関係をインストールします:

    npm install
    
  3. ルートディレクトリに .env ファイルを作成し、CLICKUP_PERSONAL_TOKEN を追加します:

    CLICKUP_PERSONAL_TOKEN=your_actual_personal_api_token_here
    LOG_LEVEL=debug
    
  4. 開発モード(Stdio)で起動します: サーバーは stdin/stdout で MCP メッセージを受信します。

    npm run dev
    

    これにより、ts-node-dev を使って src/index.ts が実行されます。

  5. 本番用にビルドします:

    npm run build
    

    TypeScript が dist/ にコンパイルされます。

  6. テストを実行します:

    npm test
    

    src/__tests__ にある Jest のユニットテストが実行されます。.env.test ファイルがあることを確認してください(src/__tests__/setup.ts を参照)。

MCP Inspector を使ったテスト

MCP Inspector を使って、サーバーをローカルでテストできます:

  1. CLICKUP_PERSONAL_TOKEN を利用できる状態にします。次のいずれかの方法を使えます:
    • Inspector を実行する前に、シェル環境に設定します。
    • MCP Inspector にサーバー環境変数の設定オプションがある場合は、MCP Inspector の UI で設定します。
    • ローカルの .env ファイルに設定します(src/index.ts が dotenv を読み込みます)。
  2. サーバーとともに Inspector を実行します:
    npx @modelcontextprotocol/inspector node --loader ts-node/esm src/index.ts
    
    Inspector の UI が起動し、サーバーに接続してそのツールを呼び出せるようになります。

セキュリティ

  • ClickUp Personal API Token を使って認証します。このトークンは安全に保管し、他者に知られないようにしてください。 パスワードと同様に扱ってください。
  • サーバーは、利用する MCP クライアントまたは開発環境から環境変数を介して CLICKUP_PERSONAL_TOKEN が提供されることを想定しています。
  • 設定システムには ENCRYPTION_KEY 用のロジックが含まれており、src/security.ts には暗号化関数がありますが、ClickUpService では Personal API Token に対して現在適用されていません。
  • デフォルトの LOG_LEVEL=info では、トークンなどの機密データはログに記録されません。デバッグレベルでは、より詳細な情報が記録される場合があります。
  • ClickUp API 呼び出しのレート制限には、残りのリクエスト数をログに記録することで対応します(ClickUpService を参照)。

トラブルシューティング

よくある問題
  1. 認証エラー(ClickUp API からの 401)

    • CLICKUP_PERSONAL_TOKEN 環境変数が正しく設定され、サーバープロセスからアクセスできることを確認してください。
    • トークンが有効で、ClickUp の設定で取り消されていないことを確認してください。
    • 認証に関する ClickUpService のメッセージがサーバーログにないか確認してください。
  2. ClickUp API によるレート制限

    • サーバーは、ClickUp API のレスポンスに含まれるレート制限情報をログに記録します。
    • レート制限に頻繁に達する場合は、使用量が多いことを示しています。サーバー自体は、axios のデフォルトの動作を超えるキューイングや複雑なバックオフは実装していません。
  3. サーバーが起動しない/MCP Inspector の接続に関する問題

    • CLICKUP_PERSONAL_TOKEN が設定されていることを確認してください。
    • npm run dev を使用している場合は、コンソールで TypeScript または ts-node-dev のエラーを確認してください。
    • node --loader ts-node/esm src/index.ts で MCP Inspector を使用している場合は、ts-node とプロジェクトの依存関係が正しくインストールされていることを確認してください。
    • src/index.ts または ClickUpService からのコンソールエラーを確認してください。
サーバーログの確認
  • npm run dev または npm start で実行すると、ログはコンソールに出力されます。
  • MCP クライアント(Claude for Desktop など)から実行した場合、ログは通常そのクライアントによって管理されます。Claude for Desktop のログは、通常、次の場所で確認できます。
    • Windows:%USERPROFILE%\AppData\Local\Claude\Logs\mcp\<server_name_and_id>\<process_id>.log(パスは多少異なる場合があります)
    • macOS:~/Library/Logs/Claude/mcp/<server_name_and_id>\<process_id>.log(パスは多少異なる場合があります)

サポート

このプロジェクトがお役に立ちましたら、継続的な開発とメンテナンスを支援するため、コーヒーをごちそうしていただけると幸いです。

コーヒーをごちそうする

ライセンス

MIT ライセンス - 詳細は LICENSE ファイルをご覧ください

テストパイプラインの修正

コメント

MCP は初めてですか?

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

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