mcpField
B
basecamp-automation

basecamp-automation

github.com/davepoon生産性3.7k117 回インストール1 日前に更新
リポジトリ

basecamp-automation について

Rube MCP と Composio の Basecamp ツールキットを通じて、プロジェクト、タスク、メッセージ、メンバーを管理するスキルです。プロジェクトの確認に加え、作成・更新やアクセス管理にも対応します。

主な機能

  1. 01プロジェクトとその構成の閲覧
  2. 02To-doリストとタスクの作成
  3. 03プロジェクトメッセージの投稿・更新
  4. 04メンバー一覧とプロジェクトアクセス管理
  5. 05色分けグループによるTo-doの整理

活用シーン

  1. 01プロジェクトのTo-doリスト作成とタスク割り当て
  2. 02プロジェクトのメッセージボードへの更新投稿
  3. 03プロジェクトメンバーの追加・削除
  4. 04トピック別のTo-do整理

MCP 対応

Rube MCP 経由で Basecamp のツールを使用します。利用には Basecamp 接続が必要で、RUBE_SEARCH_TOOLS から最新のツールスキーマを取得します。

インストール

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

$npx skills add https://github.com/davepoon/buildwithclaude --skill basecamp-automation

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

詳細

Rube MCP による Basecamp の自動化

Composio の Basecamp ツールキットを通じて、プロジェクト管理、ToDo リストの作成、タスク管理、メッセージボードへの投稿、メンバー管理、ToDo グループの整理など、Basecamp の操作を自動化します。

ツールキットのドキュメント:composio.dev/toolkits/basecamp

前提条件

  • Rube MCP が接続されている必要があります(RUBE_SEARCH_TOOLS を利用可能なこと)
  • RUBE_MANAGE_CONNECTIONS でツールキット basecamp を指定した、アクティブな Basecamp 接続が必要です
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP を入手する:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP を利用できることを確かめます
  2. ツールキット basecamp を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクから Basecamp OAuth を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE になっていることを確認します

主なワークフロー

1. ToDo リストとタスクの管理

使用する場面:Basecamp プロジェクト内で ToDo リストを作成する、タスクを追加する、または作業を整理する場合

ツールの呼び出し順序:

  1. BASECAMP_GET_PROJECTS - プロジェクトを一覧表示し、対象の bucket_id を確認します[前提条件]
  2. BASECAMP_GET_BUCKETS_TODOSETS - プロジェクト内の ToDo セットを取得します[前提条件]
  3. BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS - 重複を避けるため、既存の ToDo リストを一覧表示します[任意]
  4. BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS - ToDo セット内に新しい ToDo リストを作成します[リスト作成に必須]
  5. BASECAMP_GET_BUCKETS_TODOLISTS - 特定の ToDo リストの詳細を取得します[任意]
  6. BASECAMP_POST_BUCKETS_TODOLISTS_TODOS - ToDo リスト内に ToDo 項目を作成します[タスク作成に必須]
  7. BASECAMP_CREATE_TODO - 個別の ToDo を作成する代替ツールです[代替]
  8. BASECAMP_GET_BUCKETS_TODOLISTS_TODOS - ToDo リスト内の ToDo を一覧表示します[任意]

ToDo リスト作成時の主なパラメーター:

  • bucket_id:整数のプロジェクト/バケット ID(GET_PROJECTS から取得)
  • todoset_id:整数の ToDo セット ID(GET_BUCKETS_TODOSETS から取得)
  • name:ToDo リストのタイトル(必須)
  • description:HTML 形式の説明(リッチテキストに対応)

ToDo 作成時の主なパラメーター:

  • bucket_id:整数のプロジェクト/バケット ID
  • todolist_id:整数の ToDo リスト ID
  • content:ToDo の内容(必須)
  • description:ToDo の HTML 形式の詳細
  • assignee_ids:整数の人物 ID の配列
  • due_on:YYYY-MM-DD 形式の期限日
  • starts_on:YYYY-MM-DD 形式の開始日
  • notify:担当者に通知するかどうかを指定するブール値(デフォルトは false)
  • completion_subscriber_ids:完了時に通知する人物 ID

