basecamp-automation について
Rube MCP と Composio の Basecamp ツールキットを通じて、プロジェクト、タスク、メッセージ、メンバーを管理するスキルです。プロジェクトの確認に加え、作成・更新やアクセス管理にも対応します。
主な機能
- 01プロジェクトとその構成の閲覧
- 02To-doリストとタスクの作成
- 03プロジェクトメッセージの投稿・更新
- 04メンバー一覧とプロジェクトアクセス管理
- 05色分けグループによるTo-doの整理
活用シーン
- 01プロジェクトのTo-doリスト作成とタスク割り当て
- 02プロジェクトのメッセージボードへの更新投稿
- 03プロジェクトメンバーの追加・削除
- 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 キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP を利用できることを確かめます- ツールキット
basecampを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクから Basecamp OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE になっていることを確認します
主なワークフロー
1. ToDo リストとタスクの管理
使用する場面:Basecamp プロジェクト内で ToDo リストを作成する、タスクを追加する、または作業を整理する場合
ツールの呼び出し順序:
BASECAMP_GET_PROJECTS- プロジェクトを一覧表示し、対象の bucket_id を確認します[前提条件]BASECAMP_GET_BUCKETS_TODOSETS- プロジェクト内の ToDo セットを取得します[前提条件]BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS- 重複を避けるため、既存の ToDo リストを一覧表示します[任意]BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS- ToDo セット内に新しい ToDo リストを作成します[リスト作成に必須]BASECAMP_GET_BUCKETS_TODOLISTS- 特定の ToDo リストの詳細を取得します[任意]BASECAMP_POST_BUCKETS_TODOLISTS_TODOS- ToDo リスト内に ToDo 項目を作成します[タスク作成に必須]BASECAMP_CREATE_TODO- 個別の ToDo を作成する代替ツールです[代替]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:整数のプロジェクト/バケット IDtodolist_id:整数の ToDo リスト IDcontent: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. メッセージの投稿と管理
使用する場面:ユーザーがプロジェクトのメッセージボードにメッセージを投稿したい場合、または既存のメッセージを更新したい場合
ツールの順序:
BASECAMP_GET_PROJECTS- 対象のプロジェクトと bucket_id を特定します[前提条件]BASECAMP_GET_MESSAGE_BOARD- プロジェクトのメッセージボード ID を取得します[前提条件]BASECAMP_CREATE_MESSAGE- ボードに新しいメッセージを作成します[必須]BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES- 代替のメッセージ作成ツールです[フォールバック]BASECAMP_GET_MESSAGE- ID を指定して特定のメッセージを読み取ります[任意]BASECAMP_PUT_BUCKETS_MESSAGES- 既存のメッセージを更新します[任意]
主なパラメーター:
bucket_id:整数のプロジェクト/バケット IDmessage_board_id:整数のメッセージボード ID(GET_MESSAGE_BOARD から取得)subject:メッセージのタイトル(必須)content:メッセージ本文の HTMLstatus:すぐに公開するには"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. ユーザーとアクセス権の管理
使用する場面:ユーザーがユーザーの一覧表示、プロジェクトのアクセス権管理、または新しいユーザーの追加を希望する場合
ツールの順序:
BASECAMP_GET_PEOPLE- 現在のユーザーから参照できるすべてのユーザーを一覧表示します[必須]BASECAMP_GET_PROJECTS- 対象のプロジェクトを特定します[前提条件]BASECAMP_LIST_PROJECT_PEOPLE- 特定のプロジェクトのユーザーを一覧表示します[必須]BASECAMP_GET_PROJECTS_PEOPLE- プロジェクトメンバーを一覧表示する代替ツールです[代替]BASECAMP_PUT_PROJECTS_PEOPLE_USERS- プロジェクトのアクセス権を付与または取り消します[アクセス権の変更に必須]
PUT_PROJECTS_PEOPLE_USERS の主なパラメーター:
project_id:整数のプロジェクト IDgrant:プロジェクトに追加するユーザー 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を色分けしたグループに整理したい場合
ツールの順序:
BASECAMP_GET_PROJECTS- 対象のプロジェクトを見つけます [前提条件]BASECAMP_GET_BUCKETS_TODOLISTS- To-Doリストの詳細を取得します [前提条件]BASECAMP_GET_TODOLIST_GROUPS- To-Doリスト内の既存のグループを一覧表示します [任意]BASECAMP_GET_BUCKETS_TODOLISTS_GROUPS- グループ一覧を取得する代替手段です [代替]BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS- To-Doリストに新しいグループを作成します [必須]BASECAMP_CREATE_TODOLIST_GROUP- グループを作成する代替ツールです [代替]
主なパラメーター:
bucket_id:整数のプロジェクト/バケットIDtodolist_id:整数のTo-DoリストIDname:グループ名(必須)color:表示色の識別子。次のいずれかです:white、red、orange、yellow、green、blue、aqua、purple、gray、pink、brownstatus:一覧表示のフィルター。"archived"または"trashed"(アクティブなグループの場合は省略)
注意点:
POST_BUCKETS_TODOLISTS_GROUPSとCREATE_TODOLIST_GROUPはほぼ同じです。どちらを使ってもかまいません- 色の値は固定のパレットから選ぶ必要があります。任意のhex/rgb値はサポートされていません
- グループはTo-Doリスト内のサブセクションであり、独立したエンティティではありません
5. プロジェクトを閲覧・確認する
使用する場面:プロジェクトの一覧表示、詳細の取得、またはプロジェクト構造の確認をしたい場合
ツールの順序:
BASECAMP_GET_PROJECTS- アクティブなプロジェクトをすべて一覧表示します [必須]BASECAMP_GET_PROJECT- 特定のプロジェクトの包括的な詳細を取得します [任意]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_PROJECTS | status |
| プロジェクトを取得 | BASECAMP_GET_PROJECT | project_id |
| プロジェクトの詳細を取得 | BASECAMP_GET_PROJECTS_BY_PROJECT_ID | project_id |
| ToDo セットを取得 | BASECAMP_GET_BUCKETS_TODOSETS | bucket_id, todoset_id |
| ToDo リストを一覧表示 | BASECAMP_GET_BUCKETS_TODOSETS_TODOLISTS | bucket_id, todoset_id |
| ToDo リストを取得 | BASECAMP_GET_BUCKETS_TODOLISTS | bucket_id, todolist_id |
| ToDo リストを作成 | BASECAMP_POST_BUCKETS_TODOSETS_TODOLISTS | bucket_id, todoset_id, name |
| ToDo を作成 | BASECAMP_POST_BUCKETS_TODOLISTS_TODOS | bucket_id, todolist_id, content |
| ToDo を作成(別の方法) | BASECAMP_CREATE_TODO | bucket_id, todolist_id, content |
| ToDo を一覧表示 | BASECAMP_GET_BUCKETS_TODOLISTS_TODOS | bucket_id, todolist_id |
| ToDo グループを一覧表示 | BASECAMP_GET_TODOLIST_GROUPS | bucket_id, todolist_id |
| ToDo グループを作成 | BASECAMP_POST_BUCKETS_TODOLISTS_GROUPS | bucket_id, todolist_id, name, color |
| ToDo グループを作成(別の方法) | BASECAMP_CREATE_TODOLIST_GROUP | bucket_id, todolist_id, name |
| メッセージボードを取得 | BASECAMP_GET_MESSAGE_BOARD | bucket_id, message_board_id |
| メッセージを作成 | BASECAMP_CREATE_MESSAGE | bucket_id, message_board_id, subject, status |
| メッセージを作成(別の方法) | BASECAMP_POST_BUCKETS_MESSAGE_BOARDS_MESSAGES | bucket_id, message_board_id, subject |
| メッセージを取得 | BASECAMP_GET_MESSAGE | bucket_id, message_id |
| メッセージを更新 | BASECAMP_PUT_BUCKETS_MESSAGES | bucket_id, message_id |
| すべてのユーザーを一覧表示 | BASECAMP_GET_PEOPLE | (なし) |
| プロジェクトのユーザーを一覧表示 | BASECAMP_LIST_PROJECT_PEOPLE | project_id |
| アクセスを管理 | BASECAMP_PUT_PROJECTS_PEOPLE_USERS | project_id, grant, revoke, create |
Composio 提供