Announcing CIMD support for MCP Client registration
Learn more

Should you use Trello MCP or Trello API for building AI Agents?

TL;DR

  • Trello's official MCP server and the Trello REST API have overlapping but not identical coverage. The MCP server (15 consolidated tools as exposed through Scalekit) reads and writes boards, lists, cards, checklists, plus Trello's newer Inbox and Planner surfaces. It has no card comments, no attachments, no webhooks, no board activity log, and no destructive deletes. Atlassian has confirmed comments are in progress.
  • The auth story is inverted from most tools. The MCP path uses a modern browser-based OAuth consent flow (OAuth 2.1 with Dynamic Client Registration). The REST API still runs on OAuth 1.0a, requiring HMAC-SHA1 request signing for per-user delegation, or a static API key plus token for single-account headless work.
  • The REST API is the complete surface: comments, attachments, webhooks, label management, member assignment, activity logs, and deletes. It is the only path for event-driven agents and per-user rate isolation.
  • For multi-tenant B2B agents, both paths give you one credential per user. Neither path stores, rotates, or revokes those credentials for you. That stays an infrastructure problem regardless of which path you choose.
  • Scalekit's Trello connectors handle both the OAuth 1.0a signing and the MCP OAuth flow, so the MCP vs API decision does not change your auth infrastructure.

Your agent needs to read and write Trello. Trello ships an official MCP server at mcp.trello.com/v1 and a full REST API at api.trello.com/1. They are not the same object: different capability coverage, different auth generations, different operational surface in production. The choice is not permanent either, since what your agent does determines which path fits. Here is how to pick.

What Trello MCP and Trello API actually are

Both let an agent act on a user's boards. One is a hosted tool interface Atlassian maintains; the other is the raw REST surface that has powered Trello integrations for years.

Trello MCP server

The Trello MCP server is Atlassian's official, first-party server, launched in 2026 and hosted at mcp.trello.com/v1. It is distinct from the Atlassian Remote MCP Server that covers Jira, Confluence, and Bitbucket; that server does not include Trello. An agent connects through a browser-based OAuth consent flow, selects a workspace, and grants Read, Write, and Search permissions. You can read the official overview on the Trello MCP page.

Trello REST API

The Trello REST API is versioned under api.trello.com/1 and exposes the full workspace: boards, lists, cards, checklists, labels, members, comments, attachments, and webhooks. Every capability the MCP server has is reachable here, plus a large surface the MCP server does not touch. The official reference is the Trello REST API introduction.

One nuance that shapes everything

An API key is tied to a Trello Power-Up, created at the Power-Ups admin page. That detail matters because it is where both paths ultimately anchor their credentials, and it is the first thing your auth layer has to model correctly.

Comparing them where it matters for agents

Four dimensions decide this for an agent builder: what the agent can do, which auth path each puts you on, what you own in production, and when each one wins.

What your agent can actually do

The MCP server covers the day-to-day loop well: search a workspace, read boards and cards, create and move cards, mark work done, manage checklists, and handle Trello's newer Inbox and Planner views. The gaps appear when an agent needs to comment, attach files, react to changes, or clean up.

Capability
Trello MCP
Trello REST API
Read boards, lists, and cards
Yes
Yes
Create, update, and move cards
Yes
Yes
Archive a card or mark it done
Yes
Yes
Create boards and lists
Yes
Yes
Checklists and check items
Yes
Yes
Search boards and cards
Yes
Yes
Inbox (personal quick-capture)
Yes
Limited
Planner (calendar events)
Yes
Limited
Add or delete card comments
No
Yes
Add or delete attachments
No
Yes
Assign or remove card members
No
Yes
Create, update, or delete labels
Attach existing only
Yes
Board activity log (actions)
No
Yes
Webhooks (change events)
No
Yes
Permanent deletes
No
Yes

Read the tool count carefully

The MCP server's 15 tools are consolidated, action-dispatch tools: one trellomcp_trello_write_card tool covers create, update, move, archive, mark done, and label attach or detach through an action parameter. So 15 understates the real operation coverage. Scalekit's REST connector, by contrast, exposes 36 granular tools like trello_create_card and trello_add_comment_to_card, one operation each.

The comment and webhook gaps are the ones that bite

Two absences are structural, not cosmetic. Card comments are where decisions live, and Atlassian has publicly confirmed the MCP server does not expose them yet. Webhooks are worse: MCP is a request and response interface with no event-subscription surface, so any agent that must react when a card moves to Done needs the REST API. The MCP server also performs no destructive deletes by design.

The auth path each one puts you on

