First-party app
Trello

Trello

Manage Trello boards, lists, cards, checklists, labels and members.

stable Project ManagementProductivity

About

Trello ships in the w6w first-party pack. It declares 27 actions, 2 health checks, and the host runs its code in a sandbox that never sees the credential.

App id
io.w6w.trello
Version
0.2.2
Author
w6w
Licence
MIT
Categories
Project Management · Productivity

Overview

Trello manages boards, lists and cards from a workflow — creating and updating cards, adding comments, attachments and labels to them, and moving work through lists that can themselves be created, updated and read.

Checklists are a full sub-resource: created on a card, read back, and updated item by item, which is the granularity a workflow needs to track a card’s own sub-tasks rather than treating a checklist as one opaque field. Board membership is manageable too — members can be added to or removed from a board — and a list’s cards can all be archived at once, the bulk action for clearing out a completed list.

A fit for turning an external event into a new Trello card, keeping card status in sync as work progresses through a workflow, or automating board housekeeping like archiving finished lists.

Build with Trello

Three routes to the same 27 actions. The Workflow tab is generated from Trello's own manifest and carries its real ids, so it is copy-pasteable; the Code and CLI examples are the same call for any action on any app, so every app-specific value in them is a blank you fill in.

Add Board Member

board-add-member

Add a member to a board, or change the role of one already on it.

Create Board

board-create

Create a Trello board, optionally copying it from an existing one.

Delete Board

board-delete

Permanently delete a board. Use `board-update` with Archived instead if unsure.

Get Board

board-get

Fetch a board by id.

Get Board Lists

board-get-lists

List the columns (lists) on a board.

Get Board Members

board-get-members

List the members of a board.

Remove Board Member

board-remove-member

Remove a member from a board.

Update Board

board-update

Rename, re-describe, archive or change the visibility of a board.

Add Attachment to Card

card-add-attachment

Attach a URL to a card.

Add Comment to Card

card-add-comment

Post a comment on a card.

Add Label to Card

card-add-label

Apply an existing label to a card, leaving its other labels intact.

Create Card

card-create

Create a card in a list.

Delete Card

card-delete

Permanently delete a card. Use `card-update` with Archived for a reversible removal.

Get Card

card-get

Fetch a card by id or short link.

Remove Label from Card

card-remove-label

Take one label off a card, leaving its other labels intact.

Update Card

card-update

Update a card. Moving a card between lists is an update with a new List ID.

Add Checklist Item

checklist-add-item

Add an item to a checklist.

Create Checklist

checklist-create

Add a checklist to a card.

Get Checklist

checklist-get

Fetch a checklist and its items.

Update Checklist Item

checklist-update-item

Rename, reposition or tick off a checklist item.

Create Label

label-create

Create a label on a board.

Get Board Labels

label-get-many

List the labels defined on a board.

Archive All Cards in List

list-archive-all-cards

Archive every card currently in a list, leaving the list itself in place.

Create List

list-create

Add a list (column) to a board.

Get List

list-get

Fetch a list by id.

Get Cards in List

list-get-cards

List the cards currently in a list.

Update List

list-update

Rename, archive, reposition or move a list to another board.

A workflow step names the app and the action, and the editor fills in the connection when you pick one. This is the Step shape from the workflow spec, carrying Trello's real ids.

{
  "manifestVersion": "2",
  "name": "trello-example",
  "steps": [
    {
      "id": "board-add-member",
      "uses": {
        "app": "io.w6w.trello",
        "action": "board-add-member",
        "connection": "conn_YOUR_CONNECTION_ID"
      },
      "with": {
        "id": "<id>",
        "idMember": "<idMember>",
        "type": "<type>"
      }
    }
  ]
}

Here are some of the things you can do

  • Add Board Member

    perform
    board-add-member
  • Create Board

    perform
    board-create
  • Get Board

    read
    board-get
  • Get Board Lists

    read
    board-get-lists
  • Get Board Members

    read
    board-get-members

+22 more actions available

Every app-specific value here is a blank you have to fill in. An app action is reached through the connection that authenticates it, so the address is a connection id, not the app id — and connections belong to your account, so a public page cannot know yours. Create one for Trello, then fill in the three blanks: conn_YOUR_CONNECTION_ID, the action key, and the parameters that action declares. The call itself is real — the shape is transcribed from the studio's own snippet builder, which prints the same kind of blanks — but nothing in it is specific to Trello. The Workflow tab is where this app's real ids are.

Install
npm install @w6w/sdk
yarn add @w6w/sdk
pnpm add @w6w/sdk
deno add npm:@w6w/sdk
Code
import { W6wClient, isActionRun } from "@w6w/sdk";

// Reads W6W_BASE_URL and W6W_TOKEN from the environment when omitted.
const client = new W6wClient();

const envelope = await client.run({
  urn: "conn_YOUR_CONNECTION_ID",
  action: "card-create",
  payload: {
    idList: "<value>",
    // name: "<value>",
    // desc: "<value>",
    // pos: "<value>",
    // due: "<value>",
    // idMembers: "<value>",
    // idLabels: "<value>",
    // urlSource: "<value>",
    // idCardSource: "<value>",
  },
});

if (isActionRun(envelope)) console.log(envelope.value);
Install the CLI
npm install -g @w6w/cli
CLI
w6w run conn_YOUR_CONNECTION_ID --action card-create --payload '{"idList":"<value>"}'

Give an AI agent Trello — without giving it Trello's credentials. One MCP endpoint exposes every app, function and workflow the caller is entitled to, as tools it can discover and run. Access is granted per team while we onboard.

One tool call
{
  "name": "w6w_invoke",
  "arguments": {
    "ref": "app:io.w6w.trello#board-add-member",
    "input": {
      "id": "<id>",
      "idMember": "<idMember>",
      "type": "<type>"
    }
  }
}

Every tool names its target with a single ref. The app: form above doesn't name a connection at all — the host resolves which of the caller's Trello connections to sign with, and refuses rather than guesses when the answer is ambiguous.

What the agent gets

Credentials it can't read

The token is attached host-side, at the moment of the call. It is never a tool argument, never in the model's context, and never in a transcript — so a prompt injection has nothing to exfiltrate.

A tool surface scoped to the caller

Tools are derived per end user from what that person has actually connected and is entitled to — not one shared bot identity carrying the union of everyone's access.

A durable workflow in one call

Multi-step work runs on the workflow engine and returns a run handle the agent can poll — retries, branching and state survive the conversation that started them.

Health-aware discovery

Trello's declared health checks are on the surface too, so an agent can tell "the vendor is down" from "your credential expired" before it burns a retry on either.

The MCP surface is part of the hosted platform. Trello itself is MIT, and the runtime that executes it is source-available (FSL).

Request MCP access

Health checks

Trello declares its own checks, so its health is a property of the app rather than something the host guesses at.

service

Trello platform status

Atlassian Statuspage rollup for trello.status.atlassian.com, with per-component detail. Unauthenticated and unsigned.

quota

API quota headroom