mcpField
P
project-status-report

project-status-report

github.com/mondaycom生産性551 回インストール1 週間前に更新
リポジトリ

project-status-report について

project-status-reportは、1つ以上のmonday.comボードから構造化された進捗レポートを作るスキルです。プロジェクト責任者やチーム向けに、アイテム情報、集計結果、最近の活動をまとめ、遅延やブロッカーを示します。

主な機能

  1. 01複数ボードのデータを集約
  2. 02期限超過・期限間近のアイテムを特定
  3. 03ブロッカーと関連する更新を整理
  4. 04ステータス、グループ、担当者の分布を集計
  5. 05最近の活動と進捗を報告

活用シーン

  1. 01プロジェクトの状況とリスクを確認
  2. 02複数ボードの進捗を集約
  3. 03遅延またはブロック中の作業を特定
  4. 04チーム内の作業割り当てを確認

MCP 対応

monday.comのMCPツールでボード、アイテム、更新、活動を取得し、チャート、バッテリー、テーブルのUIウィジェットでレポートを表示します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mondaycom/skills --skill project-status-report

インストール後、Claude Code で/project-status-reportを入力して読み込まれたか確認します。

詳細

プロジェクト状況レポート

1 つ以上の monday.com ボードから、構造化された状況レポートを生成します。monday.com は、ワークマネジメント、CRM、開発、サービス、キャンペーン向けの専用製品を備えた、カスタマイズ可能な AI ワークプラットフォームです。ボードはその中心となる整理単位です。このスキルは、ボードのメタデータ、アイテムデータ、集約されたインサイト、最近のアクティビティを組み合わせ、実行可能な単一の要約を作成します。

出力の動作

レポートは、分かりやすい表現とすっきりした書式で提示してください。呼び出した API ツールについて説明したり、生の JSON を表示したりせず、データが何を意味するかを要約してください。生の数値をそのまま繰り返すのではなく、注意が必要な点(ブロッカー、期限超過のアイテム、担当者未割り当ての作業)を強調してください。ユーザーが直接移動できるよう、必ず各ボードの URL を含めてください。

視覚的なセクションには MCP UI ウィジェットを使用する

このスキルは、monday の MCP UI ウィジェットと特に相性が良いものです。次のように使用してください。

  • ステータスの分布:show-chart を呼び出してください(Markdown テーブルよりも内容を把握しやすくなります)。
  • プロジェクトの完了状況:show-battery を呼び出して進捗インジケーターを表示してください。
  • 期限超過のアイテム:show-table を呼び出し、ユーザーが並べ替え、フィルタリング、アイテムへの移動をできるようにしてください。
  • 担当者別の作業負荷:担当者間の比較には show-chart を呼び出してください。

合計や件数などの短い要約には、プレーンテキストを使用してください。ウィジェットの内容を後から Markdown テーブルで重複して表示しないでください。どちらか一方を選んでください。

show-table のフィルターフォールバック(必須)

filters 配列を指定して show-table を呼び出す場合(たとえば、期限超過のアイテムに絞り込む場合や、完了済みのアイテムを除外する場合)、ウィジェットの直下に、フィルター適用後の行を短いプレーンテキストのリストで必ず表示してください。一部のクライアントではフィルターチップが表示されても、フィルターが自動適用されず、完了済みのアイテムがテーブルに残ることがあります。プレーンテキストのリストを正確な表示として扱い、ウィジェットは対話型の表示として使用してください。

フォールバックは、最大 10 行の簡潔な箇条書きリストにしてください。各行には、アイテム名、担当者、期限、ステータスを記載してください。該当する行が 10 行を超える場合は、最初の 10 行を表示し、「(+N more)」の行を追加してください。filters 配列を指定していない場合はフォールバックを省略してください(フィルターなしの show-table は正しく表示されます)。

前提条件

開始する前に、レポートに含めるすべてのボードについて、必ず get_board_info を呼び出してください。これにより、アイテムデータを正しく解釈するために必要な列 ID、列タイプ、ステータスラベルのマッピング、グループ構造を取得できます。

ワークフロー

ステップ 1:対象のボードを特定する

ユーザーがボードを名前または ID で指定した場合は、そのボードを直接使用してください。指定がない場合は、次の手順に従ってください。

  1. get_user_context を呼び出し、ユーザーのボード、ワークスペース、最近のアクティビティを取得します。
  2. 対象が不明確な場合は、レポート対象のボードをユーザーに確認します。
  3. 複数のボードを対象とするレポートでは、すべてのボード ID を収集します。
ステップ 2:ボード構造を取得する

各ボードについて、ボード ID を指定して get_board_info を呼び出してください。次の情報を抽出します。

  • 列の定義 - ID、タイプ、許可されている値(特にステータスラベルのマッピング)
  • グループ - グループ ID と名前(「To Do」、「In Progress」、「Done」のようなワークフローの段階を表します)
  • 担当者 - ボードのオーナーとサブスクライバー

次の項目を表す列を特定してください。

  • ステータス - 主なワークフローの状態(通常は status タイプの列)
  • 日付/タイムライン - 期限または期間(タイプが date または timeline の列)
  • 担当者 - 作業の割り当て(タイプが people の列)
  • 優先度 - 重要度(通常は「Priority」というラベルの status または color タイプの列)
ステップ 3:アイテムを取得する

次の値を指定して get_board_items_page を呼び出してください。

  • boardId:対象のボード
  • includeColumns:true
  • アクティブなアイテムに絞り込むため、必要に応じてフィルタリングや並べ替えを行います

ステップ 2 の列定義を使って、各アイテムの列の値を解析してください。

ステップ 4:期限超過の項目を特定する

次のすべてに当てはまる場合、その項目は期限超過です。

  1. 日付またはタイムラインの列に、過去の日付(ユーザーのタイムゾーンに基づき、今日より前)が設定されている
  2. ステータス列が「完了」を示すラベルに設定されていない

「完了」ラベルの判定。 ボードのステータス列にある各ラベルには、is_done フラグがあります。実際には、ユーザー作成のボードやデフォルトのボードでは、このフラグが設定されていないことがよくあります(実際のテスト用ボードでは、「Done」を含むすべてのラベルで false であることが確認されています)。is_done: true が設定されている場合は、これを主な判断基準としてください。設定されていない場合は、従来のラベル名のセット Done、Completed、Closed、Resolved、Verified、Fixed、Won、Approved に照らしてラベル名を判定してください。どちらの判断基準も適用できない場合は、このボードでどのラベルが「完了」を意味するのか、ユーザーに確認してください。

期限まで24時間以内の項目には、「まもなく期限」とフラグを付けて、ユーザーに事前に知らせてください。

期限超過の項目について、項目名、担当者、期限、現在のステータス、グループ名を収集してください。

ステップ 5:ブロッカーを特定する

次のいずれかに当てはまる場合、その項目はブロック中です。

  1. ステータスが「Stuck」、「Blocked」、またはそれに類するラベルである(ボードのステータスラベルを確認してください)
  2. 最近の更新やコメントでブロッカーが指摘されている

ステータスが「Stuck」の項目については、get_updates を呼び出し、行き詰まっている理由を説明する最新のコメントを取得してください。

更新がない場合のフォールバック。 get_updates が「Stuck」の項目に対して空の結果を返した場合は、代わりに項目のテキスト列から情報を提示してください。優先順位は、Notes、Description、Steps to Reproduce というタイトルの列、その次に、内容が空でない他の text または long_text 列です。多くのチームは更新ではなく Notes 列にブロッカーを記録します。テキスト列に説明がある場合、ブロック中の項目について「詳細なし」と提示しないでください。

ステップ 6:集計されたインサイトを取得する

board_insights を呼び出して、次の情報を取得してください。

  • ステータス分布(ステータスラベルごとの項目数)
  • グループ分布(グループごとの項目数)
  • 割り当て分布(担当者ごとの項目数)

これにより、すべての項目を再処理せずに、概要レベルの数値を把握できます。

ステップ 2 で取得した、ボード固有のステータス列 ID を使用してください。 get_board_info で取得した実際の列 ID(例:color_mm2xbcrm、status_1、color_mm30e66p)を渡してください。汎用リテラル "status" は絶対に使用しないでください。ほとんどの実際のボードにはリテラル "status" が存在せず、根本的な原因が「列が見つからない」ことであっても、board_insights は 403 INTERNAL_SERVER_ERROR を返します。ここで 403 が発生した場合は、get_board_info を再度読み込み、type が status の列を探して、その正確な ID を指定して再試行してください。同じルールは、開発/CRM/サービス用ボードの Priority/Severity/Workflow status 列にも適用されます。

ステップ 7:最近のアクティビティを取得する

明示的な期間を指定して get_board_activity を呼び出してください。MCP ツール自体のデフォルト期間は30日ですが、このスキルのデフォルト期間は7日です。そのため、ユーザーが別の期間を指定しない限り、7日間の範囲を適用するには fromDate(任意で toDate も)を必ず渡してください。これにより、次の情報が得られます。

  • 作成、更新、または移動された項目
  • ステータスの変更
  • 割り当ての変更
ステップ 8:レポートを整形する

レポートを次の構成で提示します。


