Plane MCP Server について
Plane MCP Server は、Plane.so の API を通じて LLM がプロジェクトや課題を管理できるようにする MCP サーバーです。チャットから Plane のプロジェクト管理を行いたい利用者向けで、変更操作にはユーザーの承認が求められます。
主な機能
- 01ワークスペース内の全プロジェクトの一覧表示
- 02プロジェクトと課題の詳細取得
- 03課題の作成と更新
- 04ステータス・優先度・担当者による課題の絞り込み
活用シーン
- 01会話から Plane の課題を作成・更新
- 02プロジェクト内の高優先度課題を絞り込んで確認
MCP 対応
MCP サーバーとして、list-projects、create-issue、update-issue などのツールを MCP クライアントに公開し、Plane のプロジェクトと課題データへのアクセスを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Plane MCP サーバー
LLM が Plane.so と連携し、Plane の API を通じてプロジェクトや課題を管理できるようにする Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、Claude などの LLM がユーザーの管理とセキュリティを維持しながら、プロジェクト管理のワークフローと直接やり取りできます。
機能
- Plane ワークスペース内のすべてのプロジェクトを一覧表示します
- 特定のプロジェクトの詳細情報を取得します
- カスタマイズ可能なプロパティを指定して新しい課題を作成します
- プロジェクトの課題を一覧表示し、絞り込みます
- 特定の課題の詳細情報を取得します
- 既存の課題を新しい情報で更新します
前提条件
- Node.js 22.x 以降
- Plane.so API キー
- Plane.so ワークスペース
インストール
オプション 1:Smithery を使用する
最も手早く使い始めるには、Smithery を使用してサーバーを直接インストールします。
# Install to Claude for Desktop
npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client claude
このコマンドにより、Claude で使用する Plane MCP Server が自動的にセットアップされます。インストール後、Claude の設定で Plane API キーとワークスペースのスラッグを指定して、サーバーを設定する必要があります。
有効なクライアントの選択肢:claude、cline、windsurf、roo-cline、witsy、enconvo、cursor
Cursor を使用してインストールする例:
npx -y @smithery/cli install @kelvin6365/plane-mcp-server --client cursor
オプション 2:手動セットアップ
サーバーを手動でセットアップする場合は、次の手順に従ってください。
- このリポジトリをクローンします。
git clone https://github.com/kelvin6365/plane-mcp-server.git
cd plane-mcp-server
- 依存関係をインストールします。
npm install
- サーバーをビルドします。
npm run build
Claude for Desktop での使用方法
注: 上記のオプション 1(Smithery)を使用した場合、このセクションはスキップできます。Smithery が MCP サーバーを自動的に設定します。
-
Claude for Desktop の設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Plane MCP サーバーの設定を追加します。
{
"mcpServers": {
"plane": {
"command": "node",
"args": ["path/to/plane-mcp-server/build/index.js"],
"env": {
"PLANE_API_KEY": "your_plane_api_key_here",
"PLANE_WORKSPACE_SLUG": "your_workspace_slug_here",
"PLANE_HOST": "optional"
}
}
}
}
- Claude for Desktop を再起動します
利用可能なツール
注: ツール名にはアンダースコアではなくハイフン(例:
list-projects)を使用します。互換性を保つため、サーバーがアンダースコアをハイフンに自動変換します。
list-projects
Plane ワークスペース内のすべてのプロジェクトを一覧表示します。
パラメーター:なし
例:
{}
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 の配列
注:
assigneesパラメーターには、ユーザー ID 文字列の配列を指定する必要があります。よくあるエラーには、配列ではなくディクショナリ/オブジェクトを指定することや、課題データ全体を誤って assignees フィールド内にネストすることなどがあります。サーバーはこれらのケースに対応しようとしますが、正しい形式を使用することをおすすめします。
例:
{
"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"]
}
list-issues
指定したプロジェクトの課題を、任意の条件で絞り込んで一覧表示します。
パラメーター:
project_id:課題を取得するプロジェクトの IDstate_id(任意):ステータス ID で絞り込みますpriority(任意):優先度で絞り込みますassignee_id(任意):担当者 ID で絞り込みますlimit(任意):返す課題の最大数(デフォルト:50)
例:
{
"project_id": "01abc123-4567-89de-0123-456789abcdef",
"priority": "high",
"limit": 10
}
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 の配列
注:
assigneesパラメーターには、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>"
}
開発
- 開発用の依存関係をインストールします:
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 に変更してください」
Claude は適切なツールを使って Plane とやり取りし、課題を作成または変更する前に承認を求めます。
セキュリティに関する考慮事項
- API キーが機能するには、Plane の適切な権限が必要です
- データを変更するすべての操作では、ユーザーによる明示的な承認が必要です
- 環境変数は適切に保護してください
- API キーをバージョン管理にコミットしないでください
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
サポート
問題が発生した場合や質問がある場合は、次の手順をお試しください:
- GitHub の Issues セクションを確認します
- modelcontextprotocol.io の MCP ドキュメントを参照します
- 再現手順を詳しく記載して、新しい issue を作成します
Star History
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
