Trello MCP Server
Trello MCP
Verbinde Claude (Desktop/Cowork und Claude Code) mit einem Trello-Board.
Das Board wird durch board_id in Ihrer Konfiguration ausgewählt – nichts über ein bestimmtes Board ist fest codiert.
~/mcp-servers/trello-mcp/
trello_mcp.py the server — no credentials inside, safe to share
requirements.txt mcp==1.27.2 (pinned, see below)
.venv/ dedicated Python 3.12 environment
~/.config/trello-mcp/config.json credentials (chmod 600, never shared)Registriert in beiden:
~/Library/Application Support/Claude/claude_desktop_config.json(Desktop/Cowork)~/.claude.json(Claude Code)
Beide verweisen auf den absoluten venv-Interpreter. Das ist wichtig – siehe unten.
Warum es sich jeden Morgen getrennt hat
Die alte Konfiguration startete den Server mit dem bloßen Befehl python3. Es gibt vier
python3-Binärdateien auf diesem Mac und nur eine hat das mcp-Paket:
Interpreter | Version |
|
| 3.9.6 | nein |
| 3.9.6 | nein |
| 3.9.6 | nein |
| 3.12.7 | ja |
Welche python3 bedeutet, hängt vom PATH des Prozesses ab, der die App gestartet hat.
Gestartet vom Finder oder beim Anmelden, erbt die App den minimalen launchd-PATH
(/usr/bin:/bin:/usr/sbin:/sbin) und erhält Python 3.9 → ModuleNotFoundError: No module named 'mcp' → „Trello MCP konnte nicht verbunden werden.“ Gestartet von einem Terminal,
erbt sie den Shell-PATH, in dem Anaconda zuerst kommt → funktioniert. Daher: die meiste Zeit kaputt,
bei manuellem Test in Ordnung.
Reproduzieren Sie den alten Fehler und die Behebung:
env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin python3 "$HOME/Claude/Projects/Daily Trello/trello_mcp.py" # ModuleNotFoundError
env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin ~/mcp-servers/trello-mcp/.venv/bin/python3 -c "import mcp; print('ok')" # okDen Interpreter mit absolutem Pfad zu benennen bedeutet, dass überhaupt keine PATH-Suche stattfindet. Die App
startet eine bekannte Binärdatei, die ein bekanntes Paketverzeichnis findet. Gleiches Ergebnis um 7 Uhr morgens
wie um 19 Uhr abends.
Related MCP server: trello-mcp-server
Was ein venv eigentlich ist (und wogegen es nicht schützt)
Python sucht nach installierten Paketen in einem Verzeichnis, das an den spezifischen laufenden Interpreter gebunden ist.
Vier Interpreter = vier separate Paketverzeichnisse; mcp wurde nur in eines installiert.
Ein venv erstellt ein privates, das nur zu diesem Server gehört.
Technisch: python3 -m venv .venv erstellt .venv/bin/python3 und eine pyvenv.cfg,
die die Basisinstallation aufzeichnet. Beim Start liest der Interpreter diese Datei und setzt
sys.prefix auf das venv, sodass import in .venv/lib/python3.12/site-packages auflöst.
Ehrliche Einschränkung: unter macOS verlinkt venv den Interpreter symbolisch, anstatt ihn zu kopieren,
und die Standardbibliothek wird weiterhin aus der Basisinstallation geladen:
.venv/bin/python3 -> /opt/anaconda3/bin/python3
stdlib = /opt/anaconda3/lib/python3.12Dieses venv hängt also immer noch davon ab, dass Anaconda installiert ist. Es isoliert Pakete, nicht den Interpreter.
Ereignis | Überlebt? |
Anaconda-Paketaktualisierungen ( | ja |
Anaconda 3.12.x-Punktupgrades | ja |
macOS-Updates | ja |
Jede | ja |
Shell/Profil-Änderungen | ja |
Deinstallation von Anaconda | nein – neu erstellen (unten) |
Anaconda lässt Python 3.12 fallen | nein – neu erstellen |
Verschieben/Umbenennen dieses Ordners | nein – Pfade sind absolut; beide Konfigurationen aktualisieren |
Nach einem dieser Punkte neu erstellen, ~15 Sekunden:
cd ~/mcp-servers/trello-mcp && rm -rf .venv
/path/to/any/python3.10+ -m venv .venv && ./.venv/bin/pip install -r requirements.txtWenn Sie jemals echte Unabhängigkeit von Anaconda wünschen, installieren Sie uv
und erstellen Sie das venv aus einem uv-verwalteten eigenständigen Python. Hier nicht gemacht, da es ein
neues Werkzeug auf dem Rechner hinzufügt.
Aktualisieren Sie mcp nicht blind
requirements.txt pinnt mcp==1.27.2. Das ist beabsichtigt: mcp 2.0.0 hat die
@app.list_tools() / @app.call_tool()-Dekorator-API entfernt, auf der dieser Server basiert. Die Installation
der neuesten Version zerbricht den Server sofort mit
AttributeError: 'Server' object has no attribute 'list_tools' – was genau wie der Verbindungsfehler aussieht,
den dieses gesamte Setup beheben sollte. Aktualisieren Sie nur zusammen mit dem Umschreiben der Handler für die neue API.
Wie die Anmeldedatendatei funktioniert
~/.config/trello-mcp/config.json:
{ "api_key": "...", "token": "...", "board_id": "676f0bfc11723d27f716291d" }Nichts gehostet, kein externer Dienst – eine gewöhnliche JSON-Datei auf dieser Festplatte. Zwei Dinge machen sie „geheim“:
Sie befindet sich außerhalb des Codes, sodass das Kopieren oder Veröffentlichen von
trello_mcp.pykeine Anmeldedaten mit sich bringt.chmod 600– nur dieses macOS-Benutzerkonto kann sie lesen.
Der Server liest sie beim Start und hält die Werte im Speicher. Um den Server zu teilen, senden Sie
trello_mcp.py; der Empfänger erstellt seine eigene Konfiguration mit seinem eigenen Trello-Schlüssel. Der Wert
ist keine Verschlüsselung – es geht darum, das, was Sie teilen, von dem zu trennen, was Sie nicht teilen.
Das Trello-Token hat kein Ablaufdatum (dateExpires: null) und die Bereiche Mitglied/Board/Organisation
Lesen+Schreiben. Anders als das OAuth-Refresh-Token des Google Drive-Servers benötigt es keine regelmäßige
Neuautorisierung.
Listen sind nie fest codiert
Jede Liste wird zur Laufzeit anhand des Namens gegen die Live-API aufgelöst, sodass eine in Trello hinzugefügte Liste (eine neue Klasse pro Quartal) sofort funktioniert – keine Codeänderung, kein Neustart. Ein 60-Sekunden-Cache hält das günstig; ein Cache-Fehler erzwingt einen erneuten Abruf, bevor „nicht gefunden“ gemeldet wird, sodass eine vor Sekunden erstellte Liste immer noch aufgelöst wird.
Gemessen auf diesem Board: Ein Listenabruf dauert ~307 ms. Ohne den Cache zahlte jeder Tool-Aufruf dafür (get_cards kostet zwei Roundtrips), sodass eine Planungssitzung mit 12 Karten ~3,7 s allein für das erneute Abrufen verbrauchte. Damit deckt ein Abruf den Burst ab.
Die einzigen Listennamen im Code sind die drei Workflow-Anker am Anfang von
trello_mcp.py:
LIST_TODO = "To Do Today"
LIST_WORKING = "Working on"
LIST_DONE = "Done Today"Sie sind benannt, weil die tägliche Routine in Bezug auf sie definiert ist (sort_todo_today
kann nicht angewiesen werden, „die Liste zu sortieren, die heute bedeutet“, ohne einen Namen). Benennen Sie eine in Trello um →
ändern Sie sie in diesem Block und in der Daily Trello CLAUDE.md. rename_list warnt Sie, wenn Sie einen Anker umbenennen.
Tools (37)
Lesen — get_all_lists, get_cards (enthält Anhänge, Labels, Fälligkeitsdatum, Position),
get_card (volle Details), search_cards, get_board_summary
Karten — create_card (mit Anhängen/Labels/Position), update_card, move_card,
complete_card, archive_card, unarchive_card, copy_card, set_card_position,
set_card_cover, sort_todo_today
Anhänge — get_attachments, add_attachment (URL oder eine lokale Datei hochladen),
view_attachment (gibt Bilder zurück, die anzeigbar sind – so liest Claude einen Screenshot auf einer
Karte), delete_attachment
Labels — get_labels, add_label_to_card, remove_label_from_card, create_label
Kommentare — get_comments, add_comment
Listen — create_list, rename_list, archive_list, move_list
Checklisten — get_checklists, create_checklist, add_checklist_item,
complete_checklist_item, uncheck_checklist_item, rename_checklist_item,
delete_checklist_item, delete_checklist
Bekannte Board-Einstellung: Kommentieren ist deaktiviert
add_comment gibt einen 401 zurück, weil das Board selbst das Kommentieren deaktiviert hat
(prefs.comments: "disabled") – kein Token- oder Code-Problem. So aktivieren: Trello → Board-Menü
(···) → Einstellungen → Kommentarberechtigungen → Board-Mitglieder. Das Tool erkennt dies und erklärt es, anstatt einen rohen 401 anzuzeigen.
Hinweis zu search_cards
Der Suchindex von Trello hinkt ein paar Sekunden hinterher. Eine vor wenigen Augenblicken erstellte Karte wird möglicherweise noch nicht angezeigt;
verwenden Sie stattdessen get_cards für ihre Liste.
Fehlerbehebung
# 1. Does the interpreter still work?
~/mcp-servers/trello-mcp/.venv/bin/python3 -c "import mcp; print('ok')"
# 2. Does the server start and reach Trello? (Ctrl-C to exit; silence = healthy)
~/mcp-servers/trello-mcp/.venv/bin/python3 ~/mcp-servers/trello-mcp/trello_mcp.py
# 3. Are the configs still pointing at the venv?
grep -A3 '"trello"' ~/.claude.json "$HOME/Library/Application Support/Claude/claude_desktop_config.json"Nachdem Sie eine der Konfigurationen geändert haben, beenden und öffnen Sie die App vollständig neu – MCP-Server werden nur beim Start gestartet.
Ältere Kopien dieses Skripts befinden sich noch unter ~/Claude/Projects/Daily Trello/trello_mcp.py
und ~/Downloads/trello_mcp.py. Nichts verweist auf sie; sie enthalten noch die eingebetteten
Anmeldedaten, teilen Sie diese beiden also nicht.
Für den Lebenslauf / das Portfolio
Hier aufbewahrt, damit eine zukünftige Lebenslauf-Sitzung die ehrliche Version hat, anstatt sie zu rekonstruieren.
Die erzählenswerte Geschichte ist der Fehler, nicht die Funktion. Dieser Server fiel
wochenlang jeden Morgen aus und funktionierte jedes Mal, wenn er von Hand getestet wurde – was
die ganze Diagnose ist: Der Code war in Ordnung und die Umgebung nicht. Die Konfiguration
nannte python3; eine beim Anmelden gestartete App erbt einen minimalen PATH
(/usr/bin:/bin:/usr/sbin:/sbin), in dem dies zu einem System-Python mit
keinem der erforderlichen Pakete aufgelöst wird, während ein Terminal einen PATH erbt, in dem es
korrekt aufgelöst wird. Das Testen von einer Shell aus war der eine Fall, der garantiert bestanden wurde.
Was ich tatsächlich getan habe: die Fehlersuche geleitet. Meine waren die Entscheidungen –
„es funktioniert, wenn ich es teste“ als Beweis über den Test zu behandeln, anstatt als
Beruhigung über den Code, und einen Test zu verlangen, der die tatsächlichen Startbedingungen reproduziert (bereinigter
PATH) anstelle der bequemen.
Was daraus hervorging, wird jetzt auf jede Integration angewendet: absolute Interpreter-Pfade in Konfigurationen, eine dedizierte Umgebung pro Projekt, jede Abhängigkeit gepinnt, und ein Diagnose-Skript, das jeden bekannten Fehlermodus überprüft und repariert, was es kann.
Lebenslauf-gerechter Aufzählungspunkt:
Leitete die Entwicklung von drei Automatisierungsintegrationen, die macOS mit Cloud-Diensten verbinden, die unbeaufsichtigt in geplanten Jobs ausgeführt werden. Ursachenanalyse eines wiederkehrenden täglichen Fehlers durch
PATH-Auflösung, die sich zwischen Shell- und App-Startkontexten unterscheidet, und etablierte Konventionen für absolute Pfade und gepinnte Abhängigkeiten, die diesen in allen drei beseitigten.
Vollständige Fallstudie: https://zeno-blade-creator.github.io/projects/personal-integrations.html
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to manage Trello boards, lists, cards, comments, checklists, labels, and members through natural language.16
- Alicense-qualityDmaintenanceEnables Claude to manage Trello boards, lists, and cards through natural language, using tools like list_boards, add_card, and move_card.MIT
- Alicense-qualityCmaintenanceEnables Claude to manage Trello boards, lists, and cards through natural language.82ISC
- Alicense-qualityCmaintenanceEnables managing Trello boards, lists, cards, labels, checklists, members, and attachments through natural language via Claude Desktop.12MIT
Related MCP Connectors
Manage projects, tasks, time tracking, and team collaboration through natural language.
Connect AI to your Attio CRM. Manage contacts, companies, deals, and sales pipelines. Create tasks…
Streamline your Attio workflows using natural language to search, create, update, and organize com…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zeno-blade-creator/trello-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server