mcpField
M
MCP Server Trello

MCP Server Trello

ローカル
github.com/delorenj生産性4472 週間前に更新

MCP Server Trello について

MCP Server Trello は、カード、リスト、チェックリスト、添付ファイル、コメント、カスタムフィールド、ワークスペースなど Trello ボードの操作を AI エージェントに提供する MCP サーバーです。受け入れ基準の抽出やレート制限の組み込みなど、ワークフロー向けのツールを備えています。

主な機能

  1. 01カード、リスト、コメント、添付ファイルの管理
  2. 02受け入れ基準(AC)チェックリストの抽出
  3. 03チェックリスト項目の検索と完了率の確認
  4. 04ボードとワークスペースの動的な切り替え
  5. 05ワークスペース単位のアクセス制限
  6. 06Trello API のレート制限への組み込み対応

活用シーン

  1. 01エージェントにカードの受け入れ基準を読み込ませ進捗を追跡
  2. 02複数のボードを切り替えてリストやカードを整理
  3. 03エージェントのアクセスを承認済みワークスペースに限定

MCP 対応

本プロジェクトは MCP サーバーとして、Trello のボード、カード、チェックリストの操作を約 57 のツールとして MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Server Trello

Verified on MseeP MCP Registry npm version

Server Trello MCP server

AI エージェントが Trello のボード(カード、リスト、チェックリスト、添付ファイル、コメント、カスタムフィールド、ワークスペース)を完全に利用できる Model Context Protocol(MCP)サーバーです。レート制限と型安全性を組み込み、通常の API ラッパーにはない、受け入れ条件の抽出やチェックリストの依存関係照会など、ワークフローレベルのツールを備えています。ツールは 57 個で、npx でインストールでき、Bun を利用しています。

主な特長

  • 受け入れ条件を標準で取得:get_acceptance_criteria は、カードの AC チェックリストをエージェントのコンテキストに直接取り込みます。同等の機能を提供する競合製品はありません。
  • あらゆる項目を監視:watch_card と watch_list を使って、カードやリストのアクティビティを Trello の通知に反映できます。
  • リスト管理を網羅:リストの作成、更新、並べ替え(update_list_position)、アーカイブができます。
  • ボードとワークスペースをその場で切り替え:再起動や設定の編集は不要です。
  • レート制限を自動処理:Trello の API 制限(キーあたり 10 秒で 300 リクエスト、トークンあたり 10 秒で 100 リクエスト)を自動的に順守します。
  • Bun を利用:起動が速く、旧 Node ビルドと比べてパフォーマンスが 2.8~4.4 倍向上しています。npx と npm も利用できます。

変更履歴

変更の詳細については、CHANGELOG.md をご覧ください。

機能

  • Trello ボードとの完全な連携:カード、リスト、ボードのアクティビティを操作できます
  • 受け入れ条件の抽出:カードの受け入れ条件チェックリストをエージェントのコンテキストに直接取り込みます
  • チェックリストのインテリジェントな操作:名前や説明でチェックリスト項目を検索し、完了状況を追跡して、項目を管理できます
  • カードデータの完全な抽出:チェックリスト、添付ファイル、ラベル、メンバー、コメントなど、カードの詳細をすべて取得できます
  • 💬 コメント管理:カードのコメントを追加、更新、削除、取得できます
  • アクティビティの通知登録:カードやリストを監視し、そのアクティビティを Trello の通知に反映できます
  • リスト管理:リストの作成、更新、並べ替え、アーカイブができます
  • ファイル添付:URL から、あらゆる種類のファイル(PDF、ドキュメント、動画、画像など)をカードに添付できます
  • カスタムフィールド:ボードのカスタムフィールド定義を読み取り、カードの値を更新できます
  • レート制限を標準搭載:Trello の API 制限(API キーあたり 10 秒で 300 リクエスト、トークンあたり 10 秒で 100 リクエスト)を順守します
  • 型安全な実装:包括的な型定義を用いて TypeScript で記述されています
  • 入力検証:すべての API 入力を堅牢に検証します
  • エラー処理:分かりやすいメッセージを伴う、適切なエラー処理を行います
  • ボードの動的選択:再起動せずにボードとワークスペースを切り替えられます
  • Markdown 形式:カードデータを人が読みやすい Markdown 形式でエクスポートできます

