Trello integration for working with boards, lists in boards and cards in lists.
A powerful MCP server for interacting with Trello boards, lists, and cards via AI Hosts.
uv
Set up Trello API credentials:
Rename the .env.example
file in the project root with .env
and set vairables you just got:
TRELLO_API_KEY=your_api_key_here
TRELLO_TOKEN=your_token_here
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/m0xai/trello-mcp-server.git
cd trello-mcp-server
uv run mcp install main.py
This MCP server can run in two different modes:
This mode integrates directly with the Claude Desktop application:
USE_CLAUDE_APP=true
in your .env
file (this is the default)uv run mcp install main.py
This mode runs as a standalone SSE server that can be used with any MCP-compatible client, including Cursor:
USE_CLAUDE_APP=false
in your .env
filepython main.py
http://localhost:8000
by default (or your configured port)You can also run the server using Docker Compose:
.env
file with your configurationdocker-compose up -d
docker-compose logs -f
docker-compose down
The server can be configured using environment variables in the .env
file:
Variable | Description | Default |
---|---|---|
TRELLO_API_KEY | Your Trello API key | Required |
TRELLO_TOKEN | Your Trello API token | Required |
MCP_SERVER_NAME | The name of the MCP server | Trello MCP Server |
MCP_SERVER_HOST | Host address for SSE mode | 0.0.0.0 |
MCP_SERVER_PORT | Port for SSE mode | 8000 |
USE_CLAUDE_APP | Whether to use Claude app mode | true |
You can customize the server by editing these values in your .env
file.
USE_CLAUDE_APP=true
)To connect your MCP server to Cursor:
USE_CLAUDE_APP=false
)http://localhost:8000
(or your configured host/port)You can also add this configuration to your Cursor settings JSON file (typically at ~/.cursor/mcp.json
):
{
"mcpServers": {
"trello": {
"url": "http://localhost:8000/sse"
}
}
}
For other MCP-compatible clients, point them to the SSE endpoint at http://localhost:8000
.
Here's a minimal Python example to connect to the SSE endpoint:
import asyncio
import httpx
async def connect_to_mcp_server():
url = "http://localhost:8000/sse"
headers = {"Accept": "text/event-stream"}
async with httpx.AsyncClient() as client:
async with client.stream("GET", url, headers=headers) as response:
# Get the session ID from the first SSE message
session_id = None
async for line in response.aiter_lines():
if line.startswith("data:"):
data = line[5:].strip()
if "session_id=" in data and not session_id:
session_id = data.split("session_id=")[1]
# Send a message using the session ID
message_url = f"http://localhost:8000/messages/?session_id={session_id}"
message = {
"role": "user",
"content": {
"type": "text",
"text": "Show me my Trello boards"
}
}
await client.post(message_url, json=message)
if __name__ == "__main__":
asyncio.run(connect_to_mcp_server())
Operation | Board | List | Card |
---|---|---|---|
Read | ✅ | ✅ | ✅ |
Write | ❌ | ✅ | ✅ |
Update | ❌ | ✅ | ✅ |
Delete | ❌ | ✅ | ✅ |
Once installed, you can interact with your Trello boards through Claude. Here are some example queries:
Here are my example usages:
If you encounter issues:
.env
fileuv run mcp dev main.py
command.Feel free to submit issues and enhancement requests!
Dynamic and reflective problem-solving through thought sequences
Interact with task, doc, and project data in Dart, an AI-native project management tool
Contract and template management for drafting, reviewing, and sending binding contracts.
Perform queries and entity operations in your Fibery workspace.
Human-in-the-loop platform - Allow AI agents and automations to send requests for approval to your gotoHuman inbox.
Turn your Make scenarios into callable tools for AI assistants.
Notion official MCP server
Create spaced repetition flashcards in Rember to remember anything you learn in your chats
Connect your AI Agents to 8,000 apps instantly.
Talk with your Apple Notes