Claude MCP Trello について
Claude MCP Trello は、Trello ボードを操作するためのツールを提供する TypeScript 製の MCP サーバーです。AI クライアントからカード、リスト、アクティビティを読み書きしたいユーザーを対象としています。Trello API の上限に合わせてレート制限を行い、上限到達時はリクエストをキューに入れます。
主な機能
- 01カードの取得・追加・更新・アーカイブ
- 02リストの取得・追加・アーカイブ
- 03ボードの最近のアクティビティ取得
- 04ボード横断検索と個人カード取得
- 05カードの添付ファイル取得とダウンロード
- 06トークンバケット方式のレート制限
活用シーン
- 01Claude に特定リストのカード一覧を確認させる
- 02複数ボードを横断してキーワードでタスクを検索する
- 03カードの添付ファイルを取得して後続処理に使う
MCP 対応
trello_ の接頭辞を持つ Trello ツールを MCP クライアントに公開する MCP サーバーです。設定は Claude Desktop の mcpServers に Node のパスと Trello の API 認証情報を記述して行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Claude MCP Trello
Trello ボードを操作するためのツールを提供する Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、レート制限、型安全性、エラー処理を自動で管理しながら、Trello API とシームレスに連携できます。
機能
- Trello ボードとの完全な連携:カード、リスト、ボードのアクティビティを操作できます
- レート制限機能を内蔵:Trello API の制限(API キーごとに 10 秒あたり 300 リクエスト、トークンごとに 10 秒あたり 100 リクエスト)を遵守します
- 型安全な実装:包括的な型定義を備えた TypeScript で記述されています
- 入力の検証:すべての API 入力を堅牢に検証します
- エラー処理:わかりやすいメッセージでエラーを適切に処理します
利用可能なツール
trello_get_cards_by_list
指定したリスト ID に含まれるカードの一覧を取得します。
{
name: "trello_get_cards_by_list",
arguments: {
listId: string; // Trello list ID
}
}
trello_get_lists
指定したボード内のすべてのリストを取得します。
{
name: "trello_get_lists",
arguments: {
boardId: string; // The ID of the Trello board to get lists from
}
}
trello_get_recent_activity
指定したボードの最新のアクティビティを取得します。取得件数は limit 引数で指定できます(デフォルト:10)。
{
name: "trello_get_recent_activity",
arguments: {
boardId: string; // The ID of the Trello board to get activity from
limit?: number; // Optional: number of activities to retrieve
}
}
trello_add_card
指定したリストにカードを追加します。
{
name: "trello_add_card",
arguments: {
listId: string; // The ID of the list to add to
name: string; // The title of the card
description?: string; // Optional: details of the card
dueDate?: string; // Optional: due date (e.g., ISO8601)
labels?: string[]; // Optional: array of label IDs
}
}
trello_update_card
カードの内容を更新します。
{
name: "trello_update_card",
arguments: {
cardId: string; // The ID of the card to be updated
name?: string; // Optional: updated title
description?: string; // Optional: updated description
dueDate?: string; // Optional: updated due date (e.g., ISO8601)
labels?: string[]; // Optional: updated array of label IDs
}
}
trello_archive_card
指定したカードをアーカイブ(クローズ)します。
{
name: "trello_archive_card",
arguments: {
cardId: string; // The ID of the card to archive
}
}
trello_add_list
指定したボードに新しいリストを追加します。
{
name: "trello_add_list",
arguments: {
boardId: string; // The ID of the Trello board to add the list to
name: string; // Name of the new list
}
}
trello_archive_list
指定したリストをアーカイブ(クローズ)します。
{
name: "trello_archive_list",
arguments: {
listId: string; // The ID of the list to archive
}
}
trello_get_my_cards
アカウントに関連付けられたすべてのカードを取得します。
{
name: "trello_get_my_cards",
arguments: {}
}
trello_search_all_boards
プランや権限に応じて、ワークスペース(組織)内のすべてのボードを横断検索します。
{
name: "trello_search_all_boards",
arguments: {
query: string; // Search keyword
limit?: number; // Optional: max number of results (default: 10)
}
}
trello_get_card_attachments
指定したカードのすべての添付ファイルを取得します。名前、ファイルサイズ、MIME タイプ、URL などの添付ファイルのメタデータを返します。ダウンロードする前に、カードにどの添付ファイルがあるかを確認するために使用します。
{
name: "trello_get_card_attachments",
arguments: {
cardId: string; // The ID of the Trello card to get attachments from
}
}
次のプロパティを持つ添付ファイルオブジェクトの配列を返します。
id:添付ファイルの一意の識別子name:添付ファイルの表示名url:添付ファイルにアクセス/ダウンロードするための URLbytes:添付ファイルのサイズ(バイト単位。外部リンクの場合は 0)mimeType:MIME タイプ(例:「image/png」、「application/pdf」)date:添付ファイルが追加された日時を示す ISO 8601 形式の日付文字列isUpload:Trello にアップロードされたファイル(true)か外部リンク(false)かfileName:添付ファイルのファイル名
trello_download_attachment
Trello カードの特定の添付ファイルをダウンロードします。Trello に直接アップロードされたファイルの場合、内容を base64 エンコードされたデータとして返します。外部リンクの場合は URL を返します。
{
name: "trello_download_attachment",
arguments: {
cardId: string; // The ID of the Trello card containing the attachment
attachmentId: string; // The ID of the attachment to download
}
}
次の内容を含むオブジェクトを返します。
attachment:添付ファイルの完全なメタデータcontent:ファイルの内容を base64 エンコードしたもの(Trello にアップロードされたファイルの場合)、またはnull(外部リンクの場合)url:添付ファイルへの直接 URL
使用のヒント:まず trello_get_card_attachments を使用して添付ファイルの一覧と ID を取得し、次に trello_download_attachment を使用して特定のファイルをダウンロードしてください。
レート制限
このサーバーは、Trello API の制限を遵守するため、レート制限にトークンバケットアルゴリズムを実装しています。
- API キーごとに 10 秒あたり 300 リクエスト
- トークンごとに 10 秒あたり 100 リクエスト
レート制限は自動で処理され、上限に達した場合、リクエストはキューに入れられます。
エラー処理
このサーバーは、さまざまな状況に応じて詳細なエラーメッセージを提供します。
- 入力パラメーターが無効
- レート制限超過
- API 認証エラー
- ネットワークの問題
- ボード/リスト/カード ID が無効
開発
前提条件
- Node.js 16 以降
- npm または yarn
セットアップ
-
リポジトリをクローンします:
git clone https://github.com/hrs-asano/claude-mcp-trello.git cd claude-mcp-trello -
依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
テストの実行
npm test
Claude Desktop との統合
この MCP サーバーを Claude Desktop と統合するには、以下の設定を ~/Library/Application\ Support/Claude/claude_desktop_config.json ファイルに追加します:
{
"mcpServers": {
"trello": {
"command": "{YOUR_NODE_PATH}", // for example: /opt/homebrew/bin/node
"args": [
"{YOUR_PATH}/claude-mcp-trello/build/index.js"
],
"env": {
"TRELLO_API_KEY": "{YOUR_KEY}",
"TRELLO_TOKEN": "{YOUR_TOKEN}"
}
}
}
}
{YOUR_NODE_PATH}、{YOUR_PATH}、{YOUR_KEY}、{YOUR_TOKEN} を、ご利用の環境に適した値に置き換えてください。
注: ボード ID はグローバルに設定するのではなく、個々のツールにパラメーターとして渡します。これにより、複数のボードを操作できます。
貢献
貢献を歓迎します!行動規範およびプルリクエストの提出手順については、貢献ガイドをご覧ください。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
謝辞
- Model Context Protocol SDK を使用して構築されています
- Trello REST API を使用しています
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
