Skip to main content

Model Context Protocol server for Trello API integration

Project description

Trello MCP Server

A Model Context Protocol (MCP) server that provides programmatic access to Trello's API. Manage boards, lists, cards, and organizations directly from any MCP-compatible client.

Quick Start

1. Install

# Using uvx (recommended)
uvx trello-mcp-server

# Using uv
uv tool install trello-mcp-server

# Using pip
pip install trello-mcp-server

2. Get API Key

Visit https://trello.com/power-ups/admin/new and create a Power-Up to get your API key (free, takes seconds).

3. Configure MCP Client

Add to your MCP settings configuration file:

{
  "mcpServers": {
    "trello": {
      "command": "uvx",
      "args": ["trello-mcp-server"],
      "env": {
        "TRELLO_API_KEY": "your_api_key_here"
      }
    }
  }
}

4. Authenticate

On first use, the server automatically opens your browser to authorize access. Click "Allow" and you're done!

Features

  • Boards: List and get board details
  • Lists: List and create board lists
  • Cards: List, create, and update cards (including moving between lists)
  • Card Members: Add, remove, and list members assigned to cards
  • Card Labels: Add, remove, and list labels on cards
  • Board Members: Add, remove, update, and invite board members
  • Organizations: Manage workspaces, boards, and team members

Available Tools

Board Management

  • list_boards - List all accessible boards
  • get_board - Get board details
  • list_board_lists - Get all lists on a board
  • list_board_cards - Get all cards on a board
  • list_board_labels - List all available labels on a board

List Management

  • create_list - Create a new list on a board

Card Management

  • create_card - Create a new card on a list
  • get_card - Get card details
  • update_card - Update card properties (name, description, move to list)

Card Member Management

  • add_card_member - Add a member to a card
  • remove_card_member - Remove a member from a card
  • list_card_members - List all members assigned to a card

Card Label Management

  • add_card_label - Add a label to a card
  • remove_card_label - Remove a label from a card
  • list_card_labels - List all labels on a card
  • filter_cards_by_label - Filter cards on a board by label

Board Member Management

  • list_board_members - List all board members with permissions
  • add_board_member - Add an existing user to a board
  • remove_board_member - Remove a member from a board
  • update_board_member - Update member permission level
  • invite_board_member - Invite a new member via email

Organization Management

  • list_organizations - List all organizations/workspaces
  • get_organization - Get organization details
  • list_organization_boards - Get all boards in an organization
  • list_organization_members - Get all organization members
  • add_organization_member - Add a member to an organization
  • remove_organization_member - Remove a member from an organization

Development

Setup

# Quick setup
./setup.sh

# Or manually
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Authentication

# Interactive (opens browser)
python -m trello_mcp_server.auth --interactive

# Manual (copy-paste token)
python -m trello_mcp_server.auth --manual

# Check status
python -m trello_mcp_server.auth --check

Testing

# Run tests
python -m pytest

# Test organization tools
python test_organizations.py

Documentation

  • docs/AUTHENTICATION.md - Detailed authentication flows
  • docs/ORGANIZATIONS.md - Organization management guide
  • docs/STARTUP_FLOW.md - Server startup process
  • docs/FUTURE_FEATURES.md - Planned features
  • CHANGELOG.md - Version history

Architecture

  • Language: Python 3.8+
  • Protocol: MCP with stdio transport
  • Authentication: OAuth 1.0a with automatic token caching
  • Token Storage: ~/.trello_mcp_token.json (600 permissions)

Security

  • API keys stored in MCP configuration (safe to share within team)
  • Tokens stored in home directory (never committed)
  • Automatic file permissions (600) on token cache
  • Tokens never expire unless manually revoked

Support

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

git clone https://github.com/cargom98/gm-trello-mcp.git
cd gm-trello-mcp
./setup.sh

Running Tests

python -m pytest
python test_auth.py
python test_organizations.py

Releasing

See RELEASING.md for detailed release instructions.

Quick release:

./release.sh

License

See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trello_mcp_server-1.2.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trello_mcp_server-1.2.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file trello_mcp_server-1.2.0.tar.gz.

File metadata

  • Download URL: trello_mcp_server-1.2.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for trello_mcp_server-1.2.0.tar.gz
Algorithm Hash digest
SHA256 62c519b1eca43f5aa3591826d0ccbec52dfb82cdcc2ccd5ac178177ef66744ac
MD5 fcb19f7cfd52e34cb63b7e7d3e74f9f3
BLAKE2b-256 7ec3c48e3eea60299e612d6890c79816acb026b2f02ab30f55f7c24d8f45ceb9

See more details on using hashes here.

File details

Details for the file trello_mcp_server-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for trello_mcp_server-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53280344f845ebc894378a4814363704f2d84affaf0caed7b7a3e54652ddef11
MD5 78ba84bc42b0053e52a19f5463ef4d2c
BLAKE2b-256 f5bc02c0482d76076f8bd759dd87568ff3267ea1e90a43cd77c1e772f6e3de58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page