Trello MCP Server
Provides tools for interacting with the Trello API, enabling board snapshots, global search, activity history, and batch operations for cards, checklists, comments, board structure, members, and permanent deletions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Trello MCP ServerShow me all cards due this week on the Product board"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Trello MCP Server
Servidor MCP (Model Context Protocol) para o Trello, em Flask. Multiusuário: cada pessoa conecta a própria conta do Trello por um painel web e recebe um connector token para configurar no Claude.
Setup
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .envGere a chave mestra e coloque em APP_SECRET_KEY no .env:
python -c "import secrets; print(secrets.token_urlsafe(48))"Trocar a
APP_SECRET_KEYdepois torna as credenciais já salvas ilegíveis — os usuários precisarão reconectar a conta.
Suba o servidor:
python run.pyRelated MCP server: Trello MCP Server
Conectar uma conta
Há dois caminhos. Ambos provam a posse da conta do mesmo jeito: você apresenta um par API Key + Token válido do Trello.
A) OAuth (Claude Desktop / claude.ai)
Adicione um conector customizado apontando só para a URL:
https://trello-mcp.olimpo-services.com.br/mcpO cliente descobre o restante sozinho (metadata, registro dinâmico), abre
/oauth/authorize no navegador, você cola API Key + Token do Trello e
autoriza. O cliente recebe um access token renovável — sem header manual.
B) Connector token manual (Claude Code / CLI)
Abra
http://localhost:8000/panel.Cole a API Key e o Token gerados em trello.com/app-key.
O servidor valida as credenciais direto no Trello — isso prova que a conta é sua.
Guarde o connector token exibido (só aparece uma vez) e configure no Claude:
claude mcp add --transport http trello http://localhost:8000/mcp --header "Authorization: Bearer SEU_TOKEN"Reconectar a mesma conta gera um token novo e revoga o anterior.
OAuth 2.0
O próprio servidor é o authorization server. O /mcp aceita como Bearer
tanto um connector token manual quanto um access token OAuth.
Endpoint | RFC | Papel |
| 9728 | Diz qual é o authorization server |
| 8414 | Metadata: endpoints, PKCE S256, grants |
| 7591 | Dynamic Client Registration (aberto) |
| 6749 | Usuário prova a conta do Trello → |
| 6749 |
|
PKCE S256 obrigatório.
plainé recusado.Clientes públicos (
token_endpoint_auth_method: none) e confidenciais (client_secret_post/client_secret_basic) são aceitos.Auth code: uso único, TTL
OAUTH_CODE_TTL(10 min). Access token:OAUTH_ACCESS_TOKEN_TTL(30 dias). Refresh:OAUTH_REFRESH_TOKEN_TTL(180 dias), rotacionado a cada uso — o par antigo morre na hora.Só o hash SHA-256 de codes e tokens é persistido.
Revogar todos os acessos de uma conta: desconecte pelo
/panel— o usuário e todos os seus tokens/codes são apagados juntos.Access-Control-Allow-Origin: *nos endpoints OAuth,/mcpe/.well-known/*para os clientes web (claude.ai).
Tools
9 tools, desenhadas para poucas chamadas e muito poder por chamada.
Tool | Tipo | O que faz |
| leitura | Lista boards; |
| leitura | Board inteiro numa chamada: listas, labels, membros, cards, checklists e comentários |
| leitura | Busca global; aceita a sintaxe do Trello ( |
| leitura | Histórico de board/card/membro, com resumo em texto por ação |
| escrita | create, update, move, archive, unarchive, duplicate, get — em lote |
| escrita | Checklists, itens e comentários — em lote |
| escrita | Boards, listas e labels; |
| escrita | Membros de board e atribuição em cards (produto membros × cards) |
| destrutiva | Remoções permanentes, com |
Princípios de design
Nomes valem como ids. Todo parâmetro que identifica algo (board, list, card, labels, members, checklist, item) aceita id ou nome — casa exato, depois prefixo, depois substring. Nomes ambíguos retornam erro listando os candidatos, então a IA se corrige sozinha.
Lote com relatório por item. As tools de escrita recebem operations: [...]. Uma falha não aborta as demais; o retorno traz summary e um results[i] com status: ok|error por operação.
Datas flexíveis. due/start/since/before aceitam ISO, today, tomorrow, yesterday, now e offsets (+3d, -2w, +6h). String vazia limpa o campo.
Alterações incrementais. labels e members aceitam uma lista (substitui tudo) ou {add, remove, set}.
Resposta enxuta por padrão. Ids viram nomes, payloads viram contadores. include_desc, desc_max_chars, max_cards e include_raw controlam o tamanho.
Autorização por tool
As tools declaram annotations MCP (readOnlyHint, destructiveHint) em tools/list, e o cliente decide o que exige confirmação. Por isso as remoções permanentes ficam isoladas em delete_items (única marcada destructiveHint: true): dá para liberar as tools de escrita normais e exigir aprovação só nas destrutivas. archive (reversível) mora em manage_cards, não ali.
Arquitetura
Arquivo | Responsabilidade |
| Entrypoint |
| App factory, registro de blueprints, init do banco |
| Configuração via |
| Fernet para credenciais em repouso + hash do connector token |
| SQLite: tabela |
| Conectar conta, resolver Bearer (connector token ou access token) → credenciais |
| Lógica do OAuth: metadata, DCR, PKCE, emissão/rotação de token |
| Endpoints |
| Painel web ( |
| Endpoint JSON-RPC |
| Wrapper HTTP da API do Trello |
| Resolvers com cache, filtros de card, batch runner |
| Uma tool (ou grupo) por arquivo |
Modelo de segurança
Key e Token do Trello são criptografados (Fernet) antes de ir para o banco.
Do connector token e dos tokens OAuth só o hash SHA-256 é persistido.
Todo
POST /mcpexigeAuthorization: Bearer <token>(connector token ou access token OAuth).Erros de tool voltam como
isError: trueno resultado (não como erro de protocolo), para o modelo ler a mensagem e se corrigir.
Deploy (Docker + Traefik)
Host de produção: trello-mcp.olimpo-services.com.br
Na VPS, dentro do diretório do projeto, crie o .env com a chave mestra:
echo "APP_SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe(48))')" > .envPORT, DATABASE_PATH, PUBLIC_BASE_URL e FLASK_DEBUG já vêm do docker-compose.yml — o .env precisa conter apenas a APP_SECRET_KEY. Suba:
docker compose up -d --buildConfira: https://trello-mcp.olimpo-services.com.br/health deve responder {"status":"ok"}.
Notas de infraestrutura
Volume nomeado, não bind mount. O container roda como usuário não-root (uid 1000). Um bind mount ./data seria criado pelo Docker como root e o container não conseguiria escrever o SQLite. O volume nomeado trello-mcp-data herda o dono de /app/data definido na imagem. Backup:
docker run --rm -v trello-mcp-data:/data -v $(pwd):/backup alpine tar czf /backup/trello-mcp-backup.tar.gz -C /data .A APP_SECRET_KEY é o dado mais crítico do deploy. Ela descriptografa as credenciais do Trello de todos os usuários. Perdê-la ou trocá-la obriga todo mundo a reconectar a conta no painel. Faça backup dela junto com o volume.
3 workers do gunicorn sobre um SQLite. O banco roda em modo WAL (leituras concorrentes com uma escrita) e as conexões têm timeout=10. Escrita só acontece quando alguém conecta uma conta no painel — o caminho quente (/mcp) é só leitura no banco. Ajuste com WEB_CONCURRENCY se precisar.
--timeout 120 no gunicorn. Um lote grande de operações encadeia várias chamadas à API do Trello (cada uma com até 15s de timeout); o default de 30s mataria requisições legítimas.
Testes
Suíte offline (sem credenciais, contra um fake da API do Trello):
.venv\Scripts\python.exe tests/run_all.pytests/test_auth.py— banco, criptografia, rotação de token,/mcpsem authtests/test_tools.py— as 9 tools, filtros, lotes parciais e mensagens de errotests/test_mcp.py— handshake MCP,tools/list,tools/call, tratamento de erros
Suíte contra a API real (opcional, exige credenciais no ambiente):
TRELLO_API_KEY=... TRELLO_TOKEN=... .venv/Scripts/python.exe tests/test_real_api.pySem as variáveis, ela se pula sozinha. A parte de leitura só consulta um board existente; a de escrita cria um board descartável (ZZ TESTE MCP (apagar)), exercita tudo dentro dele e o apaga no fim — nenhum board existente é modificado. Se a limpeza falhar, o id do board é impresso para remoção manual.
Notas sobre a API do Trello
Comportamentos confirmados contra a API real, que explicam decisões do código:
Atribuição de membro é idempotente aqui, não lá. O Trello devolve 400 member is already on the card ao reatribuir alguém que já está no card (e not on the card no caso inverso). Como o efeito desejado já vale, manage_members trata isso como sucesso e marca already_applied: true — a IA reatribui por garantia o tempo todo.
Rate limit: 300 req/10s por API key, 100 req/10s por token. Lotes grandes podem estourar. O cliente reage a 429 com até 3 tentativas e backoff (respeitando Retry-After); depois disso o erro sugere dividir o lote.
GET /boards/{id}/checklists aceita checkItems/checkItem_fields embora a documentação oficial não liste esses params para esse endpoint. É o que permite o depth='full' sem uma chamada por card. Se parar de funcionar, o fallback é iterar /cards/{id}/checklists.
A busca ignora queries de 1 caractere. query: "a" retorna zero resultados — não é bug do servidor.
GET /cards/{id}/actions não documenta limit. Funciona na prática, mas a paginação oficial ali é por page (50 por página).
Status
Infraestrutura Flask + endpoint MCP JSON-RPC
Multiusuário com token por sessão + painel web
9 tools do Trello + suíte de testes
Deploy Docker + Traefik
Validado contra a API real do Trello (57 verificações, leitura e escrita)
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Create, read and live-edit visual boards, Kanban plans, Gantt timelines and diagrams with AI agents.
Read and manage your EasyKanban kanban boards: to-do summaries, create, update, and move cards.
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with Trello through the Trello API, allowing users to manage boards, lists, and cards including creating, updating, deleting, and retrieving Trello data through natural language.750MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Trello boards, lists, and cards through the Trello REST API. Supports board management, card operations, member management, labels, and checklists through natural language.2471ISC
- AlicenseNot gradedqualityDmaintenanceProvides seamless integration with Trello's API to manage boards, lists, and cards through natural language. It supports full CRUD operations, card movement, and the ability to load Trello resources directly into an LLM's context for analysis.MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to manage Trello boards, lists, cards, comments, checklists, labels, and members through natural language.16-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HermesSoftwareEngineer/Trello-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server