loading…
Search for a command to run...
loading…
A Model Context Protocol (MCP) server for Trello that works with any MCP-compatible client -- Claude Desktop, Claude Code, Gemini CLI, and more. Provides 46 too
A Model Context Protocol (MCP) server for Trello that works with any MCP-compatible client -- Claude Desktop, Claude Code, Gemini CLI, and more. Provides 46 tools covering boards, cards, lists, labels, checklists, attachments, members, custom fields, and search.
🔀 Active fork. This is a maintained fork of kocakli/Trello-Desktop-MCP integrating contributions from across the fork ecosystem (kevinhillinger, zonca, dbz-max, maks244, jantman, ThatIanMcShane, josh-argyle). PRs welcome — see Credits for what each contributor brought in. Published on npm as atlassian-trello-mcp.
A Model Context Protocol (MCP) server for Trello that works with any MCP-compatible client -- Claude Desktop, Claude Code, Gemini CLI, and more.
Provides 46 tools covering boards, cards, lists, labels, checklists, attachments, members, custom fields, and search.
The easiest path is npx — no clone, no build, just run:
npx atlassian-trello-mcp
Or install from source:
git clone https://github.com/agrath/Trello-Desktop-MCP.git
cd Trello-Desktop-MCP
npm install
npm run build
Edit your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"trello": {
"command": "npx",
"args": ["-y", "atlassian-trello-mcp"],
"env": {
"TRELLO_API_KEY": "your-api-key",
"TRELLO_TOKEN": "your-token"
}
}
}
}
claude mcp add trello -- npx -y atlassian-trello-mcp
Set environment variables TRELLO_API_KEY and TRELLO_TOKEN, or pass credentials per-request.
Edit ~/.gemini/settings.json:
{
"mcpServers": {
"trello": {
"command": "npx",
"args": ["-y", "atlassian-trello-mcp"],
"env": {
"TRELLO_API_KEY": "your-api-key",
"TRELLO_TOKEN": "your-token"
}
}
}
}
The server uses stdio transport. Run with environment variables set:
TRELLO_API_KEY=your-key TRELLO_TOKEN=your-token npx atlassian-trello-mcp
# or, from a source clone:
TRELLO_API_KEY=your-key TRELLO_TOKEN=your-token node dist/index.js
Credentials can be provided two ways:
TRELLO_API_KEY and TRELLO_TOKENapiKey and token as tool parameters (overrides env vars)| Tool | Description |
|---|---|
list_boards |
List all accessible boards |
trello_get_user_boards |
Get boards with user profile info |
get_board_details |
Board metadata, lists, and optionally cards |
get_lists |
Get all lists on a board |
trello_filter_lists |
Filter lists by name (case-insensitive substring match) |
trello_create_list |
Create a new list on a board |
trello_get_board_members |
Get all members on a board |
trello_get_board_labels |
Get all labels on a board |
trello_get_board_cards |
Get all cards on a board (compact or full) |
trello_get_board_custom_fields |
Get custom field definitions |
| Tool | Description |
|---|---|
create_card |
Create a card with name, description, due date, labels, members |
get_card |
Get card details |
update_card |
Update card properties |
move_card |
Move a card to a different list |
trello_archive_card |
Archive or unarchive a card |
trello_get_list_cards |
Get cards in a list (compact or full mode) |
| Tool | Description |
|---|---|
trello_add_comment |
Add a comment to a card |
trello_get_card_actions |
Get card activity history and comments |
| Tool | Description |
|---|---|
trello_create_label |
Create a label on a board |
trello_update_label |
Update label name or color |
trello_delete_label |
Delete a label |
trello_add_label_to_card |
Assign a label to a card |
trello_remove_label_from_card |
Remove a label from a card |
| Tool | Description |
|---|---|
trello_get_member |
Get member profile details |
trello_add_member_to_card |
Assign a member to a card |
trello_remove_member_from_card |
Remove a member from a card |
| Tool | Description |
|---|---|
trello_get_card_attachments |
List all attachments on a card |
trello_get_card_attachment |
Get a specific attachment |
trello_create_card_attachment |
Attach a URL or upload a local file |
trello_delete_card_attachment |
Delete an attachment |
| Tool | Description |
|---|---|
trello_create_checklist |
Create a checklist on a card |
trello_get_checklist |
Get a checklist with items |
trello_update_checklist |
Update checklist name or position |
trello_delete_checklist |
Delete a checklist |
trello_get_checklist_field |
Get a specific checklist field |
trello_update_checklist_field |
Update a specific checklist field |
trello_get_board_for_checklist |
Get the board a checklist belongs to |
trello_get_card_for_checklist |
Get the card a checklist belongs to |
trello_get_card_checklists |
Get all checklists on a card |
| Tool | Description |
|---|---|
trello_create_check_item |
Add an item to a checklist |
trello_get_check_items |
Get all items on a checklist |
trello_get_check_item |
Get a specific check item |
trello_update_check_item |
Update item (name, state, due date, assignee) |
trello_delete_check_item |
Delete a check item |
| Tool | Description |
|---|---|
trello_search |
Search across boards, cards, members, organizations |
Set TRELLO_READ_ONLY=true to disable all write operations. Only read/query tools will be available.
{
"env": {
"TRELLO_API_KEY": "your-key",
"TRELLO_TOKEN": "your-token",
"TRELLO_READ_ONLY": "true"
}
}
Several tools support a compact parameter (default: true) that returns minimal fields to reduce response size. Set compact: false for full details including descriptions, labels, members, and custom fields.
Tools with compact mode: get_board_details, trello_get_board_cards, trello_get_list_cards, trello_search.
When get_card is called and the card has image attachments, the server downloads them and returns them as inline MCP image content blocks alongside the JSON — letting the client see card images directly. Downloads are restricted to Trello-hosted URLs (*.trello.com, trello-attachments.s3.amazonaws.com) and capped at 5 MB per image to mitigate SSRF and payload-bloat risks.
Set TRELLO_DOWNLOAD_IMAGES=false (or 0/no/off) to disable entirely — the server will skip the extra getCardAttachments call and return text only. Default is enabled.
Set TRELLO_MCP_LOGGING=true to enable file-based logging via Pino. Logs are written to dist/logs/app.log.
src/
index.ts Entry point (credential injection, tool routing)
server.ts MCP server factory (read-only mode support)
tools/
boards.ts Board tools (list, details, lists, filter)
cards.ts Card tools (CRUD, archive)
lists.ts List tools (cards, create list, comments)
members.ts Member tools (user boards, member details)
search.ts Search tool
advanced.ts Labels, attachments, members on cards, custom fields
checklists.ts Checklist and check item tools (13 tools)
trello/
client.ts TrelloClient (API calls, retry, rate limiting)
types/
trello.ts TypeScript interfaces
utils/
validation.ts Zod schemas, extractCredentials, extractTrelloId
logger.ts Pino file logger
health.ts Health check utility
appInsights.ts Telemetry (no-op)
tests/
validation.test.ts Validation and credential extraction tests
trelloClient.test.ts API client tests (mocked fetch)
tools.test.ts Tool handler tests (mocked client)
npm install
npm run build
npm test
npm run type-check
extractTrelloId()extractCredentials() checks args first, then env varsx-rate-limit-* headers from every responsePull requests are welcome and actively reviewed. This fork is maintained by an extensive Trello user, so features get real-world testing.
If you've forked the original project and built something useful, please submit a PR here rather than maintaining a separate fork -- it's easier for everyone to benefit from a single well-maintained project.
To contribute:
npm test and npm run buildThis project is a fork of kocakli/Trello-Desktop-MCP. Features and ideas were incorporated from across the fork ecosystem:
anypos values rejected when sent as strings by MCP clients@modelcontextprotocol/sdk 1.0.4 → 1.29.0 to fix connection timeouts with current Claude Code releasesget_card responses as inline MCP image content blocks (with allowlist + size cap added during port)MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"atlassian-trello-mcp-server": {
"command": "npx",
"args": []
}
}
}