Trello MCP サーバー
Trello API と連携するためのツールを提供するモデルコンテキストプロトコル (MCP) サーバー。汎用 MCP サーバーテンプレートに基づいて構築されています。
特徴
- Trello 統合: Trello ボード、リスト、カードなどへの完全なアクセス
- 包括的なAPIカバレッジ:すべての主要なTrello操作をサポート
- モジュラーアーキテクチャ:明確に定義された構造による関心事の明確な分離
- 型安全性: Trello オブジェクトの適切な型付けによる完全な TypeScript サポート
- エラー処理: コードベース全体にわたる堅牢なエラー管理
プロジェクト構造
trello-mcp-server/
├── src/
│ ├── services/ # Service classes for Trello API interactions
│ │ ├── base-service.ts # Abstract base service with common functionality
│ │ ├── trello-service.ts # Core Trello API service
│ │ ├── board-service.ts # Service for Trello boards
│ │ ├── list-service.ts # Service for Trello lists
│ │ ├── card-service.ts # Service for Trello cards
│ │ ├── member-service.ts # Service for Trello members
│ │ ├── label-service.ts # Service for Trello labels
│ │ ├── checklist-service.ts # Service for Trello checklists
│ │ └── service-factory.ts # Factory for creating service instances
│ ├── tools/ # MCP tool definitions and handlers
│ │ ├── board-tools.ts # Board tool definitions
│ │ ├── board-tool-handlers.ts # Board tool handlers
│ │ ├── list-tools.ts # List tool definitions
│ │ ├── list-tool-handlers.ts # List tool handlers
│ │ ├── card-tools.ts # Card tool definitions
│ │ ├── card-tool-handlers.ts # Card tool handlers
│ │ ├── member-tools.ts # Member tool definitions
│ │ ├── member-tool-handlers.ts # Member tool handlers
│ │ ├── label-tools.ts # Label tool definitions
│ │ ├── label-tool-handlers.ts # Label tool handlers
│ │ ├── checklist-tools.ts # Checklist tool definitions
│ │ ├── checklist-tool-handlers.ts # Checklist tool handlers
│ │ ├── trello-tools.ts # Combined tool definitions
│ │ └── trello-tool-handlers.ts # Combined tool handlers
│ ├── types/ # TypeScript type definitions
│ │ └── trello-types.ts # Trello type definitions
│ ├── config.ts # Configuration management
│ └── index.ts # Main entry point
├── .env.example # Example environment variables
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation
はじめる
前提条件
- Node.js 18以上
- npmまたはyarn
- Trello APIキーとトークン
インストール
- このリポジトリをクローンします:
git clone https://github.com/yourusername/trello-mcp-server.git
cd trello-mcp-server
- 依存関係をインストールします:
.env.example
に基づいて.env
ファイルを作成します。- Trello API キーとトークンを使用して
.env
ファイルを編集します。TRELLO_API_KEY=your_trello_api_key
TRELLO_TOKEN=your_trello_token
これらはTrello 開発者ポータルから入手できます。
構築と実行
- プロジェクトをビルドします。
- サーバーを実行します。
利用可能なツール
サーバーは、すべての主要な Trello リソースと対話するためのツールを提供します。
ボードツール
get_boards
- 認証されたユーザーのすべてのボードを取得しますget_board
- IDで特定のボードを取得するcreate_board
- 新しいボードを作成するupdate_board
- 既存のボードを更新するdelete_board
- ボードを削除するget_board_lists
- ボード上のすべてのリストを取得するget_board_members
- ボードのメンバー全員を取得するget_board_labels
- ボード上のすべてのラベルを取得するclose_board
- ボードを閉じる(アーカイブする)reopen_board
- 閉じたボードを再度開く
リストツール
get_list
- IDで特定のリストを取得するcreate_list
- ボードに新しいリストを作成するupdate_list
- 既存のリストを更新するarchive_list
- リストをアーカイブするunarchive_list
- リストをアーカイブ解除するmove_list_to_board
- リストを別のボードに移動するget_cards_in_list
- リスト内のすべてのカードを取得するarchive_all_cards
- リスト内のすべてのカードをアーカイブするmove_all_cards
- リスト内のすべてのカードを別のリストに移動するupdate_list_position
- ボード上のリストの位置を更新するupdate_list_name
- リストの名前を更新するsubscribe_to_list
- リストを購読する
カードツール
get_card
- IDで特定のカードを取得するcreate_card
- 新しいカードを作成するupdate_card
- 既存のカードを更新するdelete_card
- カードを削除するarchive_card
- カードをアーカイブするunarchive_card
- カードをアーカイブ解除するmove_card_to_list
- カードを別のリストに移動するadd_comment
- カードにコメントを追加するget_comments
- カードのコメントを取得するadd_attachment
- カードに添付ファイルを追加するget_attachments
- カードの添付ファイルを取得するdelete_attachment
- カードから添付ファイルを削除するadd_member
- カードにメンバーを追加するremove_member
- カードからメンバーを削除するadd_label
- カードにラベルを追加するremove_label
- カードからラベルを削除するset_due_date
- カードの期限を設定するset_due_complete
- カードの期限を完了または未完了としてマークする
メンバーツール
get_me
- 認証されたメンバー(現在のユーザー)を取得するget_member
- IDまたはユーザー名で特定のメンバーを取得するget_member_boards
- メンバーが所属するボードを取得するget_member_cards
- メンバーに割り当てられたカードを取得するget_boards_invited
- メンバーが招待されたボードを取得するget_member_organizations
- メンバーが所属する組織を取得するget_notifications
- 認証されたメンバーの通知を取得するupdate_me
- 認証されたメンバーの情報を更新するget_avatar
- 認証されたメンバーのアバターを取得するsearch_members
- 名前でメンバーを検索get_board_members
- ボードのメンバーを取得するget_organization_members
- 組織のメンバーを取得するget_card_members
- カードに割り当てられたメンバーを取得する
ラベルツール
get_label
- IDで特定のラベルを取得するcreate_label
- ボードに新しいラベルを作成するupdate_label
- 既存のラベルを更新するdelete_label
- ラベルを削除するget_board_labels
- ボード上のすべてのラベルを取得するupdate_label_name
- ラベルの名前を更新するupdate_label_color
- ラベルの色を更新するcreate_label_on_card
- カードに直接新しいラベルを作成しますget_card_labels
- カード上のすべてのラベルを取得するadd_label_to_card
- カードにラベルを追加するremove_label_from_card
- カードからラベルを削除する
チェックリストツール
get_checklist
- IDで特定のチェックリストを取得するcreate_checklist
- カードに新しいチェックリストを作成するupdate_checklist
- 既存のチェックリストを更新するdelete_checklist
- チェックリストを削除するget_checkitems
- チェックリストのすべてのチェック項目を取得するcreate_checkitem
- チェックリストに新しいチェック項目を作成するget_checkitem
- チェックリスト上の特定のチェック項目を取得するupdate_checkitem
- チェックリストのチェック項目を更新するdelete_checkitem
- チェックリストからチェック項目を削除するupdate_checklist_name
- チェックリストの名前を更新するupdate_checklist_position
- カード上のチェックリストの位置を更新するget_checklist_board
- チェックリストがあるボードを取得するget_checklist_card
- チェックリストが載っているカードを取得するupdate_checkitem_state_on_card
- カード上のチェックアイテムの状態を更新する
構成
サーバーはsrc/config.ts
内の集中設定システムを使用します。設定は以下の方法で行うことができます。
- 環境変数
- コマンドライン引数(
--env KEY=VALUE
を使用) - コード内のデフォルト値
必要な環境変数:
TRELLO_API_KEY
- Trello APIキーTRELLO_TOKEN
- Trello APIトークン
エラー処理
サーバーには包括的なエラー処理が含まれています。
- レート制限をサポートするサービスレベルのエラー処理
- 適切なエラーメッセージによるツールレベルのエラー処理
- MCPプロトコルエラー処理
- Trello API エラー処理
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。