Kanboard Mcp Server について
Kanboard MCP Server は Go で実装された MCP サーバーで、Kanboard プロジェクト管理システムを Claude Desktop や Cursor などの AI アシスタントに接続します。プロジェクト、タスク、ユーザー、コメント、ファイルを自然言語で管理できます。Kanboard のボードでタスクを管理するチームを対象とし、README では問題回避のため mcpproxy の併用を推奨しています。
主な機能
- 01プロジェクト、列、スイムレーンの管理
- 02タスクの作成・更新・移動・クローズ
- 03コメント、カテゴリ、期限の管理
- 04API キーとユーザー名・パスワードによる認証
- 05RBAC による権限管理
活用シーン
- 01チャットでタスクを作成してメンバーに割り当て
- 02期限切れタスクとボードの状況を照会
- 03Cursor から Kanboard のコンテンツを管理
MCP 対応
プロジェクト、タスク、コメント、列、スイムレーン、ボードに関するツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🚀 Kanboard MCP サーバー
Kanboard 統合のための Model Context Protocol (MCP) サーバー
AI アシスタント(Claude Desktop、Cursor など)と Kanboard プロジェクト管理システムをシームレスに統合する、Go ベースの強力な MCP サーバーです。自然言語コマンドを通じて、Kanboard のプロジェクト、タスク、ユーザー、ワークフローを直接管理できます。

