Trello Connector
FlaggedAccess Trello boards with managed OAuth. Create, read, update, and manage boards, lists, and cards. Use when the user wants to create a Trello card, list boards, move cards between lists, update card details, or manage Trello boards.
Security warnings detected
- [_meta.json] Possible base64-encoded blob detected
- [SKILL.md] External URL reference detected (not on allowlist)
- [SKILL.md] Runtime config literal detected: connection_id
SKILL.md
---
name: trello-connector
description: "Access Trello boards with managed OAuth. Create, read, update, and manage boards, lists, and cards. Use when the user wants to create a Trello card, list boards, move cards between lists, update card details, or manage Trello boards."
metadata:
polly:
polly_managed_connector: true
auth:
- env: TRELLO_ACCESS_TOKEN
type: oauth2
integration_id: trello
description: Trello OAuth access
scopes:
- read
- write
- account
primaryEnv: TRELLO_ACCESS_TOKEN
requires:
env:
- NANGO_SECRET_KEY
- NANGO_SERVER_URL
---
# Trello Connector
Access Trello through the Trello REST API using the Nango proxy.
## First-Time Setup
If Trello is not connected yet, run:
`manage_auth(action="connect", integration_id="trello", auth_env="TRELLO_ACCESS_TOKEN")`
## Auth & Security
- Authentication is managed by Polly + Nango from `metadata.polly.auth`
- All API calls go through the **Nango proxy** — never call `api.trello.com` directly
- Never ask users to paste tokens in chat
- Never print or log token values
- If auth fails (401/403), reconnect with:
`manage_auth(action="connect", integration_id="trello", auth_env="TRELLO_ACCESS_TOKEN")`
## Nango Proxy
Trello uses OAuth 1.0a which requires a consumer key stored server-side in Nango. Route all requests through the Nango proxy — Nango signs requests on your behalf.
**Required env vars (always available in Polly runtime):**
- `$NANGO_SERVER_URL` — Nango server base URL
- `$NANGO_SECRET_KEY` — Nango API key for proxy auth
- `$TRELLO_ACCESS_TOKEN` — JSON payload; parse to get `connection_id`
**Get Connection ID at runtime:**
```python
import json, os
token_data = json.loads(os.environ["TRELLO_ACCESS_TOKEN"])
# Connection ID is the Nango connection UUID for this user's Trello auth
# Resolve it via Nango connections API:
import subprocess
nango_url = os.environ["NANGO_SERVER_URL"]
nango_key = os.environ["NANGO_SECRET_KEY"]
r = subprocess.run([
"curl", "-s",
"-H", f"Authorization: Bearer {nango_key}",
f"{nango_url}/connection"
], capture_output=True, text=True)
connections = json.loads(r.stdout).get("connections", [])
conn = next((c for c in connections if c["provider"] == "trello"), None)
connection_id = conn["connection_id"] if conn else None
```
**Proxy request pattern:**
```bash
curl -s -X GET \
-H "Authorization: Bearer $NANGO_SECRET_KEY" \
-H "Connection-Id: <connection_id>" \
-H "Provider-Config-Key: trello" \
-H "Nango-Proxy-Base-Url-Override: https://api.trello.com" \
"$NANGO_SERVER_URL/proxy/1/<path>"
```
## Common Operations (Read-Only)
**Get current user:**
```
GET /proxy/1/members/me?fields=username,fullName,email
```
**List boards:**
```
GET /proxy/1/members/me/boards?fields=name,id,url,closed
```
**Get board lists:**
```
GET /proxy/1/boards/<boardId>/lists?fields=name,id
```
**Get board cards:**
```
GET /proxy/1/boards/<boardId>/cards?fields=name,id,idList,due,desc,url
```
**Get card details:**
```
GET /proxy/1/cards/<cardId>
```
**Get card comments:**
```
GET /proxy/1/cards/<cardId>/actions?filter=commentCard
```
**Search:**
```
GET /proxy/1/search?query=<term>&modelTypes=cards,boards
```
## Common Operations (Write)
**Create a card:**
```bash
curl -s -X POST \
-H "Authorization: Bearer $NANGO_SECRET_KEY" \
-H "Connection-Id: <connection_id>" \
-H "Provider-Config-Key: trello" \
-H "Nango-Proxy-Base-Url-Override: https://api.trello.com" \
-H "Content-Type: application/json" \
-d '{"idList":"<listId>","name":"Card name","desc":"Description"}' \
"$NANGO_SERVER_URL/proxy/1/cards"
```
**Move a card to another list:**
```bash
curl -s -X PUT \
-H "Authorization: Bearer $NANGO_SECRET_KEY" \
-H "Connection-Id: <connection_id>" \
-H "Provider-Config-Key: trello" \
-H "Nango-Proxy-Base-Url-Override: https://api.trello.com" \
-H "Content-Type: application/json" \
-d '{"idList":"<targetListId>"}' \
"$NANGO_SERVER_URL/proxy/1/cards/<cardId>"
```
**Update a card:**
```bash
curl -s -X PUT \
-H "Authorization: Bearer $NANGO_SECRET_KEY" \
-H "Connection-Id: <connection_id>" \
-H "Provider-Config-Key: trello" \
-H "Nango-Proxy-Base-Url-Override: https://api.trello.com" \
-H "Content-Type: application/json" \
-d '{"name":"Updated name","desc":"Updated desc"}' \
"$NANGO_SERVER_URL/proxy/1/cards/<cardId>"
```
## Rules
- Always use the Nango proxy — never call `api.trello.com` directly
- Resolve the Connection ID dynamically at runtime using the Nango connections API
- Use `members/me` for the authenticated user's own boards
- For pagination, use `limit`, `before`, and `since` query parameters
- On API errors, surface status + response body clearly
- On 401/403, reconnect via `manage_auth`
Authorstella
Downloads7
Versions4
Published1d ago
Auth Requirements
TRELLO_ACCESS_TOKENoauth2integration: trello
Version History
v1.2.1latest
Fix: Replace broken {appKey} placeholder with Nango proxy pattern. Add NANGO_SECRET_KEY and NANGO_SERVER_URL env var declarations. Add Connection ID resolution instructions.
Apr 9, 2026
Flagged.zip
v1.2.0
Fix auth pattern and ID handling
Apr 9, 2026
Flagged.zip
v1.1.0
Add polly_managed_connector flag and connector-skill tag
Apr 9, 2026
Clean.zip
v1.0.0
Initial release of v0.8 Tier 3 connectors
Apr 9, 2026
Clean.zip
SHA-256 (latest)
4c5124dfbc4220149b289a7d9f26c4e7e71f3acdeef433d9651d9d8af9f2f07d