Trello MCP
Provides tools for managing Trello boards, lists, cards, checklists, attachments, labels, members, comments, and more, enabling AI agents to read and update Trello boards.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Trello MCPshow my open cards on the GTD board"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Trello MCP — Personal remote connector for Claude
A small, opinionated MCP server that lets Claude read and update Trello boards. Runs on Cloudflare Workers, gated behind GitHub OAuth, allowlisted to a single GitHub user.
Designed primarily around Dann Bleeker Pedersen's GTD workflow, but the underlying tools are generic — friendly aliases for boards / lists / labels live in src/trello/constants.ts and are easy to extend for other workflows.
Tools (96)
Reads
Tool | Purpose |
| All open boards the authenticated Trello user belongs to |
| Lists on a board (alias or ID) |
| Cards on a list or board; includes |
| Read one list with |
| Filter by scope: |
| Closed (archived) cards on a board — same CardSummary shape as list_cards |
| Full details for one card |
| Fuzzy name search, scoped or unscoped; includes |
|
|
| Checklists + items on a card |
| Attachments on a card (id, name, url, date, mimeType) |
| Fetch a single attachment with richer fields (previews[], edgeColor, pos) than list_attachments returns |
| All labels on a board (id, name, color) |
| Fetch one label directly by ID or by name (with board scope) |
| Everyone with access to a board (id, fullName, username, initials) |
| Members assigned to one card |
| Cross-board "everything assigned to me"; optional board filter |
| Chronological comment thread on a card |
| Recent actions on a card — moves, due-date edits, label/comment/attachment events |
| Cards whose |
| One-call GTD snapshot: inbox, overdue, due-today, due-this-week, context-list counts, waiting stale, could-do horizons, snoozed, big-rocks |
| Authenticated user's bell-icon feed; filter by type + read state |
| Members who have voted on a card |
| All emoji reactions on a comment |
| Grouped emoji-reaction counts on a comment (lighter than list_comment_reactions) |
| Recent actions on a single list |
| The authenticated user's cross-board recent activity |
| Full detail for a single action (move, comment, update, etc.) |
| Trello's pre-rendered human-readable version of an action |
| Richer than |
| Look up any Trello member by ID or username |
| Custom-field DEFINITIONS on a board (Power-Up-dependent) |
| A card's current custom-field values |
| Power-Ups currently enabled on a board (id + idPlugin + alias) |
| Plugin metadata (name, description, url) by alias or ID |
| Bundle up to 10 relative Trello paths into one request via |
Writes
Tool | Purpose |
| New card on a list (with guards + WIP warning) |
| Duplicate a card to a target list; |
| Move card between lists (guards source AND destination) |
| Edit name / description / due date |
| Soft archive ( |
| Mark due date as done (triggers Butler automations) |
| Set minutes-before-due reminder offset; null clears |
| Move a card to top / bottom / numeric position within its list |
| Set or clear a card's start date (ISO 8601 or null) |
| Tick / untick a single checklist item |
| Apply a label by ID or name |
| Remove a label by ID or name |
| Create a new label on a board (palette token or null for no color) |
| Delete a label board-wide (destructive — strips it from every card carrying it) |
| Assign a member (ID, username, or full name resolved on the card's board) |
| Unassign a member |
| Append a comment to a card |
| Edit an existing comment (by action ID from |
| Delete an existing comment |
| Append an item to the card's checklist |
| Remove an item from a checklist |
| Create a new named checklist (e.g. "Agenda", "Decisions") |
| Change a checklist's name |
| Delete a checklist and all its items |
| Promote a checklist item to a standalone card; optional |
| Attach a URL to a card |
| Upload a real file (base64 → multipart). 10 MB hard cap — for larger files, host the file and use |
| Remove an attachment from a card |
| Apply the same label to up to 50 cards (per-card skip reasons reported) |
| Move up to 50 cards to the same destination list (guards + WIP warning) |
| Create a new list on a board (with position) |
| Rename a list |
| Archive (default) or reopen a list |
| Reposition a list and/or move it to another board |
| Bulk-move every card on a list to another list |
| Bulk-archive every open card on a list |
| Set cover (palette color or attachment); size + brightness optional |
| Strip the card's cover |
| Set or clear a due date on a checklist item |
| Assign or unassign a member on a checklist item |
| Move a checklist item within its checklist (top/bottom/number) |
| Rename and/or recolor an existing label |
| Watch / unwatch a card |
| Watch / unwatch a list |
| Flip one notification's read flag |
| Bulk mark every (optionally filtered) notification read |
| Vote on a card as the authenticated user |
| Withdraw your vote from a card |
| Add an emoji reaction to a comment |
| Remove a reaction by its ID |
| Duplicate an entire checklist (with items) onto another card |
| Bulk-clear every notification associated with one card |
| Create a new custom-field definition on a board (Power-Up-dependent) |
| Rename / reposition / toggle display-on-card-front for a custom field |
| Delete a custom-field definition (removes every card's value for it) |
| Add an option to a list-type custom field |
| Remove an option from a list-type custom field |
| Set a custom-field value on a card (polymorphic: checkbox / date / number / text / list, or null to clear) |
| Enable a Power-Up on a board by alias (custom-fields, card-aging, voting, calendar) or ID |
| Disable a Power-Up (takes the boardPlugin id from list_board_plugins, NOT the idPlugin — Trello REST quirk) |
Related MCP server: Railway Guardrail MCP
Safety guards
Enforced server-side before any Trello call — same rules for every tool, no per-tool drift:
Forbidden lists (Butler, Repeater Cards) — all writes refused. These lists hold automation rules and recurring templates; the connector observes but never modifies them.
Read-only lists (Rolling Big Rocks) —
move_cardsource OR destination refused.create_cardto this list refused.WIP-limit warnings — when a
move_cardorcreate_cardputs a list with a(WIP limit N)suffix over its limit, the response includes a warning, but the call still succeeds (treats WIP as guidance, not enforcement).No hard delete — the capability is not in the code.
archive_cardis the only destructive-feeling operation, and it's reversible from the Trello UI.
Access control
Only one GitHub login (dannbleeker) can call any tool — hard-coded in src/index.ts. Any other authenticated GitHub user reaches the OAuth flow but every tool call returns a refusal message.
Setup
1. GitHub OAuth app
Create an OAuth app at https://github.com/settings/developers:
Homepage URL:
https://trello-mcp.<your-subdomain>.workers.devAuthorization callback URL:
https://trello-mcp.<your-subdomain>.workers.dev/callbackNote the Client ID and generate a Client secret.
For local development, register a second OAuth app with:
Homepage URL:
http://localhost:8788Authorization callback URL:
http://localhost:8788/callback
2. Trello credentials
You need an API key and a user token:
Value | Where |
API key | https://trello.com/power-ups/admin → create an app → API key |
Token |
|
3. KV namespace + secrets
# install deps
pnpm install
# create the KV namespace, then paste the returned id into wrangler.jsonc
pnpm exec wrangler kv namespace create OAUTH_KV
# production secrets
pnpm exec wrangler secret put GITHUB_CLIENT_ID
pnpm exec wrangler secret put GITHUB_CLIENT_SECRET
pnpm exec wrangler secret put COOKIE_ENCRYPTION_KEY # openssl rand -hex 32
pnpm exec wrangler secret put TRELLO_KEY
pnpm exec wrangler secret put TRELLO_TOKEN
# deploy
pnpm exec wrangler deployFor local dev, copy .dev.vars.example to .dev.vars and fill in the values; then pnpm dev.
4. Add to claude.ai
Settings → Connectors → Add custom connector. URL: https://trello-mcp.<your-subdomain>.workers.dev/mcp. Sign in with GitHub when prompted.
Adding a new board
In Trello: copy the board's 24-char ID from the URL or from a
list_boardscall.In
src/trello/constants.ts: add an entry toBOARD_ALIASES.Optionally add list aliases under
LIST_ALIASES.Optionally mark any list as forbidden or read-only.
pnpm exec wrangler deploy.
No tool code changes are needed — the existing tools resolve aliases at call time.
Project layout
src/
index.ts — Worker entry, OAuth wiring, tool registrations
github-handler.ts — OAuth consent screen + GitHub callback
utils.ts — auth helpers (unchanged from template)
workers-oauth-utils.ts — cookie/state utilities (unchanged from template)
trello/
client.ts — typed Trello REST client (retry on 429 + 5xx)
constants.ts — aliases, forbidden + read-only lists, WIP parser
guards.ts — server-side safety guards
tools.ts — 96 tool implementations (testable in plain Node)
wrangler.jsonc — Cloudflare Workers config
package.json
tsconfig.json
.dev.vars.exampleDevelopment
pnpm install
pnpm type-check # tsc --noEmit
pnpm dev # wrangler dev → http://localhost:8788Related
dannbleeker/trello-plugin— the local Python MCP for Claude Code on the same Trello account. The two coexist; this one is the remote connector for claude.ai.
License
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dannbleeker/trello-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server