Trello MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HTTPS_PROXY | No | A proxy for every call to Trello. Optional. | |
| https_proxy | No | A proxy for every call to Trello. Optional. | |
| TRELLO_TOKEN | Yes | The token of the same account, from the authorisation address in example.env. Required. | |
| TRELLO_API_KEY | Yes | The API key of a Trello app, from https://trello.com/power-ups/admin, as example.env describes. Required. | |
| TRELLO_BOARD_ID | No | The first active board: the default board for any call that does not name one. Optional. | |
| TRELLO_ATTACH_ROOT | No | The one folder that a file:// attachment may come from. When it is empty, every local upload is refused. Optional. | |
| TRELLO_MAX_DOWNLOAD_MB | No | The largest file that download_attachment returns, in megabytes (MB). The default is 5. A value that is not a positive number stops the server at once. Optional. | |
| TRELLO_DESCRIPTION_LIMIT | No | The most characters in a card description. The default is 2400. A value that is not a positive number stops the server at once. Optional. | |
| TRELLO_ALLOWED_WORKSPACES | No | Workspace IDs, separated by commas. When set, the workspace guard is on and refuses anything outside the allowed workspaces, personal boards included. Optional. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_boardsB | List all boards the user has access to |
| set_active_boardC | Set the active board for future operations |
| get_active_board_infoB | Get information about the currently active board |
| list_workspacesB | List workspaces the user has access to. If TRELLO_ALLOWED_WORKSPACES is configured, only allowed workspaces are returned. |
| set_active_workspaceA | Set the active workspace for future operations |
| list_boards_in_workspaceC | List all boards in a specific workspace |
| create_boardC | Create a new Trello board optionally within a workspace |
| get_recent_activityC | Fetch recent activity on the Trello board |
| get_listsB | Retrieve all lists from the specified board |
| add_list_to_boardC | Add a new list to the specified board |
| update_listA | Update a list name, archive state, subscription state, or board. Use update_list_position for moving a list within a board. |
| update_list_positionA | Update the position of a list on the board. Trello uses fractional indexing: each list has a float position, and to place a list between two others, use the average of their positions (e.g., between pos 1024 and 2048, use 1536). Use "top"/"bottom" shortcuts to move to the edges. |
| archive_listC | Send a list to the archive on a specific board |
| watch_listB | Subscribe or unsubscribe from watching a list for activity notifications |
| get_cards_by_list_idA | Fetch cards from a specific Trello list on a specific board. Descriptions are previewed by default to keep responses compact; set fields without "desc" to omit descriptions, or increase descMaxLength/omitDescThresholdBytes and use get_card for full details. |
| get_my_cardsB | Fetch all cards assigned to the current user |
| search_cardsB | Search card names and descriptions by text, on one board or on every board the user can reach. Returns the name, number, board, list and link of each match. |
| get_cardA | Get detailed information about a card, by its ID or by its number on a board. The number is the one Trello shows on the card and a branch name carries, as 53 in fix/53-chat-button. |
| get_card_historyB | Get the history/actions of a specific card |
| add_card_to_listC | Add a new card to a specified list on a specific board |
| add_cards_to_listA | Add up to 50 cards to a list, in order. Every card is checked first (the list exists, each label is on the board, each date is valid, each description is 2400 characters at most), so bad input creates nothing. A temporary Trello or network fault is retried. Any other failure stops the batch, and the reply says which cards were created and which were not: ask the user how to resolve it before retrying. |
| update_card_detailsC | Update an existing card's details. Name the card by its ID or by its number on a board. |
| move_cardC | Move a card to a different list, potentially on a different board |
| copy_cardB | Copy/duplicate a Trello card to any list (even on a different board). Copies all properties by default including checklists, attachments, comments, labels, etc. |
| archive_cardB | Send a card to the archive. Name the card by its ID or by its number on a board. |
| watch_cardB | Subscribe or unsubscribe from watching a card for activity notifications |
| get_card_commentsC | Retrieve all comments from a specific Trello card |
| add_commentB | Add the given text as a new comment to the given card |
| update_commentC | Update the given comment with the new text |
| delete_commentB | Delete a comment from a Trello card |
| create_checklistB | Create a checklist on a card, with its items in the same call. Name it "Acceptance Criteria" for acceptance criteria. |
| get_checklist_itemsC | Get all items from a checklist by name |
| get_checklist_by_nameB | Get a complete checklist with all its items and completion percentage |
| get_acceptance_criteriaA | Get a card's (or board's) acceptance criteria. Matches a checklist named "Acceptance Criteria", "AC", "DoD", or "Definition of Done" (case-insensitive); first match in that order wins. Returns a {found: true|false} union; read reason when not found. |
| find_checklist_items_by_descriptionC | Search for checklist items containing specific text in their description |
| add_checklist_itemC | Add a new item to a checklist |
| update_checklist_itemB | Update a checklist item name, state, position, due date, reminder, or assigned member |
| delete_checklist_itemC | Delete a checklist item from a card |
| copy_checklistA | Copy a checklist (with all its items) from one card to another. Works across different boards. |
| attach_to_cardA | Attach something to a card. The start of source decides what happens: https:// stores a link, and the file stays at that URL; file:// uploads a local file from the folder in TRELLO_ATTACH_ROOT, and is refused when that is not set; data:;base64, uploads inline data. |
| download_attachmentA | Download an uploaded attachment from a card. Returns base64-encoded data that can be saved or viewed. A link attachment has no file on Trello, and a file over 5 MB would flood the context, so both are refused. |
| get_board_labelsC | Get all labels of a specific board |
| create_labelC | Create a new label on a board |
| update_labelC | Update an existing label |
| delete_labelC | Delete a label from a board |
| add_label_to_cardA | Add one label to a card. The labels already on the card stay. Get label IDs from get_board_labels. |
| remove_label_from_cardB | Remove one label from a card. The other labels on the card stay. |
| get_board_membersB | Get all members of a specific board |
| assign_member_to_cardC | Assign a member to a specific card |
| remove_member_from_cardC | Remove a member from a specific card |
| get_board_custom_fieldsA | Get all custom field definitions on a board. Returns field IDs, names, and types. For dropdown/list fields, also returns available options with their IDs. No tool creates a field, so a board without fields returns an empty list. |
| update_card_custom_fieldA | Set or clear a custom field value on a card. Use get_board_custom_fields first to find field IDs and types. Value format depends on type: text=any string, number=numeric string, checkbox="true"/"false", date=ISO 8601 string, list=option ID from get_board_custom_fields. To clear a field, set type to "clear" and omit value. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 52 tools
Most tools target distinct resources and actions, but the checklist retrieval tools (get_checklist_items, get_checklist_by_name, get_acceptance_criteria, find_checklist_items_by_description) overlap substantially, making it unclear which to use for a basic checklist lookup. Descriptions help somewhat but do not fully resolve the ambiguity.
All tool names use snake_case with a consistent verb_noun pattern (e.g., list_boards, create_board, update_card_details, delete_comment). Minor variants like get_cards_by_list_id still fit the convention.
52 tools is far above the recommended 3-15 range and excessive for a single MCP server. While Trello's domain is broad, many operations could be consolidated or made more generic to reduce cognitive load.
The surface covers most card/list/board operations, comments, checklists, labels, members, custom fields, and attachments, but notable gaps exist: no update/delete for boards, no workspace creation/update/delete, no delete for checklists, and no custom field definition creation. These missing lifecycle operations will cause agent failures for common admin tasks.