---
canonical_url: "https://docs.composio.dev/toolkits/trello_mcp"
markdown_url: "https://docs.composio.dev/toolkits/trello_mcp.md"
product: "platform"
version: null
last_updated: null
---

# Trello MCP

Atlassian's official Trello MCP server lets agents work with Trello boards, lists, cards, the member Inbox, and Planner while respecting the connected user's Trello permissions.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 15
- **Triggers:** 0
- **Slug:** `TRELLO_MCP`
- **Version:** 00000000_00

## Tools

### Trelloreadboard

**Slug:** `TRELLO_MCP_TRELLO_READ_BOARD`

Read Trello boards. Supports listing boards the authenticated user is a member of, listing all boards a user can access within a specific workspace (regardless of membership), fetching a single board by ARI or URL, listing labels on a board, listing a board's custom field definitions, and listing a board's action/history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | array | No | Filter board history by action type(s). Only valid when action="list_activity"; defaults to all action types when omitted. |
| `limit` | integer | No | Maximum results per page, max 100. Defaults to 25 for "list", "list_by_workspace", "list_labels", and "list_custom_fields"; defaults to 50 for "list_activity". Only valid for paginated actions. |
| `action` | string ("list" | "list_by_workspace" | "get" | "list_labels" | "list_custom_fields" | "list_activity") | Yes | Action to perform.            "list" — paginated boards the authenticated user is a member of, across all           workspaces. Use this for "my boards", "boards I'm on". It does NOT include boards           the user could access but has not joined — for those, use "list_by_workspace".           By default only open (non-archived) boards are returned; pass filter="all" to           include archived boards or filter="closed" for only archived ones. Always include           each board's url verbatim in the response. Optionally also filtered by visibility           (limit defaults to 25, max 100). The open/closed           filter is applied server-side (exact), whereas the visibility filter is applied per           page — keep paginating via pageInfo.endCursor while pageInfo.hasNextPage is true to find all matches.            "list_by_workspace" — paginated boards the user can access within ONE workspace           (requires workspaceId), regardless of whether they are a member. Use this when the           user names a workspace: "boards in <workspace>", "what's in this workspace".           Supports the same open/closed filter, visibility filter, and pagination as "list".           Always include each board's url verbatim in the response.            "get" — return a single board by ARI or board URL           (e.g. https://trello.com/b/<shortLink>/<slug>), including id, objectId, name,           closed, shortLink, lastActivityAt, and url. Always include the board url verbatim           as the full literal URL — never replace it with a label such as "View on Trello"           or hide it behind link text; never omit it. Embeds the first 25 open lists with a           listsHasMore flag; for the full set call trelloReadList with action="list_by_board".            "list_labels" — paginated labels on a board (requires boardId; limit defaults to           25, max 100); paginate via nextCursor while           hasMore is true.            "list_custom_fields" — paginated custom field definitions on a board (requires           boardId; limit defaults to 25, max 100). Each           field includes its name, type ('checkbox' &#124; 'date' &#124; 'list' &#124; 'number' &#124; 'text'),           position, and options (present only for 'list' dropdown fields); paginate via           nextCursor while hasMore is true.            "list_activity" — paginated action/history events on a board: comments, card moves,           member changes, attachments, checklists, due date updates, check item state changes,           and custom field updates (requires boardId, which may be an ARI or a board URL; limit           defaults to 50, max 100). Optionally filter by           type. Paginate via nextCursor while hasMore is true.           Every entry is an action on the card in its "card" field; name that entity type when you report one. |
| `cursor` | string | No | Pagination cursor. Only valid for paginated actions ("list", "list_by_workspace", "list_labels", "list_custom_fields", "list_activity"). |
| `filter` | string ("open" | "closed" | "all") | No | Filter boards by open/closed state. "open" (default) returns only active (non-archived) boards; "closed" returns only archived boards; "all" returns both. When the user asks broadly — "all my boards", "boards I can access", "list my boards" — use the default "open". Switch to "all" only when the user explicitly asks to include closed/archived boards (e.g. "including closed boards"), and "closed" when they want only archived ones. Only valid when action="list" or action="list_by_workspace". |
| `boardId` | string | No | Trello board identifier. Required for "get", "list_labels", "list_custom_fields", and "list_activity"; not allowed for other actions. For action="get" and action="list_activity", accepts an ARI (e.g. ari:cloud:trello::board/workspace/<workspaceId>/<boardId>) or a Trello board URL (e.g. https://trello.com/b/<shortLink>/<slug>). For all other actions, boardId must be a board ARI — board URLs/short links are not supported. |
| `visibility` | string ("private" | "workspace" | "public") | No | Filter boards by visibility ("private" &#124; "workspace" &#124; "public"). Only valid when action="list" or action="list_by_workspace". |
| `workspaceId` | string | No | Trello workspace identifier. Required for action="list_by_workspace"; not allowed for other actions. Accepts an ARI (e.g. ari:cloud:trello::workspace/<workspaceId>). |

### Trelloreadcard

**Slug:** `TRELLO_MCP_TRELLO_READ_CARD`

Fetch a Trello card's full details, or list cards across a board or list to surface open work items.
Use this tool when you know the specific board, list, or card you want to inspect.
For keyword-based discovery across all boards/cards, use trelloSearch instead.
Actions:
- "get": fetch a single card by id or card URL (cardIdOrUrl required). Returns core card
  fields, labels (up to 25; truncation signalled via labelsHasMore), and comments
  (up to 25; truncation signalled via commentsHasMore).
- "list_by_board": fetch all cards for a board grouped by list (boardIdOrUrl required).
  Response: { lists: [{ id, name, cards: [...] }], hasNextPage, nextCursor }.
  Each page contains up to 5 lists (configurable via limit); each list contains all its cards.
  Filter by card state: "open" (default), "archived", or "all".
  Use cursor/limit to paginate over lists (max 50 lists per page).
- "list_by_list": fetch cards in a Trello list (listId required) with cursor-based pagination.
  Use this when the user asks for cards in a list or all cards from a specific list.
  Response: { cards: [...], pageInfo: { hasNextPage, endCursor } }.
  Filter by card state: "open" (default), "archived", or "all".
  Use cursor/limit to paginate (max 50 cards per page).
- "get_comment": fetch a single comment on a card by its action ID (cardIdOrUrl and commentId required).
  For this action, cardIdOrUrl must be a Trello card ARI so the workspace is explicit for authorization.
  Response: { id, text, createdAt, lastEditedAt, creator, cardId }.
- "list_comments": list comments on a card, newest first (cardIdOrUrl required).
  Response: { comments: [{ id, text, createdAt, lastEditedAt, creator }], pageInfo: { hasNextPage, endCursor } }.
  Use cursor/limit to paginate (default 25, max 50 comments per page).
- "list_attachments": list files and links attached to a card (cardIdOrUrl required).
  Response: { attachments: [{ id, name, fileName, url, mimeType, bytes, createdAt, isUpload, isMalicious }], pageInfo: { hasNextPage, endCursor } }.
  Use cursor/limit to paginate (default 25, max 50 attachments per page).
- "list_custom_field_items": list the custom field values set on a card (cardIdOrUrl required).
  Pairs with trelloReadBoard "list_custom_fields" for the field definitions these values belong to.
  Response: { customFieldItems: [{ id, customField: { id, name, type }, value: { text, number, date, checked, optionId } }], pageInfo: { hasNextPage, endCursor } }.
  Only the value field matching the customField.type is populated (e.g. text fields set value.text). optionId references a customField option for list/dropdown fields.
  Use cursor/limit to paginate (default 25, max 50 items per page).
- "list_activity": list a card's full activity history, newest first (cardIdOrUrl required).
  Unlike "list_comments" this is unfiltered: comments, moves between lists, member add/remove,
  due-date changes, attachments and checklist item state changes all appear in one feed.
  Response: { activity: [{ id, type, displayKey, date, creator, ...typeSpecificFields }], pageInfo: { hasNextPage, endCursor } }.
  Every entry has id, type, displayKey, date and creator. Type-specific fields are present only
  for their own action type and omitted otherwise: commentText/commentLastEditedAt, listBefore/listAfter,
  member, attachment, dueDate, checkItem. Other action types appear with the common fields alone.
  Trello reuses "type" across different edits (a list move and a due-date change are both "updateCard"),
  so branch on "displayKey" or on which type-specific field is present, rather than on "type" alone.
  Same entry shape as trelloReadBoard "list_activity", minus its "card" field.
  Every entry is an action on the card you asked for; name that entity type when you report one.
  Use "list_comments" when the user only wants the discussion; use "list_activity" for
  "what happened to this card" or "who changed this and when".
  Use cursor/limit to paginate (default 25, max 50 entries per page).

Due date timezone handling: Card due dates (due.date) are stored as UTC ISO 8601 timestamps.
For "today" or date-based due-date requests, first call trelloReadMember (get_me) for prefs.timezone and interpret due dates in the user's local time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Pagination limit (1-50) for the list actions, "list_comments", "list_attachments", "list_custom_field_items", and "list_activity" (default 25). Not allowed for "get" or "get_comment". |
| `action` | string ("get" | "list_by_board" | "list_by_list" | "get_comment" | "list_comments" | "list_attachments" | "list_custom_field_items" | "list_activity") | Yes | Action to perform: "get" fetches a single card, "list_by_board" fetches cards grouped by list for a board, "list_by_list" fetches cards in a specific list, "get_comment" fetches a single comment on a card, "list_comments" lists comments on a card, "list_attachments" lists files/links attached to a card, "list_custom_field_items" lists the card's custom field values, "list_activity" lists the card's full activity history. |
| `cursor` | string | No | Pagination cursor for the list actions, "list_comments", "list_attachments", "list_custom_field_items", and "list_activity". Not allowed for "get" or "get_comment". |
| `filter` | string | No | Card state filter for "list_by_board" and "list_by_list". One of: "open" (default), "archived", "all". Not allowed for "get", "get_comment", "list_comments", "list_attachments", "list_custom_field_items", or "list_activity". |
| `listId` | string | No | Trello list identifier. Required for "list_by_list". Accepts an ARI (e.g. ari:cloud:trello::list/workspace/<workspaceId>/<listId>). |
| `commentId` | string | No | Trello comment/action identifier. Required for "get_comment". Accepts an ARI (e.g. ari:cloud:trello::action/<actionId>). |
| `cardIdOrUrl` | string | No | Trello card identifier. Required for "get", "get_comment", "list_comments", "list_attachments", "list_custom_field_items", and "list_activity". For "get_comment", cardIdOrUrl must be a Trello card ARI. Accepts an ARI (e.g. ari:cloud:trello::card/workspace/<workspaceId>/<cardId>) or a Trello card URL (e.g. https://trello.com/c/<shortLink>/<slug>). |
| `boardIdOrUrl` | string | No | Trello board identifier. Required for "list_by_board". Accepts an ARI (e.g. ari:cloud:trello::board/workspace/<workspaceId>/<boardId>). A Trello board URL is also accepted (e.g. https://trello.com/b/<shortLink>/<slug>). |

### Trelloreadchecklist

**Slug:** `TRELLO_MCP_TRELLO_READ_CHECKLIST`

Read Trello checklists (and their check items) attached to a card. Supported actions: "list_by_card" — list checklists on a card (cardId required); cursor/limit page the checklists. "get" — fetch a single checklist by id (checklistId required). In both actions each checklist is returned with its complete `items` list embedded.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Pagination limit (1-100, default 25) for "list_by_card" (caps checklists). Not allowed for "get". |
| `action` | string ("list_by_card" | "get") | Yes | The read action to perform: "list_by_card" or "get". |
| `cardId` | string | No | Trello card ARI (e.g. "ari:cloud:trello::card/workspace/<workspaceId>/<cardId>"). Required for "list_by_card". |
| `cursor` | string | No | Pagination cursor for "list_by_card" (pages checklists). Not allowed for "get". |
| `checklistId` | string | No | Trello checklist ARI (e.g. "ari:cloud:trello::checklist/workspace/<workspaceId>/<checklistId>"). Required for "get". |

### Trelloreadinbox

**Slug:** `TRELLO_MCP_TRELLO_READ_INBOX`

Triage and review the authenticated user's Trello Inbox — the personal quick-capture board where new cards and notifications land. Use this specifically for the user's Inbox board. For cards on other boards or lists, use trelloReadCard instead. Actions: "get" — return the Inbox board details (id, objectId, lastActivityAt). No additional arguments are needed. "list_cards" — list cards in the Inbox with optional filtering and pagination. Each card includes labels and up to 25 checklists (truncation signalled via checklistsHasMore). Filter by card state: "open" (default), "archived", or "all". Use cursor/limit to paginate (limit defaults to 25, max 50).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of cards to return per page. Defaults to 25, max 50. Only valid when action="list_cards". |
| `action` | string ("get" | "list_cards") | Yes | Action to perform. "get" returns the Inbox board details. "list_cards" returns paginated cards in the Inbox (filter/cursor/limit are optional). |
| `cursor` | string | No | Pagination cursor. Only valid when action="list_cards". |
| `filter` | string | No | Card state filter for "list_cards". One of: "open" (default), "archived", "all". Not allowed for "get". |

### Trelloreadlist

**Slug:** `TRELLO_MCP_TRELLO_READ_LIST`

Read Trello lists. Supported actions: "list_by_board" — list the open lists on a board (id, name, position, objectId) with cursor-based pagination (limit defaults to 25, max 50); "get" — return a single list by id, including up to 25 nested cards (id, name).
- "list_activity" — page through open cards currently in a list and return each card's recent activity. Only the cards are paginated (cursor/limit, defaults to 25 cards, max 50); each card returns its 25 most recent activity entries. Use trelloReadCard to get a single card's full history.
  Every entry is an action on the card it is grouped under; name that entity type when you report one.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum items to return per page. Defaults to 25, max 50. Counts lists when action="list_by_board" and cards when action="list_activity". Not valid when action="get". |
| `action` | string ("list_by_board" | "get" | "list_activity") | Yes | Action to perform. "list_by_board" requires boardId (cursor/limit are optional). "get" requires listId and does not allow pagination. "list_activity" requires listId and returns open cards with their 25 most recent activity entries each (cursor/limit are optional). |
| `cursor` | string | No | Pagination cursor for "list_by_board" or "list_activity". |
| `listId` | string | No | Trello list identifier. Required when action="get" or action="list_activity". Accepts an ARI (e.g. ari:cloud:trello::list/workspace/<workspaceId>/<listId>). |
| `boardId` | string | No | Trello board identifier. Required when action="list_by_board". Accepts an ARI (e.g. ari:cloud:trello::board/workspace/<workspaceId>/<boardId>). |

### Trelloreadmember

**Slug:** `TRELLO_MCP_TRELLO_READ_MEMBER`

Get a Trello member's profile. Call action="get_me" FIRST before any due-date query (e.g. "cards due today", "overdue cards") to get prefs.timezone (e.g. "America/Los_Angeles") so due dates can be interpreted in the user's local time rather than UTC. Also use action="get_me" to look up the current user's username, fullName, email, or avatarUrl. Supported actions: "get_me" — returns the authenticated user's Trello member profile (id, username, fullName, email, avatarUrl, url, prefs) via the Trello GraphQL API. "get" — returns another Trello member's profile (id, username, fullName, avatarUrl, url, prefs) by memberId. "list_by_board" — lists a board's members with their board role (admin, member, observer) by boardId, with cursor-based pagination (limit defaults to 25, max 100). "list_by_workspace" — lists a workspace's members with their workspace role (admin, member) by workspaceId, with the same cursor-based pagination. Workspace membership cannot be filtered by role. "list_by_card" — returns a paginated list of members assigned to a card, with nextCursor and hasMore.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("admin" | "member" | "observer") | No | Only return members with this board role. Only valid when action="list_by_board" — workspace membership cannot be filtered by role. |
| `limit` | integer | No | Maximum number of members to return per page. Defaults to 25, max 100. Only valid for member list actions. |
| `action` | string ("get_me" | "get" | "list_by_board" | "list_by_workspace" | "list_by_card") | Yes | The read action to perform. "get_me" returns the authenticated user's profile. "get" returns a specific member's profile by memberId. "list_by_board" returns a board's members and their board role by boardId. "list_by_workspace" returns a workspace's members and their workspace role by workspaceId. "list_by_card" lists members assigned to cardId. |
| `cardId` | string | No | Trello card identifier. Required for "list_by_card"; not allowed for other actions. Accepts an ARI (e.g. ari:cloud:trello::card/workspace/<workspaceId>/<cardId>). |
| `cursor` | string | No | Pagination cursor. Only valid for member list actions. |
| `boardId` | string | No | Trello board identifier. Required for "list_by_board"; not allowed for other actions. Accepts an ARI (e.g. ari:cloud:trello::board/workspace/<workspaceId>/<boardId>). |
| `memberId` | string | No | Trello member identifier. Required for "get"; not allowed for any other action. Accepts an ARI (e.g. ari:cloud:trello::user/<memberId>). |
| `workspaceId` | string | No | Trello workspace identifier. Required for "list_by_workspace"; not allowed for other actions. Accepts an ARI (e.g. ari:cloud:trello::workspace/<workspaceId>). |

### Trelloreadplanner

**Slug:** `TRELLO_MCP_TRELLO_READ_PLANNER`

Read Trello Planner information for the authenticated user. Supported actions: "get" — returns the current member's planner (id, primaryAccountId, primaryCalendarId, primaryCalendar details); "list_events" — lists calendar events for a given planner calendar in a time window (plannerCalendarId, providerAccountId, start, end required; limit defaults to 25, max 50; cursor-based pagination supported); "get_event" — returns a single calendar event by provider event id (eventId, providerAccountId, plannerCalendarId required). Timezone handling: start and end must be UTC ISO 8601. For relative time queries like "today" or "this week", first use the "get" action to retrieve primaryCalendar.timezone, then convert to UTC before calling "list_events".

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | Event window end as a UTC ISO 8601 date-time string. Must be after start. For relative queries like "today", first use the "get" action to retrieve primaryCalendar.timezone and convert to UTC. Required for "list_events". |
| `limit` | integer | No | Maximum number of events to return. Defaults to 25, max 50. Only valid for "list_events". |
| `start` | string | No | Event window start as a UTC ISO 8601 date-time string. For relative queries like "today", first use the "get" action to retrieve primaryCalendar.timezone and convert to UTC. Required for "list_events". |
| `action` | string ("get" | "list_events" | "get_event") | Yes | Action to perform. "get" takes no additional args and returns the current member's planner. "list_events" requires plannerCalendarId, providerAccountId, start, end (cursor and limit optional). "get_event" requires eventId, providerAccountId, plannerCalendarId. |
| `cursor` | string | No | Pagination cursor. Only valid for "list_events". |
| `eventId` | string | No | Provider event ID. Required for "get_event". |
| `plannerCalendarId` | string | No | Trello planner calendar identifier. Required for "list_events" and "get_event". Accepts an ARI (e.g. ari:cloud:trello::planner-calendar/<calendarId>). |
| `providerAccountId` | string | No | Provider account ARI (e.g. Google account ARI like "ari:third-party:google::account/<id>"). Required for "list_events" and "get_event". |

### Trelloreadworkspace

**Slug:** `TRELLO_MCP_TRELLO_READ_WORKSPACE`

Read Trello workspaces (organizations) the current user has access to. Supported actions: "list" — list workspaces visible to the authenticated user (cursor-based pagination, limit defaults to 25, max 100); "get" — fetch detailed data for a single workspace by id (typically used after "list" to drill into a workspace).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of workspaces to return (default 25, max 100). Only valid for "list" action. |
| `action` | string ("list" | "get") | Yes | The read action to perform. "list" returns paginated workspaces; "get" returns a single workspace by id. |
| `cursor` | string | No | Pagination cursor for the next page. Only valid for "list" action. |
| `workspaceId` | string | No | Trello workspace identifier. Required for "get" action. Accepts an ARI (e.g. ari:cloud:trello::workspace/<workspaceId>). |

### Trellosearch

**Slug:** `TRELLO_MCP_TRELLO_SEARCH`

Discover Trello boards or cards by keyword across all workspaces. Use this when the user wants to find something by name or content but does not know which board it is on. If the user already knows the board or list they want to browse, use trelloReadCard (list_by_board or list_by_list) instead — it is faster and returns richer grouped results. Supported actions: "search_boards" — search for boards by name, always include each board's `url` verbatim in the response; "search_cards" — search for cards by name/content. Both support optional workspace scoping and cursor-based pagination. Both actions return open (non-archived) results by default. To search archived items instead, include `is:archived` in the query. "search_cards" additionally supports boardIds scoping and qualifiers: label:, board:, list:, member:, due:, has:. For archived/closed cards, use `is:archived` or `is:closed` (they are equivalent for cards only). For archived boards, use `is:archived` only — boards do not support the `is:closed` alias. Due date timezone handling: Trello due-date search qualifiers use UTC boundaries. For "today" or date-based due-date queries, first call trelloReadMember (get_me) for prefs.timezone and account for the user's local timezone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return (default 10, max 100). |
| `query` | string | Yes | Required free-text query string to search for (min 1 character). |
| `action` | string ("search_boards" | "search_cards") | Yes | The search action to perform: "search_boards" or "search_cards". |
| `cursor` | string | No | Pagination cursor from a prior response's nextCursor field. |
| `partial` | boolean | No | Enable partial/prefix matching on names (default false). |
| `boardIds` | array | No | Optional list of board ARIs to scope card search results (e.g. ["ari:cloud:trello::board/workspace/<workspaceId>/<boardId>"]).Only valid for "search_cards". |
| `workspaceIds` | array | No | Optional list of workspace ARIs to scope search results (e.g. ["ari:cloud:trello::workspace/<workspaceId>"]). Valid for both "search_boards" and "search_cards". |

### Trellowriteboard

**Slug:** `TRELLO_MCP_TRELLO_WRITE_BOARD`

Create Trello boards. Supported actions: "create" — create a Trello board in a workspace with a name, visibility, and optional preferences.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `desc` | string | No | Board description. Optional for "update". |
| `name` | string | No | Board name. Required for "create". |
| `color` | string ("green" | "green_dark" | "green_light" | "yellow" | "yellow_dark" | "yellow_light" | "orange" | "orange_dark" | "orange_light" | "red" | "red_dark" | "red_light" | "purple" | "purple_dark" | "purple_light" | "blue" | "blue_dark" | "blue_light" | "sky" | "sky_dark" | "sky_light" | "lime" | "lime_dark" | "lime_light" | "pink" | "pink_dark" | "pink_light" | "black" | "black_dark" | "black_light") | No | Label color. Required for "create_label", optional for "update_label"; not allowed for other actions. |
| `prefs` | object | No | Optional board preferences payload. Only valid for "create". |
| `action` | string ("create") | Yes | Board write action to perform. "create" creates a board in a workspace. |
| `boardId` | string | No | Trello board ARI — the `id` field returned by trelloReadBoard (e.g. "ari:cloud:trello::board/workspace/<workspaceId>/<boardId>"). Required for "update" and "archive". |
| `labelId` | string | No | Trello label ARI (e.g. "ari:cloud:trello::label/workspace/<workspaceId>/<labelId>"). Required for "update_label". |
| `visibility` | string ("ENTERPRISE" | "ORG" | "PRIVATE" | "PUBLIC") | No | Board visibility. Supported values: ENTERPRISE, ORG, PRIVATE, PUBLIC. Use ORG for workspace visibility. Optional for "create" (defaults to PRIVATE) and for "update". |
| `workspaceId` | string | No | Trello workspace identifier that will own the new board. Required for "create". Accepts an ARI (e.g. ari:cloud:trello::workspace/<workspaceId>). |

### Trellowritecard

**Slug:** `TRELLO_MCP_TRELLO_WRITE_CARD`

Create, update, move, archive, mark Trello cards done, or manage labels on cards. Supported actions: "create" — create a card on a list (listId and name required; desc, due, pos optional); "update" — update an existing card (cardId required; at least one of name, desc, due required); "move" — move a card to another list, optionally across boards (cardId and listId required, where listId is the destination list; boardId is optional and only needed when moving to a list on a different board; pos is optional and sets the card position in the destination list); "archive" — archive a card (cardId required); "mark_done" — mark a card as complete (cardId required); "attach_label" — attach a label to a card (cardId and labelId required); "detach_label" — detach a label from a card (cardId and labelId required). "add_comment" — post a comment on a card (cardId and text required); "update_comment" — replace the text of an existing comment on a card (cardId, commentId and text required).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due` | string | No | Card due date as a UTC ISO 8601 date-time string (e.g. "2026-06-01T17:00:00.000Z"). Optional for "create" and "update". |
| `pos` | string | No | Card position. Optional for "create", "move", and "copy". Use "top", "bottom", or a non-negative number (e.g. 16384). |
| `desc` | string | No | Card description. Optional for "create" and "update". |
| `name` | string | No | Card name. Required for "create"; optional for "update" and "copy". |
| `text` | string | No | Comment text. Required for "add_comment"; for "update_comment" this is the replacement text for the comment. |
| `action` | string ("create" | "update" | "move" | "archive" | "mark_done" | "attach_label" | "detach_label" | "add_comment" | "update_comment") | Yes | Action to perform: "create" creates a card; "update" updates card fields; "move" moves a card to another list; "archive" archives a card; "mark_done" marks a card complete; "attach_label" attaches a label to a card; "detach_label" detaches a label from a card. "add_comment" posts a comment on a card; "update_comment" edits an existing comment on a card. |
| `cardId` | string | No | Trello card ARI — the `id` field returned by trelloReadCard (e.g. "ari:cloud:trello::card/workspace/<workspaceId>/<cardId>"). Do NOT pass a Trello URL or short link; use trelloReadCard first to obtain the ARI. Required for "update", "move", "copy", "archive", "mark_done", "attach_label", "detach_label", "add_comment". |
| `listId` | string | No | Trello list ARI (e.g. "ari:cloud:trello::list/workspace/<workspaceId>/<listId>"). For "create", this is the list the new card is added to. For "move", this is the destination list the card is moved to. For "copy", this is the optional destination list; omit it to copy within the source list. Required for "create" and "move". |
| `boardId` | string | No | Trello board ARI (e.g. "ari:cloud:trello::board/workspace/<workspaceId>/<boardId>"). Only used by "move": pass the destination board ARI when moving a card to a list on a different board. Omit when moving within the same board. Must be paired with listId — boardId on its own is not allowed. |
| `labelId` | string | No | Trello label ARI (e.g. "ari:cloud:trello::label/workspace/<workspaceId>/<labelId>"). Required for "attach_label" and "detach_label". |
| `memberId` | string | No | Trello member ARI (e.g. "ari:cloud:trello::user/<memberId>"). Use trelloReadMember "list_by_board" to find the member ARI. Required for "add_member". |
| `commentId` | string | No | Trello comment/action ARI (e.g. "ari:cloud:trello::action/<actionId>") — the `id` field returned by trelloReadCard ("get_comment" or "list_comments"). Required for "update_comment", and must be a comment on the card given by cardId. |
| `customFieldId` | string | No | Trello custom field ARI (e.g. "ari:cloud:trello::customField/workspace/<workspaceId>/<customFieldId>"). Use trelloReadBoard "list_custom_fields" to find the ARI. Required for "set_custom_field_value". |
| `customFieldValue` | object | No | Value to set on the custom field. Required for "set_custom_field_value". Pass exactly one of: text (text field), number (number field, as string), date (date field, ISO 8601), checked (checkbox field), valueId (list/dropdown option ARI), or clear: true to remove the value. |

### Trellowritechecklist

**Slug:** `TRELLO_MCP_TRELLO_WRITE_CHECKLIST`

Write Trello checklists and their check items. Actions: "create" — add a new checklist to a card by cardId and name, optionally placed at "top", "bottom", or an explicit numeric position. Returns the created checklist as a TrelloChecklist (id, objectId, name, position, checkItems[]). "add_item" — append a new check item to an existing checklist by checklistId and text, optionally placed at "top", "bottom", or an explicit numeric position. Returns the created check item (id, name, state, position) using the same normalized shape as trelloReadChecklist. "update_item" — update an existing check item by checklistId and itemId; supports renaming (text), toggling completion (checked), repositioning (pos), and moving to another checklist on the same card (toChecklistId). Returns the updated check item. "update" — rename a checklist (`name`) and/or change its position on its card (`pos`) by checklistId. At least one of `name` or `pos` must be supplied. Returns the resulting checklist in the same normalized shape as trelloReadChecklist (id, name, position, checkItems[]).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pos` | string | No | Position of the new checklist on the card (action="create"), the initial position of the new check item within the checklist (action="add_item"), an existing check item (action="update_item"), or an existing checklist on its card (action="update"). "top" or "bottom" places it relative to existing items; a number sets an explicit absolute position. |
| `name` | string | No | Name of the checklist. Required when action="create". Optional for action="update" (renames the checklist). |
| `text` | string | No | Text (name) of the check item. Required when action="add_item"; optional rename when action="update_item". |
| `action` | string ("create" | "add_item" | "update_item" | "update" | "add_member") | Yes | Action to perform. "create" requires cardId and name (pos is optional). "add_item" requires checklistId and text (pos is optional). "update_item" requires checklistId and itemId (text, checked, pos, toChecklistId are optional). "update" requires checklistId and at least one of name or pos.  |
| `cardId` | string | No | Trello card ARI — the `id` field returned by trelloReadCard (e.g. "ari:cloud:trello::card/workspace/<workspaceId>/<cardId>"). Do NOT pass a Trello URL or short link; use trelloReadCard first to obtain the ARI. Required when action="create". |
| `itemId` | string | No | Trello check item identifier. Required when action="update_item". Accepts an ARI (e.g. ari:cloud:trello::check-item/workspace/<workspaceId>/<itemId>). |
| `checked` | boolean | No | Whether the check item is completed. Optional when action="update_item". |
| `memberId` | string | No | Member to assign to the check item (e.g. "ari:cloud:trello::user/<memberId>"). Use trelloReadMember "list_by_board" to find the member ARI. Only valid for action="add_item" and action="add_member". |
| `checklistId` | string | No | Trello checklist identifier. Required when action="add_item", action="update_item", or action="update". Accepts an ARI (e.g. ari:cloud:trello::checklist/workspace/<workspaceId>/<checklistId>). |
| `toChecklistId` | string | No | Target checklist ARI to move the check item into (e.g. "ari:cloud:trello::checklist/workspace/<workspaceId>/<checklistId>"). The target checklist must be on the same card. Only valid for action="update_item". |

### Trellowriteinbox

**Slug:** `TRELLO_MCP_TRELLO_WRITE_INBOX`

Write Trello Inbox cards. Supported actions: "create" — create a new card in the Trello Inbox (name required; desc and due are optional). The Inbox list is resolved automatically — no listId needed. "update" — update fields on an existing Inbox card (cardId required; at least one of name, desc, or due required). "move" — move an Inbox card to another list and board (cardId, listId, and boardId required; pos optional). "archive" — archive an existing Inbox card (cardId required; no other fields allowed). Returns the created, updated, moved, or archived card including its id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due` | string | No | Card due date as a UTC ISO 8601 date-time string (e.g. "2026-06-01T17:00:00.000Z"). Optional for "create" and "update". |
| `pos` | string | No | Card position after move. Optional for "move". Use "top", "bottom", or a non-negative number (e.g. 16384). |
| `desc` | string | No | Card description. Optional for "create" and "update". |
| `name` | string | No | Card name. Required for "create"; optional for "update". |
| `action` | string ("create" | "update" | "move" | "archive") | Yes | Action to perform. "create" creates a new card in the Trello Inbox; "update" updates card fields; "move" moves a card to another list; "archive" archives an existing card. |
| `cardId` | string | No | Trello Inbox card ARI — the `id` field returned by trelloReadInbox (e.g. "ari:cloud:trello::card/workspace/<workspaceId>/<cardId>"). Do NOT pass a Trello URL or short link; use trelloReadInbox first to obtain the ARI. Required for "update", "move", and "archive"; not used for "create". |
| `listId` | string | No | Trello list ARI (e.g. "ari:cloud:trello::list/workspace/<workspaceId>/<listId>"). Required for "move": the destination list the card is moved to. |
| `boardId` | string | No | Trello board ARI (e.g. "ari:cloud:trello::board/workspace/<workspaceId>/<boardId>"). Required for "move". |

### Trellowritelist

**Slug:** `TRELLO_MCP_TRELLO_WRITE_LIST`

Create, update, archive, or move a Trello list. Supported actions: "create" — create a new list on a board (boardId and name required; pos optional); "update" — rename an existing list (listId and name required); "archive" — soft-delete (close) a list (listId required); "move" — reposition a list, optionally moving it to another board (listId and pos required; boardId is optional and only needed when moving the list to a different board).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pos` | string | No | List position. Required when action="move"; optional when action="create". Use a non-negative number for an absolute position, or the string "top" or "bottom". |
| `name` | string | No | List name. Required when action="create" or action="update". |
| `action` | string ("create" | "update" | "archive" | "move") | Yes | Action to perform: "create", "update", "archive", or "move". |
| `listId` | string | No | Trello list identifier. Required when action="update", action="archive", or action="move". Accepts an ARI (e.g. ari:cloud:trello::list/workspace/<workspaceId>/<listId>). |
| `boardId` | string | No | Trello board identifier. Required when action="create". For action="move", pass the destination board ARI to move the list to a different board; omit it to reposition within the same board. Accepts an ARI (e.g. ari:cloud:trello::board/workspace/<workspaceId>/<boardId>). |

### Trellowriteplanner

**Slug:** `TRELLO_MCP_TRELLO_WRITE_PLANNER`

Create Trello Planner calendar events and manage card-event links. Supported actions: "create_event" — create a calendar event (title, start, and end required; if cardId is provided, the event is linked to that card and title defaults to the card name); "link_card_to_event" — link an existing card to an existing event (cardId and eventId required); "unlink_card_from_event" — unlink a card from an event (cardId and eventId required). providerAccountId and calendarId are optional for all actions; when omitted the user's primary calendar account is used.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | Event end time as a UTC ISO 8601 date-time string. Required for "create_event". |
| `start` | string | No | Event start time as a UTC ISO 8601 date-time string. Required for "create_event". |
| `title` | string | No | Event title. Required for "create_event" when cardId is not provided. When cardId is provided, defaults to the card name. |
| `action` | string ("create_event" | "link_card_to_event" | "unlink_card_from_event") | Yes | Action to perform: "create_event", "link_card_to_event", or "unlink_card_from_event". |
| `cardId` | string | No | Trello card ARI — the `id` field returned by trelloReadCard (e.g. "ari:cloud:trello::card/workspace/<workspaceId>/<cardId>"). Do NOT pass a Trello URL or short link; use trelloReadCard first to obtain the ARI. Required for "link_card_to_event" and "unlink_card_from_event". Optional for "create_event" (when provided, the new event is linked to the card). |
| `eventId` | string | No | The planner calendar event ID. Required for "link_card_to_event" and "unlink_card_from_event". |
| `calendarId` | string | No | The planner calendar ID to operate on. Optional — when omitted, the user's primary calendar is used. |
| `providerAccountId` | string | No | The provider account ID (e.g. a linked Google or Outlook account ID). Optional — when omitted, the user's primary planner account is used. |