This is where Trello inverts the usual MCP vs API story. For most tools the MCP path carries the auth limitation. For Trello, the MCP path is the modern one.

MCP: modern browser-based OAuth

The MCP server uses a browser-based OAuth consent flow, classified by Scalekit's connector as OAuth 2.1 with Dynamic Client Registration. The user picks a workspace and approves Read, Write, or Search scopes. It is built for interactive, user-present sessions. A headless agent with no browser cannot complete that consent on its own. For a deeper look at Dynamic Client Registration in OAuth2 and its role in agentic auth, that post covers the mechanics in detail.

REST API: OAuth 1.0a, the old standard

The REST API does not support OAuth 2.0 at all; Atlassian has stated this directly. Per-user delegation runs on OAuth 1.0a, which means your service signs every request with HMAC-SHA1 using your application secret. Most modern auth libraries default to OAuth 2.0, so OAuth 1.0 support has to be selected or hand-rolled. That is real integration cost.

REST API: the static key plus token escape hatch

For single-account, headless automation, the REST API also accepts a static API key plus user token in the query string, with no signing. Tokens can be set to expire in 1 hour, 1 day, 30 days, or never, chosen at generation and fixed after. Convenient for one account; it does not express per-user permissions across many.

What this means for multi-tenant agents

Both paths produce one credential per user. The MCP OAuth flow yields a per-user session; the REST path yields an OAuth 1.0a token or a key-and-token pair per user. In neither case does the path itself store, rotate, or revoke those credentials. That is infrastructure you own regardless. The divide between single-tenant and multi-tenant tool calling agent auth shapes every design decision here.

What you own in production

The question in production is simple: what breaks, what needs your attention, and who fixes it.

With MCP, Atlassian owns the server

Atlassian hosts the server, ships tool updates, and normalizes the schemas. Your agent picks up new capabilities without a redeploy. What you still own: the credential per user, detecting revocation, and tenant isolation. Tool schemas are unversioned, so a server update can change a tool's shape under you.

With the REST API, you own the full stack

You own endpoint selection, request construction, retries, pagination, rate limit handling, and the entire token lifecycle, including the OAuth 1.0a signing. The REST path also has documented rate limits: 300 requests per 10 seconds per API key, and 100 requests per 10 seconds per token. A 429 means back off. The tradeoff is control and stability: the /1 surface is long-lived and predictable.

When to use MCP, when to use the API

The decision comes down to how your agent runs and what it needs to touch.

Use Trello MCP when:

  • You are building an interactive agent in a client like Claude or Cursor, where the user is present for the OAuth consent
  • The core job is search, reading, card creation, checklists, or Trello's Inbox and Planner
  • You want Atlassian to maintain the tool schemas and you can accept an unversioned surface
  • You want the modern OAuth path instead of implementing OAuth 1.0a signing

Use the Trello REST API when:

  • The agent runs headless: scheduled syncs, background automations, or event-driven pipelines with no user present
  • The agent needs comments, attachments, member assignment, label management, or deletes
  • The agent must react to Trello changes through webhooks
  • You need per-user or per-key rate isolation and full control over the token lifecycle

Connecting Trello to your agent with Scalekit

The awkward part of Trello is the auth: OAuth 1.0a signing on one path, an OAuth consent flow on the other. Scalekit removes both. It offers two connectors, one per path, and handles the credential mechanics behind a single interface. The Trello REST connector signs OAuth 1.0a for you; the Trello MCP connector manages the OAuth 2.1 flow.

Install and set credentials

Install the SDK and set your Scalekit environment variables. The examples below use Python.

pip install scalekit-sdk-python # .env SCALEKIT_ENVIRONMENT_URL=<your-environment-url> SCALEKIT_CLIENT_ID=<your-client-id> SCALEKIT_CLIENT_SECRET=<your-client-secret>

Connect a user

Each user authorizes Trello once. Scalekit stores the resulting credential and never exposes it to your agent runtime. The connection_name must match the connection you created in the Scalekit dashboard exactly; use "trello" for the REST path or "trellomcp" for the MCP path.

import os from scalekit import ScalekitClient scalekit = ScalekitClient( env_url=os.environ["SCALEKIT_ENVIRONMENT_URL"], client_id=os.environ["SCALEKIT_CLIENT_ID"], client_secret=os.environ["SCALEKIT_CLIENT_SECRET"], ) # connection_name must match the dashboard connection exactly. link_response = scalekit.actions.get_authorization_link( connection_name="trellomcp", # or "trello" for the REST path identifier="user_123", ) print("Authorize Trello:", link_response.link)

