dwb-mcp-server-trello

A custom MCP server for Trello board automation and client onboarding

GitHub Stars

0

User Rating

Not Rated

Favorites

0

Views

3

Forks

0

Issues

0

README
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
  1. API Key: Get from https://trello.com/app-key
  2. 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
    
  3. Board ID: Found in the board URL: https://trello.com/b/BOARD_ID/board-name
  4. Organization ID: Optional, found in organization settings
πŸ› οΈ Available Tools
Original Tools
  • get_cards_by_list_id - Fetch cards from a specific list
  • get_lists - Retrieve all lists from the board
  • get_recent_activity - Fetch recent board activity
  • add_card_to_list - Add a new card to a list
  • update_card_details - Update existing card details
  • archive_card - Archive a card
  • add_list_to_board - Add a new list to the board
  • archive_list - Archive a list
  • get_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:

  1. Create Board: Use create_board to create a new client board
  2. Add Client: Use add_member_to_board to invite the client
  3. 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
  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request
πŸ“ž Support

For issues and questions:

Author Information

0

Followers

6

Repositories

0

Gists

0

Total Contributions