注意点:

  • 1 つのプロジェクト(バケット)に複数の ToDo セットを含められます。誤った todoset_id を選ぶと、リストが別のセクションに作成されます
  • 名前がよく似たリストの重複を避けるため、作成前に必ず既存の ToDo リストを確認してください
  • 成功時のペイロードには、ユーザー向けの URL(app_url、app_todos_url)が含まれます。生の ID よりも、これらの URL を優先して返してください
  • すべての ID(bucket_id、todoset_id、todolist_id)は整数であり、文字列ではありません
  • 説明は HTML 形式のみ対応しており、Markdown には対応していません
2. メッセージの投稿と管理

使用する場面:ユーザーがプロジェクトのメッセージボードにメッセージを投稿したい場合、または既存のメッセージを更新したい場合

ツールの順序:

  1. BASECAMP_GET_PROJECTS - 対象のプロジェクトと bucket_id を特定します[前提条件]
  2. BASECAMP_GET_MESSAGE_BOARD - プロジェクトのメッセージボード ID を取得します[前提条件]
  3. BASECAMP_CREATE_MESSAGE - ボードに新しいメッセージを作成します[必須]
  4. BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES - 代替のメッセージ作成ツールです[フォールバック]
  5. BASECAMP_GET_MESSAGE - ID を指定して特定のメッセージを読み取ります[任意]
  6. BASECAMP_PUT_BUCKETS_MESSAGES - 既存のメッセージを更新します[任意]

主なパラメーター:

  • bucket_id:整数のプロジェクト/バケット ID
  • message_board_id:整数のメッセージボード ID(GET_MESSAGE_BOARD から取得)
  • subject:メッセージのタイトル(必須)
  • content:メッセージ本文の HTML
  • status:すぐに公開するには "active" に設定します
  • category_id:メッセージの種類を分類します(任意)
  • subscriptions:通知するユーザー ID の配列です。すべてのプロジェクトメンバーに通知する場合は省略します

注意点:

  • status="draft" は HTTP 400 を返すことがあります。確実な方法として status="active" を使用してください
  • bucket_id と message_board_id は同じプロジェクトに属している必要があります。不一致の場合、失敗したり、誤ったプロジェクトに振り分けられたりします
  • メッセージ本文でサポートされるのは HTML タグのみで、Markdown はサポートされません
  • PUT_BUCKETS_MESSAGES で更新すると本文全体が置き換わります。差分だけでなく、修正後の本文全体を含めてください
  • ユーザー向けの確認リンクには、レスポンスの app_url を使用してください
  • CREATE_MESSAGE と POST_BUCKETS_MESSAGE_BOARDS_MESSAGES は同じ処理を行います。まず CREATE_MESSAGE を使用し、失敗した場合は POST にフォールバックしてください
3. ユーザーとアクセス権の管理

使用する場面:ユーザーがユーザーの一覧表示、プロジェクトのアクセス権管理、または新しいユーザーの追加を希望する場合

ツールの順序:

  1. BASECAMP_GET_PEOPLE - 現在のユーザーから参照できるすべてのユーザーを一覧表示します[必須]
  2. BASECAMP_GET_PROJECTS - 対象のプロジェクトを特定します[前提条件]
  3. BASECAMP_LIST_PROJECT_PEOPLE - 特定のプロジェクトのユーザーを一覧表示します[必須]
  4. BASECAMP_GET_PROJECTS_PEOPLE - プロジェクトメンバーを一覧表示する代替ツールです[代替]
  5. BASECAMP_PUT_PROJECTS_PEOPLE_USERS - プロジェクトのアクセス権を付与または取り消します[アクセス権の変更に必須]

PUT_PROJECTS_PEOPLE_USERS の主なパラメーター:

  • project_id:整数のプロジェクト ID
  • grant:プロジェクトに追加するユーザー ID の整数配列
  • revoke:プロジェクトから削除するユーザー ID の整数配列
  • create:新しいユーザーを作成するための、name、email_address、および任意の company_name、title を含むオブジェクトの配列
  • grant、revoke、create のいずれかを指定する必要があります

