MCP-Server Trello
Ein Model Context Protocol (MCP)-Server, der Tools für die Interaktion mit Trello-Boards bereitstellt. Dieser Server ermöglicht die nahtlose Integration mit der Trello-API und übernimmt automatisch Ratenbegrenzung, Typsicherheit und Fehlerbehandlung.
Änderungsprotokoll
0.3.0
Funktionen zur Board- und Arbeitsbereichsverwaltung hinzugefügt:
list_boards– Listet alle Boards auf, auf die der Benutzer Zugriff hatset_active_board- Legt das aktive Board für zukünftige Operationen festlist_workspaces– Listet alle Arbeitsbereiche auf, auf die der Benutzer Zugriff hatset_active_workspace- Aktiven Arbeitsbereich für zukünftige Operationen festlegenlist_boards_in_workspace– Listet alle Boards in einem bestimmten Arbeitsbereich aufget_active_board_info- Informationen zum aktuell aktiven Board abrufen
Permanenter Konfigurationsspeicher hinzugefügt, um aktives Board/Arbeitsbereich zu speichern
Verbesserte Fehlerbehandlung für alle neuen Operationen
0.2.1
Detaillierte JSDoc-Kommentare zu Rate-Limiter-Funktionen hinzugefügt
Verbesserte Fehlerbehandlung für die Bildanhangfunktion
Aktualisierte Dokumentation für das Tool „attach_image_to_card“
0.2.0
Tool
attach_image_to_cardhinzugefügt, um Bilder von URLs an Karten anzuhängenDocker-Unterstützung mit mehrstufigem Build hinzugefügt
Verbesserte Sicherheit durch Verschieben von Umgebungsvariablen nach
.envDocker Compose-Konfiguration hinzugefügt
.env.templatefür einfachere Einrichtung hinzugefügt
0.1.1
move_cardTool zum Verschieben von Karten zwischen Listen hinzugefügtVerbesserte Dokumentation
0.1.0
Erstveröffentlichung mit grundlegenden Trello-Board-Verwaltungsfunktionen
Related MCP server: Claude MCP Trello
Merkmale
Vollständige Trello-Board-Integration : Interagieren Sie mit Karten, Listen und Board-Aktivitäten
Integrierte Ratenbegrenzung : Respektiert die API-Begrenzungen von Trello (300 Anfragen/10 s pro API-Schlüssel, 100 Anfragen/10 s pro Token)
Typsichere Implementierung : Geschrieben in TypeScript mit umfassenden Typdefinitionen
Eingabevalidierung : Robuste Validierung für alle API-Eingaben
Fehlerbehandlung : Angenehme Fehlerbehandlung mit informativen Meldungen
Dynamische Boardauswahl : Wechseln Sie zwischen Boards und Arbeitsbereichen ohne Neustart
Installation
Docker-Installation (empfohlen)
Der einfachste Weg, den Server auszuführen, ist die Verwendung von Docker:
Klonen Sie das Repository:
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trelloKopieren Sie die Umgebungsvorlage und geben Sie Ihre Trello-Anmeldeinformationen ein:
cp .env.template .envErstellen und Ausführen mit Docker Compose:
docker compose up --buildInstallation über Smithery
So installieren Sie Trello Server für Claude Desktop automatisch über Smithery :
npx -y @smithery/cli install @modelcontextprotocol/mcp-server-trello --client claudeManuelle Installation
npm install @delorenj/mcp-server-trelloKonfiguration
Umgebungsvariablen
Der Server kann mithilfe von Umgebungsvariablen konfiguriert werden. Erstellen Sie im Stammverzeichnis eine .env Datei mit den folgenden Variablen:
# 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-idSie können diese Werte erhalten von:
API-Schlüssel: https://trello.com/app-key
Token: Mit Ihrem API-Schlüssel generieren
Board-ID: In der Board-URL zu finden (z. B. https://trello.com/b/BOARD\_ID/board-name )
Arbeitsbereichs-ID: Gefunden in den Arbeitsbereichseinstellungen oder mithilfe des Tools
list_workspaces
Board- und Arbeitsbereichsverwaltung
Ab Version 0.3.0 unterstützt der MCP-Server die dynamische Auswahl von Boards und Arbeitsbereichen:
Die
TRELLO_BOARD_IDin Ihrer.envDatei wird als anfängliche Board-ID verwendet, wenn der Server startetSie können das aktive Board jederzeit mit dem Tool
set_active_boardändernDas ausgewählte Board bleibt zwischen Serverneustarts bestehen (gespeichert in
~/.trello-mcp/config.json)Ebenso können Sie einen aktiven Arbeitsbereich mit
set_active_workspacefestlegen und beibehalten.
Auf diese Weise können Sie mit mehreren Boards und Arbeitsbereichen arbeiten, ohne den Server neu zu starten oder Umgebungsvariablen zu ändern.
Beispiel-Workflow
Beginnen Sie mit der Auflistung der verfügbaren Boards:
{
name: 'list_boards',
arguments: {}
}Legen Sie Ihr aktives Board fest:
{
name: 'set_active_board',
arguments: {
boardId: "abc123" // ID from list_boards response
}
}Listen Sie bei Bedarf Arbeitsbereiche auf:
{
name: 'list_workspaces',
arguments: {}
}Legen Sie bei Bedarf den aktiven Arbeitsbereich fest:
{
name: 'set_active_workspace',
arguments: {
workspaceId: "xyz789" // ID from list_workspaces response
}
}Überprüfen Sie die aktuellen aktiven Boardinformationen:
{
name: 'get_active_board_info',
arguments: {}
}Verfügbare Tools
Karten nach Listen-ID abrufen
Holen Sie sich alle Karten aus einer bestimmten Liste.
{
name: 'get_cards_by_list_id',
arguments: {
listId: string // ID of the Trello list
}
}Listen abrufen
Rufen Sie alle Listen vom aktuell aktiven Board ab.
{
name: 'get_lists',
arguments: {}
}get_recent_activity
Rufen Sie die aktuelle Aktivität auf dem derzeit aktiven Board ab.
{
name: 'get_recent_activity',
arguments: {
limit?: number // Optional: Number of activities to fetch (default: 10)
}
}Karte zur Liste hinzufügen
Fügen Sie einer angegebenen Liste eine neue Karte hinzu.
{
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
}
}Kartendetails aktualisieren
Aktualisieren Sie die Details einer vorhandenen Karte.
{
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
}
}Archivkarte
Senden Sie eine Karte an das Archiv.
{
name: 'archive_card',
arguments: {
cardId: string // ID of the card to archive
}
}Liste zum Board hinzufügen
Fügen Sie dem aktuell aktiven Board eine neue Liste hinzu.
{
name: 'add_list_to_board',
arguments: {
name: string // Name of the new list
}
}Archivliste
Senden Sie eine Liste an das Archiv.
{
name: 'archive_list',
arguments: {
listId: string // ID of the list to archive
}
}hol_meine_Karten
Alle dem aktuellen Benutzer zugewiesenen Karten abrufen.
{
name: 'get_my_cards',
arguments: {}
}Karte verschieben
Verschieben Sie eine Karte in eine andere Liste.
{
name: 'move_card',
arguments: {
cardId: string, // ID of the card to move
listId: string // ID of the target list
}
}Bild an Karte anhängen
Fügen Sie einer Karte direkt von einer URL ein Bild hinzu.
{
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")
}
}list_boards
Listet alle Boards auf, auf die der Benutzer Zugriff hat.
{
name: 'list_boards',
arguments: {}
}setze_active_board
Legen Sie das aktive Board für zukünftige Vorgänge fest.
{
name: 'set_active_board',
arguments: {
boardId: string // ID of the board to set as active
}
}Liste_Arbeitsbereiche
Listen Sie alle Arbeitsbereiche auf, auf die der Benutzer Zugriff hat.
{
name: 'list_workspaces',
arguments: {}
}Aktiven Arbeitsbereich festlegen
Legen Sie den aktiven Arbeitsbereich für zukünftige Vorgänge fest.
{
name: 'set_active_workspace',
arguments: {
workspaceId: string // ID of the workspace to set as active
}
}Liste_Boards_im_Arbeitsbereich
Listet alle Boards in einem bestimmten Arbeitsbereich auf.
{
name: 'list_boards_in_workspace',
arguments: {
workspaceId: string // ID of the workspace to list boards from
}
}Informationen zum aktiven Board abrufen
Informieren Sie sich über das aktuell aktive Board.
{
name: 'get_active_board_info',
arguments: {}
}Ratenbegrenzung
Der Server implementiert einen Token-Bucket-Algorithmus zur Ratenbegrenzung, um die API-Begrenzungen von Trello einzuhalten:
300 Anfragen pro 10 Sekunden pro API-Schlüssel
100 Anfragen pro 10 Sekunden pro Token
Die Ratenbegrenzung wird automatisch durchgeführt und Anfragen werden in die Warteschlange gestellt, wenn die Begrenzungen erreicht sind.
Fehlerbehandlung
Der Server liefert detaillierte Fehlermeldungen für verschiedene Szenarien:
Ungültige Eingabeparameter
Ratenlimit überschritten
API-Authentifizierungsfehler
Netzwerkprobleme
Ungültige Board-/Listen-/Karten-IDs
Entwicklung
Voraussetzungen
Node.js 16 oder höher
npm oder yarn
Aufstellen
Klonen Sie das Repository
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trelloAbhängigkeiten installieren
npm installErstellen des Projekts
npm run buildBeitragen
Beiträge sind willkommen!
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .
Danksagung
Erstellt mit dem Model Context Protocol SDK
Verwendet die Trello REST API