A Model Context Protocol (MCP) server that connects Trello with AI assistants like Claude Desktop, GitHub Copilot Chat, and other MCP-compatible clients.
- 📋 List all your Trello boards
- 🔍 Read board contents (lists and cards)
- ➕ Create new cards
- 🔄 Move cards between lists
- 💬 Add comments to cards
- 🗃️ Archive cards
- 🔗 Access boards as MCP resources
- 🐳 Docker support for easy deployment
- Node.js 20+ installed (for local development)
- Docker (for containerized deployment)
- A Trello account
- Trello API credentials (API Key and Token)
- Clone this repository:
git clone https://github.com/lioarce01/trello-mcp-server.git
cd trello-mcp-server
- Install dependencies:
npm install
- Build the TypeScript code:
npm run build
- Clone this repository:
git clone https://github.com/lioarce01/trello-mcp-server.git
cd trello-mcp-server
- Build the Docker image:
docker build -t trello-mcp-server .
-
Get your API Key:
- Go to https://trello.com/app-key
- Copy your API Key
-
Get your Token:
- On the same page, click on "Token" link
- Authorize the application and copy your Token
Add the server configuration to your Claude Desktop config file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcp": {
"servers": {
"trello-mcp": {
"command": "node",
"args": ["absolute/path/to/the/project/dist/index.js"],
"env": {
"TRELLO_API_KEY": "your_api_key",
"TRELLO_TOKEN": "your_token",
"TRELLO_BASE_URL": "https://api.trello.com/1"
}
}
}
}
}
For Docker deployment, add this configuration:
{
"mcp": {
"servers": {
"trello-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"TRELLO_API_KEY=your_api_key",
"-e",
"TRELLO_TOKEN=your_token",
"-e",
"TRELLO_BASE_URL=https://api.trello.com/1",
"trello-mcp-server"
]
}
}
}
}
Add to your VS Code settings.json:
{
"mcp": {
"servers": {
"trello-mcp": {
"command": "node",
"args": ["absolute/path/to/the/project/dist/index.js"],
"env": {
"TRELLO_API_KEY": "your_api_key",
"TRELLO_TOKEN": "your_token",
"TRELLO_BASE_URL": "https://api.trello.com/1"
}
}
}
}
}
{
"mcp": {
"servers": {
"trello-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"TRELLO_API_KEY=your_api_key",
"-e",
"TRELLO_TOKEN=your_token",
"-e",
"TRELLO_BASE_URL=https://api.trello.com/1",
"trello-mcp-server"
]
}
}
}
}
Important:
- Replace
absolute/path/to/the/project/dist/index.js
with the actual absolute path to your compiled server file (local installation) - Replace
YOUR_TRELLO_API_KEY
andYOUR_TRELLO_TOKEN
with your actual Trello credentials
# Build the image
docker build -t trello-mcp-server .
# Run with API key and token as arguments
docker run --rm -i --env-file .env trello-mcp-server
To test if your server works correctly:
- Build the project:
npm run build
- Run with credentials:
node dist/index.js
- Build and run with Docker:
docker build -t trello-mcp-server .
docker run --rm -i --env-file .env trello-mcp-server
- You should see:
MCP server connected and ready.
Note: The server will wait for MCP client connections. To exit, press Ctrl+C
.
Once configured, you can interact with your Trello boards through natural language:
Show me all my Trello boards
What cards are in my "Project Management" board?
Create a new card called "Review documentation" in the "To Do" list
Move the "Bug fix" card to the "In Progress" list
Add a comment to the card saying "This needs urgent attention"
Archive the completed card "Setup database"
Tool | Description | Parameters |
---|---|---|
list_boards |
List all open Trello boards | None |
read_board |
Read lists and cards from a specific board | boardId |
create_list |
Create a list | boardId , name |
create_card |
Create a new card in a specific list | listId , name , desc (optional) |
move_card |
Move a card to a different list | cardId , listId |
add_comment |
Add a comment to a card | cardId , text |
archive_card |
Archive a card | cardId |
archive_list |
Archive a list | listId |
delete_board |
Delete a board | boardId |
update_list_name |
Update a list name | listId , name |
update_card_name |
Update a card name | cardId , name |
The server exposes your Trello boards as MCP resources that can be read by AI assistants:
- Resource URI:
board:{boardId}
- Content: JSON containing all lists and cards for the board
npm run build
# Build Docker image
docker build -t trello-mcp-server .
To run the server directly (for testing):
# With npm
npm run build
node dist/index.js
# With pnpm
pnpm run build
node dist/index.js
# Run with docker (pass credentials as arguments)
docker run --rm -i --env-file .env trello-mcp-server
You can also create a development script in your package.json
:
{
"scripts": {
"build": "tsc",
"start": "node dist/index.js",
"dev": "tsx ./src/index.ts",
"docker:build": "docker build -t trello-mcp-server .",
"docker:run": "docker run --rm -i --env-file .env trello-mcp-server"
}
}
- Check credentials: Make sure you're passing API Key and Token as arguments
- Verify file path: Ensure the path in your MCP configuration is correct (local installation)
- Build first: Always run
npm run build
ordocker build
before testing - Test standalone: Try running the server independently first
- Restart client: Restart your MCP client (Claude Desktop/VS Code) after config changes
- Image not found: Make sure you've built the Docker image first with
docker build -t trello-mcp-server .
- Arguments not passed: Ensure API key and token are passed as arguments after the image name
- Permissions: Check that Docker has the necessary permissions to run containers
- Double-check your Trello API Key and Token
- Ensure the token has the necessary permissions
- Try regenerating your token if it's expired
- Verify credentials are properly passed as arguments
- Verify the board/card/list IDs are correct
- Check that you have write permissions to the Trello board
- Look at the console logs for detailed error messages
- Never commit your API credentials to version control
- Store credentials securely and rotate them regularly
- Use
.env
files and add them to.gitignore
- The server only requires the permissions you grant via the Trello token
- Consider using environment variables for credentials in production
- Docker containers run with non-root user for security
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the MCP community