Plane MCP Server

公式

The official Plane MCP server provides integration with Plane APIs, enabling full AI automation of Plane projects, work items, cycles and more.

ドキュメント

Plane MCP Server

Plane 統合のための Model Context Protocol (MCP) サーバーです。このサーバーは、AI エージェントを通じて Plane とやり取りするためのツールとリソースを提供します。

特徴

  • 🔧 Plane 統合: Plane API およびサービスとの連携
  • 🔌 複数のトランスポート: stdio、SSE、ストリーミング HTTP トランスポートをサポート
  • 🌐 リモート & ローカル: ローカルおよびリモートサービスの両方で動作
  • 🛠️ 拡張可能: 新しいツールやリソースの追加が容易

使用方法

サーバーは3つのトランスポート方式をサポートしています。インストール不要の uvx の使用を推奨します

要件:

  • Python 3.10 以上 (stdio トランスポート用、uvx 経由)
  • Node.js 22 以上 (リモートトランスポート用、npx 経由)

1. Stdio トランスポート (ローカル用)

MCP クライアント設定 (uvx 使用 - 推奨):

{
  "mcpServers": {
    "plane": {
      "command": "uvx",
      "args": ["plane-mcp-server", "stdio"],
      "env": {
        "PLANE_API_KEY": "<your-api-key>",
        "PLANE_WORKSPACE_SLUG": "<your-workspace-slug>",
        "PLANE_BASE_URL": "https://api.plane.so"
      }
    }
  }
}

2. OAuth を使用したリモート HTTP トランスポート

OAuth 認証を使用して、ホストされた Plane MCP サーバーに接続します。

URL: https://mcp.plane.so/http/mcp

MCP クライアント設定 (ネイティブのリモート MCP サポートがない Claude Desktop などのツール用):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/http/mcp"]
    }
  }
}

注意: リモートサーバーへの接続時に OAuth 認証は自動的に処理されます。

3. PAT トークンを使用したリモート HTTP トランスポート

個人アクセストークン (PAT) を使用して、ホストされた Plane MCP サーバーに接続します。

URL: https://mcp.plane.so/http/api-key/mcp

ヘッダー:

  • Authorization: Bearer <PAT_TOKEN>
  • X-Workspace-slug: <SLUG>

MCP クライアント設定 (ネイティブのリモート MCP サポートがない Claude Desktop などのツール用):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/http/api-key/mcp"],
      "headers": {
        "Authorization": "Bearer <PAT_TOKEN>",
        "X-Workspace-slug": "<SLUG>"
      }
    }
  }
}

4. SSE トランスポート (レガシー)

⚠️ レガシートランスポート: SSE (Server-Sent Events) トランスポートは後方互換性のために維持されています。新しい実装では、代わりに HTTP トランスポート (セクション 2 または 3) を使用する必要があります。

Server-Sent Events 経由で OAuth 認証を使用して、ホストされた Plane MCP サーバーに接続します。

URL: https://mcp.plane.so/sse

MCP クライアント設定 (SSE トランスポートをサポートするツール用):

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": ["mcp-remote@latest", "https://mcp.plane.so/sse"]
    }
  }
}

注意: リモートサーバーへの接続時に OAuth 認証は自動的に処理されます。このトランスポートは HTTP トランスポートに置き換えられ、非推奨です。

設定

認証

