mcp-trello
Model Context Protocol (MCP) server and local CLI for Trello. It exposes 31 typed tools for boards, lists, cards, checklists, activity, and workspace navigation, with Trello-aware rate limiting and validation built in.
This repository is maintained as ftaricano/mcp-trello (formerly ftaricano/mcp-server-trello). It is derived from MIT-licensed original work by Jarad DeLorenzo, with original copyright preserved and current ownership/provenance documented in NOTICE.md.
Highlights
- 31 MCP tools for cards, lists, boards, workspaces, checklists, attachments, and activity.
- Multi-board and workspace support with persisted active board/workspace state.
- Trello API rate limiting for the documented per-key and per-token limits.
- Zod input validation and TypeScript declarations in the published package.
trelloCLI for local agent workflows.- CI on Node.js 20 and 22 for lint, typecheck, tests, build, and
npm pack --dry-run.
Requirements
- Node.js 20 or newer.
- A Trello API key from https://trello.com/app-key.
- A Trello token created from that API key.
Install
Use the package directly from npm-compatible MCP clients:
{
"mcpServers": {
"trello": {
"command": "npx",
"args": ["-y", "@ftaricano/mcp-trello"],
"env": {
"TRELLO_API_KEY": "replace_with_trello_api_key",
"TRELLO_TOKEN": "replace_with_trello_token"
}
}
}
}
With pnpx:
{
"mcpServers": {
"trello": {
"command": "pnpx",
"args": ["@ftaricano/mcp-trello"],
"env": {
"TRELLO_API_KEY": "replace_with_trello_api_key",
"TRELLO_TOKEN": "replace_with_trello_token"
}
}
}
}
Global install is also supported:
npm install -g @ftaricano/mcp-trello
mcp-trello
Trello Token
Create a Trello token by visiting this URL after replacing the app name and API key:
https://trello.com/1/authorize?expiration=never&name=YOUR_APP_NAME&scope=read,write&response_type=token&key=YOUR_API_KEY
Use expiration=30days or another shorter value when your operating model can tolerate periodic token renewal. Treat the token like a password.
Configuration
The server reads credentials from environment variables:
TRELLO_API_KEY=replace_with_trello_api_key
TRELLO_TOKEN=replace_with_trello_token
# Optional defaults. These can also be changed at runtime by MCP tools.
TRELLO_BOARD_ID=
TRELLO_WORKSPACE_ID=
The CLI also loads a .env file from the current working directory and can read credentials from the macOS Keychain when TRELLO_KEYCHAIN_PREFIX is set:
security add-generic-password -s TRELLO_API_KEY -a "$USER" -w "replace_with_trello_api_key"
security add-generic-password -s TRELLO_TOKEN -a "$USER" -w "replace_with_trello_token"
export TRELLO_KEYCHAIN_PREFIX=TRELLO
trello list-boards --md
Credential resolution order for the CLI:
- Process environment.
.envfile in the current working directory.- macOS Keychain entries named
<PREFIX>_API_KEY,<PREFIX>_TOKEN, and optionally<PREFIX>_BOARD_ID.
Tools
Card tools:
add_card_to_listupdate_card_detailsarchive_cardmove_cardget_cardget_cards_by_list_idget_my_cardsattach_image_to_card
List, board, and workspace tools:
get_listsadd_list_to_boardarchive_listlist_boardsset_active_boardlist_workspacesset_active_workspacelist_boards_in_workspaceget_active_board_infoget_recent_activity
Checklist tools:
get_checklist_itemsadd_checklist_itemfind_checklist_items_by_descriptionget_acceptance_criteriaget_checklist_by_name
Most board-scoped tools accept an optional boardId. If omitted, the configured or persisted active board is used.
CLI
The package installs a trello binary for local agent and terminal workflows.
trello list-boards --md
trello set-board <boardId>
trello active-board --md
trello lists --md
trello board labels --md
trello board members --md
trello card add <listId> "Task name" --desc "details" --due 2026-05-01T12:00:00Z
trello card update <cardId> --name "Renamed" --done
trello card move <cardId> <listId>
trello card get <cardId> --md
trello card archive <cardId>
trello card comment <cardId> "Status update"
trello card attach <cardId> https://example.com/cover.png --name "Cover"
trello card assign <cardId> <memberId>
trello card unassign <cardId> <memberId>
trello cards mine --md
trello cards list <listId> --md
Default output is JSON for agent consumption. Add --md for markdown output. Exit codes are 0 for success, 1 for missing config or validation errors, and 2 for Trello API errors.
Date Formats
dueDate: full ISO 8601 timestamp, for example2026-05-01T12:00:00Z.start: date only, for example2026-05-01.
Rate Limiting
Requests are queued through a token bucket limiter for Trello's published API limits:
- 300 requests per 10 seconds per API key.
- 100 requests per 10 seconds per token.
Development
git clone https://github.com/ftaricano/mcp-trello.git
cd mcp-trello
SKIP_PREPARE=true npm install
cp .env.example .env
Useful commands:
npm run lint
npm run typecheck
npm test
npm run build
npm pack --dry-run
Security
Do not commit real Trello credentials, .env files, local logs, generated databases, or machine-specific agent configuration. See SECURITY.md for supported reporting channels and credential rotation guidance.
Contributing
Before opening a PR, run:
npm run lint
npm run typecheck
npm test
npm run build
npm pack --dry-run
Keep changes focused and include tests for behavior changes.
Provenance
This project started as a fork of delorenj/mcp-server-trello. Credit for the original MCP server scaffolding, base Trello API integration, and initial tool surface belongs to Jarad DeLorenzo.
This repository is maintained under ftaricano/mcp-trello. Additions include the trello CLI binary, macOS Keychain credential resolution, expanded CLI card/board/list coverage, 152 unit tests, CI on Node.js 20/22, package metadata ownership, security documentation, and npm pack hardening.
See NOTICE.md for the provenance statement.
Acknowledgments
- Original MCP server by Jarad DeLorenzo (delorenj/mcp-server-trello)
- Built with the Model Context Protocol SDK
- Uses the Trello REST API
License
MIT. See LICENSE.