Skip to main content
Glama
Advanced Trello MCP Server

Advanced Trello MCP Server

πŸš€ Advanced Trello MCP Server

Enhanced Model Context Protocol Server for Trello integration with Cursor AI
Production-hardened API layer, batch tools, and attachment downloads

TypeScript Trello API MCP Protocol License

πŸ“‹ Overview

This is an enhanced version of the Trello MCP Server that provides comprehensive integration between Trello and Cursor AI (and similar MCP clients). It includes ~35 tools across boards, lists, cards, labels, and actions, plus a reliable HTTP layer suited to heavy or sequential API use.

Related MCP server: Atlassian Trello MCP Server

✨ Features

πŸ›‘οΈ Reliability (production-tested)

All Trello calls (MCP resources and tools) go through a shared client in src/utils/api.ts:

  • HTTPS keep-alive β€” reuses TLS connections (helps avoid CloudFront / CDN connection churn on burst traffic)

  • **fetchWithRetry** β€” ~60s timeout, exponential backoff with jitter (up to 7 attempts), retries on network errors and 5xx

  • Sliding-window rate limit β€” ~80 requests / 10s (mutex-protected)

  • 429 handling β€” respects Retry-After when present

🎯 API coverage (current)

Area

Tools

Notes

Lists

10

Full list lifecycle, bulk card moves

Cards

12

Batch create/move/archive/comments, attachments

Labels

8

Including batch add

Actions

4

Get / update / delete action, list reactions

Boards

1

List accessible boards

πŸ”§ Other

  • TypeScript + Zod validation on tool inputs

  • Batch operations β€” fewer round-trips for agents (create-cards, move-cards, archive-cards, add-comments, etc.)

  • Attachment pipeline β€” list metadata + optional download to disk (see below)

πŸš€ Quick Start

Prerequisites

  • Node.js 18+

  • Trello API Key and Token

  • Cursor (or any MCP client)

Installation

  1. Clone the repository

 git clone https://github.com/adriangrahldev/advanced-trello-mcp-server.git
 cd advanced-trello-mcp-server
  1. Install dependencies

 npm install
  1. Build the project

 npm run build
  1. Configure environment variables

 export TRELLO_API_KEY="your_api_key"
 export TRELLO_API_TOKEN="your_api_token"
  1. Configure Cursor MCP Add to your ~/.cursor/mcp.json (paths adjusted for your machine):

πŸ› οΈ Available Tools

πŸ“‹ Lists (10)

  • get-lists β€” Lists on a board

  • create-list / update-list / archive-list

  • move-list-to-board

  • get-list-actions / get-list-board / get-list-cards

  • archive-all-cards-in-list / move-all-cards-in-list

🎯 Cards (12)

  • create-card β€” Optional **due** and **start** (ISO 8601)

  • create-cards β€” Batch create; each card may include **due** / **start**

  • update-card β€” Name and/or description

  • move-card / move-cards

  • add-comment / **add-comments** (batch comments on multiple cards)

  • get-tickets-by-list

  • archive-card / archive-cards

  • **get-card-attachments** β€” Metadata + commentContext (e.g. screenshots on comments)

  • **download-card-attachments** β€” Downloads files to a folder (numbered files + _manifest.json). File URLs often require OAuth-style Authorization header (not query-string key/token); this tool handles that.

🏷️ Labels (8)

  • create-label / create-labels

  • add-label / add-labels

  • get-label / update-label / delete-label / update-label-field

πŸ“Š Actions (4)

  • get-action β€” With optional display/entities/member params

  • update-action / delete-action

  • get-action-reactions

🏒 Boards (1)

  • get-boards

❓ Why is an old Pull Request still β€œopen” on GitHub?

GitHub marks a PR as Merged only when you merge that PR (green β€œMerge pull request” button), or when the PR branch is merged in a way GitHub links to the PR.

If you cherry-picked, copied files, or merged locally into main and pushed main, the code is on the repo but the PR stays open until you:

  1. Close the PR manually β€” add a comment such as: β€œLanded on main via commit ** β€” thanks!”

  2. Or use GitHub’s merge flow next time so the PR closes automatically.

Conflicts on fork-based PRs are normal; resolving on your machine and pushing main is fine β€” just close the PR afterward so contributors know it’s done.

πŸ“ˆ Roadmap

Broader Trello API coverage (checklists, members, webhooks, search, etc.) is planned. PRs welcome.

πŸ”§ Development

Project structure

advanced-trello-mcp-server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts
β”‚   β”œβ”€β”€ tools/       # boards, lists, cards, labels, actions
β”‚   β”œβ”€β”€ types/
β”‚   └── utils/       # api.ts β€” fetchWithRetry, keep-alive, rate limit
β”œβ”€β”€ build/
β”œβ”€β”€ scripts/build.js
β”œβ”€β”€ package.json
└── README.md