サーバーは環境変数による認証を必要とします:

  • PLANE_BASE_URL: Plane API のベース URL (デフォルト: https://api.plane.so) - オプション
  • PLANE_API_KEY: 認証用 API キー (stdio トランスポートで必須)
  • PLANE_WORKSPACE_SLUG: ワークスペーススラッグ識別子 (stdio トランスポートで必須)
  • PLANE_ACCESS_TOKEN: 認証用アクセストークン (API キーの代替)

(stdio トランスポート用):

export PLANE_BASE_URL="https://api.plane.so"
export PLANE_API_KEY="your-api-key"
export PLANE_WORKSPACE_SLUG="your-workspace-slug"

注意: リモート HTTP トランスポート (OAuth または PAT) の場合、認証は接続方法 (OAuth フローまたは PAT ヘッダー) を介して処理され、これらの環境変数は必要ありません。

OAuth リダイレクト URI

OAuth HTTP/SSE トランスポートの場合、サーバーは各クライアントのリダイレクト URI を許可リストと照合して検証します。一般的な MCP クライアント (Cursor、VS Code、Claude.ai、ChatGPT コネクタ、localhost) はデフォルトで許可されています。

コードの変更やリリースなしで新しいクライアントをオンボードするには、環境変数を使用して追加のパターンを追加します:

  • PLANE_OAUTH_ALLOWED_REDIRECT_URIS: 組み込みの許可リストに追加される、カンマ区切りのリダイレクト URI パターン。
export PLANE_OAUTH_ALLOWED_REDIRECT_URIS="https://newclient.com/cb,https://other.app/oauth/*"

パターンはグロブマッチングをサポートします (* は任意のポート、パスセグメント、またはサブドメインに一致します)。セキュリティのため、ホストは固定し、ポート/パスのみワイルドカードにしてください。

ログ

サーバーは構造化された JSON ログを出力します。各ツール呼び出しは、ツール名、所要時間、ステータス、および (利用可能な場合) 不透明なユーザー ID とワークスペーススラッグとともにログに記録されます。

  • LOG_USER_INFO: true の場合、不透明なユーザー ID とともにユーザー情報 (表示名などの PII) をログに含めます。デフォルトは false で、明示的にオプトインしない限り PII はログに記録されません。表示名を伝送するのは OAuth および PAT (ヘッダー) HTTP トランスポートのみで、stdio は影響を受けません。
export LOG_USER_INFO="true"

利用可能なツール

サーバーは Plane とやり取りするための包括的なツールを提供します。すべてのツールは、型安全性と検証のために Plane SDK の Pydantic モデルを使用します。

プロジェクト

ツール名説明
list_projectsオプションのページネーションとフィルタリングを使用して、ワークスペース内のすべてのプロジェクトを一覧表示します
create_project名前、識別子、およびオプションの設定を使用して新しいプロジェクトを作成します
retrieve_projectID でプロジェクトを取得します
update_project部分的なデータでプロジェクトを更新します
delete_projectID でプロジェクトを削除します
get_project_worklog_summaryプロジェクトの作業ログサマリーを取得します
get_project_membersプロジェクトのすべてのメンバーを取得します
update_project_featuresプロジェクトの機能設定を更新します

作業項目

ツール名説明
list_work_itemsオプションのフィルタリングとページネーションを使用して、プロジェクト内のすべての作業項目を一覧表示します
create_work_item名前、担当者、ラベル、その他の属性を使用して新しい作業項目を作成します
retrieve_work_itemオプションのフィールド展開を使用して、ID で作業項目を取得します
retrieve_work_item_by_identifierプロジェクト識別子と課題シーケンス番号で作業項目を取得します
update_work_item部分的なデータで作業項目を更新します
delete_work_itemID で作業項目を削除します
search_work_itemsクエリ文字列を使用してワークスペース全体の作業項目を検索します

サイクル

ツール名説明
list_cyclesプロジェクト内のサイクルを一覧表示します (アーカイブ済みの場合は archived=true を設定)
create_cycle名前、日付、所有者を使用して新しいサイクルを作成します
retrieve_cycleID でサイクルを取得します
update_cycle部分的なデータでサイクルを更新します
delete_cycleID でサイクルを削除します
manage_cycle_work_itemsサイクルに作業項目を追加または削除します
list_cycle_work_itemsサイクル内の作業項目を一覧表示します
transfer_cycle_work_itemsあるサイクルから別のサイクルに作業項目を転送します
manage_cycle_archiveサイクルをアーカイブまたはアーカイブ解除します

モジュール

ツール名説明
list_modulesプロジェクト内のモジュールを一覧表示します (アーカイブ済みの場合は archived=true を設定)
create_module名前、日付、ステータス、メンバーを使用して新しいモジュールを作成します
retrieve_moduleID でモジュールを取得します
update_module部分的なデータでモジュールを更新します
delete_moduleID でモジュールを削除します
manage_module_work_itemsモジュールに作業項目を追加または削除します
list_module_work_itemsモジュール内の作業項目を一覧表示します
manage_module_archiveモジュールをアーカイブまたはアーカイブ解除します

イニシアチブ

ツール名説明
list_initiativesワークスペース内のすべてのイニシアチブを一覧表示します
create_initiative名前、日付、状態、リードを使用して新しいイニシアチブを作成します
retrieve_initiativeID でイニシアチブを取得します
update_initiative部分的なデータでイニシアチブを更新します
delete_initiativeID でイニシアチブを削除します

受付作業項目

ツール名説明
list_intake_work_itemsオプションのページネーションを使用して、プロジェクト内のすべての受付作業項目を一覧表示します
create_intake_work_itemプロジェクトに新しい受付作業項目を作成します
retrieve_intake_work_itemオプションのフィールド展開を使用して、作業項目 ID で受付作業項目を取得します
update_intake_work_item部分的なデータで受付作業項目を更新します
delete_intake_work_item作業項目 ID で受付作業項目を削除します

作業項目プロパティ

ツール名説明
list_work_item_properties作業項目タイプの作業項目プロパティを一覧表示します
create_work_item_propertyタイプ、設定、検証ルールを使用して新しい作業項目プロパティを作成します
retrieve_work_item_propertyID で作業項目プロパティを取得します
update_work_item_property部分的なデータで作業項目プロパティを更新します
delete_work_item_propertyID で作業項目プロパティを削除します

マイルストーン

ツール名説明
list_milestonesプロジェクト内のすべてのマイルストーンを一覧表示します
create_milestone新しいマイルストーンを作成します
retrieve_milestoneID でマイルストーンを取得します
update_milestoneID でマイルストーンを更新します
delete_milestoneID でマイルストーンを削除します
manage_milestone_work_itemsマイルストーンに作業項目を追加または削除します
list_milestone_work_itemsマイルストーン内の作業項目を一覧表示します

ラベル

ツール名説明
list_labelsプロジェクト内のすべてのラベルを一覧表示します
create_label新しいラベルを作成します
retrieve_labelID でラベルを取得します
update_labelID でラベルを更新します
delete_labelID でラベルを削除します

状態

ツール名説明
list_statesプロジェクト内のすべての状態を一覧表示します
create_state新しい状態を作成します
retrieve_stateID で状態を取得します
update_stateID で状態を更新します
delete_stateID で状態を削除します

作業項目コメント

ツール名説明
list_work_item_comments作業項目のコメントを一覧表示します
retrieve_work_item_comment作業項目の特定のコメントを取得します
create_work_item_comment作業項目のコメントを作成します
update_work_item_comment作業項目のコメントを更新します
delete_work_item_comment作業項目のコメントを削除します

作業項目リンク

ツール名説明
list_work_item_links作業項目のリンクを一覧表示します
retrieve_work_item_link作業項目の特定のリンクを取得します
create_work_item_link作業項目のリンクを作成します
update_work_item_link作業項目のリンクを更新します
delete_work_item_link作業項目のリンクを削除します

作業項目タイプ

ツール名説明
list_work_item_typesプロジェクト内のすべての作業項目タイプを一覧表示します
create_work_item_type新しい作業項目タイプを作成します
retrieve_work_item_typeID で作業項目タイプを取得します
update_work_item_typeID で作業項目タイプを更新します
delete_work_item_typeID で作業項目タイプを削除します
import_work_item_types_to_projectワークスペースレベルの作業項目タイプをプロジェクトに一括リンクします
resolve_work_item_typeプロジェクトの名前付きタイプを検索または作成し、ワークスペースとプロジェクトのスコープおよびインポートを自動処理します

作業項目リレーション

ツール名説明
list_work_item_relations作業項目のリレーションを一覧表示します
create_work_item_relation作業項目のリレーションを作成します
remove_work_item_relation作業項目からリレーションを削除します

作業項目リレーション定義

ツール名説明
list_work_item_relation_definitionsワークスペースのカスタムリレーション定義を一覧表示します
create_work_item_relation_definitionワークスペースのリレーション定義を作成します
update_work_item_relation_definitionリレーション定義を更新します
delete_work_item_relation_definitionリレーション定義を削除します

作業項目アクティビティ

ツール名説明
list_work_item_activities作業項目のアクティビティを一覧表示します
retrieve_work_item_activity作業項目の特定のアクティビティを取得します

作業ログ

ツール名説明
list_work_logs作業項目の作業ログを一覧表示します
create_work_log作業項目の作業ログを作成します
update_work_log作業項目の作業ログを更新します
delete_work_log作業項目の作業ログを削除します

ページ

ツール名説明
list_pagesページを一覧表示します (ワークスペース、または project_id が指定された場合はプロジェクトのもの)
retrieve_pageID でページを取得します (ワークスペース、または project_id が指定された場合はプロジェクトのもの)
create_pageワークスペースまたはプロジェクトのページを作成します

ワークスペース

ツール名説明
get_workspace_members現在のワークスペースのすべてのメンバーを取得します
get_features機能フラグを取得します (ワークスペース、または project_id が指定された場合はプロジェクトのもの)
update_workspace_features現在のワークスペースの機能を更新します

ユーザー

ツール名説明
get_me現在認証されているユーザー情報を取得します

ツール総数: 20 カテゴリにわたる 100 以上のツール

開発

テストの実行

pytest

コードフォーマット

black plane_mcp/
ruff check plane_mcp/

ライセンス

MIT License - 詳細はLICENSEを参照してください。

コントリビューション

コントリビューションを歓迎します!お気軽にPull Requestを送信してください。

廃止予定のお知らせ

⚠️ Node.jsベースのplane-mcp-serverは廃止され、メンテナンスされなくなりました。

このリポジトリは、Plane MCPサーバーの新しいPython+FastMCPベースの実装を表しています。以前のNode.jsバージョンを使用していた場合は、継続的なサポートとアップデートのために、このPythonベースのバージョンに移行してください。

新しい実装では以下を提供します:

  • Pydanticモデルによる型安全性の向上
  • FastMCPによるパフォーマンスの改善
  • ツールカバレッジの強化
  • 積極的なメンテナンスと開発

移行のサポートについては、このREADMEの設定例を参照するか、サポートのためにIssueを作成してください。

古いNode.jsの設定(廃止済み):

以前のNode.jsベースの@makeplane/plane-mcp-serverを使用していた場合、設定は次のようになっていました:

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": [
        "-y",
        "@makeplane/plane-mcp-server"
      ],
      "env": {
        "PLANE_API_KEY": "<YOUR_API_KEY>",
        "PLANE_API_HOST_URL": "<HOST_URL_FOR_SELF_HOSTED>",
        "PLANE_WORKSPACE_SLUG": "<YOUR_WORKSPACE_SLUG>"
      }
    }
  }
}

上記の使用方法セクションに示されている新しいPythonベースの設定に移行してください。