Trello Integration
STDIOA powerful MCP server for interacting with Trello boards, lists, and cards.
A powerful MCP server for interacting with Trello boards, lists, and cards.
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 | Checklist | Checklist Item |
---|---|---|---|---|---|
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!