A Model Context Protocol (MCP) server that provides tools for interacting with the Trello API.
Credentials are stored securely in your OS credential manager, not in plaintext files.
- Secure Credential Storage: Credentials stored in OS credential manager (Windows Credential Manager, macOS Keychain, or Linux libsecret)
- No Plaintext Secrets: No
.envfiles, no environment variables for credentials - Trello Integration: Complete access to Trello boards, lists, cards, and more
- Comprehensive API Coverage: Support for all major Trello operations
- Type Safety: Full TypeScript support with proper typing for Trello objects
- Error Handling: Robust error management throughout the codebase
- Token-Optimized Responses: Optional compact format reduces response tokens by ~50%
- Node.js 18 or higher
- npm
- Trello API key and token (see below)
Linux only: Install libsecret
# Debian/Ubuntu
sudo apt install libsecret-1-dev
# Fedora
sudo dnf install libsecret-devel
# Arch
sudo pacman -S libsecret-
Clone this repository:
git clone https://github.com/v4lheru/trello-mcp-server.git cd trello-mcp-server -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Set up your credentials securely:
npm run setup-credentials
This will prompt you for your Trello API key and token, then store them in your OS credential manager.
To get your credentials:
- Go to https://trello.com/app-key
- Copy your API Key
- Click "Generate a Token" and copy the token
Start the MCP server:
npm startIf you have existing credentials in a .env file, the setup script will automatically detect them:
npm run setup-credentialsYou'll see:
📁 Found existing credentials in: /path/to/.env
Both API Key and Token found.
Migrate these credentials to secure storage? (Y/n):
After migration, you can optionally remove the credentials from your .env file.
- Set/update credentials:
npm run setup-credentials - Delete credentials:
npm run delete-credentials
Credentials are stored in:
- Windows: Credential Manager → Windows Credentials →
trello-mcp-server - macOS: Keychain Access →
trello-mcp-server - Linux: GNOME Keyring / KDE Wallet →
trello-mcp-server
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"trello": {
"command": "node",
"args": ["C:/path/to/trello-mcp-server/build/index.js"]
}
}
}get_boards- Get all boards for the authenticated userget_board- Get a specific board by IDcreate_board- Create a new boardupdate_board- Update an existing boarddelete_board- Delete a boardget_board_lists- Get all lists on a boardget_board_members- Get all members of a boardget_board_labels- Get all labels on a boardclose_board- Close (archive) a boardreopen_board- Reopen a closed board
get_list- Get a specific list by IDcreate_list- Create a new list on a boardupdate_list- Update an existing listarchive_list- Archive a listunarchive_list- Unarchive a listmove_list_to_board- Move a list to a different boardget_cards_in_list- Get all cards in a listarchive_all_cards- Archive all cards in a listmove_all_cards- Move all cards in a list to another list
get_card- Get a specific card by IDcreate_card- Create a new cardupdate_card- Update an existing carddelete_card- Delete a cardarchive_card- Archive a cardmove_card_to_list- Move a card to a different listadd_comment- Add a comment to a cardget_comments- Get comments on a cardadd_attachment- Add an attachment to a cardget_attachments- Get attachments on a cardset_due_date- Set the due date for a cardset_due_complete- Mark a card's due date as complete
get_me- Get the authenticated member (current user)get_member- Get a specific member by ID or usernameget_member_boards- Get boards that a member belongs toget_member_cards- Get cards assigned to a membersearch_members- Search for members by name
get_label- Get a specific label by IDcreate_label- Create a new label on a boardupdate_label- Update an existing labeldelete_label- Delete a labeladd_label_to_card- Add a label to a cardremove_label_from_card- Remove a label from a card
get_checklist- Get a specific checklist by IDcreate_checklist- Create a new checklist on a cardupdate_checklist- Update an existing checklistdelete_checklist- Delete a checklistget_checkitems- Get all checkitems on a checklistcreate_checkitem- Create a new checkitem on a checklistupdate_checkitem- Update a checkitem on a checklistdelete_checkitem- Delete a checkitem from a checklist
All tools support an optional format parameter to control response verbosity:
| Format | Description | Use Case |
|---|---|---|
json (default) |
Full JSON object | When you need complete data or downstream parsing |
compact |
Token-optimized string/table | Reduce token usage by ~50% |
JSON format (default):
{
"id": "abc123",
"name": "Fix login bug",
"idList": "list456",
"due": "2024-12-31T12:00:00.000Z",
"dueComplete": false,
...
}Compact format (single resource):
id=abc123 name="Fix login bug" list=list456 due=Dec31 done=no url=trello.com/c/abc123
Compact format (array of resources):
| id | name | list | due | done | labels |
|---|---|---|---|---|---|
| abc | Fix login bug | list1 | Dec 31 | no | bug |
| def | Add OAuth | list1 | Jan 5 | no | feature |
Pass format: "compact" to any tool:
{
"cardId": "abc123",
"format": "compact"
}Credentials are stored in your OS credential manager (Windows Credential Manager, macOS Keychain, or Linux libsecret) and encrypted using your login credentials.
This project is licensed under the MIT License.