Trello MCP server
by margarian
README.md
# Trello MCP server
A minimal remote MCP server that lets Claude manage your Trello boards, lists, and cards. Built with the MCP TypeScript SDK (Streamable HTTP transport, stateless mode).
## Tools (40)
**Boards:** `list_boards`, `get_board`, `create_board`, `update_board`, `delete_board`, `get_board_members`, `list_board_cards`, `list_board_labels`
**Lists:** `list_lists`, `get_list`, `create_list`, `update_list`, `archive_all_cards_in_list`
**Cards:** `list_cards`, `get_card`, `create_card`, `update_card`, `delete_card`, `move_card_to_board`, `add_member_to_card`, `remove_member_from_card`, `add_label_to_card`, `remove_label_from_card`, `get_card_actions`
**Checklists:** `list_card_checklists`, `create_checklist`, `delete_checklist`, `add_checkitem`, `update_checkitem`, `delete_checkitem`
**Labels:** `create_label`, `update_label`, `delete_label`
**Comments:** `comment_card`, `update_comment`, `delete_comment`
**Members:** `get_me`, `get_member`, `list_my_cards`
**Search:** `search_cards`
> Tools marked PERMANENT in their description (`delete_*`) cannot be undone. Where possible prefer archiving (`update_card`/`update_board` with `closed=true`), which is reversible.
## 1. Get Trello credentials
1. **API key:** go to <https://trello.com/power-ups/admin>, create a Power-Up, open its **API key** tab, and copy the key. (The older <https://trello.com/app-key> may still work.)
2. **Token:** visit this URL in your browser, replacing `YOUR_KEY`, then click **Allow**:
```
https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&name=Claude%20MCP&key=YOUR_KEY
```
Copy the token it shows you.
> `scope=read,write` grants Claude the ability to create/move/archive cards. Use `scope=read` if you want read-only.
## 2. Run locally (test)
```bash
cp .env.example .env # fill in TRELLO_API_KEY, TRELLO_TOKEN, MCP_SECRET
npm install
npm run dev
```
Server prints the path it's serving (`/mcp/<secret>`).
## 3. Deploy
The server must be reachable over the public internet from Anthropic's cloud — it cannot be behind a VPN/firewall. Any Node host works (Railway, Render, Fly.io, a VPS).
**Railway / Render (quick):**
1. Push this folder to a GitHub repo.
2. Create a new service from the repo. Build: `npm install && npm run build`. Start: `npm start`. (Or use the included `Dockerfile`.)
3. Set env vars: `TRELLO_API_KEY`, `TRELLO_TOKEN`, `MCP_SECRET`. The host sets `PORT` automatically.
4. Note your public URL, e.g. `https://trello-mcp.up.railway.app`.
Your connector URL is then:
```
https://<your-host>/mcp/<MCP_SECRET>
```
## 4. Add to Claude (Team plan — Owner)
1. **Organization settings → Connectors → + Add → Custom**.
2. Name it (e.g. "Trello"), paste the connector URL from step 3.
3. Save. Members can then enable it per chat via the **+ / Connectors** button.
## Security notes
- The connector URL **is** the credential. On Team plans every member can see the connector URL, and Claude's MCP client doesn't send custom auth headers — that's why the secret lives in the URL path. Treat the URL like a password.
- There is no per-user scoping: anyone with the URL acts as the single Trello account whose token you configured.
- Use `scope=read` if you don't want Claude making changes.
- Rotate by changing `MCP_SECRET` (and revoking the Trello token at <https://trello.com/your/account>) if the URL leaks.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues