MCP Server Trello について
MCP Server Trello は、カード、リスト、チェックリスト、添付ファイル、コメント、カスタムフィールド、ワークスペースなど Trello ボードの操作を AI エージェントに提供する MCP サーバーです。受け入れ基準の抽出やレート制限の組み込みなど、ワークフロー向けのツールを備えています。
主な機能
- 01カード、リスト、コメント、添付ファイルの管理
- 02受け入れ基準(AC)チェックリストの抽出
- 03チェックリスト項目の検索と完了率の確認
- 04ボードとワークスペースの動的な切り替え
- 05ワークスペース単位のアクセス制限
- 06Trello API のレート制限への組み込み対応
活用シーン
- 01エージェントにカードの受け入れ基準を読み込ませ進捗を追跡
- 02複数のボードを切り替えてリストやカードを整理
- 03エージェントのアクセスを承認済みワークスペースに限定
MCP 対応
本プロジェクトは MCP サーバーとして、Trello のボード、カード、チェックリストの操作を約 57 のツールとして MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Server Trello
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 サーバーはボードを操作する複数の方法をサポートしています。
-
複数ボードのサポート:すべてのメソッドで、任意の
boardIdパラメーターを指定できるようになりました -TRELLO_BOARD_IDを省略し、各 API 呼び出しでboardIdを指定します - デフォルトとしてTRELLO_BOARD_IDを設定し、必要に応じてboardIdパラメーターで上書きします -
動的なボード選択:ワークスペース管理ツールを使用します -
.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 が設定されていないか空の場合、トークンがアクセスできるすべてのワークスペースを利用できます(デフォルトの動作)。
ワークフローの例
- まず、利用可能なボードを一覧表示します:
{
name: 'list_boards',
arguments: {}
}
- アクティブなボードを設定します:
{
name: 'set_active_board',
arguments: {
boardId: "abc123" // ID from list_boards response
}
}
- 必要に応じて、ワークスペースを一覧表示します:
{
name: 'list_workspaces',
arguments: {}
}
- 必要に応じて、アクティブなワークスペースを設定します:
{
name: 'set_active_workspace',
arguments: {
workspaceId: "xyz789" // ID from list_workspaces response
}
}
- 現在のアクティブなボード情報を確認します:
{
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から取得したオプション IDclear:値を省略すると、フィールド値が削除されます
連携例
🎨 Ideogram MCP サーバーとの併用
Trello MCP サーバーは、AI を活用したビジュアルコンテンツ作成において、@flowluap/ideogram-mcp-server と相性抜群です。Ideogram で画像を生成し、Trello カードに直接添付できます\!
ワークフローの例
- 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://..." }
- 生成した画像を 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 以上)
セットアップ
- リポジトリをクローンします
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello
- 依存関係をインストールします
bun install
- プロジェクトをビルドします
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 ファイルをご覧ください。
謝辞
- Model Context Protocol SDKを使用して構築
- Trello REST APIを使用
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。