注意点:

  • ユーザー ID は整数です。必ず先に GET_PEOPLE で名前から ID を特定してください
  • ユーザー管理における project_id は、ほかの操作における bucket_id と同じです
  • LIST_PROJECT_PEOPLE と GET_PROJECTS_PEOPLE はほぼ同じ機能です。どちらを使用してもかまいません
  • create でユーザーを作成すると、同時にそのユーザーにプロジェクトへのアクセス権も付与されます
4. グループでTo-Doを整理する

使用する場面:リスト内のTo-Doを色分けしたグループに整理したい場合

ツールの順序:

  1. BASECAMP_GET_PROJECTS - 対象のプロジェクトを見つけます [前提条件]
  2. BASECAMP_GET_BUCKETS_TODOLISTS - To-Doリストの詳細を取得します [前提条件]
  3. BASECAMP_GET_TODOLIST_GROUPS - To-Doリスト内の既存のグループを一覧表示します [任意]
  4. BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS - グループ一覧を取得する代替手段です [代替]
  5. BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS - To-Doリストに新しいグループを作成します [必須]
  6. BASECAMP_CREATE_TODOLIST_GROUP - グループを作成する代替ツールです [代替]

主なパラメーター:

  • bucket_id:整数のプロジェクト/バケットID
  • todolist_id:整数のTo-DoリストID
  • name:グループ名(必須)
  • color:表示色の識別子。次のいずれかです:white、red、orange、yellow、green、blue、aqua、purple、gray、pink、brown
  • status:一覧表示のフィルター。"archived" または "trashed"(アクティブなグループの場合は省略)

注意点:

  • POST_BUCKETS_TODOLISTS_GROUPS と CREATE_TODOLIST_GROUP はほぼ同じです。どちらを使ってもかまいません
  • 色の値は固定のパレットから選ぶ必要があります。任意のhex/rgb値はサポートされていません
  • グループはTo-Doリスト内のサブセクションであり、独立したエンティティではありません
5. プロジェクトを閲覧・確認する

使用する場面:プロジェクトの一覧表示、詳細の取得、またはプロジェクト構造の確認をしたい場合

ツールの順序:

  1. BASECAMP_GET_PROJECTS - アクティブなプロジェクトをすべて一覧表示します [必須]
  2. BASECAMP_GET_PROJECT - 特定のプロジェクトの包括的な詳細を取得します [任意]
  3. BASECAMP_GET_PROJECTS_BY_PROJECT_ID - プロジェクト詳細を取得する代替手段です [代替]

主なパラメーター:

  • status:"archived" または "trashed" でフィルターします。アクティブなプロジェクトの場合は省略します
  • project_id:詳細取得に使う整数のプロジェクトID

注意点:

  • プロジェクトは作成日時の新しい順に並びます
  • レスポンスには、ツール(todoset、message_boardなど)とそのIDを含むdock配列があります
  • 後続の操作に使うtodoset_id、message_board_idなどを特定するには、dock内のツールIDを使用します

よくあるパターン

IDの解決

Basecampでは階層的なID構造が使われています。常に上位から順に解決してください:

  • プロジェクト(bucket_id):BASECAMP_GET_PROJECTS -- 名前で検索し、idを取得します
  • To-Doセット(todoset_id):プロジェクトのdock、またはBASECAMP_GET_BUCKETS_TODOSETSで確認します
  • メッセージボード(message_board_id):プロジェクトのdock、またはBASECAMP_GET_MESSAGE_BOARDで確認します
  • To-Doリスト(todolist_id):BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS
  • 人物(person_id):BASECAMP_GET_PEOPLEまたはBASECAMP_LIST_PROJECT_PEOPLE
  • 注:bucket_idとproject_idは、異なるコンテキストで同じエンティティを指します
ページネーション

Basecampのリストエンドポイントでは、ページ単位のページネーションが使われます:

  • レスポンスヘッダーまたは本文に、続きのページがあることが示される場合があります
  • GET_PROJECTS、GET_BUCKETS_TODOSETS_TODOLISTSおよびリストエンドポイントは、ページ分割された結果を返します
  • 結果が返されなくなるまで、取得を続けてください
