MCP Server Trello
A Model Context Protocol (MCP) server that provides tools for interacting with Trello boards. This server enables seamless integration with Trello’s API while handling rate limiting, type safety, and error handling automatically.
Changelog
0.1.2
- Added Docker support with multi-stage build
- Improved security by moving environment variables to
.env
- Added Docker Compose configuration
- Added
.env.template
for easier setup
0.1.1
- Added
move_card
tool to move cards between lists - Improved documentation
0.1.0
- Initial release with basic Trello board management features
Features
- Full Trello Board Integration: Interact with cards, lists, and board activities
- Built-in Rate Limiting: Respects Trello’s API limits (300 requests/10s per API key, 100 requests/10s per token)
- Type-Safe Implementation: Written in TypeScript with comprehensive type definitions
- Input Validation: Robust validation for all API inputs
- Error Handling: Graceful error handling with informative messages
Installation
Docker Installation (Recommended)
The easiest way to run the server is using Docker:
- Clone the repository:
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello
- Copy the environment template and fill in your Trello credentials:
cp .env.template .env
- Build and run with Docker Compose:
docker compose up --build
Installing via Smithery
To install Trello Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @modelcontextprotocol/mcp-server-trello --client claude
Manual Installation
npm install @delorenj/mcp-server-trello
Configuration
The server can be configured using environment variables. Create a .env
file in the root directory with the following variables:
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token
TRELLO_BOARD_ID=your-board-id
You can get these values from:
- API Key: https://trello.com/app-key
- Token: Generate using your API key
- Board ID: Found in the board URL
Available Tools
get_cards_by_list_id
Fetch all cards from a specific list.
{
name: 'get_cards_by_list_id',
arguments: {
listId: string // ID of the Trello list
}
}
get_lists
Retrieve all lists from the configured board.
{
name: 'get_lists',
arguments: {}
}
get_recent_activity
Fetch recent activity on the board.
{
name: 'get_recent_activity',
arguments: {
limit?: number // Optional: Number of activities to fetch (default: 10)
}
}
add_card_to_list
Add a new card to a specified list.
{
name: 'add_card_to_list',
arguments: {
listId: string, // ID of the list to add the card to
name: string, // Name of the card
description?: string, // Optional: Description of the card
dueDate?: string, // Optional: Due date (ISO 8601 format)
labels?: string[] // Optional: Array of label IDs
}
}
update_card_details
Update an existing card’s details.
{
name: 'update_card_details',
arguments: {
cardId: string, // ID of the card to update
name?: string, // Optional: New name for the card
description?: string, // Optional: New description
dueDate?: string, // Optional: New due date (ISO 8601 format)
labels?: string[] // Optional: New array of label IDs
}
}
archive_card
Send a card to the archive.
{
name: 'archive_card',
arguments: {
cardId: string // ID of the card to archive
}
}
add_list_to_board
Add a new list to the board.
{
name: 'add_list_to_board',
arguments: {
name: string // Name of the new list
}
}
archive_list
Send a list to the archive.
{
name: 'archive_list',
arguments: {
listId: string // ID of the list to archive
}
}
get_my_cards
Fetch all cards assigned to the current user.
{
name: 'get_my_cards',
arguments: {}
}
move_card
Move a card to a different list.
{
name: 'move_card',
arguments: {
cardId: string, // ID of the card to move
listId: string // ID of the target list
}
}
Rate Limiting
The server implements a token bucket algorithm for rate limiting to comply with Trello’s API limits:
- 300 requests per 10 seconds per API key
- 100 requests per 10 seconds per token
Rate limiting is handled automatically, and requests will be queued if limits are reached.
Error Handling
The server provides detailed error messages for various scenarios:
- Invalid input parameters
- Rate limit exceeded
- API authentication errors
- Network issues
- Invalid board/list/card IDs
Development
Prerequisites
- Node.js 16 or higher
- npm or yarn
Setup
- Clone the repository
git clone https://github.com/delorenj/mcp-server-trello
cd mcp-server-trello
- Install dependencies
npm install
- Build the project
npm run build
Contributing
Contributions are welcome!
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with the Model Context Protocol SDK
- Uses the Trello REST API
Trello Server
Project Details
- delorenj/mcp-server-trello
- @delorenj/mcp-server-trello
- MIT License
- Last Updated: 4/21/2025
Recomended MCP Servers
MCP-NixOS - Model Context Protocol Server for NixOS resources
Automatable GenAI Scripting
Devin's attempt at creating an OpenSCAD MCP Server that takes a user prompt and generates a preview image...
Connects MCP to major 3D printer APIs (Orca, Bambu, OctoPrint, Klipper, Duet, Repetier, Prusa, Creality). Control prints, monitor...
The MCP Server support your LLMs integrate with SQL Database (SQLite, SQL Server, Postgres SQL)
An official Qdrant Model Context Protocol (MCP) server implementation
Full implementation of Todoist Rest API & support Todoist Sync API for MCP server
linear MCP server based on mcp-go
The MCP server for Powerdrill API.
Helps AI assistants access text content from bot-protected websites. MCP server that fetches HTML/markdown from sites with anti-automation...
MCP server that enables AI assistants to interact with Linear project management system through natural language, allowing users...