インストール

このサーバーは npm で @delorenj/mcp-server-trello として公開されています。MCP クライアントに追加すれば、すぐに使えます。クローンもビルドも不要です。

クイックスタート(Claude Desktop、Cursor、その他の MCP クライアント)

クライアントの MCP 設定にサーバーを追加します。

{
  "mcpServers": {
    "trello": {
      "command": "bunx",
      "args": ["@delorenj/mcp-server-trello"],
      "env": {
        "TRELLO_API_KEY": "your-trello-api-key",
        "TRELLO_TOKEN": "your-trello-token"
      }
    }
  }
}

bunx が最も速く起動しますが、npx も同じように使えます。trello.com/app-key で API キーを取得し、同じページでトークンを生成してください。

Claude Code

CLI を使ってサーバーを登録します。

claude mcp add trello \
  --env TRELLO_API_KEY=your-trello-api-key \
  --env TRELLO_TOKEN=your-trello-token \
  -- bunx @delorenj/mcp-server-trello
MCP Registry

このサーバーは公式 MCP Registry に io.github.delorenj/mcp-server-trello として登録されているため、Registry に対応したクライアントから直接検索してインストールできます。

エージェントスキルパッケージ(任意)

このリポジトリには、Trello MCP サーバー用の BMAD 互換スキルパッケージ も含まれています。エージェントのスキル管理ワークフローを通じて skill/ ディレクトリをインストールするか、エージェントのスキルディレクトリに配置してください。

エージェントがスキルを有効にすると、skill/SKILL.md に従います。初回使用時には、同梱のインストーラーを実行します。

bash skill/scripts/install.sh

Bun が利用可能な場合、インストーラーは skill/assets/source/ から MCP サーバーをビルドします。Bun が利用できない場合は、公開されている @delorenj/mcp-server-trello 用の Smithery インストールパスにフォールバックし、スキルの有効化チェックで使用するものと同じローカルの build/index.js コマンドパスを作成します。

スキルパッケージの構成

このスキルは、このリポジトリにおけるエージェント向けのエントリーポイントです。

  • skill/SKILL.md:有効化、ルーティング、エージェントのワークフロールール。
  • skill/scripts/install.sh:同梱サーバーの初回インストーラー。
  • skill/references/trello-mcp/:セットアップ、ツール、ワークフロー、注意点に関する特化型リファレンス。
  • skill/assets/source/:ローカルビルドで使用する、同梱の MCP サーバーソース。

AI エージェントは、この README ではなく skill/SKILL.md から始めてください。README は人間向けの概要であり、スキルのリファレンスはツール選択や Trello のワークフロールールを運用するための情報です。

メンテナーは、パッケージ化する前に次のコマンドで同梱ソースを更新できます。

mise run package

設定

環境変数

環境変数を使用してサーバーを設定できます。ルートディレクトリに .env ファイルを作成し、次の変数を設定してください。

# Required: Your Trello API credentials
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token

# Optional (Deprecated): Default board ID (can be changed later using set_active_board)
TRELLO_BOARD_ID=your-board-id

# Optional: Initial workspace ID (can be changed later using set_active_workspace)
TRELLO_WORKSPACE_ID=your-workspace-id

# Optional: HTTPS proxy URL (for corporate proxies or restricted networks)
https_proxy=http://your-proxy:8080

# Optional: Restrict access to specific workspaces (comma-separated IDs)
# If set, only the listed workspaces will be accessible via MCP tools
TRELLO_ALLOWED_WORKSPACES=workspace-id-1,workspace-id-2

プロキシのサポート: 企業プロキシの背後にいる場合や、プロキシ経由で通信する環境にいる場合は、https_proxy または HTTPS_PROXY 環境変数を設定してください。サーバーは、指定されたプロキシを経由してすべての Trello API リクエストを自動的に送信します。

