Skip to main content
Glama
MCP Server Trello

MCP Server Trello

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.

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

Related MCP server: MCP Trello

Installation

npm install @modelcontextprotocol/mcp-server-trello

Configuration

Add the server to your MCP settings file with the following configuration:

{
  "mcpServers": {
    "trello": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-trello"],
      "env": {
        "TRELLO_API_KEY": "your-api-key",
        "TRELLO_TOKEN": "your-token",
        "TRELLO_BOARD_ID": "your-board-id"
      }
    }
  }
}

Required Environment Variables

  • TRELLO_API_KEY: Your Trello API key (get from https://trello.com/app-key)

  • TRELLO_TOKEN: Your Trello token (generate using your API key)

  • TRELLO_BOARD_ID: ID of the Trello board to interact with (found in 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: {}
}

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

  1. Clone the repository

git clone https://github.com/modelcontextprotocol/server-trello.git
cd server-trello
  1. Install dependencies

npm install
  1. Build the project

npm run build

Running Tests

npm test

Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Available Tools

9 tools
add_card_to_listC

Add a new card to a specified list

Inputs: listId (required), name (required), description, dueDate, +1 more.

add_list_to_boardC

Add a new list to the board

Inputs: name (required).

archive_cardC

Send a card to the archive

Inputs: cardId (required).

archive_listC

Send a list to the archive

Inputs: listId (required).

get_cards_by_list_idB

Fetch cards from a specific Trello list

Inputs: listId (required).

get_listsB

Retrieve all lists from the specified board

Inputs: no named parameters.

get_my_cardsA

Fetch all cards assigned to the current user

Inputs: no named parameters.

get_recent_activityC

Fetch recent activity on the Trello board

Inputs: limit.

update_card_detailsC

Update an existing card's details

Inputs: cardId (required), description, dueDate, labels, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity: adding cards/lists, archiving cards/lists, fetching cards by list/board/user, getting activity, and updating cards. The descriptions reinforce this by specifying unique actions on different Trello entities.

    Naming Consistency4/5

    The naming is mostly consistent with a verb_noun pattern (e.g., add_card_to_list, archive_card, get_cards_by_list_id), but there are minor deviations like 'get_my_cards' (which could be 'get_cards_by_user' for full consistency) and 'get_recent_activity' (which doesn't follow the verb_noun structure as tightly).

    Tool Count5/5

    With 9 tools, this is well-scoped for a Trello server, covering core operations like CRUD for cards and lists, archiving, and activity tracking. Each tool earns its place without feeling excessive or insufficient for managing Trello boards.

    Completeness4/5

    The toolset provides strong coverage for Trello's domain, including create (add_card_to_list, add_list_to_board), read (get_cards_by_list_id, get_lists, get_my_cards, get_recent_activity), update (update_card_details), and delete/archive (archive_card, archive_list). A minor gap is the lack of a tool to update list details, but agents can work around this.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Facilitates interaction with Trello boards via the Trello API, offering features like rate limiting, type safety, input validation, and error handling for seamless management of cards, lists, and board activities.
      5,781 npm
      447
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Trello boards through comprehensive card, list, and board management tools. Includes built-in rate limiting, type safety, and support for operations like creating cards, updating details, managing members, and tracking board activity.
      346 npm
      10
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Trello boards, lists, and cards through the Trello REST API. Supports board management, card operations, member management, labels, and checklists through natural language.
      96 npm
      1
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides seamless integration with Trello's API to manage boards, lists, and cards through natural language. It supports full CRUD operations, card movement, and the ability to load Trello resources directly into an LLM's context for analysis.
      MIT