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-2.0.4.tar.gz (15.5 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-2.0.4-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: trello_mcp_server-2.0.4.tar.gz
  • Upload date:
  • Size: 15.5 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-2.0.4.tar.gz
Algorithm Hash digest
SHA256 55e321cb41bc30672050e635098bdc4261467a6b099bb00f60ec504a73b48b26
MD5 35a31235cfcbd0d5b48660d299730521
BLAKE2b-256 9f616ad8c851a743b633e6bec5e2714952603a82057c83cef16f468ba04ea792

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for trello_mcp_server-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5eb8b30417b57f8cac2bb732c601772686cd325da3d0d5ac3568fd9f25a2c5b4
MD5 c443a7101194631af20951116b8c6703
BLAKE2b-256 90dad1555a9b7569bd640488c3031c3546b885866110ec1c0ad2b2be9766aef0

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