これらの値は、次の場所から取得できます。

  • API キー:https://trello.com/app-key
  • トークン:API キーを使用して生成します
  • ボード ID(任意、非推奨):ボードの URL で確認できます(例:https://trello.com/b/abc123/example-board)
  • ワークスペース ID:ワークスペースの設定、または list_workspaces ツールで確認できます
ボードとワークスペースの管理

バージョン 0.3.0 以降、MCP サーバーはボードを操作する複数の方法をサポートしています。

  1. 複数ボードのサポート:すべてのメソッドで、任意の boardId パラメーターを指定できるようになりました    - TRELLO_BOARD_ID を省略し、各 API 呼び出しで boardId を指定します    - デフォルトとして TRELLO_BOARD_ID を設定し、必要に応じて boardId パラメーターで上書きします

  2. 動的なボード選択:ワークスペース管理ツールを使用します    - .env ファイルの TRELLO_BOARD_ID は、初期ボード ID/デフォルトのボード ID として使用されます    - set_active_board ツールを使用して、いつでもアクティブなボードを変更できます    - 選択したボードはサーバーの再起動後も保持されます(~/.trello-mcp/config.json に保存)    - 同様に、set_active_workspace を使用してアクティブなワークスペースを設定し、保持できます

これにより、サーバーを再起動せずに複数のボードやワークスペースを操作できます。

ワークスペースアクセスの制限

TRELLO_ALLOWED_WORKSPACES 環境変数を使用して、MCP アクセスを特定のワークスペースに任意で制限できます。次のような場合に便利です。

  • セキュリティ:AI エージェントのアクセスを承認済みのワークスペースのみに制限します
  • マルチテナント構成:エージェントが関連するワークスペースにのみアクセスするようにします
  • テスト:テスト環境を本番データから分離します

TRELLO_ALLOWED_WORKSPACES が設定されている場合:

  • list_workspaces は許可リストにあるワークスペースのみを返します
  • list_boards は許可されたワークスペースのボードのみを返します
  • set_active_workspace は許可リストにないワークスペースを拒否します
  • list_boards_in_workspace は許可されていないワークスペース ID を拒否します
  • create_board は許可されていないワークスペースでの作成を拒否します

設定例:

# Only allow access to two specific workspaces
TRELLO_ALLOWED_WORKSPACES=697c549ce04dc460af133a75,5f8a3b2c1d4e5f6a7b8c9d0e

TRELLO_ALLOWED_WORKSPACES が設定されていないか空の場合、トークンがアクセスできるすべてのワークスペースを利用できます(デフォルトの動作)。

ワークフローの例
  1. まず、利用可能なボードを一覧表示します:
{
  name: 'list_boards',
  arguments: {}
}
  1. アクティブなボードを設定します:
{
  name: 'set_active_board',
  arguments: {
    boardId: "abc123"  // ID from list_boards response
  }
}
  1. 必要に応じて、ワークスペースを一覧表示します:
{
  name: 'list_workspaces',
  arguments: {}
}
  1. 必要に応じて、アクティブなワークスペースを設定します:
{
  name: 'set_active_workspace',
  arguments: {
    workspaceId: "xyz789"  // ID from list_workspaces response
  }
}
  1. 現在のアクティブなボード情報を確認します:
{
  name: 'get_active_board_info',
  arguments: {}
}

日付形式のガイドライン

Trello MCP サーバーで日付を扱う際は、形式の要件が異なる点にご注意ください:

  • 期限日(dueDate):時刻を含む完全な ISO 8601 形式を受け付けます(例:2023-12-31T12:00:00Z)
  • 開始日(start):YYYY-MM-DD 形式の日付のみを受け付けます(例:2025-08-05)

この違いは Trello の API 規約に沿ったもので、開始日は日単位のマーカーですが、期限日には特定の時刻を含めることができます。

利用可能なツール

チェックリスト管理ツール 🆕
get_checklist_items

名前を指定して、チェックリストのすべての項目を取得します。

{
  name: 'get_checklist_items',
  arguments: {
    name: string,        // Name of the checklist to retrieve items from
    boardId?: string     // Optional: ID of the board (uses default if not provided)
  }
}
add_checklist_item

既存のチェックリストに新しい項目を追加します。

{
  name: 'add_checklist_item',
  arguments: {
    text: string,           // Text content of the checklist item
    checkListName: string,  // Name of the checklist to add the item to
    boardId?: string        // Optional: ID of the board (uses default if not provided)
  }
}
find_checklist_items_by_description

指定したテキストを含むチェックリスト項目を検索します。

{
 name: 'find_checklist_items_by_description',
  arguments: {
    description: string,  // Text to search for in checklist item descriptions
    boardId?: string      // Optional: ID of the board (uses default if not provided)
 }
}
get_acceptance_criteria

カード(またはボード)の受け入れ条件を取得します。チームで実際によく使われるチェックリストの見出しにも対応します。チェックリスト名が Acceptance Criteria、AC、DoD、Definition of Done のいずれかと一致する場合に該当します。一致判定では大文字と小文字を区別せず、前後の空白を除去します。いずれかに一致するものがある場合、記載順で最初の別名が優先されます。

{
  name: 'get_acceptance_criteria',
  arguments: {
    cardId?: string,  // Optional: ID of the card to scope the search to (recommended to avoid ambiguity)
    boardId?: string  // Optional: ID of the board (uses default if not provided)
  }
}

一致した場合、次の内容を返します:

{
  found: true,
  items: CheckListItem[],    // All items of the matching checklist(s), in Trello's order
  unmet: CheckListItem[],    // The incomplete subset of items
  percentComplete: number,  // Rounded percentage complete; 0 when there are no items
  matchedChecklistName: string  // The checklist name as written on the board, original casing
}

一致するものがない場合、空のリストを返すのではなく、その旨を明示します。これにより、「このカードには受け入れ条件がない」と「チェックリストの名前が別のものになっている」を混同せずに済みます:

{
  found: false,
  reason: string,    // Human-readable explanation naming the aliases that were tried
  availableChecklists: string[]  // Names of the checklists that do exist in the searched scope
}

該当するチェックリストが見つかっても項目がない場合は、found: true と items: [] を返します。これは上記の見つからない場合の応答とは異なります。

get_checklist_by_name

すべての項目と完了率を含む、チェックリスト全体を取得します。

{
  name: 'get_checklist_by_name',
  arguments: {
    name: string,     // Name of the checklist to retrieve
    boardId?: string  // Optional: ID of the board (uses default if not provided)
  }
}

戻り値: 次の内容を持つ CheckList オブジェクト:

  • id:チェックリストの識別子
  • name:チェックリスト名
  • items:CheckListItem オブジェクトの配列
  • percentComplete:完了率(0~100)
update_checklist_item

既存のチェックリスト項目を更新します。

{
  name: 'update_checklist_item',
  arguments: {
    cardId: string,                          // ID of the card containing the checklist item
    checkItemId: string,                     // ID of the checklist item to update
    name?: string,                           // Optional: new checklist item text
    state?: 'complete' | 'incomplete',       // Optional: new checklist item state
    pos?: number | 'top' | 'bottom',         // Optional: new checklist item position
    due?: string | null,                     // Optional: ISO 8601 due date, or null to clear it
    dueReminder?: number | null,             // Optional: reminder offset in minutes, or null to clear it
    idMember?: string | null                 // Optional: member ID to assign, or null to clear it
  }
}
delete_checklist_item

既存のチェックリスト項目を削除します。

{
  name: 'delete_checklist_item',
  arguments: {
    cardId: string,       // ID of the card containing the checklist item
    checkItemId: string   // ID of the checklist item to delete
  }
}
get_card 🆕

特定の Trello カードの詳細を、人が確認する場合と同等の包括的な内容で取得します。

{
  name: 'get_card',
  arguments: {
    cardId: string,          // ID of the Trello card (short ID like 'FdhbArbK' or full ID)
    includeMarkdown?: boolean // Return formatted markdown instead of JSON (default: false)
  }
}

戻り値: 次の情報を含むカードデータ全体:

  • ✅ 項目の状態と担当者を含むチェックリスト
  • 📎 プレビューとメタデータを含む添付ファイル
  • 🏷️ 名前と色を含むラベル
  • 👥 割り当てられたメンバー
  • 💬 コメントとアクティビティ
  • 📊 統計情報(バッジ)
  • 🎨 カバー画像
  • 📍 ボードとリストのコンテキスト
get_cards_by_list_id

特定のリストにあるすべてのカードを取得します。

{
  name: 'get_cards_by_list_id',
  arguments: {
    boardId?: string, // Optional: ID of the board (uses default if not provided)
    listId: string    // ID of the Trello list
  }
}
get_lists

ボードのすべてのリストを取得します。

{
  name: 'get_lists',
  arguments: {
    boardId?: string  // Optional: ID of the board (uses default if not provided)
  }
}
get_recent_activity

ボードの最近のアクティビティを取得します。

{
  name: 'get_recent_activity',
  arguments: {
    boardId?: string, // Optional: ID of the board (uses default if not provided)
    limit?: number    // Optional: Number of activities to fetch (default: 10)
  }
}
add_card_to_list

指定したリストに新しいカードを追加します。

{
  name: 'add_card_to_list',
  arguments: {
    boardId?: string,     // Optional: ID of the board (uses default if not provided)
    listId: string,       // ID of the list to add the card to
    name: string,         // Name of the card
    description?: string, // Optional: Description of the card
  mbs; dueDate?: string,     // Optional: Due date (ISO 8601 format with time)
    start?: string,       // Optional: Start date (YYYY-MM-DD format, date only)
    labels?: string[]     // Optional: Array of label IDs
  }
}
update_card_details

既存のカードの詳細を更新します。

{
  name: 'update_card_details',
  arguments: {
    boardId?: string,     // Optional: ID of the board (uses default if not provided)
    cardId: string,       // ID of the card to update
    name?: string,        // Optional: New name for the card
    description?: string, // Optional: New description
    dueDate?: string,     // Optional: New due date (ISO 8601 format with time)
    start?: string,       // Optional: New start date (YYYY-MM-DD format, date only)
    dueComplete?: boolean,// Optional: Mark the due date as complete (true) or incomplete (false)
    labels?: string[]     // Optional: New array of label IDs
  }
}
archive_card

カードをアーカイブに移動します。

{
  name: 'archive_card',
  arguments: {
    boardId?: string, // Optional: ID of the board (uses default if not provided)
    cardId: string    // ID of the card to archive
  }
}
add_list_to_board

ボードに新しいリストを追加します。

{
 name: 'add_list_to_board',
  arguments: {
    boardId?: string, // Optional: ID of the board (uses default if not provided)
    name: string      // Name of the new list
  }
}
archive_list

リストをアーカイブに移動します。

{
  name: 'archive_list',
  arguments: {
    boardId?: string, // Optional: ID of the board (uses default if not provided)
    listId: string    // ID of the list to archive
  }
}
update_list

リストの名前、アーカイブ状態、購読状態、またはボードを更新します。ボード内のリストの順序を変更するには、update_list_position を使用します。

{
  name: 'update_list',
  arguments: {
    listId: string,          // ID of the list to update
    name?: string,           // Optional: New name for the list
    closed?: boolean,        // Optional: Whether to close (archive) the list
    subscribed?: boolean,    // Optional: Whether to subscribe to the list
    idBoard?: string         // Optional: ID of a board to move the list to
  }
}
update_list_position

ボード上のリストの位置を更新します。Trello は小数インデックスを使用します。各リストには浮動小数点数の位置があり、2 つのリストの間に配置するには、それぞれの位置の平均値を使用します(例:位置 1024 と 2048 の間に配置する場合は 1536 を使用します)。端に移動するには、"top"/"bottom" のショートカットを使用します。

{
  name: 'update_list_position',
  arguments: {
    listId: string,              // ID of the list to reposition
    position: string             // "top", "bottom", or a positive numeric string (e.g. "1536")
  }
}
get_my_cards

現在のユーザーに割り当てられているすべてのカードを取得します。

{
  name: 'get_my_cards',
  arguments: {}
}
move_card

カードを別のリストに移動します。

{
  name: 'move_card',
  arguments: {
    boardId?: string,  // Optional: ID of the target board (uses default if not provided)
s;   cardId: string,    // ID of the card to move
    listId: string     // ID of the target list
  }
}
attach_image_to_card

URL から画像をカードに直接添付します。

{
  name: 'attach_image_to_card',
  arguments: {
    boardId?: string, // Optional: ID of the board (uses default if not provided)
    cardId: string,   // ID of the card to attach the image to
    imageUrl: string, // URL of the image to attach
    name?: string     // Optional: Name for the attachment (defaults to "Image Attachment")
  }
}
attach_file_to_card

URL またはローカルファイルパス(例:file:///path/to/your/file.pdf)から、任意の種類のファイルをカードに添付します。

{
  name: 'attach_file_to_card',
 arguments: {
    boardId?: string,  // Optional: ID of the board (uses default if not provided)
    cardId: string,s;   // ID of the card to attach the file to
    fileUrl: string,   // URL or local file path (using the file:// protocol) of the file to attach
    name?: string,     // Optional: Name for the attachment (defaults to the file name for local files)
    mimeType?: string  // Optional: MIME type (e.g., "application/pdf", "text/plain", "video/mp4")
  }
}
download_attachment

ID を指定して、カードから添付ファイルをダウンロードします。添付ファイルの ID は、get_card が返す attachments 配列で確認できます。

{
  name: 'download_attachment',
  arguments: {
    cardId: string,       // ID of the card containing the attachment
    attachmentId: string  // ID of the attachment to download
  }
}

戻り値: 画像の添付ファイル(image/*)の場合は、インラインで表示可能な画像データを返します。その他すべてのファイル形式の場合は、次の内容を含む JSON オブジェクトを返します。

  • fileName:元のファイル名
  • mimeType:ファイルの MIME タイプ
  • data:Base64 でエンコードされたファイルの内容
コメント管理ツール
add_comment

Trello カードにコメントを追加します。

{
  name: 'add_comment',
  arguments: {
    cardId: string,  // ID of the card to comment on
    text: string     // The text of the comment to add
  }
}
update_comment

カードの既存のコメントを更新します。

{
  name: 'update_comment',
  arguments: {
    commentId: string,  // ID of the comment to change
    text: string        // The new text of the comment
  }
}
delete_comment

カードのコメントを削除します。

{
  name: 'delete_comment',
  arguments: {
    commentId: string  // ID of the comment to delete
  }
}
get_card_comments

カードのすべてのデータを取得せずに、特定のカードのコメントをすべて取得します。

{
  name: 'get_card_comments',
  arguments: {
    cardId: string,  // ID of the card to get comments from
    limit?: number   // Optional: Maximum number of comments to retrieve (default: 100)
  }
}
list_boards

ユーザーがアクセスできるすべてのボードを一覧表示します。

{
  name: 'list_boards',
  arguments: {}
}
set_active_board

今後の操作で使用するアクティブなボードを設定します。

{
  name: 'set_active_board',
  arguments: {
    boardId: string  // ID of the board to set as active
  }
}
list_workspaces

ユーザーがアクセスできるすべてのワークスペースを一覧表示します。

{
s; name: 'list_workspaces',
  arguments: {}
}
set_active_workspace

今後の操作で使用するアクティブなワークスペースを設定します。

{
  name: 'set_active_workspace',
  arguments: {
    workspaceId: string  // ID of the workspace to set as active
  }
}
list_boards_in_workspace

特定のワークスペース内にあるすべてのボードを一覧表示します。

{
  name: 'list_boards_in_workspace',
  arguments: {
    workspaceId: string  // ID of the workspace to list boards from
  }
}
get_active_board_info

現在アクティブなボードの情報を取得します。

{
s; name: 'get_active_board_info',
  arguments: {}
}
カスタムフィールド管理ツール

注: カスタムフィールドを使用するには、Trello Standard 以上のプランが必要です。

get_board_custom_fields

ボード上のすべてのカスタムフィールド定義を取得します。ドロップダウン/リスト形式のフィールドの場合は、ID とともに使用可能なオプションも返します。

{
  name: 'get_board_custom_fields',
  arguments: {
    boardId?: string  // Optional: ID of the board (uses default if not provided)
  }
}

戻り値: 次の情報を含むカスタムフィールド定義の配列です。

  • フィールド ID、名前、タイプ(text、number、checkbox、date、list)
  • list タイプのフィールドの場合:ID 付きの使用可能なオプション(値を設定する際にこれらの ID を使用します)
update_card_custom_field

カードのカスタムフィールド値を設定またはクリアします。

{
  name: 'update_card_custom_field',
  arguments: {
    cardId: string,       // ID of the card to update
    customFieldId: string,// ID of the custom field definition
    type: string,         // Field type: 'text' | 'number' | 'checkbox' | 'date' | 'list' | 'clear'
    value?: string        // The value to set (not needed when type is 'clear')
  }
}

タイプごとの値の形式:

  • text:任意の文字列
  • number:数値文字列(例:"42.5")
  • checkbox:"true" または "false"
  • date:ISO 8601 形式の文字列(例:"2025-12-31T00:00:00.000Z")
  • list:get_board_custom_fields から取得したオプション ID
  • clear:値を省略すると、フィールド値が削除されます

連携例

🎨 Ideogram MCP サーバーとの併用

Trello MCP サーバーは、AI を活用したビジュアルコンテンツ作成において、@flowluap/ideogram-mcp-server と相性抜群です。Ideogram で画像を生成し、Trello カードに直接添付できます\!

ワークフローの例
  1. Ideogram で画像を生成します:
// Using ideogram-mcp-server
{
  name: 'generate_image',
  arguments: {
    prompt: "A futuristic dashboard design with neon accents",
    aspect_ratio: "16:9"
  }
}
// Returns: { image_url: "https://..." }
  1. 生成した画像を Trello カードに添付します:
// Using trello-mcp-server
{
  name: 'attach_image_to_card',
  arguments: {
    cardId: "your-card-id",
    imageUrl: "https://...", // URL from Ideogram
    name: "Dashboard Mockup v1"
  }
}
両方のサーバーをセットアップする

両方のサーバーを Claude Desktop の設定に追加します。起動を最速にするには、bunx を使用してください。

{
  "mcpServers": {
    "trello": {
      "command": "bunx",
      "args": ["@delorenj/mcp-server-trello"],
   "env": {
        "TRELLO_API_KEY": "your-trello-api-key",
        "TRELLO_TOKEN": "your-trello-token"
      }
    },
    "ideogram": {
      "command": "bunx",
      "args": ["@flowluap/ideogram-mcp-server"],
      "env": {
        "IDEOGRAM_API_KEY": "your-ideogram-api-key"
      }
    }
  }
}

Claude 内でビジュアルコンテンツをシームレスに作成し、Trello で整理できるようになります\!

レート制限

このサーバーは、Trello の API 制限に準拠するため、トークンバケットアルゴリズムによるレート制限を実装しています。

  • API キーごとに 10 秒あたり 300 リクエスト
  • トークンごとに 10 秒あたり 100 リクエスト

レート制限は自動的に処理され、上限に達した場合、リクエストはキューに登録されます。

エラー処理

このサーバーは、さまざまな状況に応じて詳細なエラーメッセージを提供します。

  • 無効な入力パラメーター
  • レート制限超過
  • API 認証エラー
  • ネットワークの問題
  • 無効なボード/リスト/カード ID

開発

前提条件
  • Bun(v1.0.0 以上)
セットアップ
  1. リポジトリをクローンします
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello
  1. 依存関係をインストールします
bun install
  1. プロジェクトをビルドします
bun run build

テストの実行

テストを実行するには、次のコマンドを実行します。

bun test

評価の実行

評価パッケージは MCP クライアントを読み込み、その後 index.ts ファイルを実行するため、テストの間に再ビルドする必要はありません。bunx コマンドの前に環境変数を付けることで、環境変数を読み込めます。ドキュメントの全文はこちらをご覧ください。

OPENAI_API_KEY=your-key bunx mcp-eval src/evals/evals.ts src/index.ts

コントリビューション

コントリビューションを歓迎します!

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。