Skip to main content
Glama

πŸš€ 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: Claude MCP Trello

✨ 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adriangrahldev/advanced-trello-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server