Plane Mcp Server について
Plane MCP Server は Plane API 経由で Plane Cloud のプロジェクトや課題を管理する機能を LLM に提供します。状態、スプリント、コメント、工数管理に対応し、一覧操作にはページネーションを備えます。セルフホスト版 Plane には対応していません。
主な機能
- 01プロジェクトと課題の管理
- 02状態、モジュール、サイクルの管理
- 03ラベル、メンバー、コメントの管理
- 04添付ファイル、リンク、履歴の管理
- 05工数とカスタムプロパティの管理
- 06カーソル式の一覧ページネーション
活用シーン
- 01LLM 経由での課題作成や更新
- 02プロジェクト課題の絞り込みとページ移動
- 03スプリント、サイクル、課題割り当ての管理
- 04工数記録と課題履歴の確認
MCP 対応
Plane API を通じて、プロジェクトや課題などを管理するツールを MCP クライアントに公開します。Plane Cloud のワークスペースを対象とします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
76掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cursor | string | いいえ | ページネーションカーソル。形式は 'value:offset:is_prev'(任意) |
| per_page | number | いいえ | 1 ページあたりの項目数(デフォルト:100、最大:100) |
詳細
Plane MCP サーバー
LLM が Plane.so と連携し、Plane の API を通じてプロジェクトや課題を管理できるようにする Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、Claude などの LLM はユーザーの制御とセキュリティを維持しながら、プロジェクト管理ワークフローと直接連携できます。
⚠️ 重要: この MCP サーバーは、Plane Cloud インスタンス専用に設計されています。
https://app.plane.so/workspace-slugでホストされているワークスペースでのみ動作します。セルフホストの Plane インストールを使用している場合、このサーバーには互換性がありません。
注: これは、元の kelvin6365/plane-mcp-server を拡張したフォークです。ステート、モジュール(スプリント)、サイクル、ラベル、チーム管理、コメント、リンク、添付ファイル、時間追跡、課題タイプなど、包括的な Plane API 機能を追加しています。
機能
ページネーションのサポート
- すべてのリスト操作(プロジェクト、課題、モジュール、サイクル、ラベル)でカーソルベースのページネーションを利用できます
- 1 ページあたり最大 100 件までページサイズを設定できます
- 次/前のカーソルを使って大規模なデータセットを移動できます
- すべてのリストツールで一貫したページネーションを利用できます
プロジェクト管理
- ページネーションを使用して Plane ワークスペース内のすべてのプロジェクトを一覧表示します
- 特定のプロジェクトの詳細情報を取得します
課題管理
- カスタマイズ可能なプロパティを指定して新しい課題を作成します
- プロジェクトの課題を一覧表示およびフィルタリングします
- 特定の課題の詳細情報を取得します
- 既存の課題を新しい情報で更新します
ステート管理
- プロジェクト内のすべてのステートを一覧表示します
- 特定のステートの詳細情報を取得します
- カスタマイズ可能なプロパティを指定して新しいステートを作成します
- 既存のステートを更新します
- プロジェクトからステートを削除します
モジュール(スプリント)管理
- プロジェクト内のすべてのモジュール(スプリント)を一覧表示します
- 特定のモジュールの詳細情報を取得します
- カスタマイズ可能なプロパティを指定して新しいモジュールを作成します
- 既存のモジュールを更新します
- プロジェクトからモジュールを削除します
- 特定のモジュールに割り当てられた課題を一覧表示します
- モジュールへの課題の追加/削除を行います
サイクル管理
- プロジェクト内のすべてのサイクルを一覧表示します
- 特定のサイクルの詳細情報を取得します
- カスタマイズ可能なプロパティを指定して新しいサイクルを作成します
- 既存のサイクルを更新します
- プロジェクトからサイクルを削除します
- 特定のサイクルに割り当てられた課題を一覧表示します
- サイクルへの課題の追加/削除を行います
ラベル管理
- プロジェクト内のすべてのラベルを一覧表示します
- 特定のラベルの詳細情報を取得します
- カスタマイズ可能なプロパティを指定して新しいラベルを作成します
- 既存のラベルを更新します
- プロジェクトからラベルを削除します
チームとワークスペースの管理
- ワークスペース内のすべてのメンバーを一覧表示します
- 特定のプロジェクトに割り当てられたメンバーを一覧表示します
課題のコメントとコミュニケーション
- 課題のコメントを一覧表示、作成、更新、削除します
- ディスカッションの履歴とコラボレーションを追跡します
課題のリンクと外部参照
- 外部リンク(ドキュメント、PR など)を課題に添付します
- 課題に関連する URL を管理および更新します
ファイル添付
- 課題のファイル添付を一覧表示します
- 新しい添付ファイル用のアップロード URL を生成します
課題のアクティビティと履歴
- 課題のアクティビティ履歴全体を表示
- すべての変更と更新を追跡
時間追跡(作業ログ)
- 特定の課題に費やした時間を記録
- プロジェクト全体の時間追跡の概要を表示
- 作業ログのエントリーを更新、管理
カスタム課題タイプ
- カスタム課題タイプを作成、管理
- プロジェクト固有の課題カテゴリーを定義
インテーク課題(トリアージ)
- トリアージ用のインテーク/受信トレイ課題に対応
- プロジェクトへの割り当て前に課題の提出を管理
カスタム課題プロパティ
- 課題タイプのカスタムプロパティを作成、管理
- さまざまなプロパティタイプ(テキスト、数値、日付、選択肢、ブール値)に対応
- 選択プロパティのドロップダウン項目を設定
- 必須フィールドと検証ルールを設定
サブ課題と関連
- 親子関係で階層的な課題構造を作成
- 既存の課題をサブ課題に変換
- サブ課題ツリーを一覧表示、管理
- サブ課題を通常の課題に戻す
課題の移動操作
- スプリント管理を改善するため、課題をサイクル間で移動
- 課題を一括で別のプロジェクトフェーズに移動
前提条件
- Node.js 22.x 以上
- Plane.so API キー
- Plane.so ワークスペース
インストール
オプション 1:NPM を使用(推奨)
公開されている npm パッケージを使用するのが、最も手早く始める方法です。
{
"mcpServers": {
"plane": {
"command": "npx",
"args": [
"-y",
"@disrex/plane-mcp-server"
],
"env": {
"PLANE_API_KEY": "your_plane_api_key_here",
"PLANE_WORKSPACE_SLUG": "your_workspace_slug_here"
}
}
}
}
この設定を Claude for Desktop の設定ファイルに追加します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
オプション 2:手動セットアップ
サーバーを手動でセットアップする場合は、次の手順に従ってください。
- このリポジトリをクローンします。
git clone https://github.com/disrex-group/plane-mcp-server.git
cd plane-mcp-server
- 依存関係をインストールします。
npm install
- サーバーをビルドします。
npm run build
Plane API 認証情報の取得
この MCP サーバーを使用するには、次の情報が必要です。
- Plane API キー:Plane の個人設定(ワークスペース設定ではありません)で生成します
- ワークスペーススラッグ:Plane ワークスペースの URL で確認できます(例:
https://app.plane.so/workspace-slug/)
これらの認証情報を取得したら、上記のインストールオプションに記載されているとおり、Claude の設定で使用します。
利用可能なツール
注記: ツール名にはアンダースコアではなくハイフンを使用します(例:
list-projects)。互換性のため、サーバーがアンダースコアを自動的にハイフンに変換します。
list-projects
ページネーションに対応し、Plane ワークスペース内のすべてのプロジェクトを一覧表示します。
パラメーター:
per_page(任意):1 ページあたりの項目数(デフォルト:100、最大:100)cursor(任意):形式が 'value:offset:is_prev' のページネーションカーソル
例:
{
"per_page": 50
}
ページネーションを使用する例:
{
"per_page": 25,
"cursor": "project_name:25:false"
}
get-project
特定のプロジェクトの詳細情報を取得します。
パラメーター:
project_id:取得するプロジェクトの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
create-issue
指定したプロジェクトに新しい課題を作成します。
パラメーター:
project_id:課題を作成するプロジェクトの IDname:課題のタイトルdescription_html:課題の HTML 形式の説明(Plane API で必須)priority(任意):課題の優先度("urgent"、"high"、"medium"、"low"、"none")state_id(任意):この課題の状態 IDassignees(任意):この課題に割り当てるユーザー ID の配列labels(任意):この課題に割り当てるラベル ID の配列
注記:
assigneesとlabelsのパラメーターは、ID 文字列の配列である必要があります。よくあるエラーとして、配列ではなく辞書/オブジェクトを指定することや、課題データ全体を誤ってこれらのフィールド内にネストすることが挙げられます。サーバーはこうしたケースに対応しようとしますが、正しい形式を使用するのが最適です。
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "Implement new feature",
"description_html": "<p>We need to implement the new reporting feature</p>",
"priority": "high",
"assignees": ["user-id-1", "user-id-2"],
"labels": ["446cf3ad-446e-4b7a-8706-14121a0338d7", "ab0c39d4-dcae-4ccd-971a-f4c66d1e7db7"]
}
list-issues
指定したプロジェクトの課題を、任意のフィルターとページネーションを使用して一覧表示します。
パラメーター:
project_id:課題を取得するプロジェクトの IDstate_id(任意):状態 ID で絞り込みますpriority(任意):優先度で絞り込みますassignee_id(任意):担当者 ID で絞り込みますper_page(任意):1 ページあたりの項目数(デフォルト:100、最大:100)cursor(任意):形式が 'value:offset:is_prev' のページネーションカーソル
例:
基本的な絞り込み:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"priority": "high",
"per_page": 20
}
ページネーションを使用する場合(最初のページ):
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 20
}
ページネーションを使用する場合(前のレスポンスのカーソルを使用した次のページ):
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 20,
"cursor": "20:1:0"
}
get-issue
特定の課題の詳細情報を取得します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:取得する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
update-issue
プロジェクト内の既存の課題を更新します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:更新する課題の IDname(任意):更新後の課題タイトルdescription_html(任意):課題の HTML 形式の説明(Plane API で必須)priority(任意):更新後の優先度state_id(任意):更新後の状態 IDassignees(任意):この課題に割り当てるユーザー ID の更新後の配列labels(任意):この課題に割り当てるラベル ID の更新後の配列
注:
assigneesおよびlabelsパラメーターは、create-issue ツールと同じ形式のガイドラインに従い、ID 文字列の配列で指定する必要があります。
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"priority": "urgent",
"description_html": "<p>Updated description with <strong>more details</strong></p>",
"labels": ["446cf3ad-446e-4b7a-8706-14121a0338d7", "7de2b3d1-ae1a-4651-a3df-717629d70c1a"]
}
状態管理ツール
list-states
プロジェクト内のすべての状態を一覧表示します。
パラメーター:
project_id:状態を取得するプロジェクトの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
get-state
特定の状態の詳細情報を取得します。
パラメーター:
project_id:状態を含むプロジェクトの IDstate_id:取得する状態の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"state_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-state
プロジェクトに新しい状態を作成します。
パラメーター:
project_id:状態を作成するプロジェクトの IDname:状態の名前group:状態グループ("unstarted"、"started"、"completed"、"cancelled")description(任意):状態の説明color(任意):状態のカラーコード(例:"#ff0000")
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "In Review",
"group": "started",
"description": "Issues currently under review",
"color": "#ffaa00"
}
update-state
プロジェクト内の既存の状態を更新します。
パラメーター:
project_id:状態を含むプロジェクトの IDstate_id:更新する状態の IDname(任意):更新後の状態名description(任意):更新後の状態の説明color(任意):更新後の状態のカラーコードgroup(任意):更新後の状態グループ
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"state_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "Code Review",
"color": "#00ff00"
}
delete-state
プロジェクトから状態を削除します。
パラメーター:
project_id:状態を含むプロジェクトの IDstate_id:削除する状態の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"state_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
モジュール(スプリント)管理ツール
list-modules
ページネーションに対応し、プロジェクト内のすべてのモジュール(スプリント)を一覧表示します。
パラメーター:
project_id:モジュールを取得するプロジェクトの IDper_page(任意):1 ページあたりの項目数(デフォルト:100、最大:100)cursor(任意):形式が 'value:offset:is_prev' のページネーションカーソル
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 50
}
ページネーションを使用する例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 25,
"cursor": "module_name:25:false"
}
get-module
特定のモジュールの詳細情報を取得します。
パラメーター:
project_id:モジュールを含むプロジェクトの IDmodule_id:取得するモジュールの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"module_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-module
プロジェクトに新しいモジュール(スプリント)を作成します。
パラメーター:
project_id:モジュールを作成するプロジェクトの IDname:モジュール名description(任意):モジュールの説明start_date(任意):モジュールの開始日(YYYY-MM-DD 形式)target_date(任意):モジュールの目標終了日(YYYY-MM-DD 形式)status(任意):モジュールのステータス(「planned」、「in-progress」、「paused」、「completed」、「cancelled」)lead(任意):モジュールのリード担当者のユーザー IDmembers(任意):モジュールメンバーとして割り当てるユーザー ID の配列
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "Sprint 1 - Core Features",
"description": "Initial sprint focusing on core functionality",
"start_date": "2024-01-01",
"target_date": "2024-01-14",
"status": "planned",
"lead": "user-id-1",
"members": ["user-id-1", "user-id-2"]
}
update-module
プロジェクト内の既存のモジュールを更新します。
パラメーター:
project_id:モジュールを含むプロジェクトの IDmodule_id:更新するモジュールの IDname(任意):更新後のモジュール名description(任意):更新後のモジュールの説明start_date(任意):更新後のモジュールの開始日target_date(任意):更新後のモジュールの目標終了日status(任意):更新後のモジュールのステータスlead(任意):更新後のモジュールのリード担当者のユーザー IDmembers(任意):更新後のモジュールメンバーのユーザー ID の配列
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"module_id": "01def456-7890-12gh-3456-789ijklmnopq",
"status": "in-progress",
"target_date": "2024-01-21"
}
delete-module
プロジェクトからモジュールを削除します。
パラメーター:
project_id:モジュールを含むプロジェクトの IDmodule_id:削除するモジュールの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"module_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
list-module-issues
特定のモジュール内のすべての課題を一覧表示します。
パラメーター:
project_id:モジュールを含むプロジェクトの IDmodule_id:課題を取得するモジュールの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"module_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
add-issues-to-module
モジュールに課題を追加します。
パラメーター:
project_id:モジュールを含むプロジェクトの IDmodule_id:課題を追加するモジュールの IDissues:モジュールに追加する課題 ID の配列
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"module_id": "01def456-7890-12gh-3456-789ijklmnopq",
"issues": ["issue-id-1", "issue-id-2", "issue-id-3"]
}
remove-issue-from-module
モジュールから課題を削除します。
パラメーター:
project_id:モジュールを含むプロジェクトの IDmodule_id:課題を削除するモジュールの IDissue_id:モジュールから削除する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"module_id": "01def456-7890-12gh-3456-789ijklmnopq",
"issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
サイクル管理ツール
list-cycles
ページネーションに対応し、プロジェクト内のすべてのサイクルを一覧表示します。
パラメーター:
project_id:サイクルを取得するプロジェクトの IDper_page(任意):1 ページあたりの項目数(デフォルト:100、最大:100)cursor(任意):形式が「value:offset:is_prev」のページネーションカーソル
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 50
}
ページネーションを使用した例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 25,
"cursor": "cycle_name:25:false"
}
get-cycle
特定のサイクルに関する詳細情報を取得します。
パラメーター:
project_id:サイクルを含むプロジェクトの IDcycle_id:取得するサイクルの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-cycle
プロジェクトに新しいサイクルを作成します。
パラメーター:
project_id:サイクルを作成するプロジェクトの IDname:サイクル名owned_by:このサイクルの所有者となるユーザーの IDdescription(任意):サイクルの説明start_date(任意):サイクルの開始日(YYYY-MM-DD 形式)end_date(任意):サイクルの終了日(YYYY-MM-DD 形式)
例:
{
"project_id": "12345678-1234-5678-9abc-123456789def",
"name": "Q1 2024 Development Cycle",
"owned_by": "87654321-4321-8765-cba9-987654321fed",
"description": "First quarter development cycle",
"start_date": "2024-01-01",
"end_date": "2024-03-31"
}
update-cycle
プロジェクト内の既存のサイクルを更新します。
パラメーター:
project_id:サイクルを含むプロジェクトの IDcycle_id:更新するサイクルの IDname(任意):更新後のサイクル名description(任意):更新後のサイクルの説明start_date(任意):更新後のサイクルの開始日(YYYY-MM-DD 形式)end_date(任意):更新後のサイクルの終了日(YYYY-MM-DD 形式)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "Q1 2024 Development Cycle - Updated",
"end_date": "2024-04-15"
}
delete-cycle
プロジェクトからサイクルを削除します。
パラメーター:
project_id:サイクルを含むプロジェクトの IDcycle_id:削除するサイクルの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
list-cycle-issues
特定のサイクル内のすべての課題を一覧表示します。
パラメーター:
project_id:サイクルを含むプロジェクトの IDcycle_id:課題を取得するサイクルの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
add-issues-to-cycle
サイクルに課題を追加します。
パラメーター:
project_id:サイクルを含むプロジェクトの IDcycle_id:課題を追加するサイクルの IDissues:サイクルに追加する課題 ID の配列
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
"issues": ["issue-id-1", "issue-id-2", "issue-id-3"]
}
remove-issue-from-cycle
サイクルから課題を削除します。
パラメーター:
project_id:サイクルを含むプロジェクトの IDcycle_id:課題を削除するサイクルの IDissue_id:サイクルから削除する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
"issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
ラベル管理ツール
list-labels
ページネーションに対応し、プロジェクト内のすべてのラベルを一覧表示します。
パラメーター:
project_id:ラベルを取得するプロジェクトの IDper_page(任意):1 ページあたりの項目数(デフォルト:100、最大:100)cursor(任意):'value:offset:is_prev'形式のページネーションカーソル
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 50
}
ページネーションを使用した例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"per_page": 25,
"cursor": "label_name:25:false"
}
get-label
特定のラベルの詳細情報を取得します。
パラメーター:
project_id:ラベルを含むプロジェクトの IDlabel_id:取得するラベルの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"label_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-label
プロジェクトに新しいラベルを作成します。
パラメーター:
project_id:ラベルを作成するプロジェクトの IDname:ラベルの名前description(任意):ラベルの説明color(任意):ラベルのカラーコード(例:「#ff0000」)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "Bug",
"description": "Issues related to bugs",
"color": "#ff0000"
}
update-label
プロジェクト内の既存のラベルを更新します。
パラメーター:
project_id:ラベルを含むプロジェクトの IDlabel_id:更新するラベルの IDname(任意):更新後のラベル名description(任意):更新後のラベルの説明color(任意):更新後のラベルのカラーコード(例:「#ff0000」)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"label_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "Critical Bug",
"color": "#ff0000",
"description": "Issues that require immediate attention"
}
delete-label
プロジェクトからラベルを削除します。
パラメーター:
project_id:ラベルを含むプロジェクトの IDlabel_id:削除するラベルの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"label_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
チームとワークスペースの管理ツール
list-workspace-members
ワークスペース内のすべてのメンバーを一覧表示します。
パラメーター:なし
例:
{}
list-project-members
特定のプロジェクトのすべてのメンバーを一覧表示します。
パラメーター:
project_id:メンバーを取得するプロジェクトの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
課題コメントツール
list-issue-comments
特定の課題に投稿されたすべてのコメントを一覧表示します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:コメントを取得する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
get-issue-comment
特定のコメントの詳細情報を取得します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:コメントを含む課題の IDcomment_id:取得するコメントの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"comment_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
create-issue-comment
課題に新しいコメントを作成します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:コメントを投稿する課題の IDcomment:コメントの本文
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"comment": "This looks good, but we need to add unit tests before merging."
}
update-issue-comment
課題の既存のコメントを更新します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:コメントを含む課題の IDcomment_id:更新するコメントの IDcomment:更新後のコメントの本文
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"comment_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"comment": "Updated: This looks good after the latest changes, ready to merge."
}
delete-issue-comment
課題からコメントを削除します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:コメントを含む課題の IDcomment_id:削除するコメントの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"comment_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
課題リンクツール
list-issue-links
課題に添付されたすべての外部リンクを一覧表示します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:リンクを取得する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
get-issue-link
特定の課題リンクの詳細情報を取得します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:リンクを含む課題の IDlink_id:取得するリンクの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"link_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
create-issue-link
課題の新しい外部リンクを作成します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:リンクを追加する課題の IDtitle:リンクのタイトル/名前url:リンク先の URL
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"title": "Related Pull Request",
"url": "https://github.com/company/repo/pull/123"
}
update-issue-link
既存の課題リンクを更新します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:リンクを含む課題の IDlink_id:更新するリンクの IDtitle(任意):更新後のリンクのタイトル/名前url(任意):更新後の URL
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"link_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"title": "Updated Documentation Link",
"url": "https://docs.example.com/updated-section"
}
delete-issue-link
課題から外部リンクを削除します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:リンクを含む課題の IDlink_id:削除するリンクの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"link_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
課題の添付ファイルツール
list-issue-attachments
課題のすべての添付ファイルを一覧表示します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:添付ファイルを取得する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
get-issue-attachment-upload-url
課題にファイルを添付するための、署名済みアップロード URL を取得します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:ファイルを添付する課題の IDfile_name:アップロードするファイルの名前file_size:ファイルサイズ(バイト単位)content_type:ファイルの MIME タイプ(例:'image/png'、'application/pdf')
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"file_name": "screenshot.png",
"file_size": 1024000,
"content_type": "image/png"
}
課題のアクティビティツール
list-issue-activities
課題のすべてのアクティビティ/履歴を一覧表示します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:アクティビティを取得する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
get-issue-activity
特定の課題アクティビティの詳細情報を取得します。
パラメーター:
project_id:アクティビティを含む課題のプロジェクト IDissue_id:アクティビティを含む課題の IDactivity_id:取得するアクティビティの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"activity_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
作業ログ(時間追跡)ツール
list-issue-worklogs
特定の課題のすべての作業時間ログを一覧表示します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:作業ログを取得する課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
get-project-total-worklogs
プロジェクト内のすべての課題に記録された合計時間を取得します。
パラメーター:
project_id:合計作業ログを取得するプロジェクトの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
create-issue-worklog
課題に新しい作業時間ログを作成します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:時間を記録する課題の IDduration:記録する時間(時間単位。例:2 時間 30 分の場合は 2.5)description(任意):作業内容の説明
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"duration": 3.5,
"description": "Fixed the authentication bug and added unit tests"
}
update-issue-worklog
既存の作業ログを更新します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:作業ログを含む課題の IDworklog_id:更新する作業ログの IDduration(任意):更新後の記録時間(時間単位)description(任意):更新後の作業内容の説明
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"worklog_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"duration": 4.0,
"description": "Fixed critical bug and updated documentation"
}
delete-issue-worklog
課題から作業ログを削除します。
パラメーター:
project_id:課題を含むプロジェクトの IDissue_id:作業ログを含む課題の IDworklog_id:削除する作業ログの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"worklog_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
課題タイプツール
list-issue-types
プロジェクト内のすべてのカスタム課題タイプを一覧表示します。
パラメーター:
project_id:課題タイプを取得するプロジェクトの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
get-issue-type
特定の課題タイプの詳細情報を取得します。
パラメーター:
project_id:課題タイプを含むプロジェクトの IDtype_id:取得する課題タイプの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-issue-type
プロジェクトに新しいカスタム課題タイプを作成します。
Parameters:
project_id: 課題タイプを作成するプロジェクトの IDname: 課題タイプの名前description(optional): 課題タイプの説明
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "Epic",
"description": "Large feature that spans multiple sprints"
}
update-issue-type
既存の課題タイプを更新します。
Parameters:
project_id: 課題タイプを含むプロジェクトの IDtype_id: 更新する課題タイプの IDname(optional): 更新後の名前description(optional): 更新後の説明
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "Major Epic",
"description": "Large feature spanning multiple quarters"
}
delete-issue-type
プロジェクトから課題タイプを削除します。
Parameters:
project_id: 課題タイプを含むプロジェクトの IDtype_id: 削除する課題タイプの ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
Intake Issues Tools
list-intake-issues
プロジェクト内のすべての受付/受信トレイ課題を一覧表示します。
Parameters:
project_id: 受付課題を取得するプロジェクトの ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef"
}
get-intake-issue
特定の受付課題に関する詳細情報を取得します。
Parameters:
project_id: 受付課題を含むプロジェクトの IDissue_id: 取得する受付課題の ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-intake-issue
新しい受付/受信トレイ課題を作成します。
Parameters:
project_id: 受付課題を作成するプロジェクトの IDname: 受付課題のタイトルdescription_html(optional): 課題の HTML 説明priority(optional): 課題の優先度("urgent"、"high"、"medium"、"low"、"none")
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"name": "User reports login issues on mobile app",
"description_html": "<p>Multiple users experiencing login failures on iOS app version 2.1.3</p>",
"priority": "high"
}
update-intake-issue
既存の受付課題を更新します。
Parameters:
project_id: 受付課題を含むプロジェクトの IDissue_id: 更新する受付課題の IDname(optional): 更新後のタイトルdescription_html(optional): 更新後の HTML 説明priority(optional): 更新後の優先度
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "Updated: Multiple users experiencing login issues on mobile app",
"priority": "urgent",
"description_html": "<p>Updated: Now affecting Android users as well as iOS. Version 2.1.3 and 2.1.4</p>"
}
delete-intake-issue
受付課題を削除します。
Parameters:
project_id: 受付課題を含むプロジェクトの IDissue_id: 削除する受付課題の ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
list-issue-properties
特定の課題タイプのすべてのカスタムプロパティを一覧表示します。
Parameters:
project_id: プロジェクトの IDtype_id: プロパティを取得する課題タイプの ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
get-issue-property
特定の課題プロパティの詳細を取得します。
Parameters:
project_id: プロジェクトの IDtype_id: 課題タイプの IDproperty_id: 取得するプロパティの ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq",
"property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
create-issue-property
課題タイプに新しいカスタムプロパティを作成します。
Parameters:
project_id: プロジェクトの IDtype_id: 課題タイプの IDname: プロパティの内部名display_name: プロパティの表示名property_type: プロパティの種類(TEXT、NUMBER、DATE、OPTION、MULTI_OPTION、BOOLEAN)description: プロパティの説明(optional)is_required: このプロパティが必須かどうか(optional)is_multi: 複数の値が許可されるかどうか(optional)
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "severity",
"display_name": "Bug Severity",
"property_type": "OPTION",
"description": "Severity level of the bug",
"is_required": true,
"is_multi": false
}
update-issue-property
既存の課題プロパティを更新します。
Parameters:
project_id: プロジェクトの IDtype_id: 課題タイプの IDproperty_id: 更新するプロパティの IDname: プロパティの内部名(optional)display_name: プロパティの表示名(optional)description: プロパティの説明(optional)is_required: このプロパティが必須かどうか(optional)is_multi: 複数の値が許可されるかどうか(optional)
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq",
"property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"display_name": "Bug Severity Level",
"description": "Updated severity level description"
}
delete-issue-property
課題プロパティを削除します。
Parameters:
project_id: プロジェクトの IDtype_id: 課題タイプの IDproperty_id: 削除するプロパティの ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"type_id": "01def456-7890-12gh-3456-789ijklmnopq",
"property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
list-issue-property-options
ドロップダウン/選択式課題プロパティのすべての選択肢を一覧表示します。
Parameters:
project_id: プロジェクトの IDproperty_id: 選択肢を取得するプロパティの ID
Example:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
create-issue-property-option
ドロップダウン/選択式の課題プロパティに新しいオプションを作成します。
パラメーター:
project_id:プロジェクトの IDproperty_id:オプションを追加するプロパティの IDname:オプションの名前description:オプションの説明(任意)sort_order:オプションの並び順(任意)is_default:このオプションをデフォルトにするかどうか(任意)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"name": "Critical",
"description": "Critical severity level",
"sort_order": 1,
"is_default": false
}
update-issue-property-option
ドロップダウン/選択式の課題プロパティのオプションを更新します。
パラメーター:
project_id:プロジェクトの IDproperty_id:プロパティの IDoption_id:更新するオプションの IDname:オプションの名前(任意)description:オプションの説明(任意)sort_order:オプションの並び順(任意)is_default:このオプションをデフォルトにするかどうか(任意)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"option_id": "01jkl012-3456-78mn-9012-opqrstuvwxyz",
"name": "High Priority",
"description": "High priority severity level"
}
list-sub-issues
親課題のすべてのサブ課題を一覧表示します。
パラメーター:
project_id:プロジェクトの IDparent_issue_id:サブ課題を取得する親課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"parent_issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
create-sub-issue
親課題の下に新しいサブ課題を作成します。
パラメーター:
project_id:プロジェクトの IDparent_issue_id:親課題の IDname:サブ課題のタイトルdescription_html:サブ課題の HTML 形式の説明(任意)priority:サブ課題の優先度(urgent、high、medium、low、none)(任意)state_id:このサブ課題のステータスの ID(任意)assignees:このサブ課題を割り当てるユーザー ID の配列(任意)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"parent_issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
"name": "Fix validation bug",
"description_html": "<p>Fix the email validation issue in the login form</p>",
"priority": "high"
}
convert-to-sub-issue
既存の課題を別の課題のサブ課題に変換します。
パラメーター:
project_id:プロジェクトの IDissue_id:サブ課題に変換する課題の IDparent_issue_id:親課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
"parent_issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}
convert-to-issue
サブ課題を通常の課題に戻します(親課題との関係を解除します)。
パラメーター:
project_id:プロジェクトの IDissue_id:通常の課題に変換するサブ課題の ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
transfer-issues
課題をあるサイクルから別のサイクルに移動します。
パラメーター:
project_id:プロジェクトの IDcycle_id:課題の移動元となるサイクルの IDnew_cycle_id:課題の移動先となるサイクルの ID
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
"new_cycle_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}
開発
- 開発用の依存関係をインストールします:
npm install --save-dev typescript @types/node
- 開発モードでサーバーを起動します:
npm run dev
テスト
MCP Inspector を使用してサーバーをテストできます:
npx @modelcontextprotocol/inspector node dist/index.js
使用例
Plane MCP サーバーの設定後、Claude で試せるやり取りの例を紹介します:
基本的なプロジェクトと課題の管理
- 「Plane ワークスペース内のプロジェクトをすべて一覧表示できますか?」
- 「Marketing プロジェクトに『ソーシャルメディア戦略の更新』というタイトルの、優先度が高い新しい課題を作成してください」
- 「Development プロジェクトにある、優先度が高い課題をすべて教えてください」
- 「QA プロジェクトの課題 #123 の優先度を urgent に変更してください」
スプリント/モジュールの管理
- 「Development プロジェクトに、期間が 2 週間の『Q1 2024 Features』という新しいスプリントを作成してください」
- 「Backend プロジェクトの現在のスプリントにある課題をすべて表示してください」
- 「課題 #456 と #789 を『API Development』モジュールに追加してください」
- 「現在アクティブなスプリントを教えてください」
ワークフローとステータスの管理
- 「Frontend プロジェクトで利用できるワークフローのステータスをすべて一覧表示してください」
- 「Backend プロジェクトに『Code Review』という新しいステータスを作成してください」
- 「課題 #123 を『In Progress』ステータスに移動してください」
サイクルと計画の管理
- 「2024 年 1 月 1 日から 3 月 31 日までの開発サイクルを作成してください」
- 「現在の開発サイクルに割り当てられている課題をすべて表示してください」
- 「優先度の高い課題を『Release Preparation』サイクルに追加してください」
ラベルと整理
- 「プロジェクトで利用できるラベルをすべて一覧表示し、『Security』という新しいラベルを作成してください」
- 「課題 #789 に『Bug』と『High Priority』のラベルを適用してください」
チームとメンバーの管理
- 「このワークスペースのメンバー全員を教えてください」
- 「Backend プロジェクトに割り当てられているチームメンバーを表示してください」
- 「現在のスプリントで John に割り当てられているすべての課題を一覧表示してください」
高度なワークフロー
- 「新しいスプリントを作成し、指定した5件の課題を追加して、開始日を来週の月曜日に設定してください」
- 「すべてのプロジェクトで期限を過ぎている課題と、それぞれの現在の状態を表示してください」
- 「課題、スプリント、チームの担当割り当てを含む、包括的なプロジェクト状況レポートを作成してください」
Claude は Plane と連携するために適切なツールを使用し、データを作成または変更する前に承認を求めます。
セキュリティに関する考慮事項
- API キーが機能するには、Plane の適切な権限が必要です
- データを変更するすべての操作には、ユーザーによる明示的な承認が必要です
- 環境変数は適切に保護する必要があります
- API キーをバージョン管理にコミットしないでください
貢献
- disrex-group/plane-mcp-server からリポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
バッジ
このプロジェクトでは、ステータス、品質、互換性に関する情報をすばやく確認できるよう、複数のバッジを使用しています。
利用可能なバッジ
-
NPM Version:npm で公開されている最新バージョンを表示します
[](https://badge.fury.io/js/@disrex%2Fplane-mcp-server) -
MCP Catalog Quality:Archestra.ai MCP カタログの品質スコア
[](https://www.archestra.ai/mcp-catalog/server/plane-mcp-server) -
License:MIT License バッジ
[](https://opensource.org/licenses/MIT) -
CI Status:GitHub Actions ワークフローのステータス
[](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml) -
TypeScript:テクノロジーバッジ
[](https://www.typescriptlang.org/) -
Plane.so Compatibility:カスタム互換性バッジ
[](https://plane.so) -
MCP Protocol:Model Context Protocol バッジ
[](https://modelcontextprotocol.io)
カスタムバッジの作成
Shields.io を使用してカスタムバッジを作成できます。
- 基本形式:
https://img.shields.io/badge/{label}-{message}-{color} - 動的バッジ:エンドポイントを使用してリアルタイムデータ(npm のダウンロード数、GitHub のスター数など)を表示します
- スタイルのオプション:
?style=flat-square、?style=for-the-badgeなどを追加します
カスタムバッジの例:
[](https://your-link.com)
バッジサービス
- Shields.io:最も包括的なバッジサービス
- Badge Fury:パッケージマネージャー向けのサービス
- Archestra.ai MCP Catalog:MCP サーバー向けの品質バッジ
- GitHub Actions:CI/CD ステータスバッジを自動生成します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
サポート
問題が発生した場合や質問がある場合は、以下をご確認ください。
- GitHub Issues セクションを確認します
- modelcontextprotocol.io の MCP ドキュメントを参照します
- 再現手順を詳しく記載して、新しい issue を作成します
リポジトリの履歴
この機能を強化したフォークは、元の kelvin6365/plane-mcp-server の優れた基盤を引き継ぎ、包括的なプロジェクト管理機能を追加しています。
スター履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。