プロジェクトのステータス:[Board Name] レポート生成日:[today's date] | 期間:[time range] ボード URL:[board URL]

概要

  • 合計アイテム数:[count]
  • 完了:[count]([percentage]%)
  • 進行中:[count]
  • 期限超過:[count]
  • ブロック中:[count]

ステータスの内訳 -> show-chart で表示

プロジェクトの完了状況 -> show-battery で表示(例:60%)

期限超過アイテム -> 次の列を含む show-table で表示:アイテム、担当者、期限、ステータス、グループ

ブロッカー

  • [Item name](担当者:@name)- [latest comment or reason]
  • [Item name](担当者:@name)- [latest comment or reason]

最近のアクティビティ(過去 7 日間)

  • [count] 件のアイテムが完了
  • [count] 件のアイテムが作成
  • [count] 件のステータス変更
  • 注目点:[重要な移動や更新を強調]

最後に、関連する次のステップを 2~3 件提示します。

  • 「期限超過アイテムの担当者にフォローアップしますか?」
  • 「ステークホルダー向けにステータス更新を作成しましょうか?」
  • 「[specific item] がブロックされている理由を詳しく調べましょうか?」

複数ボードのレポート

ユーザーが複数のボードまたはワークスペースを対象にレポートを依頼した場合:

  1. get_user_context を呼び出して、対象となるすべてのボードを一覧表示します
  2. 各ボードについてステップ 2~7 を実行します
  3. 最初に全体の概要を提示し、その後にボードごとのセクションを続けます
  4. ボード間の傾向(例:「5 つのボードのうち 3 つに期限超過アイテムがあります」)を強調します

プラン階層に関する注意: 複数ボードの集計は Standard 以上で最も効果的に機能します。Free / Basic では monday のボード横断機能に制限があるため、レポートは作成できますが、単一ボードのレポートに近い内容になる場合があります。AI Portfolio Risk の分析情報(board_insights の「自動リスク識別」機能)は Enterprise 専用です。ユーザーが下位プランを利用していて、AI によるリスク分析を特に依頼した場合は、そのプランで利用できる機能を説明し、代わりに手動でブロッカーを分析することを提案します。

出力のカスタマイズ

ユーザーの依頼に応じてレポートを調整します。

  • 「ブロッカーだけ」 - ステップ 5 に進み、ブロッカーのセクションのみを表示します
  • 「期限超過アイテムのみ」 - ステップ 4 に進み、期限超過テーブルのみを表示します(show-table を使用)
  • 「過去 30 日間」 - ステップ 7 の期間を調整します
  • 「自分のチーム向け」 - ステップ 3 で担当者に割り当てられたアイテムに絞り込みます

エラーの防止と対処

  • get_board_info が失敗した場合(例:ボードが見つからない、権限がない)は、アクセスできなかったボードを報告し、代替案を提案します:「Q3 Marketing ボードにアクセスできません。アクセス可能な別のボードを使いますか?それとも、所有者に共有を依頼しますか?」
  • board_insights の結果が空の場合は、空の内訳を報告するのではなく、get_board_items_page から手動で集計します。ステータスが未設定のアイテムは、board_insights では空文字列のラベルとして表示されます。これらはグラフ上で空白の区分ではなく、「ステータスなし」として表示します。
  • ボードにステータス列がない場合は、その旨を伝え、代わりにグループの内訳に基づいて報告します。
  • 空のボード。 get_board_items_page がアイテムを 0 件返した場合、ステップ 4~7 は実行せず、ウィジェットも表示しません。次のように返信します:「 にはまだアイテムがありません。」その後、アイテムの作成(task-management スキルへのリンク)またはボードの設定の確認を提案します。
  • 複数ボードの一部で失敗。 複数ボードのリクエストで 1 つのボードにアクセスできない場合(非公開、削除済み、または 403)、レポート全体を中止しません。アクセス可能なボードについては一連の処理をすべて実行し、その後、全体の概要の冒頭に「アクセスできませんでした:<board name(s)>」という簡潔な注記と、次のステップの提案(「所有者に共有を依頼する」「リクエストから除外する」「別のボードを選ぶ」)を追加します。

使用するツール

  • get_user_context - ボードとワークスペースを特定します
  • get_board_info - ボードの構造、列の定義、ステータスラベルを確認します
  • get_board_items_page - 列の値を含むアイテムデータを取得します
  • board_insights - 集計件数と分布を確認します
  • get_board_activity - 最近の変更とタイムラインを確認します
  • get_updates - ブロック中またはフラグ付きのアイテムに関するコメントを取得します
  • show-chart - ステータス/作業負荷の分布ウィジェット
  • show-battery - 完了率ウィジェット
  • show-table - 期限超過アイテムのウィジェット

コメント