Building

npm run build    # TypeScript + shebang on build/index.js
npm run compile  # tsc only

Cross-platform build (Windows / macOS / Linux): compiles TS, adds #!/usr/bin/env node, sets execute bit on Unix.

🀝 Contributing

  1. Fork the repository

  2. Branch (git checkout -b feature/...)

  3. Commit (Conventional Commits encouraged)

  4. Open a Pull Request

If the maintainer merges your work outside the GitHub PR UI, they may close the PR with a link to the landing commit β€” that does not mean your contribution wasn’t accepted.

πŸ“š API documentation

Tools follow the Trello REST API. Inputs are validated with Zod.

πŸ› Troubleshooting

Issue

What to check

Credentials

TRELLO_API_KEY + TRELLO_API_TOKEN; token scopes (read / write)

Tool not found

Rebuild (npm run build), restart MCP client

fetch failed / timeouts

Retry layer should help; sustained 429 β†’ slow down workflows

Attachment download 401

Use download-card-attachments (header auth), not raw URL with ?key=&token=

πŸ“„ License

MIT β€” see LICENSE.

πŸ™ Acknowledgments


Built with ❀️ for the Cursor AI community

Available Tools

32 tools
add-commentD

Inputs: cardId (required), text (required).

add-commentsD

Inputs: comments (required).

add-labelD

Inputs: cardId (required), labelId (required).

add-labelsD

Inputs: items (required).

archive-all-cards-in-listD

Inputs: listId (required).

archive-cardD

Inputs: cardId (required).

archive-cardsD

Inputs: cardIds (required).

archive-listD

Inputs: listId (required), archived (required).

create-cardD

Inputs: name (required), listId (required), description.

create-cardsD

Inputs: cards (required).

create-labelD

Inputs: boardId (required), name (required), color (required).

create-labelsD

Inputs: labels (required).

create-listD

Inputs: boardId (required), name (required), position.

delete-actionD

Inputs: actionId (required).

delete-labelD

Inputs: labelId (required).

get-actionD

Inputs: actionId (required), display, entities, fields, +4 more.

get-action-reactionsD

Inputs: actionId (required), member, emoji.

get-boardsD

Inputs: fields, filter, limit, organization, +1 more.

get-labelD

Inputs: labelId (required), fields.

get-list-actionsD

Inputs: listId (required), filter.

get-list-boardD

Inputs: listId (required), fields.

get-list-cardsD

Inputs: listId (required), fields, filter.

get-listsD

Inputs: boardId (required).

get-tickets-by-listD

Inputs: listId (required), limit.

move-all-cards-in-listD

Inputs: listId (required), destinationBoardId (required), destinationListId (required).

move-cardD

Inputs: cardId (required), listId (required), position.

move-cardsD

Inputs: cards (required).

move-list-to-boardD

Inputs: listId (required), boardId (required).

update-actionD

Inputs: actionId (required), text (required).

update-labelD

Inputs: labelId (required), name, color.

update-label-fieldD

Inputs: labelId (required), field (required), value (required).

update-listD

Inputs: listId (required), name, closed, pos, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    D1.5/5.0

    Scored across 32 tools

    Disambiguation2/5

    Multiple tools have unclear boundaries, such as add-comment vs add-comments, archive-card vs archive-cards, and create-card vs create-cards, which could cause confusion. While some tools target distinct resources (e.g., get-boards vs get-list-cards), the overlapping singular/plural pairs and vague purposes like delete-action vs update-action reduce clarity.

    Naming Consistency4/5

    Tool names follow a mostly consistent verb_noun pattern with hyphens, such as create-card, get-boards, and update-label. However, there are minor deviations like get-tickets-by-list (which uses 'tickets' instead of 'cards') and inconsistent handling of plurals (e.g., add-comment vs add-comments), slightly affecting predictability.

    Tool Count2/5

    With 32 tools, the count is too high for the Trello domain, leading to redundancy and bloat. Many tools could be consolidated (e.g., singular and plural versions), making the set feel heavy and overwhelming for typical agent workflows, despite covering a broad scope.

    Completeness3/5

    The tool set covers core CRUD operations for boards, lists, cards, labels, and actions, but there are notable gaps, such as missing tools for managing board settings or user permissions. The inclusion of redundant tools (e.g., multiple archive/move variants) does not fill these gaps, leaving the surface somewhat incomplete for advanced Trello management.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides tools for interacting with Trello boards, enabling seamless management of cards, lists, and activities while handling rate limiting and type safety.
      35
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      A 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.
      45
      246 npm
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server that provides AI assistants with access to Trello's functionality. This server enables AI models to interact with Trello boards, lists, and cards programmatically.
      132 npm
      1
      ISC