# How to integrate Trello MCP with Atomic Agent

```json
{
  "title": "How to integrate Trello MCP with Atomic Agent",
  "toolkit": "Trello MCP",
  "toolkit_slug": "trello_mcp",
  "framework": "Atomic Agent",
  "framework_slug": "atomic-agent",
  "url": "https://composio.dev/toolkits/trello_mcp/framework/atomic-agent",
  "markdown_url": "https://composio.dev/toolkits/trello_mcp/framework/atomic-agent.md",
  "updated_at": "2026-10-30T05:32:21.975Z"
}
```

## Introduction

Atomic Agent is an open-source AI agent that runs on your machine and supports local models through llama.cpp. Connect it to 1,500+ apps through Composio, including Trello.
This guide uses Atomic Agent's built-in Composio integration. You need Atomic Agent v0.5.6 or later, your own Composio API key, and a Trello account. See the [Atomic Agent documentation](https://atomicagent.io/docs/?cta_placement=atomic-agent-docs) for installation instructions.

## Also integrate Trello MCP with

- [ChatGPT](https://composio.dev/toolkits/trello_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/trello_mcp/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/trello_mcp/framework/hermes-agent)

## TL;DR

### How Atomic Agent connects to Trello
Atomic Agent connects to Composio's Tool Router over Streamable HTTP MCP. It discovers the tools needed for your request, and Composio handles account authentication.
Execution and account-connection tools follow Atomic Agent's configured approval policy. Review any approval prompt before allowing an action on your connected account.

## Connect Trello MCP to Atomic Agent

### Connect Trello to Atomic Agent
- Sign up or sign in to the [Composio dashboard](https://dashboard.composio.dev/?cta_placement=atomic-agent-api-key). Copy your API key.
- In Atomic Agent, open the Integrations tab and select Composio. Select API key, press e, paste the key, and press Enter. The tools become available immediately, without a restart.
- Ask Atomic Agent to do something in Trello. It searches Composio for the right tool.
- On first use, open the sign-in link returned in the chat. Connect your Trello account, then return to Atomic Agent to continue.
### Headless setup
Add the following line to ~/.atomic-agent/.env, replacing YOUR_COMPOSIO_API_KEY with your key. Start Atomic Agent after saving the file.

```bash
COMPOSIO_API_KEY=YOUR_COMPOSIO_API_KEY
```

## What is the Trello MCP server, and what's possible with it?

The Trello MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Trello account. It provides structured and secure access to your boards, lists, cards, checklists, member Inbox, workspaces, and Planner, so your agent can find work, organize tasks, update cards, and manage planning activities on your behalf.
- Board and work discovery: Have your agent search across your workspaces for Trello boards and cards, then read board, list, and card details to surface current work.
- Card and list management: Let the agent create, update, move, archive, and mark cards as done, while also creating, updating, archiving, or moving lists.
- Checklists and labels: Direct your agent to read card checklists, create and update checklist items, and manage labels on cards as tasks change.
- Inbox and workspace review: Instruct your agent to review your Trello Inbox, add Inbox cards, read workspace information, and retrieve member profile details.
- Planner coordination: Have your agent read Planner information, create calendar events, and manage links between Planner events and Trello cards.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `TRELLO_MCP_TRELLO_READ_BOARD` | Trelloreadboard | 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. |
| `TRELLO_MCP_TRELLO_READ_CARD` | Trelloreadcard | 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. |
| `TRELLO_MCP_TRELLO_READ_CHECKLIST` | Trelloreadchecklist | 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. |
| `TRELLO_MCP_TRELLO_READ_INBOX` | Trelloreadinbox | 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). |
| `TRELLO_MCP_TRELLO_READ_LIST` | Trelloreadlist | 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. |
| `TRELLO_MCP_TRELLO_READ_MEMBER` | Trelloreadmember | 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. |
| `TRELLO_MCP_TRELLO_READ_PLANNER` | Trelloreadplanner | 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". |
| `TRELLO_MCP_TRELLO_READ_WORKSPACE` | Trelloreadworkspace | 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). |
| `TRELLO_MCP_TRELLO_SEARCH` | Trellosearch | 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. |
| `TRELLO_MCP_TRELLO_WRITE_BOARD` | Trellowriteboard | Create Trello boards. Supported actions: "create" — create a Trello board in a workspace with a name, visibility, and optional preferences. |
| `TRELLO_MCP_TRELLO_WRITE_CARD` | Trellowritecard | 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). |
| `TRELLO_MCP_TRELLO_WRITE_CHECKLIST` | Trellowritechecklist | 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[]). |
| `TRELLO_MCP_TRELLO_WRITE_INBOX` | Trellowriteinbox | 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. |
| `TRELLO_MCP_TRELLO_WRITE_LIST` | Trellowritelist | 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). |
| `TRELLO_MCP_TRELLO_WRITE_PLANNER` | Trellowriteplanner | 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. |

