trello-mcp-server
# Trello MCP Server
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.
## Features
- **Secure Credential Storage**: Credentials stored in OS credential manager (Windows Credential Manager, macOS Keychain, or Linux libsecret)
- **No Plaintext Secrets**: No `.env` files, 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
## Getting Started
### Prerequisites
- Node.js 18 or higher
- npm
- Trello API key and token (see below)
**Linux only**: Install libsecret
```bash
# Debian/Ubuntu
sudo apt install libsecret-1-dev
# Fedora
sudo dnf install libsecret-devel
# Arch
sudo pacman -S libsecret
```
### Installation
1. Clone this repository:
```bash
git clone https://github.com/v4lheru/trello-mcp-server.git
cd trello-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
4. **Set up your credentials securely**:
```bash
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:**
1. Go to https://trello.com/app-key
2. Copy your API Key
3. Click "Generate a Token" and copy the token
### Usage
Start the MCP server:
```bash
npm start
```
### Migrating from .env Files
If you have existing credentials in a `.env` file, the setup script will automatically detect them:
```bash
npm run setup-credentials
```
You'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.
### Managing Credentials
- **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`
## Claude Desktop Configuration
Add to your Claude Desktop config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"trello": {
"command": "node",
"args": ["C:/path/to/trello-mcp-server/build/index.js"]
}
}
}
```
## Available Tools
### Board Tools
- `get_boards` - Get all boards for the authenticated user
- `get_board` - Get a specific board by ID
- `create_board` - Create a new board
- `update_board` - Update an existing board
- `delete_board` - Delete a board
- `get_board_lists` - Get all lists on a board
- `get_board_members` - Get all members of a board
- `get_board_labels` - Get all labels on a board
- `close_board` - Close (archive) a board
- `reopen_board` - Reopen a closed board
### List Tools
- `get_list` - Get a specific list by ID
- `create_list` - Create a new list on a board
- `update_list` - Update an existing list
- `archive_list` - Archive a list
- `unarchive_list` - Unarchive a list
- `move_list_to_board` - Move a list to a different board
- `get_cards_in_list` - Get all cards in a list
- `archive_all_cards` - Archive all cards in a list
- `move_all_cards` - Move all cards in a list to another list
### Card Tools
- `get_card` - Get a specific card by ID
- `create_card` - Create a new card
- `update_card` - Update an existing card
- `delete_card` - Delete a card
- `archive_card` - Archive a card
- `move_card_to_list` - Move a card to a different list
- `add_comment` - Add a comment to a card
- `get_comments` - Get comments on a card
- `add_attachment` - Add an attachment to a card
- `get_attachments` - Get attachments on a card
- `set_due_date` - Set the due date for a card
- `set_due_complete` - Mark a card's due date as complete
### Member Tools
- `get_me` - Get the authenticated member (current user)
- `get_member` - Get a specific member by ID or username
- `get_member_boards` - Get boards that a member belongs to
- `get_member_cards` - Get cards assigned to a member
- `search_members` - Search for members by name
### Label Tools
- `get_label` - Get a specific label by ID
- `create_label` - Create a new label on a board
- `update_label` - Update an existing label
- `delete_label` - Delete a label
- `add_label_to_card` - Add a label to a card
- `remove_label_from_card` - Remove a label from a card
### Checklist Tools
- `get_checklist` - Get a specific checklist by ID
- `create_checklist` - Create a new checklist on a card
- `update_checklist` - Update an existing checklist
- `delete_checklist` - Delete a checklist
- `get_checkitems` - Get all checkitems on a checklist
- `create_checkitem` - Create a new checkitem on a checklist
- `update_checkitem` - Update a checkitem on a checklist
- `delete_checkitem` - Delete a checkitem from a checklist
## Security
Credentials are stored in your OS credential manager (Windows Credential Manager, macOS Keychain, or Linux libsecret) and encrypted using your login credentials.
## License
This project is licensed under the MIT License.
TDQS
Scored across 15 tools
Multiple tools have unclear boundaries due to singular/plural pairs that create ambiguity (e.g., add-comment vs add-comments, create-card vs create-cards). An agent cannot reliably determine when to use the singular vs plural version since descriptions are missing, making tool selection confusing. However, core actions like archive-card, move-card, and get-boards are distinct in purpose.
All tool names follow a consistent verb-noun pattern with hyphen-separated lowercase words (e.g., add-comment, get-boards, move-card). There are no deviations in style or convention, making the naming predictable and readable throughout the set.
With 15 tools, the count is reasonable for a Trello server that needs to manage boards, lists, cards, labels, and comments. It is slightly on the higher side but well-scoped for the domain, covering key operations without being excessive.
The tool set covers core CRUD operations for cards, labels, and comments, but there are notable gaps. For example, there are no tools for updating or deleting cards/labels/comments, and operations for managing board settings or user permissions are missing. This limits full lifecycle coverage in the Trello domain.