Skip to main content
Glama
MagnusNilsson

trello-mcp-server

README.md
# Trello MCP Server for Claude Code

A Model Context Protocol (MCP) server that integrates Trello with Claude Code, providing advanced project planning and task management capabilities with intelligent task analysis.

## Features

### 🎯 Core Task Management
- **Create, read, update, and delete tasks** across Trello boards and lists
- **Automatic board setup** with standard lists (To Do, In Progress, Done)
- **Priority management** with visual indicators
- **Due date handling** with natural language support ("tomorrow", "next week")
- **Status tracking** that maps to Trello list positions

### 🧠 Intelligent Task Analysis
- **Complexity assessment** (simple/moderate/complex) based on content analysis
- **Vague task detection** using natural language processing
- **Automatic task splitting** for overly complex tasks
- **Clarity validation** with generated clarifying questions
- **Board-wide analysis** with focused reporting

### 🔧 Advanced Features
- **Batch operations** for efficient task management
- **Natural language due dates** (today, tomorrow, next week)
- **Priority-based task organization**
- **Comprehensive task filtering** by status, priority, or due date
- **Real-time task intelligence** during creation

## Installation

1. **Clone and setup the project:**
   ```bash
   git clone <repository-url>
   cd trello-mcp-server
   npm install
   ```

2. **Configure Trello API credentials:**
   - Copy `.env.example` to `.env`
   - Get your Trello API key from: https://trello.com/app-key
   - Generate an API token by visiting: https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&name=Claude%20Code%20MCP&key=YOUR_API_KEY
   - Update `.env` with your credentials:
     ```env
     TRELLO_API_KEY=your_api_key_here
     TRELLO_API_TOKEN=your_api_token_here
     DEFAULT_TRELLO_BOARD_ID=optional_default_board_id
     ```

3. **Build the server:**
   ```bash
   npm run build
   ```

## Claude Code Integration

### Project-Level Configuration (Recommended)

Create `.mcp.json` in your project root:
```json
{
  "mcpServers": {
    "trello": {
      "command": "node",
      "args": ["/path/to/trello-mcp-server/build/index.js"],
      "env": {
        "TRELLO_API_KEY": "your_api_key",
        "TRELLO_API_TOKEN": "your_api_token",
        "DEFAULT_TRELLO_BOARD_ID": "your_default_board_id"
      }
    }
  }
}
```

### Global Configuration

Add to your Claude Code configuration:
```bash
claude mcp add-json '{
  "command": "node",
  "args": ["/path/to/trello-mcp-server/build/index.js"],
  "env": {
    "TRELLO_API_KEY": "your_api_key",
    "TRELLO_API_TOKEN": "your_api_token"
  }
}'
```

## Usage Examples

### Basic Task Management

```typescript
// List available boards
await trello_list_boards();

// Setup a board with default lists
await trello_setup_board({ boardId: "board_id" });

// Create a task with intelligence
await trello_create_task({
  boardId: "board_id",
  title: "Implement user authentication",
  description: "Create login/logout functionality with JWT tokens",
  priority: "high",
  dueDate: "next week"
});

// Update task status (automatically moves between lists)
await trello_update_task({
  cardId: "card_id",
  status: "in_progress"
});
```

### Intelligent Task Analysis

```typescript
// Analyze entire board for improvements
await trello_analyze_board({
  boardId: "board_id",
  focusArea: "vague" // or "complex", "overdue", "all"
});

// Get clarifying questions for a vague task
await trello_clarify_task({
  cardId: "card_id"
});

// Split a complex task into smaller ones
await trello_split_task({
  cardId: "card_id",
  autoCreate: true // Automatically create the suggested splits
});
```

### Advanced Filtering

```typescript
// Get tasks by status
await trello_get_tasks({
  boardId: "board_id",
  status: "in_progress"
});

// Get tasks from specific list
await trello_get_tasks({
  boardId: "board_id",
  listName: "To Do"
});
```

## Available Tools

| Tool | Description | Key Parameters |
|------|-------------|----------------|
| `trello_list_boards` | List all accessible boards | - |
| `trello_get_board` | Get board details with statistics | `boardId` |
| `trello_create_task` | Create task with intelligence | `boardId`, `title`, `description`, `priority`, `dueDate` |
| `trello_update_task` | Update task or change status | `cardId`, `title`, `description`, `status` |
| `trello_analyze_board` | Analyze board for improvements | `boardId`, `focusArea` |
| `trello_split_task` | Split complex tasks | `cardId`, `autoCreate` |
| `trello_clarify_task` | Generate clarifying questions | `cardId` |
| `trello_get_tasks` | Filter and retrieve tasks | `boardId`, `listName`, `status` |
| `trello_setup_board` | Setup default task management lists | `boardId` |

## Task Intelligence Features

### Complexity Detection
The system automatically identifies task complexity based on:
- **Content length** and sentence structure
- **Technical keywords** (API, database, authentication, etc.)
- **Multiple action verbs** indicating compound tasks
- **Implementation complexity** indicators

### Vague Task Detection
Automatically flags tasks containing:
- **Unclear language** ("somehow", "figure out", "handle", etc.)
- **Missing acceptance criteria**
- **Ambiguous requirements**
- **Incomplete implementation details**

### Automatic Task Splitting
Intelligently suggests task splits based on:
- **Natural language conjunctions** ("and", "or")
- **Comma-separated requirements**
- **Complex implementation patterns**
- **Standard development phases** (planning, implementation, testing)

## Development

### Running in Development Mode
```bash
npm run dev  # Watches for changes and rebuilds
```

### Testing with MCP Inspector
```bash
npx @modelcontextprotocol/inspector build/index.js
```

### Environment Variables
- `TRELLO_API_KEY` - Your Trello API key (required)
- `TRELLO_API_TOKEN` - Your Trello API token (required)  
- `DEFAULT_TRELLO_BOARD_ID` - Default board for operations (optional)

## Architecture

### Components
- **TrelloClient**: Core API wrapper with full CRUD operations
- **TaskAnalyzer**: Natural language processing for task intelligence
- **MCP Server**: Protocol implementation with comprehensive tool handlers

### Data Flow
```
Claude Code → MCP Client → Trello MCP Server → Trello REST API → Trello Boards
```

### Task State Mapping
- **Pending** → "To Do" list
- **In Progress** → "In Progress" list  
- **Completed** → "Done" list

## Contributing

1. Fork the repository
2. Create a feature branch
3. Add tests for new functionality
4. Submit a pull request

## License

MIT License - see LICENSE file for details.

## Support

For issues and feature requests, please open an issue on GitHub or refer to the Trello API documentation for API-related questions.

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing boards, getting board details, retrieving tasks, creating/updating tasks, and analysis/improvement tools. No overlap.

Naming Consistency5/5

All tools follow consistent snake_case verb_noun pattern (e.g., trello_list_boards, trello_create_task). No deviations.

Tool Count5/5

9 tools is well-scoped for a Trello server, covering board management, task CRUD, and advanced analysis without being excessive.

Completeness4/5

Covers essential board and task operations plus analysis features. Minor gap: no delete operation for tasks or boards, but core workflows are complete.

Maintenance

ActivityInactive
ResponsivenessNo issues