Load only the tools this user is authorized to call

Before the agent runs, retrieve the tools scoped to the current user's connected account. This is not a flat catalog; it is the surface that user authorized. Scoping the tool surface is what keeps selection accurate and context lean, especially when the REST connector alone carries 36 tools. This pattern is exactly what token-efficient tool calling recommends for keeping agent context lean.

from scalekit.v1.tools.tools_pb2 import ScopedToolFilter scoped = scalekit.tools.list_scoped_tools( "user_123", filter=ScopedToolFilter(connection_names=["trello"]), page_size=50, ) for tool in scoped.tools: print(tool.name) # e.g. trello_list_my_boards, trello_create_card

Wire the tools into a framework

The LangChain adapter maps the scoped tools straight into StructuredTool objects, so you register them on an agent without hand-writing schema conversion. The same call works for either connection by swapping connection_names. For a deeper look at how LangChain tool calling fits together, see LangChain Tool Calling: How It Works, Where It Stops, and How Scalekit Completes It.

from langgraph.prebuilt import create_react_agent from langchain_anthropic import ChatAnthropic # Scoped, per-user tools for the REST connector. tools = scalekit.actions.langchain.get_tools( identifier="user_123", connection_names=["trello"], page_size=50, ) agent = create_react_agent(ChatAnthropic(model="claude-sonnet-4-6"), tools) result = agent.invoke( {"messages": [("user", "Create a card called 'Ship Q3 report' on my Backlog list")]} ) print(result["messages"][-1].content)

Or execute a single tool directly

When you want a deterministic, single call instead of an agent loop, execute a tool by name. Use trello_create_card on the REST connector, or trellomcp_trello_write_card on the MCP connector.

result = scalekit.actions.execute_tool( tool_name="trello_create_card", connection_name="trello", identifier="user_123", tool_input={"idList": "<list_id>", "name": "Ship Q3 report"}, ) print(result)

The credential problem that exists on both paths

Whichever path you pick, every user in a multi-tenant agent has their own Trello credential. Fifty customers is fifty credentials, each with its own lifecycle. The path changes the token type; it does not change the infrastructure you need.

What neither path solves

The MCP OAuth flow gives you a per-user session. The REST path gives you an OAuth 1.0a token or a key-and-token pair. In both cases the credential must live somewhere encrypted, isolated per tenant, and revocable when a user disconnects. Trello tokens can be revoked by the user at any time, and your agent only learns about it from a failed call unless you are watching. Scalekit's connectors handle the OAuth flow, token storage, and rotation for both paths, so the MCP vs API decision does not change your auth layer. The credential ownership patterns across agent tool-calling piece covers this architecture in full.

Scoping keeps tool calling accurate

A shared credential gives every user the same surface. Connected accounts invert that: scope is a function of identity, so what the user cannot do, the agent cannot do. Loading all 36 REST tools also burns context and degrades selection before the agent reads the request; scoping to the five or ten a task needs fixes both.

Virtual MCP for multi-tool, multi-tenant agents

Most real agents call more than Trello. A Virtual MCP server gives every agent one scoped endpoint that declares exactly which tools it can see and whose credentials it acts with. One server definition serves all users; a short-lived session token is minted per run, scoped to that user's connected accounts. There is no MCP server to deploy, host, or maintain. The difference between MCP and APIs covers the underlying model in depth.

Observability on every tool call

In production you need to answer who did what. Scalekit logs each downstream tool call: which user, which tool, which connected account, and the outcome. That record is the difference between an agent you can audit and one you cannot, as covered in the agent tool observability guide.

Which one to build against

If your agent is interactive and its job is searching, reading, and creating Trello work, the official MCP server is the faster path, and it hands you the modern OAuth flow instead of OAuth 1.0a signing. If your agent runs headless, needs comments or attachments, must react to changes through webhooks, or has to delete, the REST API is the only complete path.

The single question that decides it: does your agent need to react to Trello events or touch comments, attachments, and deletes? If yes, build against the REST API. If no, the MCP server is on the table. Either way the credential problem is identical, and that is what needs production-grade infrastructure.

Build your Trello agent

Start from the Scalekit Trello connector, browse the full connector catalog, or model the pattern on templates like the engineering standup agent and the DevOps assistant agent. Usage-based details are on the pricing page.

Building a Trello agent and want a second pair of eyes on the auth model? Join the Scalekit Slack community, or talk to us for help right away.

No items found.
Agent
Auth Quickstart
On this page
Share this article
Agent
Auth Quickstart

Acquire enterprise customers with
zero upfront cost.

Every feature unlocked. No hidden fees.