## Supported Triggers

None listed.

## Troubleshooting

### Why is my API key rejected?

Copy the key directly from the Composio dashboard. Atomic Agent requires ASCII characters because it sends the key in an HTTP header. Remove any extra characters introduced when copying.

### Why are Composio tools unavailable after saving a key?

Check that you use Atomic Agent v0.5.6 or later and that Composio is enabled in your configuration. A "composio": { "enabled": false } setting disables the integration while keeping the saved key on disk.

### Does Composio have a free plan?

The Hobby plan includes 100,000 tool calls per month. Composio-managed OAuth apps have a lower included allowance. See [Composio pricing](/pricing) for the current limits that apply to your connection.

## Complete Code

None listed.

## Conclusion

### Use Trello from Atomic Agent
With your account connected, ask Atomic Agent to work with Trello in natural language. You can connect more apps through the same Composio integration as you need them.
Visit the [Atomic Agent website](https://atomicagent.io/?cta_placement=atomic-agent-site) or inspect the [Atomic Agent source code](https://github.com/AtomicBot-ai/atomic-agent?cta_placement=atomic-agent-repo).

## How to build Trello MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/trello_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/trello_mcp/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/trello_mcp/framework/hermes-agent)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [Aha!](https://composio.dev/toolkits/aha) - Aha! is a product management platform for setting strategy, prioritizing ideas, and planning roadmaps. It helps product teams align goals with development work and make better decisions.
- [AirOps MCP](https://composio.dev/toolkits/airops_mcp) - AirOps MCP is AirOps' managed content platform exposing brand context, knowledge bases, and workflows. Use it to give agents brand-aware content, automate content workflows, and track Brand Kit edits.
- [Amazing Marvin](https://composio.dev/toolkits/amazing_marvin) - Amazing Marvin is a personal productivity app for tasks, projects, habits, planning, time tracking, and rewards. It helps you build a flexible workflow that matches how you actually work.
- [Ambiguous MCP](https://composio.dev/toolkits/ambiguous_mcp) - Ambiguous MCP is a provider-hosted workspace service for documents, spreadsheets, tasks, CRM, calendar, mail, chat, and administration. It provides one workspace-scoped connection for managing these resources through natural language.
- [AnyDB](https://composio.dev/toolkits/any_db) - AnyDB is a flexible collaborative database platform for organizing records, files, and automated workflows. It helps teams centralize data, collaborate on records, and automate routine tasks.
- [ApptiveGrid](https://composio.dev/toolkits/apptivegrid) - ApptiveGrid is a collaborative no-code database and app platform for spaces, grids, forms, and structured records. It helps teams organize operational data, collect inputs, and build lightweight business apps without custom backend work.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Atlassian MCP](https://composio.dev/toolkits/atlassian_mcp) - Atlassian Rovo MCP connects agents to Jira, Jira Service Management, Confluence, Bitbucket, Compass, and Teamwork Graph workflows. It lets teams surface and act on Atlassian data while respecting existing user permissions.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Trello MCP?

With a standalone Trello MCP server, the agents and LLMs can only access a fixed set of Trello tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Trello and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Atomic Agent?

Yes, you can. Atomic Agent fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Trello tools.

### Can I manage the permissions and scopes for Trello while using Tool Router?

Yes, absolutely. You can configure which Trello scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Trello data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
