MCP サーバー Trello
Trelloボードを操作するためのツールを提供するModel Context Protocol(MCP)サーバー。このサーバーは、レート制限、型安全性、エラー処理を自動的に処理しながら、Trello APIとのシームレスな統合を実現します。
変更履歴
0.3.0
ボードとワークスペースの管理機能が追加されました:
list_boards- ユーザーがアクセスできるすべてのボードを一覧表示しますset_active_board- 今後の操作のためにアクティブなボードを設定するlist_workspaces- ユーザーがアクセスできるすべてのワークスペースを一覧表示しますset_active_workspace- 将来の操作のためにアクティブなワークスペースを設定するlist_boards_in_workspace- 特定のワークスペース内のすべてのボードを一覧表示しますget_active_board_info- 現在アクティブなボードに関する情報を取得します
アクティブなボード/ワークスペースを記憶するための永続的な構成ストレージを追加しました
すべての新規操作のエラー処理の改善
0.2.1
レート制限機能に詳細な JSDoc コメントを追加しました
画像添付機能のエラー処理の改善
attach_image_to_card ツールのドキュメントを更新しました
0.2.0
URL からカードに画像を添付するための
attach_image_to_cardツールを追加しましたマルチステージビルドによるDockerサポートを追加
環境変数を
.envに移動することでセキュリティが強化されましたDocker Compose 構成を追加しました
セットアップを簡単にするために
.env.templateを追加しました
0.1.1
リスト間でカードを移動するための
move_cardツールを追加しましたドキュメントの改善
0.1.0
基本的なTrelloボード管理機能を備えた初期リリース
Related MCP server: Claude MCP Trello
特徴
Trelloボードとの完全な統合:カード、リスト、ボードアクティビティを操作
組み込みのレート制限: Trello の API 制限 (API キーあたり 300 リクエスト/10 秒、トークンあたり 100 リクエスト/10 秒) を尊重
型安全な実装:包括的な型定義を備えたTypeScriptで記述
入力検証: すべてのAPI入力に対する堅牢な検証
エラー処理: 情報メッセージによる適切なエラー処理
ダイナミックボード選択: 再起動せずにボードとワークスペースを切り替える
インストール
Docker のインストール (推奨)
サーバーを実行する最も簡単な方法は Docker を使用することです。
リポジトリをクローンします。
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello環境テンプレートをコピーし、Trello の資格情報を入力します。
cp .env.template .envDocker Compose でビルドして実行します。
docker compose up --buildSmithery経由でインストール
Smithery経由で Claude Desktop 用の Trello Server を自動的にインストールするには:
npx -y @smithery/cli install @modelcontextprotocol/mcp-server-trello --client claude手動インストール
npm install @delorenj/mcp-server-trello構成
環境変数
サーバーは環境変数を使って設定できます。ルートディレクトリに以下の変数を含む.envファイルを作成してください。
# Required: Your Trello API credentials
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token
# Required: Initial 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これらの値は以下から取得できます。
APIキー: https://trello.com/app-key
トークン: APIキーを使用して生成します
ボード ID: ボード URL に記載されています (例: https://trello.com/b/BOARD\_ID/board-name )
ワークスペースID: ワークスペース設定または
list_workspacesツールで確認できます
ボードとワークスペースの管理
バージョン 0.3.0 以降、MCP サーバーは動的なボードとワークスペースの選択をサポートします。
.envファイル内のTRELLO_BOARD_IDは、サーバーの起動時に初期ボードIDとして使用されます。set_active_boardツールを使用すると、いつでもアクティブボードを変更できます。選択されたボードはサーバーの再起動後も保持されます(
~/.trello-mcp/config.jsonに保存されます)。同様に、
set_active_workspaceを使用してアクティブなワークスペースを設定して保持することができます。
これにより、サーバーを再起動したり環境変数を変更したりせずに、複数のボードとワークスペースを操作できるようになります。
ワークフローの例
利用可能なボードをリストすることから始めます。
{
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: {}
}利用可能なツール
リストIDでカードを取得する
特定のリストからすべてのカードを取得します。
{
name: 'get_cards_by_list_id',
arguments: {
listId: string // ID of the Trello list
}
}get_lists
現在アクティブなボードからすべてのリストを取得します。
{
name: 'get_lists',
arguments: {}
}最近のアクティビティを取得する
現在アクティブなボード上の最近のアクティビティを取得します。
{
name: 'get_recent_activity',
arguments: {
limit?: number // Optional: Number of activities to fetch (default: 10)
}
}リストにカードを追加
指定されたリストに新しいカードを追加します。
{
name: 'add_card_to_list',
arguments: {
listId: string, // ID of the list to add the card to
name: string, // Name of the card
description?: string, // Optional: Description of the card
dueDate?: string, // Optional: Due date (ISO 8601 format)
labels?: string[] // Optional: Array of label IDs
}
}カード詳細の更新
既存のカード詳細を更新します。
{
name: 'update_card_details',
arguments: {
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)
labels?: string[] // Optional: New array of label IDs
}
}アーカイブカード
カードをアーカイブに送信します。
{
name: 'archive_card',
arguments: {
cardId: string // ID of the card to archive
}
}ボードにリストを追加
現在アクティブなボードに新しいリストを追加します。
{
name: 'add_list_to_board',
arguments: {
name: string // Name of the new list
}
}アーカイブリスト
リストをアーカイブに送信します。
{
name: 'archive_list',
arguments: {
listId: string // ID of the list to archive
}
}カードを取得する
現在のユーザーに割り当てられているすべてのカードを取得します。
{
name: 'get_my_cards',
arguments: {}
}移動カード
カードを別のリストに移動します。
{
name: 'move_card',
arguments: {
cardId: string, // ID of the card to move
listId: string // ID of the target list
}
}カードに画像を添付する
URL から直接カードを添付します。
{
name: 'attach_image_to_card',
arguments: {
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")
}
}リストボード
ユーザーがアクセスできるすべてのボードを一覧表示します。
{
name: 'list_boards',
arguments: {}
}アクティブボードを設定する
今後の操作のためにアクティブ ボードを設定します。
{
name: 'set_active_board',
arguments: {
boardId: string // ID of the board to set as active
}
}ワークスペースの一覧
ユーザーがアクセスできるすべてのワークスペースを一覧表示します。
{
name: 'list_workspaces',
arguments: {}
}アクティブワークスペースを設定する
今後の操作のためにアクティブなワークスペースを設定します。
{
name: 'set_active_workspace',
arguments: {
workspaceId: string // ID of the workspace to set as active
}
}ワークスペース内のボード一覧
特定のワークスペース内のすべてのボードを一覧表示します。
{
name: 'list_boards_in_workspace',
arguments: {
workspaceId: string // ID of the workspace to list boards from
}
}アクティブボード情報を取得する
現在アクティブなボードに関する情報を取得します。
{
name: 'get_active_board_info',
arguments: {}
}レート制限
サーバーは、Trello の API 制限に準拠するために、レート制限用のトークン バケット アルゴリズムを実装します。
APIキーごとに10秒あたり300リクエスト
トークンごとに10秒あたり100リクエスト
レート制限は自動的に処理され、制限に達した場合、リクエストはキューに入れられます。
エラー処理
サーバーは、さまざまなシナリオに対して詳細なエラー メッセージを提供します。
無効な入力パラメータ
レート制限を超えました
API認証エラー
ネットワークの問題
無効なボード/リスト/カードID
発達
前提条件
Node.js 16以上
npmまたはyarn
設定
リポジトリをクローンする
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello依存関係をインストールする
npm installプロジェクトを構築する
npm run build貢献
貢献を歓迎します!
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
謝辞
Trello REST APIを使用します