⚠️ 警告: 次のような問題を避けるため:
プロキシソリューションとして mcpproxy の使用を推奨します。
📋 目次
✨ 機能
- 🔗 シームレスな Kanboard 統合 - Kanboard との直接的な API 通信
- 🤖 自然言語処理 - 平易な英語でプロジェクトを管理
- 📊 完全なプロジェクト管理 - プロジェクト、タスク、ユーザー、カラムなどを処理
- 🔐 安全な認証 - API キーとユーザー名/パスワードの両方の認証をサポート
- ⚡ 高いパフォーマンス - 最適なパフォーマンスを実現するために Go で構築
- 🎯 MCP 標準 - すべての MCP クライアントと互換性あり
🚀 クイックスタート
前提条件
- Go 1.21 以上
- API アクセスが有効な Kanboard インスタンス
- MCP 互換クライアント(Cursor、Claude Desktop など)
インストール
-
リポジトリをクローンします:
git clone https://github.com/bivex/kanboard-mcp.git cd kanboard-mcp -
実行ファイルをビルドします:
Windows の場合:
build-release.batLinux/macOS の場合:
./build-release.sh手動ビルド:
go build -ldflags="-s -w" -o kanboard-mcp .
⚙️ 設定
1. 環境変数
環境変数を使用して、Kanboard の認証情報と RBAC 権限を設定します:
必須の認証情報:
export KANBOARD_API_ENDPOINT="https://your-kanboard-url/jsonrpc.php"
export KANBOARD_API_KEY="your-kanboard-api-key"
export KANBOARD_USERNAME="your-kanboard-username"
export KANBOARD_PASSWORD="your-kanboard-password"
RBAC 設定(任意):
適切なアクセス制御のためにユーザーロールを設定します。設定されていない場合、システムは Kanboard API からロールを取得しようとし、取得できない場合は app-user ロールにフォールバックします。
# Application-level roles (comma-separated)
# If not set, roles are automatically retrieved from Kanboard API
export KANBOARD_USER_APP_ROLES="app-manager"
# Project-specific roles (format: "project_id:role,project_id:role")
# If not set, project roles are automatically retrieved from Kanboard API
export KANBOARD_USER_PROJECT_ROLES="1:project-manager,2:project-member"
# Debug mode - shows detailed permission checking logs
export KANBOARD_DEBUG="true"
# Skip RBAC checks for debugging (use with caution!)
export KANBOARD_SKIP_RBAC="false"
利用可能なアプリケーションロール:
app-admin- システム管理者の完全なアクセス権app-manager- プロジェクトの作成とユーザー管理が可能app-user- 基本的なユーザーアクセス(デフォルト)
利用可能なプロジェクトロール:
project-manager- プロジェクト管理の完全なアクセス権project-member- タスクとコメントの作成/変更が可能project-viewer- プロジェクトへの読み取り専用アクセス
🔐 認証方法:
Kanboard は KANBOARD_AUTH_METHOD を介してさまざまな認証方法をサポートしています:
-
global_token(デフォルト):jsonrpc:<token>形式のグローバル API トークンを使用しますexport KANBOARD_API_KEY="5348e6b4846fe09fd1670e922bc13e086f0827d7a66e45815cd7c3a7f67b" export KANBOARD_AUTH_METHOD="global_token" # or omit (default) -
user_token:<username>:<token>形式のユーザー固有の API トークンを使用しますexport KANBOARD_USERNAME="admin" export KANBOARD_API_KEY="81820aeb3454985b0ac12166225f1f072f523175a752541c8670cf44a032d" export KANBOARD_AUTH_METHOD="user_token" -
bearer: Bearer トークン認証を使用しますexport KANBOARD_API_KEY="your-token-here" export KANBOARD_AUTH_METHOD="bearer"
🔧 RBAC の問題のトラブルシューティング:
「access denied」エラーが発生する場合:
-
Kanboard でのユーザーロールを確認します:
- Kanboard の Web インターフェースにアクセスします
- ユーザープロフィール/ロール設定を確認します
- 適切な権限があることを確認します
-
デバッグログを有効にします:
export KANBOARD_DEBUG="true"これにより、現在のロールと権限チェックがコンソールに表示されます。
-
テストのために一時的に RBAC をスキップします:
export KANBOARD_SKIP_RBAC="true"⚠️ 警告: デバッグのみに使用してください!すべての権限チェックが無効になります。
-
環境変数で手動でロールを設定します:
export KANBOARD_USER_APP_ROLES="app-admin" export KANBOARD_USER_PROJECT_ROLES="27:project-manager"
2. MCP クライアントの設定
使用するクライアント用の MCP 設定ファイルを作成します:
場所:
- Windows:
C:\Users\YOUR_USERNAME\AppData\Roaming\Cursor\.cursor\mcp_config.json - Linux/macOS:
~/.cursor/mcp_config.json
設定:
{
"mcpServers": {
"kanboard-mcp-server": {
"command": "/path/to/your/kanboard-mcp",
"args": [],
"env": {
"KANBOARD_API_ENDPOINT": "https://your-kanboard-url/jsonrpc.php",
"KANBOARD_API_KEY": "your-kanboard-api-key",
"KANBOARD_USERNAME": "your-kanboard-username",
"KANBOARD_PASSWORD": "your-kanboard-password",
"KANBOARD_USER_APP_ROLES": "app-manager",
"KANBOARD_USER_PROJECT_ROLES": "1:project-manager"
}
}
}
}
3. クライアントを再起動する
設定を保存した後、変更を反映するために MCP クライアント(Cursor、Claude Desktop など)を再起動してください。
🛠️ 利用可能なツール
📁 プロジェクト管理
| ツール | 説明 | 例 |
|---|---|---|
get_projects | 📋 すべてのプロジェクトを一覧表示する | 「すべての Kanboard プロジェクトを表示して」 |
create_project | ➕ 新しいプロジェクトを作成する | 「説明『Redesign the company website』、オーナー 1 で『Website Redesign』というプロジェクトを作成して」 |
get_project_by_id | 🔍 ID でプロジェクト情報を取得する | 「ID 123 のプロジェクト詳細を取得して」 |
get_project_by_name | 🔍 名前でプロジェクト情報を取得する | 「名前『My Project』のプロジェクト詳細を取得して」 |
get_project_by_identifier | 🔍 識別子でプロジェクト情報を取得する | 「識別子『WEB-APP』のプロジェクト詳細を取得して」 |
get_project_by_email | 🔍 メールでプロジェクト情報を取得する | 「メール『[email protected]』のプロジェクト詳細を取得して」 |
get_all_projects | 📋 利用可能なすべてのプロジェクトを取得する | 「利用可能なすべてのプロジェクトを表示して」 |
update_project | ✏️ プロジェクトを更新する | 「プロジェクト 1 を新しい名前『New Website』、説明『Updated description』で更新して」 |
remove_project | 🗑️ プロジェクトを削除する | 「ID 456 のプロジェクトを削除して」 |
enable_project | ✅ プロジェクトを有効化する | 「プロジェクト 123 を有効化して」 |
disable_project | 🚫 プロジェクトを無効化する | 「プロジェクト 123 を無効化して」 |
enable_project_public_access | 🌐 指定したプロジェクトのパブリックアクセスを有効化する | 「プロジェクト 123 のパブリックアクセスを有効化して」 |
disable_project_public_access | 🔒 指定したプロジェクトのパブリックアクセスを無効化する | 「プロジェクト 123 のパブリックアクセスを無効化して」 |
get_project_activity | 📢 プロジェクトのアクティビティストリームを取得する | 「プロジェクト 123 のアクティビティを表示して」 |
get_project_activities | 📊 プロジェクトのアクティビティフィードを取得する | 「プロジェクト 1、2、3 のアクティビティを取得して」 |
📝 タスク管理
| ツール | 説明 | 例 |
|---|---|---|
get_tasks | 📋 プロジェクトのタスクを取得する | 「『Website Redesign』プロジェクトのタスクを取得して」 |
create_task | ➕ 新しいタスクを作成する | 「『Website Redesign』にタスク『Design homepage』を作成して」 |
update_task | ✏️ 既存のタスクを変更する | 「タスク 123 を説明『New requirements』で更新して」 |
delete_task | 🗑️ タスクを削除する | 「ID 456 のタスクを削除して」 |
get_task | 🔍 一意の ID でタスクを取得する | 「タスク 789 の詳細を取得して」 |
get_task_by_reference | 🔍 外部参照でタスクを取得する | 「参照『TICKET-1234』のプロジェクト 1 のタスクを取得して」 |
get_all_tasks | 📋 利用可能なすべてのタスクを取得する | 「プロジェクト 1 のすべてのアクティブなタスクを取得して」 |
get_overdue_tasks | ⏰ すべての期限超過タスクを取得する | 「すべての期限超過タスクを表示して」 |
get_overdue_tasks_by_project | ⏰ 特定のプロジェクトのすべての期限超過タスクを取得する | 「プロジェクト 1 の期限超過タスクを表示して」 |
open_task | ✅ タスクのステータスをオープンに設定する | 「タスク 123 をオープンして」 |
close_task | ❌ タスクのステータスをクローズに設定する | 「タスク 123 をクローズして」 |
move_task_position | ➡️ 同じボード内の別のカラム、位置、スイムレーンにタスクを移動する | 「プロジェクト 1 のタスク 123 をカラム 2、位置 1、スイムレーン 1 に移動して」 |
move_task_to_project | ➡️ タスクを別のプロジェクトに移動する | 「タスク 123 をプロジェクト 456 に移動して」 |
duplicate_task_to_project | 📋 タスクを別のプロジェクトに複製する | 「タスク 123 をプロジェクト 456 に複製して」 |
search_tasks | 🔍 検索エンジンを使用してタスクを検索する | 「プロジェクト 2 のタスクをクエリ『assignee:nobody』で検索して」 |
assign_task | 👤 タスクをユーザーに割り当てる | 「API タスクを John に割り当てて」 |
set_task_due_date | 📅 タスクの期限を設定する | 「ログインタスクの期限を 2024-01-15 に設定して」 |
💬 コメント管理
| ツール | 説明 | 例 |
|---|---|---|
create_comment | ➕ 新しいコメントを作成します | 「ユーザー 1 がタスク 123 にコメント『Meeting notes』を作成し、app-managers に公開する」 |
get_task_comments | 📋 タスクのコメントを取得します | 「タスク 123 のすべてのコメントを表示する」 |
get_comment | 🔍 コメント情報を取得します | 「コメント 789 の詳細を取得する」 |
update_comment | ✏️ コメントを更新します | 「コメント 456 の内容を『Revised notes』に更新する」 |
remove_comment | 🗑️ コメントを削除します | 「ID 101 のコメントを削除する」 |
🏗️ カラム管理
| ツール | 説明 | 例 |
|---|---|---|
get_columns | 📋 プロジェクトのカラムを一覧表示します | 「プロジェクト 123 のすべてのカラムを表示して」 |
get_column | 🔍 単一のカラムを取得します | 「カラム 456 の詳細を取得する」 |
create_column | ➕ 新しいカラムを追加します | 「プロジェクト 123 にタスク上限 5 件、説明『For UAT testing』の『Testing』カラムを作成する」 |
update_column | ✏️ カラム設定を変更します | 「カラム 123 のタイトルを『Review』に、上限を 3 タスクに変更し、説明を『Needs final review』にする」 |
change_column_position | 🔄 カラムの位置を変更します | 「カラム 123 をプロジェクト 456 の位置 3 に移動する」 |
delete_column | 🗑️ カラムを削除します | 「未使用の『Draft』カラムを削除する」 |
🏷️ カテゴリ管理
| ツール | 説明 | 例 |
|---|---|---|
get_categories | 📋 プロジェクトのカテゴリを一覧表示します | 「プロジェクト 123 のすべてのタスクカテゴリを表示して」 |
get_category | 🔍 カテゴリ情報を取得します | 「カテゴリ 456 の詳細を取得する」 |
create_category | ➕ タスクカテゴリを追加します | 「プロジェクト 123 に色『red』の『Bug Fixes』カテゴリを作成する」 |
update_category | ✏️ カテゴリを変更します | 「カテゴリ 123 の名前を『Critical Issues』に変更し、色を『blue』に設定する」 |
delete_category | 🗑️ カテゴリを削除します | 「未使用の『Archive』カテゴリを削除する」 |
🏊 スイムレーン管理
| ツール | 説明 | 例 |
|---|---|---|
get_swimlanes | 📋 プロジェクトのすべてのスイムレーン(有効または無効)を位置順に一覧表示します | 「プロジェクト 1 のすべてのスイムレーンを表示して」 |
get_active_swimlanes | 📋 プロジェクトの有効なスイムレーンの一覧を取得します(有効な場合はデフォルトスイムレーンを含む) | 「プロジェクト 1 の有効なスイムレーンを取得する」 |
get_swimlane | 🔍 ID でスイムレーンを取得します | 「ID 1 のスイムレーンの詳細を取得する」 |
get_swimlane_by_id | 🔍 ID でスイムレーンを取得します | 「ID 1 のスイムレーンの詳細を取得する」 |
get_swimlane_by_name | 🔍 名前でスイムレーンを取得します | 「プロジェクト 1 の名前『Swimlane 1』のスイムレーンの詳細を取得する」 |
change_swimlane_position | 🔄 スイムレーンの位置を移動します(有効なスイムレーンのみ) | 「プロジェクト 1 でスイムレーン 2 の位置を 3 に変更する」 |
create_swimlane | ➕ 新しいスイムレーンを追加します | 「プロジェクト 1 にスイムレーン『Frontend Team』を作成する」 |
update_swimlane | ✏️ スイムレーンのプロパティを更新します | 「プロジェクト 1 のスイムレーン 1 を新しい名前『Cross-Platform Team』に更新する」 |
remove_swimlane | 🗑️ スイムレーンを削除します | 「プロジェクト 2 からスイムレーン 1 を削除する」 |
disable_swimlane | 🚫 スイムレーンを無効化します | 「プロジェクト 2 のスイムレーン 1 を無効化する」 |
enable_swimlane | ✅ スイムレーンを有効化します | 「プロジェクト 2 のスイムレーン 1 を有効化する」 |
📋 ボード管理
| ツール | 説明 | 例 |
|---|---|---|
get_board | 📋 ボードを表示するために必要なすべての情報を取得します | 「プロジェクト 123 のボードを表示して」 |
🧑💻 現在のユーザー管理
| ツール | 説明 | 例 |
|---|---|---|
get_me | 👤 ログイン中のユーザーセッションを取得します | 「自分のユーザーセッション情報を取得して」 |
get_my_dashboard | 📊 ログイン中のユーザーのダッシュボードを取得します | 「自分のダッシュボードを表示して」 |
get_my_activity_stream | 📢 ログイン中のユーザーの直近 100 件のイベントを取得します | 「自分の最近のアクティビティを表示して」 |
create_my_private_project | ➕ ログイン中のユーザーのプライベートプロジェクトを作成します | 「説明『個人タスク用』で『My Secret Project』という名前のプライベートプロジェクトを作成して」 |
get_my_projects_list | 📋 接続中のユーザーのプロジェクトを取得します | 「自分が関わっているすべてのプロジェクトを一覧表示して」 |
get_my_overdue_tasks | ⏰ 自分の期限切れタスクを取得します | 「期限切れの自分のタスクをすべて表示して」 |
get_my_projects | 📝 接続中のユーザーのプロジェクトを詳細情報付きで取得します | 「自分のすべてのプロジェクトの詳細情報を取得して」 |
🔗 外部タスクリンク管理
| ツール | 説明 | 例 |
|---|---|---|
get_external_task_link_types | 📋 登録済みの外部リンクプロバイダーをすべて取得します | 「すべての外部リンクタイプを表示して」 |
get_ext_link_provider_deps | ⛓️ 指定したプロバイダーで利用可能な依存関係を取得します | 「『weblink』プロバイダーの依存関係を取得して」 |
create_external_task_link | ➕ 新しい外部リンクを作成します | 「タスク 123 に対して、依存関係『related』、タイプ『attachment』で『http://example.com/doc.pdf』への外部リンクを作成して」 |
update_external_task_link | ✏️ 外部タスクリンクを更新します | 「タスク 789 の外部リンク 456 を、新しいタイトル『Updated Document』と URL『http://new.example.com/doc.pdf』で更新して」 |
get_external_task_link_by_id | 🔍 ID で外部タスクリンクを取得します | 「タスク 789 の外部リンク 456 を取得して」 |
get_all_external_task_links | 📋 タスクに添付されたすべての外部リンクを取得します | 「タスク 123 のすべての外部リンクを表示して」 |
remove_external_task_link | 🗑️ 外部リンクを削除します | 「タスク 789 から外部リンク 456 を削除して」 |
🔗 内部タスクリンク管理
| ツール | 説明 | 例 |
|---|---|---|
create_task_link | ➕ 2 つのタスク間のリンクを作成します | 「リンクタイプ 1 でタスク 123 とタスク 456 の間にリンクを作成して」 |
update_task_link | ✏️ タスクリンクを更新します | 「タスク 123 とタスク 456 の間のタスクリンク 789 を、新しいリンクタイプ 2 で更新して」 |
get_task_link_by_id | 🔍 ID でタスクリンクを取得します | 「タスクリンク 101 の詳細を取得して」 |
get_all_task_links | 📋 タスクに関連するすべてのリンクを取得します | 「タスク 123 のすべてのリンクを表示して」 |
remove_task_link | 🗑️ 2 つのタスク間のリンクを削除します | 「タスクリンク 101 を削除して」 |
🔗 リンク管理
| ツール | 説明 | 例 |
|---|---|---|
get_all_links | 📋 タスク間で可能な関係の一覧を取得します | 「可能なタスク関係をすべて表示して」 |
get_opposite_link_id | 🔍 タスクリンクの反対側のリンク ID を取得します | 「リンク 2 の反対側のリンク ID を取得して」 |
get_link_by_label | 🔍 ラベルでリンクを取得します | 「ラベル『blocks』のリンクの詳細を取得して」 |
get_link_by_id | 🔍 ID でリンクを取得します | 「ID 4 のリンクの詳細を取得して」 |
create_link | ➕ 新しいタスク関係を作成します | 「反対側のラベル『bar』を持つリンク『foo』を作成して」 |
update_link | ✏️ リンクを更新します | 「リンク 14 を、反対側のリンク 12 とラベル『boo』で更新して」 |
remove_link | 🗑️ リンクを削除します | 「ID 14 のリンクを削除して」 |
📂 プロジェクトファイル管理
| ツール | 説明 | 例 |
|---|---|---|
create_project_file | ➕ 新しいプロジェクト添付ファイルを作成してアップロードします | 「プロジェクト 1 に base64 コンテンツ 'Zm9vYmFy' でファイル 'My Document.pdf' を作成して」 |
get_all_project_files | 📋 プロジェクトに添付されたすべてのファイルを取得します | 「プロジェクト 123 のすべてのファイルを表示して」 |
get_project_file | 🔍 ファイル情報を取得します | 「プロジェクト 123 のファイル 456 の詳細を取得して」 |
download_project_file | 📥 プロジェクトファイルの内容をダウンロードします(base64 でエンコード) | 「プロジェクト 123 からファイル 456 をダウンロードして」 |
remove_project_file | 🗑️ プロジェクトに関連付けられたファイルを削除します | 「プロジェクト 123 からファイル 456 を削除して」 |
remove_all_project_files | 🗑️ プロジェクトに関連付けられたすべてのファイルを削除します | 「プロジェクト 123 からすべてのファイルを削除して」 |
📝 プロジェクトメタデータ管理
| ツール | 説明 | 例 |
|---|---|---|
get_project_metadata | 📋 プロジェクトのメタデータを取得します | 「プロジェクト 123 のすべてのメタデータを取得して」 |
get_project_metadata_by_name | 🔍 単一のメタデータ値を取得します | 「プロジェクト 123 のメタデータ 'my_key' を取得して」 |
save_project_metadata | 💾 メタデータを追加または更新します | 「プロジェクト 123 にメタデータ 'key1:value1, key2:value2' を保存して」 |
remove_project_metadata | 🗑️ プロジェクトのメタデータを削除します | 「プロジェクト 123 からメタデータ 'my_key' を削除して」 |
🔐 プロジェクト権限管理
| ツール | 説明 | 例 |
|---|---|---|
get_project_users | 📋 プロジェクトのすべてのメンバーを取得します | 「プロジェクト 123 のすべてのユーザーを表示して」 |
get_assignable_users | 👥 プロジェクトのタスクに割り当て可能なユーザーを取得します(閲覧者を除くすべてのメンバー) | 「プロジェクト 123 の割り当て可能なユーザーを取得して」 |
add_project_user | ➕ ユーザーにプロジェクトへのアクセス権を付与します | 「プロジェクト 123 にロール 'project-member' でユーザー 1 を追加して」 |
add_project_group | ➕ グループにプロジェクトへのアクセス権を付与します | 「プロジェクト 123 にロール 'project-viewer' でグループ 456 を追加して」 |
remove_project_user | 🗑️ ユーザーのプロジェクトへのアクセス権を取り消します | 「プロジェクト 123 からユーザー 1 を削除して」 |
remove_project_group | 🗑️ グループのプロジェクトへのアクセス権を取り消します | 「プロジェクト 123 からグループ 456 を削除して」 |
change_project_user_role | ✏️ プロジェクトにおけるユーザーのロールを変更します | 「プロジェクト 123 のユーザー 1 のロールを 'project-manager' に変更して」 |
change_project_group_role | ✏️ プロジェクトにおけるグループのロールを変更します | 「プロジェクト 123 のグループ 456 のロールを 'project-manager' に変更して」 |
get_project_user_role | 🔍 指定されたプロジェクトにおけるユーザーのロールを取得します | 「プロジェクト 123 のユーザー 1 のロールを取得して」 |
📝 サブタスク管理
| ツール | 説明 | 例 |
|---|---|---|
create_subtask | ➕ 新しいサブタスクを作成します | 「タスク 123 にユーザー 1 を割り当ててサブタスク 'Review designs' を作成して」 |
get_subtask | 🔍 サブタスク情報を取得します | 「サブタスク 456 の詳細を取得して」 |
get_all_subtasks | 📋 タスクで利用可能なすべてのサブタスクを取得します | 「タスク 123 のすべてのサブタスクを表示して」 |
update_subtask | ✏️ サブタスクを更新します | 「タスク 123 のサブタスク 456 をステータス 2(完了)に更新して」 |
remove_subtask | 🗑️ サブタスクを削除します | 「ID 456 のサブタスクを削除して」 |
⏰ サブタスクの時間管理
| ツール | 説明 | 例 |
|---|---|---|
has_subtask_timer | ⏱️ 指定されたサブタスクとユーザーに対してタイマーが開始されているかを確認します | 「ユーザー 4 によるサブタスク 123 のタイマーがアクティブか確認して」 |
set_subtask_start_time | ▶️ ユーザーのサブタスクタイマーを開始します | 「ユーザー 4 によるサブタスク 123 のタイマーを開始して」 |
set_subtask_end_time | ⏹️ ユーザーのサブタスクタイマーを停止します | 「ユーザー 4 によるサブタスク 123 のタイマーを停止して」 |
get_subtask_time_spent | 📊 ユーザーのサブタスクに費やされた時間を取得します | 「ユーザー 4 によるサブタスク 123 に費やされた時間を取得して」 |
🏷️ タグ管理
| ツール | 説明 | 例 |
|---|---|---|
get_all_tags | 📋 すべてのタグを取得します | 「利用可能なすべてのタグを表示して」 |
get_tags_by_project | 📋 指定したプロジェクトのすべてのタグを取得します | 「プロジェクト 123 のタグを表示して」 |
create_tag | ➕ 新しいタグを作成します | 「プロジェクト 123 に色 1 でタグ 'backend' を作成して」 |
update_tag | ✏️ タグの名前を変更します | 「タグ 456 を 'frontend' に名前変更し、色を 2 に設定して」 |
remove_tag | 🗑️ タグを削除します | 「ID 456 のタグを削除して」 |
set_task_tags | 🏷️ タスクのタグを割り当て/作成/更新します | 「プロジェクト 456 のタスク 123 にタグ 'urgent'、'bug' を設定して」 |
get_task_tags | 🔍 タスクに割り当てられたタグを取得します | 「タスク 123 に割り当てられたタグを取得して」 |
📂 タスクファイル管理
| ツール | 説明 | 例 |
|---|---|---|
create_task_file | ➕ 新しいタスク添付ファイルを作成してアップロードします | 「プロジェクト 1、タスク 2 に base64 コンテンツ 'Zm9vYmFy' でファイル 'meeting_notes.txt' を作成して」 |
get_all_task_files | 📋 タスクに添付されたすべてのファイルを取得します | 「タスク 123 のすべてのファイルを表示して」 |
get_task_file | 🔍 ファイル情報を取得します | 「ファイル 456 の詳細を取得して」 |
download_task_file | 📥 ファイルの内容をダウンロードします (base64 でエンコード) | 「ファイル 456 をダウンロードして」 |
remove_task_file | 🗑️ ファイルを削除します | 「ID 456 のファイルを削除して」 |
remove_all_task_files | 🗑️ タスクに関連付けられたすべてのファイルを削除します | 「タスク 123 からすべてのファイルを削除して」 |
📝 タスクメタデータ管理
| ツール | 説明 | 例 |
|---|---|---|
get_task_metadata | 📋 タスクの一意の ID でタスクに関連するすべてのメタデータを取得します | 「タスク 1 のすべてのメタデータを取得して」 |
get_task_metadata_by_name | 🔍 タスクの一意の ID とメタキー (名前) でタスクに関連するメタデータを取得します | 「タスク 1 のメタデータ 'metaKey1' を取得して」 |
save_task_metadata | 💾 タスクメタデータを保存/更新します | 「タスク 1 にメタデータ 'metaName:metaValue' を保存して」 |
remove_task_metadata | 🗑️ 名前でタスクメタデータを削除します | 「タスク 1 からメタデータ 'metaKey1' を削除して」 |
⚙️ アプリケーション管理
| ツール | 説明 | 例 |
|---|---|---|
get_version | 📋 アプリケーションのバージョンを取得します | 「Kanboard のバージョンは何ですか?」 |
get_timezone | 🌐 接続ユーザーのタイムゾーンを取得します | 「私の現在のタイムゾーンは何ですか?」 |
get_default_task_colors | 🌈 すべてのデフォルトのタスク色を取得します | 「すべてのデフォルトのタスク色を見せて」 |
get_default_task_color | 🎨 デフォルトのタスク色を取得します | 「デフォルトのタスク色は何ですか?」 |
get_color_list | 📋 タスク色のリストを取得します | 「利用可能なすべてのタスク色を一覧表示して」 |
get_application_roles | 👥 アプリケーションのロールを取得します | 「すべてのアプリケーションロールを一覧表示して」 |
get_project_roles | 👥 プロジェクトのロールを取得します | 「すべてのプロジェクトロールを一覧表示して」 |
🤖 自動アクション管理
| ツール | 説明 | 例 |
|---|---|---|
get_available_actions | 📋 利用可能な自動アクションのリストを取得します | 「利用可能な自動アクションを表示して」 |
get_available_action_events | 📋 アクションで利用可能なイベントのリストを取得します | 「利用可能なアクションイベントを表示して」 |
get_compatible_action_events | 🔍 アクションと互換性のあるイベントのリストを取得します | 「アクション 'TaskClose' と互換性のあるイベントを取得して」 |
get_actions | 📋 プロジェクトのアクションのリストを取得します | 「プロジェクト 123 のアクションを取得して」 |
create_action | ➕ アクションを作成します | 「プロジェクト 1 に、イベント 'task.move.column'、アクション '\Kanboard\Action\TaskClose'、パラメータ 'column_id:3' でアクションを作成して」 |
remove_action | 🗑️ アクションを削除します | 「ID 456 のアクションを削除して」 |
👥 グループ管理
| ツール | 説明 | 例 |
|---|---|---|
create_group | ➕ 新しいグループを作成します | 「外部 ID 'dev_001' で 'Development Team' という名前のグループを作成して」 |
update_group | ✏️ グループを更新します | 「グループ 123 の名前を 'QA Team' に変更し、外部 ID を 'qa_001' に変更して」 |
remove_group | 🗑️ グループを削除します | 「ID 456 のグループを削除して」 |
get_group | 🔍 1 つのグループを取得します | 「グループ 789 の詳細を取得して」 |
get_all_groups | 📋 すべてのグループを取得します | 「すべてのユーザーグループを表示して」 |
👥 グループメンバー管理
| ツール | 説明 | 例 |
|---|---|---|
get_member_groups | 📋 指定したユーザーのすべてのグループを取得します | 「ユーザー 1 のすべてのグループを表示して」 |
get_group_members | 👥 グループのすべてのメンバーを取得します | 「グループ 123 のすべてのメンバーを一覧表示して」 |
add_group_member | ➕ グループにユーザーを追加します | 「ユーザー 456 をグループ 789 に追加して」 |
remove_group_member | 🗑️ グループからユーザーを削除します | 「ユーザー 456 をグループ 789 から削除して」 |
is_group_member | ❓ ユーザーがグループのメンバーかどうかを確認します | 「ユーザー 456 はグループ 789 のメンバーですか?」 |
👥 ユーザー管理
| ツール | 説明 | 例 |
|---|---|---|
get_users | 📋 すべてのシステムユーザーを一覧表示します | 「すべてのユーザーを表示して」 |
create_user | ➕ 新しいユーザーを作成します | 「パスワード '123456' でユーザー 'john' を作成して」 |
create_ldap_user | ➕ LDAP で認証される新しいユーザーを作成します | 「LDAP ユーザー 'jane' を作成して」 |
get_user | 🔍 ID でユーザー情報を取得します | 「ID 123 のユーザー詳細を取得して」 |
get_user_by_name | 🔍 ユーザー名でユーザー情報を取得します | 「'john' のユーザー詳細を取得して」 |
update_user | ✏️ ユーザーを更新します | 「ユーザー 123 を役割 'app-manager' で更新して」 |
remove_user | 🗑️ ユーザーを削除します | 「ID 456 のユーザーを削除して」 |
disable_user | ❌ ユーザーを無効化します | 「ユーザー 123 を無効化して」 |
enable_user | ✅ ユーザーを有効化します | 「ユーザー 123 を有効化して」 |
is_active_user | 🔍 ユーザーがアクティブかどうかを確認します | 「ユーザー 123 がアクティブかどうかを確認して」 |
assign_user_to_project | 👤 特定の役割でユーザーをプロジェクトに割り当てます | 「ユーザー 1 を役割 'project-member' でプロジェクト 'Website' に割り当てて」 |
🏃 ScrumSprint プラグイン API
| ツール | 説明 | 例 |
|---|---|---|
create_sprint | ➕ 新しいスプリントを作成します | 「プロジェクト 'My Project' に 'Sprint 1' という名前のスプリントを '2024-01-01' 開始、'2024-01-14' 終了、ゴール 'Complete onboarding features' で作成して」 |
get_sprint_by_id | 🔍 ID でスプリントを取得します | 「ID 123 のスプリントの詳細を取得して」 |
update_sprint | ✏️ 既存のスプリントを更新します | 「プロジェクト 'My Project' のスプリント 123 を完了に更新して」 |
remove_sprint | 🗑️ ID でスプリントを削除します | 「ID 123 のスプリントを削除して」 |
get_all_sprints_by_project | 📋 指定したプロジェクトのすべてのスプリントを取得します | 「プロジェクト 'My Project' のすべてのスプリントを取得して」 |
📖 使用例
プロジェクトのワークフロー
# Create a new project
"Create a new project called 'Mobile App Development'"
# Add tasks to the project
"Create task 'Design UI mockups' in project 'Mobile App Development'"
"Create task 'Set up development environment' in project 'Mobile App Development'"
# Get all tasks
"Get tasks for 'Mobile App Development' project"
# Move tasks between columns
"Move task 1 to 'In Progress' column"
"Move task 2 to 'Done' column"
チーム管理
# Create a new team member
"Create user 'alice.smith' with password 'secure123' and email '[email protected]'"
# Assign user to project
"Assign user 'alice.smith' to project 'Mobile App Development' as project-member"
# Assign tasks to team members
"Assign task 1 to user 'alice.smith'"
タスクの整理
# Create categories for better organization
"Create category 'Critical Bugs'"
"Create category 'Feature Requests'"
# Add comments to tasks
"Add comment 'This needs urgent attention' to task 5"
# Set deadlines
"Set due date for task 3 to 2024-01-20"
🔧 開発
ソースからのビルド
# Clone the repository
git clone https://github.com/bivex/kanboard-mcp.git
cd kanboard-mcp
# Install dependencies
go mod download
# Build the application
go build -o kanboard-mcp .
# Run tests
go test ./...
プロジェクト構成
kanboard-mcp/
├── main.go # Main application entry point
├── go.mod # Go module dependencies
├── go.sum # Dependency checksums
├── build-release.bat # Windows build script
├── build-release.sh # Unix build script
├── README.md # This file
└── LICENSE.md # License information
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📄 ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。詳細については LICENSE.md ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。