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.5.tar.gz (16.7 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.5-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: trello_mcp_server-2.0.5.tar.gz
  • Upload date:
  • Size: 16.7 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.5.tar.gz
Algorithm Hash digest
SHA256 d6bb32d83efad623988e82a485573438a3384a91f20caffa125630e029cb4ff6
MD5 5215fcb664a140951f3f6f1da6a7571f
BLAKE2b-256 42bcfa893931b0cbfa9cd3c2bc2a1027d3ce33d0eea0437c086a0775d73bfdac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for trello_mcp_server-2.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c2f09eb71898948b3b3931cee20463c9bce688ce6dbf27629a91e8c7f1fe7364
MD5 5b44d6be4e4411f599446284bdfc449f
BLAKE2b-256 d043bacdff384c7422990a3e7839d4a134d102266aa76d2af8e03ebcbd5274a6

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