trello-mcp
Provides tools for interacting with Trello's API, enabling AI agents to manage boards, lists, cards, checklists, labels, members, and search.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@trello-mcp list my boards"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
trello-mcp
An MCP server for the Trello REST API. Exposes ~36 curated tools for boards, lists, cards, checklists, labels, members, and search.
Requires Node.js 18.14.1 or newer.
Setup
Get a Trello API key and token:
API key: https://trello.com/app-key
Token: click the "Token" link on that page and authorize.
Add the MCP server configuration below to your client.
Related MCP server: Atlassian Trello MCP Server
Configure your MCP client
{
"mcpServers": {
"trello": {
"command": "npx",
"args": ["-y", "@trinknx/trello-mcp@0.1.1"],
"env": {
"TRELLO_API_KEY": "your-key",
"TRELLO_TOKEN": "your-token"
}
}
}
}Keep real credentials in your MCP client's runtime environment configuration. Never commit credentials or rely on checked-in configuration files. For local development, export credentials into the process environment before starting the server.
Environment variables
Variable | Required | Purpose |
| yes | Trello API key |
| yes | Trello API token |
| no | Default board id. When set, board tools ( |
| no | Default list id. When set, |
The defaults are optional — omit them and pass ids explicitly, or set them so the agent doesn't have to ask which board/list to use. An explicit id always wins over the env default; if neither is given, the tool returns a clear error.
Tools
Boards: list_my_boards, get_board, create_board, update_board,
delete_board, get_board_lists, get_board_cards, get_board_labels,
get_board_members.
Lists: create_list, get_list, update_list, archive_list,
get_list_cards, archive_all_cards_in_list.
Cards: create_card, get_card, update_card (move via idList, archive via
closed, set cover via idAttachmentCover), delete_card, add_comment,
add_card_member, remove_card_member, add_label_to_card,
remove_label_from_card, get_card_attachments, add_attachment (set
setCover: true to make a publicly-fetchable image the card cover),
delete_attachment.
Checklists: create_checklist, add_checklist_item, update_checklist_item,
delete_checklist.
Labels/Members/Search: create_label, get_me, get_member, search,
search_members.
Development
npm install # install dependencies
npm test # run unit tests
npm run build # compile to dist/
npm start # run the server (node dist/index.js)License
MIT
Available Tools
36 toolsadd_attachmentAdd a URL attachment to a cardA
Attach a URL to a card. Set setCover=true to make a publicly-fetchable image the card's cover (Trello must be able to preview the image).
Inputs: id (required), url (required), name, setCover.
add_card_memberAdd a member to a cardB
Assign a member to a card.
Inputs: id (required), idMember (required).
add_checklist_itemAdd an item to a checklistC
Add a check item to a checklist.
Inputs: name (required), idChecklist (required), pos, checked.
add_commentAdd a comment to a cardB
Add a comment to a card.
Inputs: id (required), text (required).
add_label_to_cardAdd a label to a cardB
Attach an existing board label to a card.
Inputs: id (required), idLabel (required).
archive_all_cards_in_listArchive all cards in a listB
Archive every card in a list. Reversible per-card.
Inputs: id (required).
archive_listArchive or unarchive a listB
Archive (value=true) or unarchive (value=false) a list. Reversible.
Inputs: id (required), value (required).
create_boardCreate a boardB
Create a new board.
Inputs: name (required), desc, idOrganization.
create_cardCreate a cardC
Create a new card in a list.
Inputs: name (required), due, pos, desc, +3 more.
create_checklistCreate a checklist on a cardB
Add a new checklist to a card.
Inputs: name (required), idCard (required).
create_labelCreate a label on a boardB
Create a new label on a board.
Inputs: name (required), color (required), idBoard.
create_listCreate a listC
Create a new list on a board.
Inputs: name (required), pos, idBoard.
delete_attachmentDelete an attachment from a cardA
Remove an attachment from a card.
Inputs: id (required), idAttachment (required).
delete_boardDelete a boardA
PERMANENTLY delete a board. This cannot be undone. Prefer update_board with closed=true to archive instead.
Inputs: id (required).
delete_cardDelete a cardA
PERMANENTLY delete a card. This cannot be undone. Prefer update_card with closed=true to archive instead.
Inputs: id (required).
delete_checklistDelete a checklistA
Delete a checklist from a card.
Inputs: idCard (required), idChecklist (required).
get_boardGet a boardB
Get a single board by its id.
Inputs: id, fields.
get_board_cardsGet cards on a boardC
Get the cards on a board.
Inputs: id, fields.
get_board_labelsGet labels on a boardB
Get the labels defined on a board.
Inputs: id.
get_board_listsGet lists on a boardC
Get the lists on a board.
Inputs: id, filter.
get_board_membersGet members of a boardC
Get the members of a board.
Inputs: id.
get_cardGet a cardA
Get a single card by its id.
Inputs: id (required), fields.
get_card_attachmentsGet attachments on a cardC
List the attachments on a card.
Inputs: id (required).
get_listGet a listB
Get a single list by its id.
Inputs: id (required), fields.
get_list_cardsGet cards in a listC
Get the cards in a list.
Inputs: id (required), fields.
get_meGet the authenticated memberB
Get the profile of the authenticated user.
Inputs: fields.
get_memberGet a memberA
Get a member by id or username.
Inputs: id (required), fields.
list_my_boardsList my boardsA
List all boards the authenticated user belongs to.
Inputs: fields.
remove_card_memberRemove a member from a cardB
Unassign a member from a card.
Inputs: id (required), idMember (required).
remove_label_from_cardRemove a label from a cardB
Detach a label from a card.
Inputs: id (required), idLabel (required).
searchSearch TrelloC
Search cards, boards, and organizations.
Inputs: query (required), modelTypes.
search_membersSearch membersC
Search for Trello members by name or username.
Inputs: query (required), limit.
update_boardUpdate a boardA
Update a board's name, description, or open/closed state.
Inputs: id (required), desc, name, closed.
update_cardUpdate a cardA
Update a card. Use idList to MOVE the card to another list, closed=true to ARCHIVE it, due/dueComplete for due dates, and idAttachmentCover to set an existing image attachment as the card's cover.
Inputs: id (required), due, pos, desc, +5 more.
update_checklist_itemUpdate a checklist itemA
Update a check item on a card: mark it complete/incomplete, rename it, or reposition it.
Inputs: idCard (required), idCheckItem (required), idChecklist (required), pos, +2 more.
update_listUpdate a listB
Update a list's name or position.
Inputs: id (required), pos, name.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 36 tools
Each tool targets a distinct resource-action pair (e.g., board, list, card, checklist, label, member). Even similar operations like archive_list vs archive_all_cards_in_list are clearly differentiated by the resource they act on. Descriptions further clarify any ambiguity.
Most tools follow a verb_noun pattern (e.g., create_board, get_card). However, there is minor inconsistency between 'add' and 'create' (e.g., add_attachment vs create_board), but overall the pattern is consistent and predictable.
With 36 tools covering boards, lists, cards, checklists, labels, members, attachments, comments, and search, the count is well-proportioned for Trello's feature set. Each tool serves a clear purpose without feeling excessive.
The server covers CRUD for boards, lists, and cards, plus operations on checklists, labels, members, attachments, and comments. Minor gaps exist (e.g., no update label, no add board member), but core workflows are fully supported.
Maintenance
Related MCP Connectors
Official Todoist MCP server. Manage tasks and projects. Hosted, no API key needed.
Remote MCP server for saving, searching, syncing, and managing Teak cards.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceThis is an MCP Server for Trello that enables interaction with Trello's API through natural language, allowing management of boards, cards, lists, and other Trello resources.-
- AlicenseBqualityBmaintenanceA 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.45246 npm3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Trello integration, enabling management of workspaces, boards, lists, cards, and checklists through natural language.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Trello that enables comprehensive management of boards, cards, lists, labels, checklists, attachments, members, custom fields, and search through natural language.246 npmMIT