GitHub Stars
0
User Rating
Not Rated
Favorites
0
Views
3
Forks
0
Issues
0
DWB Custom MCP Trello Server
A custom Model Context Protocol (MCP) server for Trello board automation and client onboarding. This server extends the original mcp-server-trello
with additional tools for creating boards, managing members, and automating client onboarding workflows.
π Features
Original Tools (Maintained)
- 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
New Custom Tools
- Board Creation: Create new Trello boards with standardized client onboarding templates
- Board Management: List and filter available boards
- Member Management: Add members to boards with specified permissions
- Template Engine: Automated list creation with emoji fallback support
π¦ Installation
# Clone the repository
git clone <repository-url>
cd dwb-trello-mcp
# Install dependencies
pnpm install
# Build the project
pnpm run build
βοΈ Configuration
Create a .env
file based on .env.example
:
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token
TRELLO_BOARD_ID=your-default-board-id
TRELLO_ORG_ID=your-organization-id # Optional
Getting Trello Credentials
- API Key: Get from https://trello.com/app-key
- Token: Generate using your API key at:
https://trello.com/1/authorize?expiration=never&name=DWB_MCP_SERVER&scope=read,write&response_type=token&key=YOUR_API_KEY
- Board ID: Found in the board URL:
https://trello.com/b/BOARD_ID/board-name
- Organization ID: Optional, found in organization settings
π οΈ Available Tools
Original Tools
get_cards_by_list_id
- Fetch cards from a specific listget_lists
- Retrieve all lists from the boardget_recent_activity
- Fetch recent board activityadd_card_to_list
- Add a new card to a listupdate_card_details
- Update existing card detailsarchive_card
- Archive a cardadd_list_to_board
- Add a new list to the boardarchive_list
- Archive a listget_my_cards
- Fetch cards assigned to current user
New Custom Tools
create_board
Creates a new Trello board with standard client onboarding template.
{
name: string, // Board name (required)
description?: string, // Board description (optional)
default_lists?: boolean, // Create template lists (default: true)
organization_id?: string // Organization ID (optional)
}
Features:
- Automatically creates 5 standardized lists:
- π’ New Request
- π₯ Queue
- π In Progress
- π§ Review
- β Completed
- Emoji fallback support (uses plain text if emojis fail)
- Sets board description with client onboarding instructions
- Supports organization-level board creation
get_boards
Lists available Trello boards with optional filtering.
{
organization_id?: string, // Filter by organization
limit?: number // Maximum boards to return
}
add_member_to_board
Adds a member to a board by email with specified permissions.
{
board_id: string, // Board ID (required)
email: string, // Member email (required)
permission?: string // 'normal', 'admin', or 'observer' (default: 'normal')
}
π― Client Onboarding Workflow
The server is designed to automate client onboarding with a standardized workflow:
- Create Board: Use
create_board
to create a new client board - Add Client: Use
add_member_to_board
to invite the client - Template Applied: Board automatically includes:
- Standardized list structure
- Client instructions in board description
- Emoji-based list names with fallbacks
π³ Docker Deployment
Build and Run
# Build the Docker image
docker build -t dwb-trello-mcp .
# Run with environment variables
docker run -d \
--name dwb-trello-mcp \
-e TRELLO_API_KEY=your-key \
-e TRELLO_TOKEN=your-token \
-e TRELLO_BOARD_ID=your-board-id \
-e TRELLO_ORG_ID=your-org-id \
dwb-trello-mcp
Using Docker Compose
# Production
docker-compose up -d
# Development with hot reload
docker-compose --profile dev up -d
π§ͺ Testing
# Run the MCP inspector
pnpm run inspector
# List available tools
npx @modelcontextprotocol/sdk list-tools build/index.js
# Run custom test script
node test-tools.js
π Project Structure
dwb-trello-mcp/
βββ src/
β βββ index.ts # Main MCP server
β βββ trello-client.ts # Extended Trello API client
β βββ board-templates.ts # Board template engine
β βββ types.ts # TypeScript definitions
β βββ validators.ts # Input validation
β βββ rate-limiter.ts # Rate limiting logic
βββ templates/
β βββ default-board-lists.json # List template
β βββ board-readme-template.md # Board description template
βββ build/ # Compiled JavaScript
βββ Dockerfile # Container configuration
βββ docker-compose.yml # Development environment
βββ README.md # This file
π§ Development
# Start development server
pnpm run dev
# Build project
pnpm run build
# Format code
pnpm run format
# Lint code
pnpm run lint
π Template Configuration
The board template is defined in templates/default-board-lists.json
:
{
"template_name": "default_client_board",
"lists": [
"π’ New Request",
"π₯ Queue",
"π In Progress",
"π§ Review",
"β
Completed"
],
"fallback_lists": [
"New Request",
"Queue",
"In Progress",
"Review",
"Completed"
]
}
π¦ Rate Limiting
The server implements automatic rate limiting to comply with Trello's API limits:
- 300 requests per 10 seconds per API key
- 100 requests per 10 seconds per token
Requests are automatically queued and retried when limits are reached.
π Error Handling
The server provides detailed error messages for:
- Invalid input parameters
- Rate limit exceeded
- API authentication errors
- Network issues
- Invalid board/list/card IDs
- Template loading failures
π License
MIT License - see LICENSE file for details.
π€ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
π Support
For issues and questions:
- Create an issue in the repository
- Check the PROJECT_PLAN.md for implementation details
- Review the original mcp-server-trello documentation
0
Followers
6
Repositories
0
Gists
0
Total Contributions