fortis-trello-mcp
MCP server that lets Claude Desktop manage our Fortis robotics Trello board. Talk to Claude in plain english and it handles cards, assignments, labels, blocking, weekly recurring tasks, etc.
Setup
You need Node.js installed (v20+).
git clone git@github.com:nthankas/fortis-trello-mcp.git
cd fortis-trello-mcp
npm install
npm run build
Then you need three things from Trello:
- API Key — get it at https://trello.com/power-ups/admin (click "New", grab the API key)
- Token — on that same page, click "Token" next to your key and authorize it
- Board ID — open the board in a browser, the ID is in the URL:
trello.com/b/{THIS_PART}/...
Add this to your Claude Desktop config file (claude_desktop_config.json):
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - Mac:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"fortis-trello": {
"command": "node",
"args": ["/absolute/path/to/fortis-trello-mcp/dist/index.js"],
"env": {
"TRELLO_API_KEY": "your-api-key",
"TRELLO_TOKEN": "your-token",
"TRELLO_BOARD_ID": "your-board-id"
}
}
}
}
Replace the path in args with wherever you cloned the repo. Restart Claude Desktop.
What you can do
Just talk to Claude naturally. Some examples:
- "show me the board"
- "what's in the backlog?"
- "add a card called 'redesign motor mount' to This Sprint, assign NT and RC, label Chassis, due Friday"
- "move motor mount to In Progress"
- "mark motor mount as done"
- "block sensor calibration — waiting on IMU shipment"
- "unblock sensor calibration, put it back in This Sprint"
- "create this week's recurring cards"
- "search for anything about wiring"
- "archive old prototype test"
Card names are fuzzy matched so you don't have to type them exactly. Members are referenced by initials (NT, AP, CP, RC, CC) and labels by subsystem name (Simulation, Chassis, Arm, Embedded/Compute, Power/Electrical, Winch/Tether, Documentation, Procurement).
Tools
| Tool | What it does | |------|-------------| | get_board_overview | snapshot of all lists + card details for active lists | | get_cards_in_list | all cards in a specific list | | add_card | create a card with name, list, description, due date, members, labels | | move_card | move a card between lists | | complete_card | mark done, auto-routes to the right Done list by subsystem label | | update_card | change name, description, due date, add/remove members or labels | | block_card | move to Blocked with a reason | | unblock_card | move out of Blocked | | create_weekly_recurring | generates weekly task cards (reports, gantt, trello maintenance) | | search_cards | search card names and descriptions | | archive_card | archive a card |
Notes
- Trello API calls are rate-limited to 10/sec
- Board metadata (lists, labels, members) is cached for 60 seconds
- Never hardcode API keys — they go in the Claude Desktop config as env vars











