Trello MCP server
Boards, lists, cards and checklists on the boards you're a member of.
How it connects
New to MCP? What is an MCP server?
- Runs on
- Statio's runtime
- Connects with
- Credentials you paste in once: API Key, Token
- May connect to
api.trello.com- Category
- Productivity
What it does
This server lets an agent read and edit Trello boards: lists, cards, comments, checklists, labels, members, attachments and custom fields. It is @delorenj/mcp-server-trello, a community package on npm, and Atlassian does not maintain it. Trello has no MCP server of its own. Statio runs version 1.8.1 with your API key and token, and the token acts as you, on every board you can open.
Tools
Version 1.8.1 lists 57 tools. None of them carry read-only or destructive hints, so the last column comes from what each tool calls in the source. Many take an optional boardId. Without one they use the active board, which set_active_board picks and the server saves to ~/.trello-mcp/config.json so it survives a restart.
Boards and workspaces
| Tool | What it does | Reads or changes |
|---|---|---|
list_boards | Every board the token can see. | Reads |
list_workspaces | Every workspace the token can see. | Reads |
list_boards_in_workspace | The boards in one workspace. | Reads |
set_active_board | Picks the default board for later calls. Changes the server's saved setting, not Trello. | Changes server state |
set_active_workspace | Picks the default workspace for later calls. | Changes server state |
get_active_board_info | Details of the current active board. | Reads |
create_board | Creates a board, optionally in a workspace, with default labels and lists. | Changes |
get_recent_activity | Recent actions on a board, with a limit and date range. | Reads |
Lists
| Tool | What it does | Reads or changes |
|---|---|---|
get_lists | Every list on a board. | Reads |
add_list_to_board | Adds a list. | Changes |
update_list | Renames a list, archives or restores it, changes your subscription, or moves it to another board. | Changes |
update_list_position | Moves a list left or right on its board. | Changes |
archive_list | Archives a list and the cards in it. | Changes |
watch_list | Turns notifications for a list on or off for you. | Changes |
Cards
| Tool | What it does | Reads or changes |
|---|---|---|
get_cards_by_list_id | The cards in one list, with descriptions shortened by default. | Reads |
get_my_cards | Every card assigned to you, across boards. | Reads |
get_card | One card with its attachments, checklists, members, labels, custom fields and up to 100 comments. | Reads |
get_card_history | A card's actions, filterable by type. | Reads |
add_card_to_list | Creates a card with a description, dates and labels. | Changes |
add_cards_to_list | Creates many cards in one call, one API request at a time. | Changes |
update_card_details | Edits a card's name, description, dates, completion, labels or position. | Changes |
move_card | Moves a card to another list, on any board. | Changes |
copy_card | Copies a card to any list on any board, with its checklists, attachments, comments and labels by default. | Changes |
archive_card | Archives a card. | Changes |
watch_card | Turns notifications for a card on or off for you. | Changes |
Comments
| Tool | What it does | Reads or changes |
|---|---|---|
get_card_comments | A card's comments. | Reads |
add_comment | Posts a comment as you. | Changes |
update_comment | Rewrites a comment. | Changes |
delete_comment | Deletes a comment. | Changes |
Checklists
| Tool | What it does | Reads or changes |
|---|---|---|
get_checklist_items | The items in a checklist, found by name. | Reads |
get_checklist_by_name | A checklist with its items and completion percentage. | Reads |
get_acceptance_criteria | The items in a checklist named "Acceptance Criteria". | Reads |
find_checklist_items_by_description | Checklist items that contain some text. | Reads |
create_checklist | Adds a checklist to a card. | Changes |
add_checklist_item | Adds an item to a checklist. | Changes |
update_checklist_item | Changes an item's text, state, position, due date or assigned member. | Changes |
delete_checklist_item | Deletes a checklist item. | Changes |
copy_checklist | Copies a checklist and its items to another card, on any board. | Changes |
Members and labels
| Tool | What it does | Reads or changes |
|---|---|---|
get_board_members | The members of a board. | Reads |
assign_member_to_card | Adds a member to a card. | Changes |
remove_member_from_card | Takes a member off a card. | Changes |
get_board_labels | The labels on a board. | Reads |
create_label | Adds a label to a board. | Changes |
update_label | Renames or recolours a label. | Changes |
delete_label | Deletes a label from the board and every card that has it. | Changes |
Attachments and custom fields
| Tool | What it does | Reads or changes |
|---|---|---|
attach_image_to_card | Attaches an image from an HTTPS URL or a local file:// path. | Changes |
attach_file_to_card | Attaches any file from an HTTPS URL or a local file:// path. | Changes |
attach_data_to_card | Attaches base64 or data URL content as a file. | Changes |
attach_image_data_to_card | Attaches a base64 image, PNG by default. | Changes |
download_attachment | Returns an attachment's contents as base64. | Reads |
get_board_custom_fields | A board's custom fields and dropdown options. Trello Standard or higher. | Reads |
update_card_custom_field | Sets or clears a custom field on a card. | Changes |
Health
| Tool | What it does | Reads or changes |
|---|---|---|
get_health | A quick status check of the server. | Reads |
get_health_detailed | Every subsystem check. | Reads |
get_health_metadata | Counts lists and cards on the active board and flags problems such as an archived board. | Reads |
get_health_performance | Request timing and rate limit figures. | Reads |
perform_system_repair | If no active board is set, sets it to your first open board. It does nothing else. | Changes server state |
Set it up
Both setups need an API key and a token. Trello's authorization guide gets the key from the Power-Up admin page at trello.com/apps/admin: open or create a Power-Up, go to the Trello Auth tab and generate a key. The token comes from an authorize URL with that key in it:
https://trello.com/1/authorize?expiration=30days&scope=read&name=Trello%20MCP&response_type=token&key=YOUR_API_KEYClick Allow and Trello shows the token. Two parameters decide most of what an agent can do. scope is read, write or both (read,write), and a read token makes Trello refuse every write tool above whatever your client allows. expiration is 1hour, 1day, 30days or never. Leave out account, which lets the token read your email and edit your profile, since no tool here needs it.
Claude Code, directly:
claude mcp add trello -e TRELLO_API_KEY=your-api-key -e TRELLO_TOKEN=your-token -- npx -y @delorenj/mcp-server-trello@1.8.1Cursor, directly, in ~/.cursor/mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"trello": {
"command": "npx",
"args": ["-y", "@delorenj/mcp-server-trello@1.8.1"],
"env": {
"TRELLO_API_KEY": "${env:TRELLO_API_KEY}",
"TRELLO_TOKEN": "${env:TRELLO_TOKEN}"
}
}
}
}Run locally, the server also reads TRELLO_BOARD_ID for a default board and TRELLO_ALLOWED_WORKSPACES, a comma-separated list of workspace IDs. That list only filters the tools that list boards and workspaces, pick a workspace or create a board. A tool given a card or list ID from another workspace still works, because the token can reach it.
The client tutorials, How to add MCP servers to Claude Code and How to set up MCP servers in Cursor, explain config scopes and how to keep the token out of files you commit.
Through Statio: install Trello from the catalog, paste the API key and token under the server's Credentials, and grant tools under Permissions. A new server has no grants, so nobody can call it until you add some. The desktop app then writes your client configs. The manual entry is the local proxy URL with the server name from your dashboard, http://127.0.0.1:7777/trello/mcp, added in Claude Code with claude mcp add --transport http trello <url> or as a "url" in Cursor. The hosted server only reaches api.trello.com. Tools missing after that? Start a fresh session, then work through How to debug an MCP server that won't connect.
What to hold back
Start with what the token reaches. It acts as you on every board you're a member of, in every workspace, and the server has no setting that narrows a token to one board. If one agent should only see one board, make a Trello account for it and add that account to that board.
attach_file_to_card and attach_image_to_card accept a file:// path, and the server uploads whatever file it can read to the card. Run locally, that means any file in your home directory, including SSH keys and .env files, ends up on a Trello card where every board member can open it. Remote URLs are checked (HTTPS only, no localhost or private addresses). Local paths are not. Through Statio the server runs in a hosted container with none of your files, but if you run it on your laptop, deny both tools unless the agent's job is attaching files.
archive_card, archive_list and update_list with closed take work off the board. Archived items can be restored, but an agent that archives a list also takes every card in it out of view, and nobody may notice for days. delete_comment, delete_checklist_item and delete_label are permanent. Deleting a label strips it from every card on the board, which breaks any filter or automation built on it.
add_cards_to_list and create_board are how a looping agent makes a mess. One call can create dozens of cards, and nothing stops it running again. A triage agent that needs to file cards can usually do it with add_card_to_list one at a time.
assign_member_to_card, add_comment and move_card act in front of people. Each shows on the card as done by you, and anyone watching the card gets a notification. An agent that assigns ten cards to a colleague does it in your name. copy_card and move_card also work across boards, so they can carry a card's description, attachments and comments from a private board onto a shared one.
Card names, descriptions, comments and checklist items are written by whoever is on the board. Any of that text can carry instructions aimed at the agent. Pairing get_card or get_card_comments with the write tools is what lets that text change your boards.
With Statio you grant each tool separately, so a standup agent can get the read tools and add_comment while a planning agent also gets add_card_to_list and move_card. MCP permissions covers how grants and denies combine.
Questions
@delorenj/mcp-server-trello, a community package listed on the official MCP Registry.scope=read and Trello refuses every write. Granting only the read tools in Statio keeps the write tools out of the agent's list as well.expiration=1hour, 1day, 30days or never. You can revoke a token any time under Applications in your Trello account settings, and calls then fail with invalid token.What Statio adds
- You choose which of its tools each agent may call. A tool you hold back is removed from that agent's tool list, and a call to it is refused.
- The credentials stay encrypted in Statio, so they never sit in an agent config file.
- Every call is recorded with the agent that made it, when, how long it took and whether it succeeded.
- The outbound list above is enforced outside the server's container, so it cannot reach any other host.
Lock down your first tool in minutes.
Three MCP servers, one of them hosted, and 10,000 calls a month, free and without a card. If you outgrow it the next plan is $19.
Two steps: create your account, then install the desktop app on each machine that runs an AI client.
- Keys encrypted at rest, never handed to an agent
- Cancel anytime, nothing is deleted
- How Statio handles credentials