コンテンツの書式
  • リッチテキストフィールドはすべてMarkdownではなくHTMLを使用します
  • コンテンツを<div>タグで囲み、<strong>、<em>、<ul>、<ol>、<li>、<a>などを使用します
  • 例:<div><strong>重要:</strong>金曜日までに完了してください</div>

既知の注意点

IDの形式
  • BasecampのIDはすべて整数であり、文字列やUUIDではありません
  • bucket_id = project_id(同じエンティティですが、ツールによってパラメーター名が異なります)
  • To-DoセットID、To-DoリストID、メッセージボードIDは、プロジェクトのdock配列で確認できます
  • 人物IDは整数です。操作の前にGET_PEOPLEで名前を解決してください
Statusフィールド
  • メッセージにstatus="draft"を指定するとHTTP 400が発生する場合があります。必ずstatus="active"を使用してください
  • プロジェクト/To-Doリストのstatusフィルターには、"archived"、"trashed"を指定するか、アクティブな場合は省略します
コンテンツ形式
  • HTMLのみを使用し、Markdownは使用しないでください
  • 更新すると本文全体が置き換わり、部分的な差分更新にはなりません
  • 無効なHTMLタグは、通知なしに削除される場合があります
レート制限
  • Basecamp API にはレート制限があります。短時間に連続してリクエストを送信しないようにしてください。
  • ToDo が多数ある大規模なプロジェクトでは、慎重にページネーションを行ってください。
URL の処理
  • ユーザー向けのリンクには、API のレスポンスに含まれる app_url を優先して使用してください。
  • ID から Basecamp の URL を手動で再構築しないでください。

クイックリファレンス

タスクツールスラッグ主なパラメーター
プロジェクトを一覧表示BASECAMP_GET_PROJECTSstatus
プロジェクトを取得BASECAMP_GET_PROJECTproject_id
プロジェクトの詳細を取得BASECAMP_GET_PROJECTS_BY_PROJECT_IDproject_id
ToDo セットを取得BASECAMP_GET_BUCKETS_TODOSETSbucket_id, todoset_id
ToDo リストを一覧表示BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTSbucket_id, todoset_id
ToDo リストを取得BASECAMP_GET_BUCKETS_TODOLISTSbucket_id, todolist_id
ToDo リストを作成BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTSbucket_id, todoset_id, name
ToDo を作成BASECAMP_POST_BUCKETS_TODOLISTS_TODOSbucket_id, todolist_id, content
ToDo を作成(別の方法)BASECAMP_CREATE_TODObucket_id, todolist_id, content
ToDo を一覧表示BASECAMP_GET_BUCKETS_TODOLISTS_TODOSbucket_id, todolist_id
ToDo グループを一覧表示BASECAMP_GET_TODOLIST_GROUPSbucket_id, todolist_id
ToDo グループを作成BASECAMP_POST_BUCKETS_TODOLISTS_GROUPSbucket_id, todolist_id, name, color
ToDo グループを作成(別の方法)BASECAMP_CREATE_TODOLIST_GROUPbucket_id, todolist_id, name
メッセージボードを取得BASECAMP_GET_MESSAGE_BOARDbucket_id, message_board_id
メッセージを作成BASECAMP_CREATE_MESSAGEbucket_id, message_board_id, subject, status
メッセージを作成(別の方法)BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGESbucket_id, message_board_id, subject
メッセージを取得BASECAMP_GET_MESSAGEbucket_id, message_id
メッセージを更新BASECAMP_PUT_BUCKETS_MESSAGESbucket_id, message_id
すべてのユーザーを一覧表示BASECAMP_GET_PEOPLE(なし)
プロジェクトのユーザーを一覧表示BASECAMP_LIST_PROJECT_PEOPLEproject_id
アクセスを管理BASECAMP_PUT_PROJECTS_PEOPLE_USERSproject_id, grant, revoke, create

Composio 提供

コメント