はじめに
Trelloは、Kanbanボードを使った直感的なプロジェクト管理ツールです。タスクをカードとして整理し、チームのコラボレーションを効率化します。強力なAPIにより、ボード、リスト、カードのデータを簡単に取得・操作できます。一方、**Model Context Protocol(MCP)**は、AI(例:Claude)を外部データやツールと標準化された方法で接続するプロトコルです。このシリーズでは、TrelloとMCPを統合し、タスクデータを活用するエージェントAIを構築する方法を学びます。たとえば、AIがタスクの進捗を分析したり、優先順位を提案したりできます。
第1章では、TrelloとMCPの基本を理解し、Trelloからカードデータを取得するシンプルなMCPサーバーを構築します。Claude Desktopと接続して、タスク管理の第一歩を踏み出しましょう。TrelloとAIの可能性にワクワクしている方は、ぜひ一緒に始めましょう!
TrelloとMCPの概要
Trelloとは?
Trelloは、以下のような特徴を持つプロジェクト管理ツールです:
- Kanbanベース:ボード、リスト、カードでタスクを視覚的に管理。
- 強力なAPI:REST APIでボード、リスト、カード、コメントにアクセス。
- 柔軟性:プロジェクト管理、イベント企画、個人タスク管理に対応。
- コミュニティ:プラグインやインテグレーションが豊富。
MCPの役割
MCPは、AIにTrelloのデータを提供する橋渡し役です。MCPサーバーを通じて、AIは以下を行えます:
- データ取得:カードやリストの情報を取得。
- アクション実行:カードを作成、移動、コメントを追加。
- 分析:タスクの進捗やチームのパフォーマンスを評価。
なぜTrelloとMCPを組み合わせる?
この組み合わせは、以下のようなシナリオで強力です:
- タスク管理:AIがタスクを自動整理し、期限切れを警告。
- 進捗分析:AIがボードのデータを分析し、ボトルネックを特定。
- チーム連携:AIがコメントや通知を生成し、コミュニケーションを効率化。
開発環境の準備
MCPサーバーとTrelloを統合するには、以下の環境を準備します:
- Python 3.8以降:サーバー開発用。
- mcpライブラリ:JSON-RPC通信を処理(仮定のライブラリ、公式ドキュメントを参照)。
- requestsライブラリ:Trello APIとの通信用。
- Claude Desktop:MCP対応のAIクライアント。
- テキストエディタ:VS Code推奨。
インストールコマンド:
pip install mcp jsonrpcserver requests python-dotenv
Trelloのセットアップ
-
ボード準備:
-
Trelloにアクセスし、新しいボードを作成(例:
MCP-Project
)。 - リストを追加(例:
To Do
、In Progress
、Done
)。 - カードを追加(例:
ドキュメント作成
、コードレビュー
)。 - ボードのURLからボードIDを記録(例:
https://trello.com/b/BOARD_ID/NAME
のBOARD_ID
)。
-
Trelloにアクセスし、新しいボードを作成(例:
-
APIキーとトークンの取得:
- TrelloのDeveloper PortalでAPIキーを取得。
- トークンを生成(スコープ:
read
、write
)。 - キーとトークンを安全に保存。
-
環境変数の設定:
.env
ファイルに以下を追加:TRELLO_API_KEY=your_api_key TRELLO_TOKEN=your_token TRELLO_BOARD_ID=your_board_id
コード例:Trello用MCPサーバー
from mcp import MCPServer
import os
from dotenv import load_dotenv
import requests
class TrelloServer(MCPServer):
def __init__(self, host, port, api_key, token, board_id):
super().__init__(host 0, port)
self.api_key = api_key
self.token = token
Starting new_cms
def get_cards(self, params):
try:
url = f"{self.base_url}/boards/{self.board_id}/cards"
response = requests.get(url, params=self.params)
response.raise_for_status()
cards = [
{
"id": card["id"],
"name": card["name"],
"desc": card["desc"],
"due": card.get("due", ""),
"list_id": card["idList"]
}
for card in response.json()
]
return {"status": "success", "cards": cards}
except Exception as e:
return {"status": "error", "message": str(e)}
if __name__ == "__main__":
load_dotenv()
server = TrelloServer(
host="localhost",
port=8111,
api_key=os.getenv("TRELLO_API_KEY"),
token=os.getenv("TRELLO_TOKEN"),
board_id=os.getenv("TRELLO_BOARD_ID")
)
print("Trello MCPサーバーを起動中: http://localhost:8111")
server.start()
コードの説明
- requests:Trello APIにGETリクエストを送信し、カードデータを取得。
- get_cards:ボードのカード情報を取得(ID、名前、説明、期限、リストID)。
- register_resource:リソースを登録し、AIがアクセス可能に。
- start():サーバーを起動。
前提条件
- Trelloボードが存在し、ボードIDが正しい。
-
.env
ファイルに正しいTRELLO_API_KEY
、TRELLO_TOKEN
、TRELLO_BOARD_ID
が設定済み。
サーバーのテスト
サーバーが正しく動作するか確認します:
-
サーバー起動:
python trello_server.py
コンソールに「Trello MCPサーバーを起動中: http://localhost:8111」と表示。
-
カード取得のテスト:
Pythonでリクエストを送信:import requests import json url = "http://localhost:8111" payload = { "jsonrpc": "2.0", "method": "get_cards", "params": {}, "id": 1 } response = requests.post(url, json=payload) print(json.dumps(response.json(), indent=2, ensure_ascii=False))
期待されるレスポンス:
{ "jsonrpc": "2.0", "result": { "status": "success", "cards": [ { "id": "card123", "name": "ドキュメント作成", "desc": "仕様書を完成させる", "due": "2025-04-22T10:00:00Z", "list_id": "list456" }, { "id": "card124", "name": "コードレビュー", "desc": "PRを確認", "due": "", "list_id": "list457" } ] }, "id": 1 }
Claude Desktopとの接続
サーバーをClaude Desktopに接続します:
-
設定ファイルの編集:
Claude Desktopの設定ファイル(例:claude_desktop_config.json
)に以下を追加:{ "mcp_servers": [ { "name": "TrelloServer", "url": "http://localhost:8111", "auth": "none" } ] }
-
Claudeでテスト:
Claude Desktopを起動し、プロンプトを入力:ボードのカードを教えてください。
レスポンス例:
Trelloボードのカード: - ドキュメント作成(期限:2025-04-22、リスト:To Do) - コードレビュー(期限なし、リスト:In Progress)
次のステップ
このMCPサーバーは、TrelloとAIの連携の基礎です。次の第2章では、Trelloにカードを追加・更新する機能を実装し、タスクを自動化するエージェントを構築します。たとえば、AIが優先度の高いタスクを自動でリストに移動したり、期限を追加したりできます。タスク自動化に興味がある方は、ぜひお楽しみに!
まとめ
この第1章では、TrelloとMCPの基本を学び、シンプルなMCPサーバーを構築してカードデータを取得しました。Trelloの強力なAPIとMCPの柔軟性を組み合わせることで、AIをタスク管理の強力なアシスタントに変えられます。次章以降では、タスク自動化、進捗分析、リアルタイム管理へと進化させます。
役に立ったと思ったら、「いいね」や「ストック」をしていただけると嬉しいです!次の章でまたお会いしましょう!