trello-mcp
Self-hostable MCP server for working with Trello through MCP-compatible clients using Trello API credentials.
Discover boards, lists, cards, labels, members, workspaces, and custom field definitions.
Create and manage boards, lists, cards, due dates, positions, covers, and archive state.
Create, update, delete, and assign labels on cards.
Manage checklists and checklist items, including completion, due dates, moves, and deletion.
List, inspect, add URL attachments, upload server-local files when configured, delete attachments, and set covers.
Add/remove card members and inspect member profiles, boards, cards, and workspaces.
Add, edit, delete card comments and audit activity/actions on cards, boards, lists, and workspaces.
Search cards, boards, members, and workspaces; look up members scoped by board or workspace.
Set, clear, and read card custom field values and inspect dropdown options.
Run over stdio or Streamable HTTP, including Docker/GHCR deployment, health/readiness endpoints, optional bearer auth, rate limiting, retries, validation, and credential redaction.
Provides tools for interacting with Trello's public API, enabling management of boards, lists, cards, labels, attachments, checklists, members, workspaces, search workflows, comments, and card activity.
trello-mcp
A self-hostable Model Context Protocol server that lets MCP-compatible clients work with Trello cards, lists, labels, attachments, checklists, members, and card activity.
The project is intentionally self-hostable and reusable. Contributions, adaptations, and focused issue reports are welcome.
The roadmap is, of course, tracked on Trello, and trello-mcp helps keep it up to date: trello-mcp roadmap.
Disclaimer
trello-mcp is an independent, community-maintained project. It is not an official Trello or Atlassian product, service, or MCP implementation, and it is not affiliated with, endorsed by, or sponsored by Trello or Atlassian.
This project exists to make it easier for MCP-compatible LLM clients to interface with Trello through Trello's public API and user-provided API credentials.
Looking for Trello's official hosted MCP server? Visit Trello MCP and use the endpoint documented by Trello: https://mcp.trello.com/v1.
Related MCP server: Atlassian Trello MCP Server
Documentation
The complete project documentation is available at trello-mcp.com:
Features
Board Discovery
List boards visible to the authenticated Trello member.
Read basic board metadata.
List open, closed, or all lists on a board.
List open, closed, visible, or all cards on a board.
List board labels, members, and memberships.
Create, inspect, update, and delete board labels.
Create, inspect, rename, archive, unarchive, and move lists between boards.
Card Workflows
Read cards by id, short id, or Trello card URL.
Create cards with title, description, due date, position, members, and labels.
Update card metadata including title, description, due date, due completion, and archived state.
Move cards between lists or boards.
Apply and remove existing labels on cards.
Permanently delete cards only when explicitly requested.
Card Context
List cards in a Trello list.
List card attachments, inspect individual attachments, add public URL attachments, and upload server-local files from an explicitly configured directory.
List, create, rename, and delete card checklists, and manage checklist items.
List card members and add or remove members.
Read card actions and activity history.
Add, edit, and delete Trello card comments.
Search Workflows
Search Trello cards, boards, members, and workspaces using Trello search text and operators.
Scope search results to specific boards, cards, or workspaces.
Look up Trello members by name or username before assignment.
Read member profiles, assigned cards, boards, and workspaces.
Workspace Discovery
List Trello workspaces visible to the authenticated member.
Read workspace metadata, boards, and members.
Self-Hosted Runtime
Run with Docker Compose using the published GHCR image.
Build locally with a separate Compose file.
Use Streamable HTTP for container deployments.
Use stdio for local MCP clients that launch the server as a child process.
Keep stdio logs on stderr so local MCP clients receive protocol-only stdout.
Expose HTTP health and readiness endpoints.
Optionally require a bearer token for HTTP MCP endpoint requests.
Validate config, tool input, and Trello API responses with Zod.
Redact Trello credentials from logs.
Run typecheck, lint, build, tests, and coverage in GitHub Actions.
Quick Start
1. Get Trello API Credentials
Trello API keys are created from an app in Trello's App Admin Portal. Each person running this server should use their own Trello account and token. Follow the dedicated Trello API credentials guide for the current, security-focused walkthrough.
In short: create or select an app at trello.com/apps/admin, generate a key from its API Key tab, then use the nearby Token link to review and authorize access for the intended Trello member.
You will use those values as:
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token2. Choose an Install Path
Option A: Run the Published Docker Image
Use this path if you just want to run the server. It pulls the prebuilt image from GHCR and does not build anything locally.
git clone https://github.com/enthouan/trello-mcp.git
cd trello-mcp
cp .env.example .envEdit .env and replace the placeholder values:
TRELLO_API_KEY=your-api-key
TRELLO_TOKEN=your-token
TRANSPORT=http
LOG_LEVEL=info
TRELLO_RATE_LIMIT_CAPACITY=100
TRELLO_RATE_LIMIT_REFILL_INTERVAL_MS=10000
TRELLO_RETRY_MAX_ATTEMPTS=3
TRELLO_RETRY_BASE_DELAY_MS=100
TRELLO_RETRY_MAX_DELAY_MS=2000
# MCP_AUTH_TOKEN=optional-shared-secret
TRELLO_MCP_HOST_BIND_IP=127.0.0.1
TRELLO_MCP_HOST_PORT=3000
TRELLO_MCP_IMAGE_TAG=latest
TRELLO_MCP_NETWORK=trello-mcp_networkStart the published image:
docker compose up -d --wait --wait-timeout 120The default docker-compose.yml uses:
ghcr.io/enthouan/trello-mcp:latestDocker Compose values such as image tag, host bind IP, host port, and network name can be overridden with environment variables or the .env file. The compose files document their defaults at the top; for example, TRELLO_MCP_IMAGE_TAG defaults to the latest tag in docker-compose.yml (latest follows the main branch, and release tags such as X.Y and X.Y.Z are available for versioned deployments), TRELLO_MCP_HOST_BIND_IP defaults to 127.0.0.1 for local-only access, TRELLO_MCP_HOST_PORT defaults to 3000 and maps that host port to the container's fixed internal 3000 listener, while TRELLO_MCP_NETWORK defaults to trello-mcp_network. Set TRELLO_MCP_HOST_BIND_IP=0.0.0.0 only when you intentionally want Docker to publish the service on all host interfaces, such as for LAN access.
Set MCP_AUTH_TOKEN to require Authorization: Bearer <token> on HTTP MCP requests to /mcp. Leave it unset for the default unauthenticated local behavior. Health and readiness endpoints remain unauthenticated for container and reverse-proxy checks.
Container health follows TRANSPORT: HTTP checks /healthz on PORT (default
3000), while stdio uses process liveness and lets the attached MCP client check
protocol responsiveness. Compose inherits this image health check.
Keep the Trello rate-limit and retry values at their defaults unless logs show trello rate limit wait or trello request rate limited; retrying during large workflows. Lower the capacity for shared tokens or constrained deployments; raise it carefully only after narrowing the workflow's board, card, field, and pagination scope.
For repeatable deployments, select a release and pin its verified index digest. See image trust and read-only verification for SBOM/provenance inspection, the GHCR signing policy, and the separate Docker-built catalog path. Metadata integrity checks do not authenticate a publisher. Published Docker image tags use these conventions:
Tag | Use case |
| Follows the current |
| Follows the newest patch release in a minor line, moving to the image built from the latest matching |
| Identifies an exact release, preserved by project policy. Pin its verified digest for immutable bytes. |
| Identifies a commit build; a stable release can repair this alias to its verified release digest. |
You can also run the published image directly without Compose:
docker run --rm -p 127.0.0.1:3000:3000 \
-e TRELLO_API_KEY=your-api-key \
-e TRELLO_TOKEN=your-token \
ghcr.io/enthouan/trello-mcp:latestOption B: Build Locally from Source
Use this path if you want to develop the project, test local changes, or build the Docker image yourself.
Local development uses Node.js 24.x and the pinned pnpm@10.34.1 package manager through Corepack.
git clone https://github.com/enthouan/trello-mcp.git
cd trello-mcp
cp .env.example .envEdit .env with your Trello credentials, then build and run locally:
docker compose -f docker-compose.local.yml up --build -d --wait --wait-timeout 120This uses docker-compose.local.yml, which builds from the local Dockerfile and tags the image as trello-mcp:local.
For a non-Docker local build:
corepack enable
corepack prepare pnpm@10.34.1 --activate
corepack pnpm install --frozen-lockfile
corepack pnpm build:cleanThen run the compiled server directly:
TRELLO_API_KEY=your-api-key TRELLO_TOKEN=your-token TRANSPORT=stdio node dist/index.jsTreat the token like a password. Do not commit it, paste it in logs, or share it in PRs.
3. Connect Your MCP Client
Choose the transport by where the server runs:
Your setup | Choose | Client receives |
A built clone and the MCP client are on the same machine |
| A local command plus Trello credentials in the child-process environment |
The server runs in Docker, behind a reverse proxy, or on another host | Streamable HTTP | An |
The Set up your MCP client guide has current, sanitized examples for Claude Desktop, Claude Code, Codex CLI, VS Code, OpenCode, MCP Inspector, and other manual clients. It also covers restart requirements, HTTP bearer support, secret handling, and tested limitations.
For dated client versions and evidence, see MCP Client Compatibility.
4. Verify
If you chose Streamable HTTP, check the server:
curl http://127.0.0.1:3000/healthz
curl http://127.0.0.1:3000/readyzIf you changed TRELLO_MCP_HOST_PORT, replace 3000 with that host port. If you changed TRELLO_MCP_HOST_BIND_IP from 127.0.0.1, use a hostname or IP address that can reach the bound host interface.
Then confirm the MCP client discovers the current 77-tool surface. With an
intentional read-only credential check, call auth_whoami or auth_token_info
from the client. Do not make a write-side Trello call just to prove setup.
Trello Credentials
This server currently uses Trello API key + token authentication. Follow the dedicated Trello API credentials guide for a security-focused walkthrough, with links to Trello's official App Admin Portal, authorization, and revocation documentation.
Use the read-only auth_whoami and auth_token_info tools to verify which Trello member the configured credentials authenticate as and to inspect the configured token's owner, expiration, and permissions. These tools are diagnostics only; this server does not implement OAuth redirects, token creation, token refresh, token revocation, or other token lifecycle management.
Set up your MCP client
Use the canonical Set up your MCP client guide for transport
selection and client-specific configuration. Keep Trello credentials in the
stdio child environment or on the HTTP server; an HTTP client needs only the
/mcp endpoint and, when MCP_AUTH_TOKEN is enabled, a supported bearer-header
configuration.
The compatibility record distinguishes an official-doc review from a real client connection, tool discovery, and an actual Trello workflow.
Environment
See the configuration reference for deployment-specific applicability, secret handling, rate-limit tuning, Compose controls, and local attachment-upload requirements.
Variable | Required | Default | Description |
| yes | Trello API key. | |
| yes | Trello token for token auth. | |
| no | If set, HTTP MCP requests to | |
| no | Absolute server-side directory that enables local file attachment uploads. Leave unset to disable local uploads. | |
| no |
| Token-bucket capacity for Trello requests before the client waits for a refill. Must be a positive integer. |
| no |
| Token-bucket refill interval in milliseconds. Must be a positive integer. |
| no |
| Total attempts for a Trello request when Trello returns HTTP |
| no |
| Exponential backoff base delay in milliseconds for HTTP |
| no |
| Maximum delay in milliseconds for any HTTP |
| no |
|
|
| no |
| HTTP listen port for the Node process. Docker Compose keeps the container listener on |
| no |
| Pino log level. |
| no |
| Docker Compose host interface bind address. Keep |
| no |
| Docker Compose host port mapped to the container's fixed internal |
| no |
| Published image tag; |
| no |
| Docker Compose bridge network name. |
Live Trello Smoke Tests
Normal tests are mocked and offline. corepack pnpm test, corepack pnpm test:coverage, and the default CI workflow never require Trello credentials and never contact Trello.
For release validation against real Trello, use the explicit live smoke command:
TRELLO_LIVE_SMOKE=1 \
TRELLO_LIVE_SMOKE_BOARD_ID=your-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm smoke:liveYou may use TRELLO_LIVE_SMOKE_BOARD_URL instead of TRELLO_LIVE_SMOKE_BOARD_ID; Trello trello.com/b/... board URLs are normalized to their short link, then the harness resolves the canonical board id with board_get before creating anything. Non-board URLs are rejected without logging their raw value or query string. TRELLO_LIVE_SMOKE_RUN_ID is optional and is included in temporary artifact names when set.
Set TRELLO_LIVE_REQUIRE_PUBLIC_BOARD=1 when output may be published. The harness then verifies Trello reports the board as public before recording its identity or performing writes. This is optional for local private disposable-board validation.
Safety model:
The command exits before any Trello request unless
TRELLO_LIVE_SMOKE=1, Trello credentials, and a smoke board id or URL are all present.The configured board should be a disposable board reserved for validation, not an active production board.
The harness creates uniquely named temporary lists, one card, one label, one checklist, one checklist item, and one comment. It deletes the card and label, archives the temporary lists, and verifies that no open temporary lists, cards, or labels remain.
Cleanup runs even when an intermediate validation step fails. It also searches for uniquely prefixed lists, cards, and labels that Trello created before a response validation failure could track them. Cleanup failures are reported and cause the command to fail.
The harness invokes the existing tool handlers with a real
TrelloClient, so tool input validation, Trello response validation, retry/rate-limit handling, and credential redaction stay on the normal code path.The harness does not log API keys, tokens, credential-bearing URLs, raw environment objects, or raw request data.
The smoke flow validates representative v1.0 workflows:
Auth and discovery:
auth_whoami,auth_token_info,list_boards, board reads, lists, cards, labels, members, memberships, and custom-field discovery.List and card writes: disposable list creation/rename/archive, card create/read/update/due-date/position/archive/restore/move/delete.
Checklist and item behavior: checklist creation/rename/deletion plus item create/list/update/check/delete.
Labels and members: disposable label create/read/update/apply/remove/delete, plus authenticated-member assignment/removal when that member is visible on the smoke board.
Card activity: comment create/update/list/delete on the disposable card.
Live Trello Regression Tests
corepack pnpm smoke:live is the shallow release smoke check: it proves the most important workflow can authenticate, create disposable artifacts, mutate them, and clean up. corepack pnpm regression:live is the broader opt-in release-validation suite. It walks the public MCP tool surface by domain, reports live coverage against the registered tool catalog, and makes skipped or missing live coverage visible.
The regression suite has a separate opt-in gate from smoke tests:
TRELLO_LIVE_REGRESSION=1 \
TRELLO_LIVE_REGRESSION_BOARD_ID=your-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm regression:liveUse TRELLO_LIVE_REGRESSION_BOARD_URL instead of TRELLO_LIVE_REGRESSION_BOARD_ID when a trello.com/b/... board URL is more convenient. Non-board URLs are rejected before any Trello request and without logging raw query strings.
Set TRELLO_LIVE_REQUIRE_PUBLIC_BOARD=1 when output or the JSON report may be published. The harness then verifies Trello reports every configured board as public before recording its identity or performing writes. Local private disposable-board runs can omit this flag and keep their output private.
Set TRELLO_LIVE_REGRESSION_SECONDARY_BOARD_ID or TRELLO_LIVE_REGRESSION_SECONDARY_BOARD_URL when you want live coverage for cross-board list moves. The secondary board is optional for local runs; when it is absent, list_move_to_board is reported as an intentional runtime skip instead of missing coverage. When it is present, the suite resolves it with board_get, confirms the token can see it through list_boards, verifies it is open and different from the primary board, then moves only disposable lists between the two boards.
Targeted runs are useful when debugging a domain or one tool:
TRELLO_LIVE_REGRESSION=1 \
TRELLO_LIVE_REGRESSION_BOARD_ID=your-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm regression:live --domain cardsTRELLO_LIVE_REGRESSION=1 \
TRELLO_LIVE_REGRESSION_BOARD_ID=your-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm regression:live --tool card_attachment_uploadTRELLO_LIVE_REGRESSION=1 \
TRELLO_LIVE_REGRESSION_BOARD_ID=your-primary-disposable-board-id-or-short-link \
TRELLO_LIVE_REGRESSION_SECONDARY_BOARD_ID=your-secondary-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm regression:live --tool list_move_to_boardYou may also use TRELLO_LIVE_REGRESSION_DOMAINS=cards,attachments and TRELLO_LIVE_REGRESSION_TOOLS=card_get,card_update. Supported domains are auth, boards, lists, cards, labels, checklists, members, workspaces, search, custom-fields, comments-actions, and attachments.
Set TRELLO_LIVE_REGRESSION_REPORT_JSON=reports/live-regression.json to emit a machine-readable report in addition to the human-readable terminal report. The report groups tools by domain and shows:
covered: tool handlers successfully exercised against Trello.skipped: intentional runtime skips, such as no visible workspace, no board custom fields, or upload coverage not configured.unsupported: non-goal live cases that are intentionally outside regression coverage, such asboard_create.missing: selected public tools with no regression coverage classification. Missing coverage fails the command so new public tools do not silently disappear from release validation.cleanup status, including attempted/completed cleanup steps and any remaining prefix-matched open artifacts.
Regression safety model:
The command exits before any Trello request unless
TRELLO_LIVE_REGRESSION=1, Trello credentials, and a regression board id or URL are all present.The configured board should be a disposable board reserved for validation, not an active production board.
The optional secondary board should also be disposable. It is only mutated for
list_move_to_board, and only with lists created by the regression run.Temporary artifacts use a unique run id and the
trello-mcp live regression ...prefix. SetTRELLO_LIVE_REGRESSION_RUN_IDwhen you want a human-readable run marker.Cleanup runs after intermediate failures. It removes tracked temporary cards, labels, attachments, member/label assignments, custom-field values, and archives temporary lists. It also searches all configured regression boards for prefix-matched lists, cards, and labels that were created before the response could be tracked.
The suite invokes registered tool handlers with a real
TrelloClient; it does not call Trello through a separate ad hoc client.The suite does not log API keys, tokens, credential-bearing URLs, raw environment objects, or raw request data.
Local file upload coverage is skipped by default. To include card_attachment_upload, both the normal upload root and an explicit regression test file must be configured:
TRELLO_ATTACHMENT_UPLOAD_ROOT=/absolute/path/to/trello-uploads \
TRELLO_LIVE_REGRESSION_UPLOAD_FILE=sample.txt \
TRELLO_LIVE_REGRESSION=1 \
TRELLO_LIVE_REGRESSION_BOARD_ID=your-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm regression:live --domain attachmentsThe upload file path may be relative to TRELLO_ATTACHMENT_UPLOAD_ROOT or absolute, but it must resolve inside the upload root.
If the live env vars are absent during local validation, record the live command as skipped. The skipped state is explicit: corepack pnpm smoke:live and corepack pnpm regression:live fail before contacting Trello and print the missing variable names. Do not add either command to normal CI unless the job is intentionally secret-backed and opt-in.
GitHub Actions
The repository includes a Live Trello Smoke workflow for PR, post-merge main, and release validation. It runs on same-repository pull requests, pushes to main, and manual dispatch. Fork pull requests are skipped so Trello credentials are not exposed to untrusted PR code.
The workflow runs the offline gates (pnpm typecheck, pnpm lint, pnpm build, and pnpm test) before the secret-backed live smoke step.
Before using it, configure a GitHub Environment named live-smoke with these secrets:
Secret | Description |
| Trello API key for a dedicated smoke-test Trello member. |
| Trello token for that same member, with write access to the disposable smoke board. |
Use environment required reviewers if the repository has more than one maintainer or if the token can access anything beyond the smoke board. The workflow maps those secrets to TRELLO_API_KEY and TRELLO_TOKEN only for the pnpm smoke:live step. The job sets environment.deployment: false, so the GitHub Environment still scopes secrets and protection rules without creating Deployment records. Do not use pull_request_target for this workflow.
The hosted smoke workflow is fixed to the public disposable test board short link hUaItfNq and sets TRELLO_LIVE_REQUIRE_PUBLIC_BOARD=1, so it fails before identity output or writes if Trello no longer reports that board as public. It does not accept a board override, so a maintainer cannot accidentally publish a private board's identifiers through public Actions logs or summaries. A public board is acceptable for smoke testing when temporary artifact names and activity history can be visible, but public visibility does not remove the need for Trello credentials because the harness performs writes. For another disposable board, use the local command above and keep private-board output out of public logs and artifacts.
The broader Live Trello Regression workflow is manual-only and should be used for release candidates or focused live debugging, not as an ordinary PR gate. Configure a GitHub Environment named live-regression with:
Secret | Description |
| Trello API key for a dedicated regression-test Trello member. |
| Trello token for that same member, with write access to the disposable regression board. |
The hosted regression workflow is fixed to the public disposable primary and secondary boards hUaItfNq and r9BpowfZ and sets TRELLO_LIVE_REQUIRE_PUBLIC_BOARD=1, so it fails before identity output or writes if Trello no longer reports either board as public. It accepts optional domains and tools inputs and uploads reports/live-regression.json when the command produces it. To use different boards, run the command locally and do not publish a report for a private board. The workflow also sets environment.deployment: false because live regression is secret-backed validation, not an app deployment. Fork pull requests must not receive Trello credentials; keep live regression on workflow_dispatch or another explicitly secret-backed workflow.
The Release workflow builds the published multi-architecture Docker image for linux/amd64 and linux/arm64 on pushes to main and v*.*.* tags. It can also be run manually from a branch with push=false to perform a no-push multi-platform validation before release-image changes merge. Leave push=false for dry runs; only use push=true when intentionally publishing to GHCR.
Usage Examples
Once connected to an MCP client, ask for Trello actions in natural language:
For inspect-first multi-tool sequences with explicit proposal, approval, and verification stages, follow the workflow guide.
Show me my Trello boards.
Show me the lists on my job scout board.
Show me the cards in my "Today" list.
Create a card called "Review invoices" in the bookkeeping list.
Move this card to Done.
Archive the card about the old onboarding checklist.
Show the recent activity for this card.
Add a comment to this card saying the invoices are ready for review.
Edit this card comment to include the updated invoice total.
Add this public URL as an attachment to the card.
Upload the file invoice.pdf from my Trello upload folder to this card.
Show me the custom fields configured on this board.
Set this card's Priority custom field to the High option.
Clear this card's Estimate custom field.The exact wording depends on your MCP client. The server can discover your boards and board lists first, then use those ids for card workflows.
Large Trello Responses
Collection tools default to compact Trello reads so MCP clients do not receive unnecessarily large payloads. High-volume card, label, and action reads default to limit: 50; Trello caps these collection reads at 1000.
Use fields to request only the properties needed for a workflow. Tools that validate object names, ids, or action types automatically add schema-required fields even when you request a smaller field set. Use fields: "all" only for detailed follow-up reads where the larger response is useful.
Use since and before on card collection and action tools to page through older or newer Trello objects. These cursors accept an ISO-8601 timestamp, a Trello/Mongo id, or null where Trello supports it. Action reads also expose zero-based page for Trello's action pagination.
Use card_actions, board_actions, list_actions, and workspace_actions for bounded activity audits. Set filter: "commentCard" to focus on comments, filter: "all" for broader activity, and combine limit, since, before, and page so board, list, card, or workspace histories stay small enough for MCP clients.
Member-returning tools default to compact member fields (username,fullName,initials,avatarUrl). Use member field inputs such as fields, memberFields, or memberCreatorFields when a workflow needs additional member profile properties.
Search
Use search when a user gives a natural language term and you need to find matching cards or boards before taking action. It searches cards and boards by default, returns compact fields, and defaults to 10 results per resource type. Add members or organizations to modelTypes when member or workspace result types are useful.
Use boardIds: "mine" or specific board ids to narrow card and board search. Use organizationIds for workspace ids, plus cardIds, partial, cardsPage, and the per-type limit inputs when a query needs tighter scope or pagination. Use search_members for assignee lookup by name or username, especially when scoped by a board or workspace.
Attachment Uploads
Public URL attachments work without extra setup. Local file uploads are implemented, but they are disabled by default because the MCP client asks the server process to read a file from the server's filesystem.
To enable card_attachment_upload, set TRELLO_ATTACHMENT_UPLOAD_ROOT to an absolute directory path the server may read. Upload tool filePath values can be relative to that directory, or absolute paths that still resolve inside it. The server resolves symlinks with realpath, rejects directories, and rejects files outside the configured root before it sends any Trello request.
For local stdio use:
TRELLO_ATTACHMENT_UPLOAD_ROOT=/Users/you/trello-uploads \
TRELLO_API_KEY=your-key \
TRELLO_TOKEN=your-token \
TRANSPORT=stdio \
node dist/index.jsFor Docker, mount the upload directory into the container and set the root to the container path:
docker run --rm -p 127.0.0.1:3000:3000 \
-v "$PWD/trello-uploads:/uploads:ro" \
-e TRELLO_ATTACHMENT_UPLOAD_ROOT=/uploads \
-e TRELLO_API_KEY=your-api-key \
-e TRELLO_TOKEN=your-token \
ghcr.io/enthouan/trello-mcp:latestMCP clients do not upload bytes directly through this tool; they provide a path that must exist on the server host or inside the container. For remote servers, copy or mount the file into TRELLO_ATTACHMENT_UPLOAD_ROOT first.
Custom Fields
Custom field definitions live on Trello boards, and card values are exposed as card customFieldItems. Use board_custom_fields to discover board-level field definitions and their ids, custom_field_options to list dropdown/list options for a field, and card_custom_field_items to inspect values currently set on a card.
The write tool card_custom_field_set accepts one custom field at a time with a type-specific input shape:
Custom field type | Input shape | Notes |
|
| Plain text value. |
|
| Trello expects numbers as strings. |
|
| Must be an ISO-8601 date/time string. |
|
| The server sends Trello the string value Trello expects. |
|
| Discover option ids with |
Use card_custom_field_clear to clear an existing card custom field value. Trello clears custom field items with an empty PUT request shape rather than a DELETE request, so clearing is intentionally separate from setting values.
Board Creation
board_create creates a new Trello board with prefs_permissionLevel defaulting to private. Pass workspaceId to place the board in a Trello workspace/organization and set permissionLevel explicitly only when you intend workspace-visible (org) or public (public) board visibility.
API Coverage
See docs/api-coverage.md for the Trello REST API group coverage matrix, deferred endpoint families, and current non-goals.
Tool Catalog
77 tools are registered. Names, descriptions, and key inputs are generated from allTools.
Name | When to use | Key inputs |
| Use as a read-only credential diagnostic to confirm which Trello member the configured API key and token authenticate as. | fields |
| Use as a read-only credential diagnostic to inspect the configured Trello token's owner, expiration, and permissions; it does not create, refresh, revoke, or manage tokens. | fields |
| Use first when the user has not provided a board, list, card id, or Trello URL; returns boards visible to the authenticated Trello member. | filter, fields |
| Use when creating a new Trello board. Creates boards as private by default, can place them in a workspace with workspaceId, and only supports explicit private, workspace, or public visibility. | name, desc, workspaceId, permissionLevel |
| Use when you need board details, common board preferences, or label names for a known Trello board before listing or summarizing it. | boardId, fields |
| Use when you need one specific board field, such as prefs, labelNames, subscribed, name, description, or URL. | boardId, field |
| Use when auditing recent activity or comments across a board; use filter, limit, page, since, before, and fields to keep large histories bounded. | boardId, filter, fields, limit, since, before, page, member, memberFields, memberCreator, memberCreatorFields |
| Use when you need the lists on a known Trello board so you can find the right list id before listing or creating cards. | boardId, filter, fields |
| Use when you need cards across all lists on a known Trello board for personal planning, review, or summarization. | boardId, filter, fields, limit, since, before |
| Use when inspecting custom field definitions on a known Trello board, including dropdown/list options when Trello returns them. | boardId |
| Use when discovering labels available on a board before creating or updating cards with labels. | boardId, limit, fields |
| Use when you need the members who can access a known Trello board before assigning cards or reviewing collaboration; requires token visibility of private boards. | boardId, fields |
| Use when you need board membership records, member roles, or permission context for a known Trello board; use the admins filter when checking board-admin-only operations. | boardId, filter, member, memberFields |
| Use first when the user asks to show Trello workspaces or needs to choose a workspace before drilling into its boards or members. | filter, fields, paidAccount |
| Use when you need basic Trello workspace metadata, such as display name, description, URL, website, board ids, or preferences. | workspaceId, fields |
| Use when you need boards in a known Trello workspace so the user can drill into a workspace board. | workspaceId, filter, fields |
| Use when you need members in a known Trello workspace before assignment, auditing, or permission review. | workspaceId, filter, fields |
| Use when auditing recent activity or comments across a Trello workspace; use filter, limit, page, since, before, and fields to keep large histories bounded. | workspaceId, filter, fields, limit, since, before, page, member, memberFields, memberCreator, memberCreatorFields |
| Use after member search or board member listing to inspect a Trello member profile by id, username, or me before assignment or auditing. | memberId, fields |
| Use when you need boards associated with a known Trello member by id, username, or me; results are limited to boards visible to the configured token. | memberId, filter, fields |
| Use when you need cards assigned to a known Trello member by id, username, or me; private board cards require token access to those boards. | memberId, filter, fields, limit, since, before |
| Use when you need Trello workspaces associated with a known member by id, username, or me; workspace visibility and role permissions constrain results. | memberId, filter, fields, paidAccount |
| Use when you need metadata for a known Trello list before creating cards in it or changing it. | listId, fields |
| Use when creating a new Trello list on an existing board. | boardId, name, pos |
| Use when renaming a Trello list, changing its position, or setting its archive state. | listId, name, closed, pos |
| Use when archiving or unarchiving a Trello list while keeping its cards recoverable. | listId, closed |
| Move an existing list and its cards to another board, changing who can access them. Use list_update to reorder within the current board. | listId, boardId |
| Use when auditing recent activity or comments for a list; use filter, limit, page, since, before, and fields to keep large histories bounded. | listId, filter, fields, limit, since, before, page, member, memberFields, memberCreator, memberCreatorFields |
| Use when you need the current details of one Trello card by id, short link, or URL before editing or summarizing it. | cardId, fields |
| Use when you need the board relationship for a known Trello card before moving, labeling, or summarizing its context. | cardId, fields |
| Use when you need the current list relationship for a known Trello card before moving or reporting its status. | cardId, fields |
| Use when listing the labels currently applied to a card, including label ids for add/remove workflows. | cardId |
| Use when you need cards in a specific Trello list; use limit, since, before, and fields to keep large lists small. | listId, filter, fields, limit, since, before |
| Use when the user asks to create a new Trello card in a known list; accepts title, description, due date, members, and labels. | listId, name, desc, due, pos, memberIds, labelIds |
| Use when changing card metadata such as title, description, due date, due completion, or archive state without moving it. | cardId, name, desc, due, dueComplete, closed |
| Use when setting, clearing, or marking completion of a card due date without changing other card metadata. Provide at least one of due or dueComplete. | cardId, due, dueComplete |
| Use when changing only a card's position within its current list; use card_move when changing lists or boards too. | cardId, pos |
| Use when setting a card cover to an existing attachment id, changing cover display size, or clearing the current attachment cover. | cardId, attachmentId, size, brightness |
| Create a new board label and apply it to this card. Use card_label_add for an existing label; repeating this creation can create duplicates. | cardId, name, color |
| Use only when the user explicitly asks to permanently delete a Trello card; archive instead for reversible removal. | cardId |
| Use when moving a card to another list, another board, or a different position; this is distinct from general card metadata updates. | cardId, listId, boardId, pos |
| Use when the user wants to archive or unarchive a card while keeping it recoverable; do not use for permanent deletion. | cardId, closed |
| Use when listing files or links attached to a card, optionally narrowed by Trello attachment fields or filter. | cardId, fields, filter |
| Use when inspecting one existing card attachment by attachment id, including upload metadata when Trello returns it. | cardId, fields, attachmentId |
| Use when attaching an existing public URL to a card; this does not upload local files. | cardId, url, name, setCover |
| Read a server-local file inside TRELLO_ATTACHMENT_UPLOAD_ROOT and transmit its contents to Trello as a new card attachment. Disabled unless that root is configured; repeated uploads can create duplicates. Use card_attachment_add_url for public links. | cardId, filePath, name, mimeType, setCover |
| Permanently delete an attachment from a card, including Trello's stored file for uploads. This cannot be undone; use card_cover_set to clear a cover without deleting its attachment. | cardId, attachmentId |
| Use when viewing all checklists and checklist items currently on a card. | cardId |
| Use when adding a new checklist to an existing card, optionally copied from another checklist. | cardId, name, sourceChecklistId |
| Use when renaming a Trello card checklist or changing the checklist's position on its card. Provide at least one of name or pos. | checklistId, name, pos |
| Permanently delete a checklist and all its items from a card. This cannot be undone; use card_checklist_item_delete to remove only one item. | cardId, checklistId |
| Use when adding a new item to an existing Trello checklist on a card. | checklistId, name, pos, checked, due, dueReminder, memberId |
| Use when listing the items in one Trello checklist, including complete and incomplete items by default. | checklistId, filter, fields |
| Use when editing a Trello card checklist item text, due date, member assignment, completion state, checklist, or position. | cardId, checkItemId, name, state, checklistId, pos, due, dueReminder, memberId |
| Use when checking or unchecking a Trello card checklist item without changing other item fields. | cardId, checkItemId, checked |
| Use when moving a Trello checklist item to another checklist on the same card or to a different position. | cardId, checkItemId, checklistId, pos |
| Permanently delete one checklist item. This cannot be undone; use card_checklist_item_set_checked to mark completion while keeping the item. | cardId, checkItemId |
| Use when reading all custom field item values currently set on a Trello card. | cardId |
| Set or replace one card custom field value, using the existing definition's type from custom_field_get. Use custom_field_options to find list option ids and card_custom_field_clear to remove a value. | cardId, customFieldId, type, text, number, date, checked, optionId |
| Clear one card's custom field value without deleting the board's field definition. Restoring it requires setting the previous value with card_custom_field_set. | cardId, customFieldId |
| Use when listing members assigned to a card; requires token access to the card's board. Use fields to keep member output small. | cardId, fields |
| Use when assigning a Trello member to a card by member id; requires write access to the card's board and a member who can be assigned to that board. | cardId, memberId |
| Use when unassigning a Trello member from a card by member id; requires write access to the card's board. | cardId, memberId |
| Add a new comment to a Trello card and return its comment action. Repeating the call creates another comment; use card_comment_update to edit an existing comment. | cardId, text |
| Use when editing the text of an existing Trello card comment by its comment action id. | actionId, text |
| Permanently delete a card comment by its action id. This cannot be undone; use card_comment_update to edit the text instead. | actionId |
| Use when auditing recent activity or comments for a card; use filter, limit, page, since, before, and fields to page large histories. | cardId, filter, fields, limit, since, before, page, member, memberFields, memberCreator, memberCreatorFields |
| Use when you need the current name, color, or board for a specific Trello label before editing it. | labelId |
| Use when creating a new reusable label on a Trello board before applying it to cards. | boardId, name, color |
| Use when renaming a Trello label or changing its color without changing any card assignments. | labelId, name, color |
| Use only when explicitly asked to permanently delete a board label, removing it from every card using it. Use card_label_remove to unassign it from just one card while preserving the label. | labelId |
| Use when applying an existing Trello label to a card by label id. | cardId, labelId |
| Use when removing an existing Trello label from a card by label id. | cardId, labelId |
| Use when you need one Trello custom field definition by id, including its type and any dropdown/list options Trello returns. | customFieldId |
| Use when listing the available options for a Trello dropdown/list custom field before setting a card list custom field value. | customFieldId |
| Search Trello and return grouped cards, boards, members, and workspaces visible to the token. Defaults to cards and boards; scope and limit results, and use cardsPage for card pagination. Use search_members for a focused member lookup. | query, modelTypes, boardIds, organizationIds, cardIds, cardFields, boardFields, memberFields, organizationFields, cardsLimit, boardsLimit, membersLimit, organizationsLimit, cardsPage, partial, includeCardBoard, includeCardList, includeCardMembers, includeBoardOrganization |
| Use when looking up Trello members by name or username, optionally scoped to a board or workspace; scoped searches require token access to that board or workspace. | query, limit, boardId, organizationId, onlyOrgMembers |
Regenerate the catalog with:
corepack pnpm docs:toolsArchitecture
Read How trello-mcp works for the complete request lifecycle, transport and credential boundaries, HTTP sessions, validation, rate limiting, retries, and result handling.
MCP client
-> stdio or Streamable HTTP transport
-> MCP server and tool registry
-> Trello tool handlers
-> Trello REST client
-> Trello REST APIsrc/index.tsstarts stdio or HTTP transport.src/server.tscreates the MCP server and registers tools.src/http-auth.tsenforces the optionalMCP_AUTH_TOKENbearer check on HTTP MCP requests.src/trello/auth.tsdefines the read-onlyauth_whoamiandauth_token_infocredential diagnostics.src/trello/client.tsowns Trello HTTP requests, auth query parameters, retries, and response parsing.src/trello/boards.tsdefines board discovery and board-level list, card, label, member, and custom field tools.src/trello/workspaces.tsdefines workspace discovery, metadata, board, and member tools.src/trello/members.tsdefines member profile, board, card, and workspace lookup tools.src/trello/lists.tsdefines list create, inspect, update, archive, and move tools.src/trello/cards.tsdefines card tools, including attachment, checklist, member, comment, action, and card custom field item helpers.src/trello/labels.tsdefines label CRUD and card label assignment tools.src/trello/custom-fields.tsdefines custom field definition and option lookup tools.src/trello/search.tsdefines search tools for cards, boards, members, and workspaces.src/trello/fields.tsdefines shared Trello field list validation helpers.src/trello/types.tscontains Trello response schemas.src/utils/*contains logging, error mapping, pagination, and tool registration helpers.
Security Notes
Trello credentials stay in your environment or MCP client config.
Logs redact
TRELLO_API_KEY,TRELLO_TOKEN,MCP_AUTH_TOKEN, authorization headers, and common key/token fields.Trello API requests use HTTPS.
Set
MCP_AUTH_TOKENfor a basic shared-secret check on HTTP MCP traffic. This does not replace HTTPS, reverse-proxy authentication, IP allowlists, or careful host binding.Local file attachment uploads are disabled unless
TRELLO_ATTACHMENT_UPLOAD_ROOTis configured; upload paths are restricted to that directory.Tests use mocks and injected fetchers instead of live Trello calls.
Do not publish
.envfiles or paste tokens into issues and PRs.
Security, Privacy, And Support
See SECURITY.md for supported versions, vulnerability reporting, credential-handling expectations, and threat-model notes.
See PRIVACY.md for self-hosted data handling, external services, and public issue privacy guidance.
See SUPPORT.md for support channels, boundaries, and useful bug report context.
Development
Install dependencies:
corepack enable
corepack prepare pnpm@10.34.1 --activate
corepack pnpm install --frozen-lockfileRebuild the project from scratch:
corepack pnpm build:cleanRun the local checks:
corepack pnpm verifyRun the coverage gate:
corepack pnpm verify:coverageRun the opt-in live Trello smoke test:
TRELLO_LIVE_SMOKE=1 \
TRELLO_LIVE_SMOKE_BOARD_ID=your-disposable-board-id-or-short-link \
TRELLO_API_KEY=your-api-key \
TRELLO_TOKEN=your-token \
corepack pnpm smoke:liveRun locally in watch mode:
TRELLO_API_KEY=your-key TRELLO_TOKEN=your-token corepack pnpm devBuild the Docker image locally:
corepack pnpm docker:buildCodex Cloud Environments
Codex Cloud tasks run a setup script before the agent starts, and can run an optional maintenance script when a cached container resumes on a task branch. Use these repository scripts in the Codex environment settings:
./scripts/codex/setup.sh./scripts/codex/maintenance.shThe setup script enables Corepack, activates the pinned pnpm version, installs dependencies with --frozen-lockfile when pnpm-lock.yaml exists, and runs pnpm typecheck. The maintenance script repeats dependency sync and typecheck for cached containers so branch changes do not use stale dependencies.
Troubleshooting
Start with the complete troubleshooting guide for a boundary-by-boundary diagnosis of startup, stdio, HTTP sessions, Docker, Trello API, rate-limit, and attachment failures.
The server starts but my MCP client does not show tools
Confirm the client is using the right transport.
For stdio, set
TRANSPORT=stdio.For HTTP, point the client to
/mcp, not/healthzor/readyz.Follow the client-specific restart or reload step in the Set up your MCP client guide.
Trello says the credentials are invalid
Run the
auth_whoamiandauth_token_infotools from your MCP client to confirm the authenticated member and the token's expiration and permissions.Confirm the token was generated from the same Power-Up/API key.
Regenerate the token if it was revoked.
Docker Compose cannot find .env
Copy
.env.exampleto.env.Fill in
TRELLO_API_KEYandTRELLO_TOKEN.Keep
.envuncommitted.
I hit Trello rate limits
The client uses a token-bucket limiter before each Trello request.
TRELLO_RATE_LIMIT_CAPACITYcontrols how many requests can run in one bucket window, andTRELLO_RATE_LIMIT_REFILL_INTERVAL_MScontrols how often the bucket refills.When Trello returns HTTP
429, the client retries with exponential backoff.TRELLO_RETRY_MAX_ATTEMPTScontrols the total request attempts,TRELLO_RETRY_BASE_DELAY_MScontrols the starting delay and jitter range, andTRELLO_RETRY_MAX_DELAY_MScaps each retry wait.At
LOG_LEVEL=debug, token-bucket waits are logged astrello rate limit wait. HTTP429retries are logged astrello request rate limited; retryingat warn level. These logs include safe metadata such as method, resource type, resource id, attempt, max attempts, status code, and wait duration; they do not include Trello credentials, full URLs, query strings, or raw request paths.First narrow the prompt or workflow: target one board or list, request only needed fields, use
limit,since,before, andpagewhere available, and avoid asking an LLM to inspect every card when a smaller search or filtered read will work.If large workflows still wait too often, tune cautiously. For a shared token or automation that should be gentler, lower the bucket:
TRELLO_RATE_LIMIT_CAPACITY=50
TRELLO_RATE_LIMIT_REFILL_INTERVAL_MS=10000For a deliberately large, user-triggered workflow, you can allow more retries without increasing the request bucket:
TRELLO_RETRY_MAX_ATTEMPTS=5
TRELLO_RETRY_BASE_DELAY_MS=250
TRELLO_RETRY_MAX_DELAY_MS=5000Avoid raising
TRELLO_RATE_LIMIT_CAPACITYaggressively unless you understand the Trello account and token's real workload. Higher capacity can make a broad LLM-driven workflow hit Trello's server-side limits faster.Wait a few minutes before retrying a workflow after repeated
429responses.
Contributing
PRs are welcome. Keep changes focused, add tests for behavior changes, and avoid
committing secrets or local build and test output. When canonical documentation
or public tool data changes, run corepack pnpm docs:tools and include the
legitimate checked-in generated documentation mirrors.
Before opening a PR, run:
corepack pnpm typecheck
corepack pnpm lint
corepack pnpm build
corepack pnpm testLicense
MIT License. See LICENSE.
Available Tools
77 toolsauth_token_infoA
Use as a read-only credential diagnostic to inspect the configured Trello token's owner, expiration, and permissions; it does not create, refresh, revoke, or manage tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello configured token fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | identifier,idMember,dateCreated,dateExpires,permissions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full safety burden and does so: it declares read-only behavior and explicitly denies the four mutation capabilities an agent might otherwise assume (create, refresh, revoke, manage). It does not cover failure behavior for an already-expired or insufficiently-scoped token, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the usage mode, then the payload, then the negative boundaries. No filler and nothing an agent must read twice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter, no-output-schema tool, the description supplies enough: what is inspected, what is returned conceptually, and that nothing is mutated. Only the sibling overlap with auth_whoami keeps it from being fully self-sufficient for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional 'fields' parameter, so the baseline is 3. The description gestures at the field set (owner, expiration, permissions) but adds no detail on syntax, defaults, or the 'all' keyword beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('inspect') and a precise resource ('the configured Trello token'), and enumerates the inspected attributes (owner, expiration, permissions). It is clear on its own, but it never distinguishes itself from the sibling auth_whoami, which an agent would reasonably see as an overlapping identity tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use as a read-only credential diagnostic' gives an explicit usage context, and the closing clause ('does not create, refresh, revoke, or manage tokens') sharply bounds when not to reach for it. It stops short of naming an alternative, so the auth_whoami vs auth_token_info choice is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_whoamiA
Use as a read-only credential diagnostic to confirm which Trello member the configured API key and token authenticate as.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello authenticated member fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose the key traits: it is read-only, it uses the server-configured API key and token rather than per-call credentials, and its output is a member identity. It stops short of saying what happens when credentials are invalid (error vs empty), which would round this out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loaded with the usage cue and ending on the precise object of the call. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read tool with no output schema, the description covers what it does, its read-only nature, and the fact that it reads server-configured credentials. Only the failure behavior and the distinction from auth_token_info are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional parameter and schema description coverage is 100%, so the schema already explains the comma-separated fields list and the 'all' option. The description adds nothing about it, which is acceptable at baseline but leaves no surplus value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('confirm') and a concrete resource ('which Trello member the configured API key and token authenticate as'), which is far more specific than a restatement of the name. It does not, however, distinguish itself from the sibling auth_token_info, leaving the agent to infer which auth diagnostic to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use as a read-only credential diagnostic' implies the usage context (verifying that the configured key/token are valid and belong to which member). There are no explicit when-not conditions and no named alternative such as auth_token_info, so the agent must infer the routing between the two auth tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_actionsA
Use when auditing recent activity or comments across a board; use filter, limit, page, since, before, and fields to keep large histories bounded.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Zero-based result page for Trello action collections. | |
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| fields | No | Comma-separated Trello action fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | id,type,date,data,idMemberCreator |
| filter | No | Trello action filter such as all or commentCard. | all |
| member | No | Whether to include member objects on actions. | |
| boardId | Yes | Trello board id to inspect. | |
| memberFields | No | Comma-separated Trello member fields when member is true. | username,fullName,initials,avatarUrl |
| memberCreator | No | Whether to include the memberCreator object on actions. | |
| memberCreatorFields | No | Comma-separated Trello memberCreator fields when memberCreator is true. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses that histories should be bounded with filters/limits/paging, but does not explicitly state read-only behavior, permissions, rate limits, or return semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the use case and key invocation guidance front-loaded. It contains no filler and is appropriately sized for a retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema richly documents all 11 parameters, which compensates for the short description. However, with no annotations and no output schema, the description does not fully explain expected return shape or safety profile, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter documentation is already strong. The description groups filter, limit, page, since, before, and fields as history-bounding controls, but adds little detail beyond the schema and omits the member-related toggles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource scope as board-level activity/comments and implies retrieval for auditing. It is clear enough to distinguish board-wide history from card- or list-level actions, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case: auditing recent board activity or comments. It also directs the caller to use filtering and pagination controls for large histories, but does not state when to use sibling tools like card_actions instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_cardsB
Use when you need cards across all lists on a known Trello board for personal planning, review, or summarization.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| fields | No | Comma-separated Trello card fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,idBoard,idList,idMembers,idLabels,url,shortUrl,due,dueComplete,pos,dateLastActivity |
| filter | No | Which cards to include from the board. | open |
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only gives a use case and does not explain read-only behavior, pagination, filtering, field selection, or what happens with the limit/since/before parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant text. It is appropriately sized, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter retrieval tool with no annotations and no output schema, the description is minimal but the schema is rich. It identifies the board-wide card scope but does not explain return behavior or pagination, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters thoroughly. The description adds only the board-wide scope implied by 'across all lists' and does not supplement parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves cards across all lists on a known Trello board, which is a specific resource and scope. It does not explicitly distinguish itself from siblings such as list_cards or member_cards, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when you need cards across all lists on a known Trello board' gives clear usage context. However, it does not mention when to prefer alternatives like list_cards, member_cards, or search, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_createA
Use when creating a new Trello board. Creates boards as private by default, can place them in a workspace with workspaceId, and only supports explicit private, workspace, or public visibility.
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | Optional board description. | |
| name | Yes | Name for the new Trello board. | |
| workspaceId | No | Optional Trello workspace/organization id where the board should be created. | |
| permissionLevel | No | Board visibility to request. Defaults to private; use org only with a workspace id and public only when intentional. | private |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose meaningful behavior: boards default to private, workspaceId places the board in an org, and visibility is restricted to enumerated values. It says nothing about permission requirements, whether the creator becomes an admin, or rate limits for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that opens with the usage trigger and then layers the behavioral constraints. It is slightly run-on with three comma-joined clauses, but there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should carry more of the operational burden. It covers visibility and workspace placement adequately but leaves auth requirements, what the created board response contains, and failure modes unaddressed for a 4-parameter mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the private default and the workspaceId placement, but that information is already present in the schema's own parameter descriptions; it adds no new syntax, format, or edge-case detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('creating a new Trello board') and immediately scopes it by describing the default visibility and workspace placement. An agent can distinguish it from the read-oriented board siblings (board_get, list_boards, workspace_boards) without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when creating a new Trello board' trigger is explicit, and the clause about only supporting explicit private/workspace/public visibility sets a constraint on invocation. However, it names no alternative path (e.g., creating a board from a template or moving an existing board) and gives no prerequisites such as required auth scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_custom_fieldsB
Use when inspecting custom field definitions on a known Trello board, including dropdown/list options when Trello returns them.
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds one genuine behavioral note — that dropdown/list options are included only 'when Trello returns them', signalling conditional/incomplete payloads — but says nothing about read-only semantics, auth requirements, rate limits, or the shape of returned definitions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the 'Use when' trigger and no redundant restatement of the tool name. It is efficient, though the qualifier 'when Trello returns them' is slightly ambiguous about whether options are opt-in.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description does convey the gist of the return (definitions plus conditional options). It still leaves the agent guessing about what a definition contains and whether assigned field values are included, which matters given no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single boardId parameter, so the schema already documents its meaning. The description's phrase 'known Trello board' reinforces that boardId must reference an existing board but adds no format, ID source, or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('inspecting') and resource ('custom field definitions on a known Trello board'), so the agent knows this lists board-level custom field definitions rather than field values. It does not name or differentiate against close siblings such as custom_field_get, board_field_get, or custom_field_options, which is exactly where confusion is likely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when inspecting custom field definitions on a known Trello board' clause establishes a clear trigger condition. However, it offers no when-not guidance and does not route the agent away from custom_field_options, even though it explicitly mentions returning dropdown/list options — an overlap that invites misselection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_field_getB
Use when you need one specific board field, such as prefs, labelNames, subscribed, name, description, or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | Single board field to read. Use prefs for common board preferences and labelNames for board label names. | |
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not explicitly state that this is a read-only operation, mention permissions or side effects, or describe what the tool returns for the requested field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no unnecessary exposition. Its examples are useful, though some overlap with the enum and include labels that do not exactly match schema enum values such as 'desc' and 'url'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage, the description is adequate for selection and invocation. It is less complete about the return value, since there is no output schema and the description does not explain what reading a field returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters and the field enum. The description adds example field names, but this largely duplicates the enum and does not add syntax or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific resource and scope: retrieving one board field. It distinguishes this from broader board retrieval by emphasizing a single field, though it does not explicitly name the sibling tool board_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when you need one specific board field' gives implied usage guidance. However, it does not explicitly name alternatives such as board_get or explain when to use this tool versus retrieving the full board.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_getA
Use when you need board details, common board preferences, or label names for a known Trello board before listing or summarizing it.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello board fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,url,shortUrl,idOrganization,dateLastActivity,prefs,labelNames,subscribed |
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral load. It communicates that this is a read of a known board, but doesn't state safety/read-only nature explicitly, permissions required, or response shape, leaving gaps that annotations would normally cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause (details, prefs, label names, pre-summary context) contributes. Nothing wasted and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two well-documented params and no output schema, the definition is largely sufficient, but the absence of annotations means the description could do more to characterize the read behavior and what the returned 'preferences' and 'label names' represent. It's minimum-viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both boardId and fields are fully documented in the schema, including the default field list. The description adds no syntax or format detail beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names both the verb (get) and the concrete resources returned — board details, preferences, and label names — for a known board. It's clear what the tool fetches, though it doesn't explicitly differentiate itself from close siblings like board_field_get or board_labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the condition to use it ('before listing or summarizing' a known board), giving a clear operational context. It stops short of naming alternatives or exclusions (e.g., when to prefer board_field_get for a single field), so it's clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_labelsB
Use when discovering labels available on a board before creating or updating cards with labels.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| fields | No | Comma-separated Trello label fields to request; use all for detailed follow-up reads. | name,color,uses |
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden yet says nothing about read-only semantics, the 50-item default/cap, or the fact that 'fields' controls response shape. Only the implicit 'discovering' hints at a safe read; nothing about pagination or rate limits is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the usage trigger front-loaded and no filler. It is efficient but slightly under-specified rather than over-long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read tool with no annotations and no output schema, the description should mention the returned shape at least in outline (names, colors, uses) and that results are capped. As written, an agent can call it but cannot predict the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% - each of boardId, limit and fields is documented in-schema, so the baseline is 3. The description adds no extra meaning about parameter behavior or interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys a clear verb (discovering) and resource (labels available on a board), so an agent knows this returns a board's label set. It does not differentiate from nearby siblings such as label_get or card_labels, which could also surface label data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when ... before creating or updating cards with labels' gives a concrete trigger context. It stops short of naming an alternative (e.g. label_get for a single label) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_listsA
Use when you need the lists on a known Trello board so you can find the right list id before listing or creating cards.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello list fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,closed,idBoard,pos |
| filter | No | Which lists to include from the board. | open |
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral context. It implies a read-only retrieval and mentions the 'known board' precondition, but it omits permissions, error behavior, and other operational details, leaving it at minimum viable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no filler. The use case and downstream purpose are both expressed without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool with full schema coverage, the description gives enough context to call it correctly and tells the agent what to extract (the list id). It does not explain return fields, but the narrow purpose makes that a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents boardId, fields, and filter. The description only reinforces the board scope and adds no parameter syntax or meaning beyond the schema, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as lists on a known Trello board and ties it to a concrete outcome: finding the right list id. It distinguishes the tool from card-level siblings through the board/list scope, though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says exactly when to use it ('when you need the lists on a known Trello board') and what downstream actions it supports ('before listing or creating cards'). It stops short of explicit when-not guidance or naming sibling alternatives like list_cards or card_create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_membersA
Use when you need the members who can access a known Trello board before assigning cards or reviewing collaboration; requires token visibility of private boards.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello member fields to request; use all for detailed follow-up reads. | username,fullName,initials,avatarUrl |
| boardId | Yes | Trello board id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose an important access prerequisite: 'requires token visibility of private boards.' However, it does not state that this is a read-only operation, describe the return shape, or mention pagination, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that packs the use case and permission requirement without wasted wording. It is appropriately sized for a simple two-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with complete schema descriptions and no output schema, the description covers purpose, usage context, and an access precondition. It is nearly complete, though it could mention that the result is a member list and whether pagination applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both boardId and fields are already documented in the input schema. The description adds only the notion of a 'known Trello board' and does not explain field selection or any semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as 'the members who can access a known Trello board,' giving a specific retrieval target. It does not explicitly distinguish this from close siblings such as board_memberships or workspace_members, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames the use case as 'before assigning cards or reviewing collaboration,' which tells the agent when this tool is appropriate. It does not name alternatives or state when not to use it, so it lacks full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board_membershipsA
Use when you need board membership records, member roles, or permission context for a known Trello board; use the admins filter when checking board-admin-only operations.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Which board memberships to include. | all |
| member | No | Whether to include basic member profile details. | |
| boardId | Yes | Trello board id to inspect. | |
| memberFields | No | Comma-separated Trello member fields when member is true. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a retrieval operation but does not state read-only behavior, authorization requirements, response shape, pagination, or other operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the primary usage condition front-loaded and no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter retrieval tool with full schema coverage, the description covers purpose and filter usage adequately. However, with no annotations and no output schema, it leaves behavioral gaps around read-only status, auth, and return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds useful context for the admins filter, but says nothing additional about member, memberFields, or boardId beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies board membership records, member roles, and permission context for a known Trello board. It does not explicitly distinguish this tool from the sibling board_members tool, so sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: use it when you need board membership records or permission context, and use the admins filter for board-admin-only operations. It does not name an alternative tool or state when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_actionsA
Use when auditing recent activity or comments for a card; use filter, limit, page, since, before, and fields to page large histories.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Zero-based result page for Trello action collections. | |
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello action fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | id,type,date,data,idMemberCreator |
| filter | No | Trello action filter such as all or commentCard. | all |
| member | No | Whether to include member objects on actions. | |
| memberFields | No | Comma-separated Trello member fields when member is true. | username,fullName,initials,avatarUrl |
| memberCreator | No | Whether to include the memberCreator object on actions. | |
| memberCreatorFields | No | Comma-separated Trello memberCreator fields when memberCreator is true. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Auditing' implies a read-oriented operation, and it discloses that filter, limit, page, since, before, and fields support paging large histories, but it does not explicitly confirm read-only behavior, permissions, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the primary use case front-loaded and no wasted text. The paging guidance is also placed where it is immediately useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 11 parameters and no output schema, but the description only covers the auditing use case and basic paging. The schema fills in parameter details, yet the description does not explain the return payload or the member/memberCreator expansion options, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the parameters in detail. The description names several paging/filtering parameters but adds little semantic depth beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly scopes the tool to card-level activity/comment auditing, which distinguishes it from board_actions, list_actions, and workspace_actions. It does not explicitly state a verb like 'list' or 'retrieve', but the intended operation is still easy to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case: auditing recent activity or comments for a card. It also points to paging-related parameters for large histories, but it does not mention when to choose card_actions over sibling activity tools such as board_actions or list_actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_archiveA
Use when the user wants to archive or unarchive a card while keeping it recoverable; do not use for permanent deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| closed | No | True archives the card; false restores it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses recoverability and non-permanent deletion, but it does not explain permissions, what archiving changes on the board, or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with the usage condition first and the exclusion second. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter card operation with a fully documented schema and no output schema, the description supplies the key selection and safety context. The remaining gap is minor: it does not describe side effects such as how the card appears after archiving.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema fully documents cardId formats and the closed=true/false meaning. The description only implies archive versus unarchive and adds no parameter detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: archive or unarchive a card. It also explicitly distinguishes this from permanent deletion, which lets an agent separate it from sibling tools like card_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: use when the user wants to archive or unarchive a card while keeping it recoverable. It also gives an explicit exclusion: do not use for permanent deletion, which clearly routes the agent toward deletion elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_attachment_add_urlA
Use when attaching an existing public URL to a card; this does not upload local files.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to attach to the card. | |
| name | No | Optional display name for the attachment. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| setCover | No | Whether Trello should make this URL attachment the card cover. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only discloses that local files are not uploaded. It says nothing about permissions/auth requirements, mutation side effects, what happens when setCover is true, or what is returned. The one constraint given is useful but insufficient for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the usage condition and ending with the key exclusion. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully covers the parameters and there is no output schema, but the tool is a mutation with zero annotations. The description could have mentioned permission needs or attachment side effects; as written it is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds no parameter-level meaning beyond the schema, which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('attaching an existing public URL to a card') and explicitly distinguishes the tool from the sibling upload tool by noting it 'does not upload local files.' An agent can select this tool with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use the tool ('attaching an existing public URL') and gives an exclusion ('does not upload local files'). It stops short of naming the sibling alternative (card_attachment_upload) or describing prerequisites, so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_attachment_deleteA
Permanently delete an attachment from a card, including Trello's stored file for uploads. This cannot be undone; use card_cover_set to clear a cover without deleting its attachment.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| attachmentId | Yes | Attachment id to remove from the card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well: it states the action is permanent, cannot be undone, and deletes Trello's stored file for uploads. Those are the critical side effects an agent needs before invoking a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded: the destructive action is stated first, followed by the safety-relevant alternative. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter delete tool with full schema coverage and no output schema, the description supplies the essential context: permanence, unrecoverability, file deletion, and the safer sibling operation for cover removal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both required parameters are documented in the schema. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: permanently delete an attachment from a card. It further clarifies that uploads include Trello's stored file, which distinguishes this from merely unlinking or clearing a cover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear alternative for a related operation: use card_cover_set to clear a cover without deleting its attachment. It does not spell out broader when-not-to-use conditions, but the key sibling distinction is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_attachment_getA
Use when inspecting one existing card attachment by attachment id, including upload metadata when Trello returns it.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello attachment fields to request; use all for detailed follow-up reads. | all |
| attachmentId | Yes | Attachment id to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden: it does signal this is a read ('inspecting') and honestly notes that upload metadata is only present 'when Trello returns it,' which is useful conditional-return context. It says nothing about permissions, behavior for a missing/invalid attachment id, or whether fields affect the payload size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the use-condition comes first and the conditional-return caveat follows. It could be marginally denser with one clause about return shape, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only place to learn what comes back, and it only gestures at 'upload metadata when Trello returns it.' For a 3-parameter read tool it is adequate, but the caller still doesn't know the response shape or whether fields='all' materially changes cost.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cardId, attachmentId, and the fields parameter are already documented in the schema. The description reinforces the attachment-id lookup and hints that responses can include upload metadata, but adds no syntax or format guidance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — inspecting a single existing card attachment by id — and scopes it to one item, which is distinguishable from the sibling card_attachments list tool. It stops short of naming that sibling as the fan-out alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when inspecting one existing card attachment by attachment id' clause gives a clear trigger condition for retrieval of a single attachment. It offers no explicit exclusions (e.g., when to prefer card_attachments for listing) but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_attachmentsA
Use when listing files or links attached to a card, optionally narrowed by Trello attachment fields or filter.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello attachment fields to request; use all for detailed follow-up reads. | all |
| filter | No | Optional Trello attachment filter, such as cover. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral load. It correctly implies a read-only listing and discloses that results can be narrowed, but says nothing about pagination, result size, permission requirements, or what happens when a card has no attachments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the trigger condition first and the optional modifiers second. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only listing tool with full schema coverage, the description gives an agent everything needed to select and invoke it correctly. The only gap is the absence of any hint about the return shape, which matters slightly since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in structured form. The description's phrase "narrowed by Trello attachment fields or filter" merely restates the fields and filter params without adding format or default guidance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (listing) and resource (files or links attached to a card), which clearly separates it from the singular card_attachment_get sibling. It is clear about what is returned without naming that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when listing files or links attached to a card" is an explicit trigger condition, and the optional narrowing clause tells the agent how to scope the call. There are no exclusions or named alternatives (e.g., card_attachment_get for a single attachment), which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_attachment_uploadA
Read a server-local file inside TRELLO_ATTACHMENT_UPLOAD_ROOT and transmit its contents to Trello as a new card attachment. Disabled unless that root is configured; repeated uploads can create duplicates. Use card_attachment_add_url for public links.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional Trello display name for the uploaded attachment. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| filePath | Yes | Server-side file path to upload. Relative paths resolve inside TRELLO_ATTACHMENT_UPLOAD_ROOT; absolute paths must also be inside that root. | |
| mimeType | No | Optional MIME type to send for the uploaded file. | |
| setCover | No | Whether Trello should make this uploaded attachment the cover. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden well: it discloses the server-local root restriction, the disabled state when the root is missing, and the duplicate-upload side effect. It does not cover authentication or permission requirements, but the key operational caveats for this upload action are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then constraints and the alternative. There is no wasted language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter upload tool with no annotations or output schema, the description covers the critical selection and invocation context: root restriction, disabled state, duplicate risk, and the URL alternative. It does not describe the response or permission requirements, but the main behavioral constraints an agent needs are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters, including the root-path behavior for filePath. The description reinforces that files must be server-local and inside TRELLO_ATTACHMENT_UPLOAD_ROOT, but adds little parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: reading a server-local file and transmitting it to Trello as a new card attachment. It also distinguishes itself from the sibling URL-based attachment tool, so an agent can identify the correct tool without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the alternative for public links: use card_attachment_add_url instead. It also provides the prerequisite that the tool is disabled unless TRELLO_ATTACHMENT_UPLOAD_ROOT is configured and warns that repeated uploads can create duplicates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_boardB
Use when you need the board relationship for a known Trello card before moving, labeling, or summarizing its context.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello related resource fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It never states that this is a read-only lookup, what shape the 'board relationship' comes back in, or whether the optional fields parameter changes the payload — all left to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence, front-loaded with the usage condition and free of filler. It is efficient, though the terseness is part of why purpose and return value stay implicit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read lookup with no output schema and no annotations, the description should at minimum say what comes back. It conveys the usage moment but leaves the return value and the effect of 'fields' unexplained, so it is only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both cardId and fields fully documented in the schema itself, so the baseline is 3. The description adds no parameter meaning beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('board relationship for a known Trello card'), which is more specific than the bare name 'card_board', but the verb is implicit ('when you need') rather than stating plainly that it returns the board a card belongs to. With sibling tools like card_get, card_list, and board_get available, it does not sharply delineate what this returns versus those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete triggering contexts — before moving, labeling, or summarizing a card's context — which tells an agent when this lookup is warranted. It stops short of naming an alternative or when-not-to-use condition, so it lands just under the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_createB
Use when adding a new checklist to an existing card, optionally copied from another checklist.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Checklist name. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| sourceChecklistId | No | Existing checklist id to copy items from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action but omits critical behavioral details: required permissions, what happens if the card is not found, whether copying includes item states, and what is returned (no output schema). Only the minimal 'this is an add operation' is communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single front-loaded sentence with zero wasted words. It is efficient and easy to parse, though its extreme terseness borders on under-specification for a mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It does not cover permissions, error conditions, side effects, or what the response contains, leaving significant ambiguity for an agent that needs to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter definitions already fully document cardId, name, and sourceChecklistId. The description adds only that the copy is 'optional', which is a slight value-add but largely redundant with the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('adding a new checklist to an existing card') and notes the optional copy source, making the purpose clear. It does not explicitly differentiate from sibling tools like card_checklists or card_checklist_update, but the action is distinct enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when adding a new checklist to an existing card' gives explicit guidance on when to invoke the tool. However, it provides no exclusions or alternatives (e.g., when to use card_checklist_update instead of creating), which prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_deleteA
Permanently delete a checklist and all its items from a card. This cannot be undone; use card_checklist_item_delete to remove only one item.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| checklistId | Yes | Trello checklist id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clearly discloses the most important behavioral traits: the deletion is permanent, cannot be undone, and removes all checklist items. It does not mention permission requirements or response behavior, but the key destructive semantics are explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no wasted text. The destructive warning and sibling alternative are front-loaded and directly actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive two-parameter tool with no output schema, the description covers the essential risk and the main sibling distinction. It could be slightly richer about permissions or return behavior, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required parameters are already documented in the input schema. The description does not add syntax, format, or usage detail beyond what the schema provides, which matches the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: permanently delete a checklist and all its items from a card. It clearly distinguishes this from the sibling card_checklist_item_delete, which removes only one item, so an agent can select the correct tool without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the condition that should route the agent elsewhere: use card_checklist_item_delete to remove only one item. This is a direct when-to-use-this-vs-alternative guideline for a destructive operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_item_createB
Use when adding a new item to an existing Trello checklist on a card.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Optional ISO-8601 due date for the checklist item. | |
| pos | No | Position of the checklist item within its checklist. | |
| name | Yes | Checklist item text. | |
| checked | No | Whether the checklist item should start checked. | |
| memberId | No | Optional Trello member id assigned to the checklist item. | |
| checklistId | Yes | Trello checklist id. | |
| dueReminder | No | Optional reminder offset in minutes for the item due date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, and it discloses almost nothing: no mention of required write permissions, default position when 'pos' is omitted, whether assigning a member or due date triggers notifications, or that creation is non-destructive/additive. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is efficient. However, for a 7-parameter mutation tool it reads as under-specified rather than genuinely concise — nothing is wasted, but too little is said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no annotations, and no output schema, an agent needs more than one sentence: permissions, default ordering, and what the created item/response looks like are all unaddressed. The definition is not sufficient on its own for correct invocation beyond required IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters including due, pos, checked, and memberId are already documented in structured fields. The description adds no additional semantics such as position defaults or due-date expectations, so it only meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource combination ('adding a new item to an existing Trello checklist on a card'), which is unambiguous and maps cleanly to the tool name. It does not explicitly contrast with close siblings such as card_checklist_item_update or card_checklist_items, but the create-vs-update distinction is inferable from the wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when adding a new item' is a stated trigger, but it essentially restates the purpose rather than giving real routing guidance. No mention of when to prefer card_checklist_item_update, how to find a checklistId via card_checklists, or any prerequisite, so alternatives are left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_item_deleteA
Permanently delete one checklist item. This cannot be undone; use card_checklist_item_set_checked to mark completion while keeping the item.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| checkItemId | Yes | Trello checklist item id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that deletion is permanent and cannot be undone, but it does not mention permission requirements, side effects on the parent checklist, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the destructive nature front-loaded and the alternative immediately following. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive tool with no output schema, the description covers the essential risk and routing information. It could still do more on permissions or side effects, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both cardId and checkItemId are already documented. The description adds no parameter-specific syntax or constraints beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Permanently delete one checklist item." It also distinguishes the operation from the sibling alternative card_checklist_item_set_checked, so an agent can tell what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear alternative for the common non-destructive case: use card_checklist_item_set_checked to mark completion while keeping the item. It does not spell out broader when-not-to-use conditions, but the destructive intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_item_moveB
Use when moving a Trello checklist item to another checklist on the same card or to a different position.
| Name | Required | Description | Default |
|---|---|---|---|
| pos | No | Position of the checklist item within its checklist. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| checkItemId | Yes | Trello checklist item id. | |
| checklistId | Yes | Destination checklist id on the card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It only discloses the same-card constraint; it says nothing about required permissions, whether the item is removed from the source checklist, what happens on failure, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The scope constraint is stated immediately and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated mutation tool with four parameters and no output schema, the description is too thin. It omits side effects, permissions, error behavior, and return semantics that an agent would need to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (including pos, cardId, checkItemId, checklistId) are already documented in the schema. The description adds no syntax or constraint details beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (moving) and resource (Trello checklist item), plus the two supported destinations: another checklist on the same card or a different position. It is clear enough to distinguish from update/delete siblings, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when moving...' gives a clear triggering condition, but there is no guidance on when not to use it or which sibling to choose for related operations such as card_checklist_item_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_itemsB
Use when listing the items in one Trello checklist, including complete and incomplete items by default.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello checklist item fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | all |
| filter | No | Which checklist items to include. | all |
| checklistId | Yes | Trello checklist id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Listing' implies a safe read and the default-scope note is useful, but there is no statement about pagination, auth needs, or return shape; the default note also largely restates the schema's filter default of 'all'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the trigger condition first and no waste. It is appropriately sized, though it could have used its brevity to add one differentiating clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter list tool with full schema coverage, the description covers purpose and default scope. With no output schema and no note on return fields or pagination, an agent still lacks some information about what it gets back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (checklistId, filter, fields) are already documented, including the filter enum. The description adds no syntax or format detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('listing') and resource ('items in one Trello checklist'), which is enough to separate it from siblings like card_checklists (lists checklists, not items) and card_checklist_item_create/update. It does not explicitly name those siblings, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when listing...' gives implied context, and it clarifies the default scope (complete and incomplete). However, it names no alternatives and gives no when-not guidance, e.g., how this differs from card_checklists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_item_set_checkedA
Use when checking or unchecking a Trello card checklist item without changing other item fields.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| checked | Yes | True checks the item; false unchecks it. | |
| checkItemId | Yes | Trello checklist item id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does disclose one behavioral trait — that only the checked field is touched and other item fields are left intact — but says nothing about idempotency, required permissions, or what is returned after the mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Nothing is wasted, though the sentence is doing very little work beyond the title, which leaves little for the reader who skips the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description should at least signal the mutation's scope and any preconditions. The 'only changes checked' scope is covered, but side effects, failure modes, and return behavior are all absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: cardId (id/short link/URL), checkItemId, and the boolean checked semantics are all documented in the schema. The description adds no parameter detail beyond what is already there, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific action (checking/unchecking a checklist item) and the resource (Trello card checklist item), and implicitly distinguishes itself from card_checklist_item_update by scoping the mutation to the checked field only. It is not tautological, though it never states the tool's effect in a standalone verb phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit 'Use when...' trigger covering both directions (check and uncheck). The clause 'without changing other item fields' signals the boundary against card_checklist_item_update, but that sibling is never named, so an agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_item_updateB
Use when editing a Trello card checklist item text, due date, member assignment, completion state, checklist, or position.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | New ISO-8601 item due date, or null to clear it. | |
| pos | No | Position of the checklist item within its checklist. | |
| name | No | Updated checklist item text. | |
| state | No | Set to complete to check the item or incomplete to uncheck it. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| memberId | No | Trello member id assigned to the item, or null to unassign. | |
| checkItemId | Yes | Trello checklist item id. | |
| checklistId | No | Destination checklist id; include to move the item to another checklist on the card. | |
| dueReminder | No | New reminder offset in minutes, or null to clear it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, but it only implies a mutation via 'editing'. It does not disclose permission needs, partial-update semantics, side effects of moving via checklistId, clearing behavior via null, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. Every listed field earns its place by signaling the tool's editing scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter mutation tool with no annotations and no output schema, the description is too sparse. It lists editable fields but leaves out behavioral context, side effects, and guidance on when to prefer the dedicated sibling tools for checking, moving, or deleting checklist items.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters in detail. The description names most editable fields but adds no syntax, caveats, or meaning beyond what the schema provides, and omits dueReminder.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('editing') and resource ('Trello card checklist item') and enumerates the fields that can change. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools like card_checklist_item_set_checked or card_checklist_item_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when editing...' provides a clear usage context for the tool. However, it gives no when-not guidance and does not name the more specific sibling alternatives for completion state or position changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklistsA
Use when viewing all checklists and checklist items currently on a card.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Viewing' implies a read-only operation, but the description does not confirm side-effect safety, mention permissions, describe pagination, or explain return structure for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. It communicates the relevant usage condition and scope directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with full schema coverage, the description is mostly complete: it explains that the result includes all checklists and checklist items on a card. It could be stronger by noting pagination or return behavior, but the core context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and schema description coverage is 100%, with the schema explaining that cardId accepts a Trello card id, short link, or URL. The description adds no parameter-specific meaning beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-plus-resource: viewing all checklists and checklist items on a card. It distinguishes the tool from item-specific siblings like card_checklist_items by emphasizing that it returns all checklists and their items on a card, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when viewing all checklists and checklist items currently on a card' gives a clear context for selecting this tool. It does not state when not to use it or name any specific alternative tool, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_checklist_updateA
Use when renaming a Trello card checklist or changing the checklist's position on its card. Provide at least one of name or pos.
| Name | Required | Description | Default |
|---|---|---|---|
| pos | No | New position for the checklist on its card. | |
| name | No | Updated checklist name. | |
| checklistId | Yes | Trello checklist id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It never says what a mutation does to existing checklist items, whether the operation is idempotent, what permissions are needed, or what comes back on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the trigger condition front-loaded and the validation rule trailing. Every clause earns its place with no restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter mutation with full schema coverage and no output schema, the purpose and the at-least-one rule cover the essentials. What is missing is any statement of effect or outcome, which matters here because no annotations describe the write semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a real cross-parameter rule the schema does not encode: only checklistId is required, yet at least one of name or pos must be supplied. That is genuine value beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb set (renaming, changing position) against a specific resource (Trello card checklist), which cleanly separates it from siblings like card_checklist_create, card_checklist_delete and card_checklist_item_update without opening a schema. No sibling is named explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when renaming ... or changing the checklist's position" gives an explicit triggering condition, and the closing clause states the invocation precondition (at least one of name or pos). It stops short of naming an alternative tool or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_comment_addA
Add a new comment to a Trello card and return its comment action. Repeating the call creates another comment; use card_comment_update to edit an existing comment.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Comment text to add to the card. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and usefully discloses that the operation is non-idempotent and returns the resulting comment action. It does not mention permissions, notification side effects, or rate limits, so it stops short of full behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences with no filler. The primary action is front-loaded, followed by the key behavioral caveat and sibling routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with complete schema coverage and no output schema, the description covers action, return value, non-idempotency, and the relevant alternative tool. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required parameters are already documented in the schema. The description does not add format details or constraints beyond what the schema provides, making the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: adding a comment to a Trello card. It also names the sibling tool card_comment_update for the distinct editing case, so an agent can distinguish the two operations without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use card_comment_update when editing an existing comment. It also clarifies the important usage behavior that repeating this call creates additional comments rather than updating one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_comment_deleteA
Permanently delete a card comment by its action id. This cannot be undone; use card_comment_update to edit the text instead.
| Name | Required | Description | Default |
|---|---|---|---|
| actionId | Yes | Trello comment action id to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the most important trait: the deletion is permanent and irreversible. It does not cover permissions requirements, behavior if the actionId doesn't exist, or the response shape, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the destructive nature front-loaded and the alternative immediately after. Every clause earns its place with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with no output schema, the essential information (irreversibility, correct identifier, sibling alternative) is present. Minor omissions like permission needs or no-op/error behavior keep it at 4 rather than 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter's own description already says 'Trello comment action id to delete.' The description reinforces that the id refers to a comment action but adds no format or sourcing detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Permanently delete a card comment') and disambiguates the target ('by its action id'). This clearly separates it from siblings like card_comment_update and card_comment_add.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative ('use card_comment_update to edit the text instead'), giving the agent a clear when-not-to-use path. The destructive vs. edit distinction is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_comment_updateA
Use when editing the text of an existing Trello card comment by its comment action id.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Updated comment text. | |
| actionId | Yes | Trello comment action id to update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does very little: it never says whether only the text changes while other comment fields are preserved, whether edit history or timestamps are affected, what permissions are required, or what happens with an invalid or non-owned action id. Only the 'text-only edit' scope hint adds any behavioral value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the use condition and the identifier requirement come first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with no nested objects and no output schema, the description plus a fully annotated schema is enough to select and invoke the tool correctly. The remaining gap is behavioral (permissions, preservation of other comment data), which annotations would normally cover but here are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in-schema ('Updated comment text', 'Trello comment action id to update'), so the baseline of 3 applies. The description restates the same two concepts without adding format, length, or sourcing guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (editing the text) on a specific resource (an existing Trello card comment) identified by a comment action id. That clearly separates it from card_comment_add and card_comment_delete in the sibling list, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening 'Use when editing the text of an existing...' gives a clear triggering condition and implicitly excludes creation and deletion. It stops short of naming alternatives (card_comment_add / card_comment_delete) or noting prerequisites like needing the action id from card_actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_cover_setA
Use when setting a card cover to an existing attachment id, changing cover display size, or clearing the current attachment cover.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Trello cover display size: normal for the regular half cover, or full for an integrated full cover. Requires attachmentId. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| brightness | No | Text contrast for full covers: light or dark. Requires attachmentId. | |
| attachmentId | Yes | Attachment id to use as the card cover, or null to clear the attachment cover. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It discloses the destructive-adjacent case (clearing the cover) and implies the attachment must already exist, but says nothing about the previous cover being replaced, auth/permission requirements, or idempotency of repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the conditional trigger is placed first and each clause corresponds to a real mode of the tool. Nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no annotations and no output schema, the description covers purpose and triggers but omits what changed state looks like afterwards, whether prior cover settings (size/brightness) survive a re-set, and error conditions such as an attachment id that isn't on the card.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (cardId, attachmentId, size, brightness) is documented in the schema, including enum meanings and the null-to-clear convention. The description adds only the framing that the attachmentId must reference an existing attachment; baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (setting a card cover) and enumerates the three operations: attaching an existing attachment id as cover, changing display size, and clearing the cover. An agent can identify the action without opening the schema. It stops short of naming the sibling attachment tools that must run first (card_attachment_upload / card_attachment_add_url), so it is clear but not sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The leading 'Use when...' clause lists three concrete trigger conditions that map cleanly to the tool's three modes, which is real selection guidance. It gives no exclusions or explicit statement of prerequisites (e.g. that the attachment must already exist on the card), leaving the *why-not* side implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_createA
Use when the user asks to create a new Trello card in a known list; accepts title, description, due date, members, and labels.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Optional ISO-8601 due date. | |
| pos | No | Position in the destination list. | bottom |
| desc | No | Optional card description. | |
| name | Yes | Human-readable card title. | |
| listId | Yes | Destination list id where the new card should be created. | |
| labelIds | No | Optional label ids to apply when creating the card. | |
| memberIds | No | Optional member ids to assign when creating the card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says the tool creates a card and lists some accepted fields, but it does not describe permissions, side effects, idempotency, required list existence, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that immediately states the usage condition and then summarizes accepted inputs. There is no wasted language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter mutation tool with no annotations and no output schema, the description covers the basic purpose and several accepted fields. However, it leaves out required parameters such as listId and name, position handling, permissions, and return behavior, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters thoroughly. The description lists title, description, due date, members, and labels, which provides some semantic mapping, but it omits listId and pos and does not add much beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (create) and resource (Trello card) and scopes it to a known list. It is clear, but it does not explicitly distinguish this tool from sibling mutations such as card_update or sibling creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use the tool: when the user asks to create a new Trello card in a known list. It does not name exclusions or alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_custom_field_clearA
Clear one card's custom field value without deleting the board's field definition. Restoring it requires setting the previous value with card_custom_field_set.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| customFieldId | Yes | Trello custom field definition id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: it discloses that the operation is value-only (definition survives) and that reversal requires an out-of-band call to card_custom_field_set, effectively flagging the mutation as not self-undoable. It omits permission requirements and response shape, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The scope-limiting fact is front-loaded and the recovery path follows immediately; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with a fully documented schema and no output schema, the description covers purpose, scope, and recovery. Only permission/auth context and the shape of the result are unaddressed, which is a minor gap at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in the schema with accepted id/link/URL forms. The description adds no further meaning about cardId or customFieldId, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('clear one card's custom field value') and explicitly bounds the blast radius by contrasting it with deleting the board's field definition. An agent can distinguish it from card_custom_field_set and board_custom_fields without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the when-to-use condition implicitly — remove a value while preserving the definition — and names the correct alternative for the reverse operation (card_custom_field_set). It stops short of stating explicit exclusions or preconditions, but the routing signal to the sibling is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_custom_field_itemsB
Use when reading all custom field item values currently set on a Trello card.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears the full burden, and 'reading' at least signals a non-mutating operation. It says nothing about permissions, pagination, or whether unset fields are omitted, but for a simple single-parameter read this is a modest gap rather than a severe one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. Efficient, though the 'Use when' phrasing is slightly clipped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a one-parameter read tool, but with no output schema and no description of returned value shape (per-field items, values, types), an agent still lacks a picture of the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (cardId) and the schema documents it fully, including short-link and URL forms, so baseline 3 applies. The description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('reading') and resource ('all custom field item values currently set on a Trello card'), which distinguishes it from mutating siblings like card_custom_field_set and card_custom_field_clear. It does not, however, explicitly contrast with custom_field_get or custom_field_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when reading...' gives a trigger condition, implying it is a read path versus the set/clear siblings. No alternatives are named and no when-not guidance or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_custom_field_setA
Set or replace one card custom field value, using the existing definition's type from custom_field_get. Use custom_field_options to find list option ids and card_custom_field_clear to remove a value.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO-8601 date/time value for date custom fields. | |
| text | No | Text value for text custom fields. | |
| type | Yes | Match the existing field type. Requires text for text, number for number, date for date, checked for checkbox, or optionId for list; other value inputs are ignored. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| number | No | Number value for number custom fields; Trello expects a string. | |
| checked | No | Boolean value for checkbox fields. | |
| optionId | No | Dropdown/list custom field option id for list fields. | |
| customFieldId | Yes | Trello custom field definition id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden, and it does state the key behavioral trait that this overwrites an existing value ('set or replace'). It leaves unstated permission requirements, what happens if the field isn't attached to the card's board, and error semantics for mismatched values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the core action and the replace semantics come first, followed by the three tool-routing pointers. No restated name, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with rich enum/schema descriptions and no output schema, the definition covers the main risks: value replacement and how to obtain a valid type. It could go further on failure modes and on whether the field definition must already be attached to the card.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns an extra point by explaining how the type parameter is derived (from the existing definition via custom_field_get), which is workflow guidance the schema alone does not supply. It still adds nothing about cardId formats or the date string constraint beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('set or replace') on a precisely scoped resource ('one card custom field value'), and implicitly distinguishes itself from the sibling tools it names (card_custom_field_clear, custom_field_options). An agent can tell exactly what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent to custom_field_get for the required type, to custom_field_options for list option ids, and to card_custom_field_clear when the intent is removal rather than setting. That is a named alternative plus the preconditions for using it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_deleteA
Use only when the user explicitly asks to permanently delete a Trello card; archive instead for reversible removal.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; it discloses the two most important traits — irreversibility ('permanently') and the safer alternative. It stops short of stating permission requirements or whether deleting a card also removes its attachments, comments or checklists, which matter for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the precondition and followed by the alternative; no filler. It could name card_archive literally rather than just 'archive', but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with no output schema, the description covers the decision that matters (delete vs archive) and the irreversibility. Missing only secondary details such as permission requirements and cascade effects of deleting a card.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter cardId has 100% schema description coverage (id, short link, or URL), so the schema already does the work. The description adds no parameter meaning beyond that, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('permanently delete a Trello card') and explicitly contrasts it with the sibling alternative ('archive instead for reversible removal'). An agent can distinguish card_delete from card_archive without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition ('only when the user explicitly asks to permanently delete') and names the preferred alternative for the reversible case. This is a complete when-to-use / when-not-to-use rule in one sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_due_date_setA
Use when setting, clearing, or marking completion of a card due date without changing other card metadata. Provide at least one of due or dueComplete.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | ISO-8601 due date to set, or null to clear the card due date. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| dueComplete | No | Whether the due date should be marked complete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It usefully discloses that only due-date metadata is changed and that at least one of due or dueComplete must be supplied, but it does not mention permissions, side effects, response behavior, or what happens when neither field is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no waste. The use condition is front-loaded, and the parameter constraint is placed immediately after it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation with fully described parameters and no output schema, the description supplies the key usage and validation context. A minor gap remains around return behavior and the consequence of omitting both due and dueComplete, though the latter is partially addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter baseline is 3. The description adds a meaningful constraint not enforced by the schema: at least one of due or dueComplete must be provided. It also uses 'clearing' to reinforce the schema's documented null behavior for due.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: setting, clearing, or marking completion of a card due date. It also scopes the operation to due-date metadata only, which distinguishes it from the broader card_update sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear triggering conditions: use when setting, clearing, or marking completion of a due date without changing other metadata. It implies the alternative (card_update for other fields) but does not name that sibling explicitly or state exclusions beyond the metadata constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_getA
Use when you need the current details of one Trello card by id, short link, or URL before editing or summarizing it.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello card fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Current details' usefully signals a live read rather than a cached snapshot, and the 'before editing' framing implies a non-mutating operation, but there is no mention of access requirements, error behavior for unknown ids, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence beginning with the usage trigger, with zero filler. The identifier forms and the intended purpose are packed in without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of behavioral and return context, yet it never says roughly what 'card details' contains (name, description, due date, labels, members, etc.) or whether fields affects that. For a simple two-parameter read tool this is workable but leaves a real gap an agent must discover by calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the id/short-link/URL forms and the 'all' fields default. The description restates the identifier flexibility but adds no extra semantics such as valid field names or the cost of requesting all fields; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: fetch the current details of one Trello card, and enumerates the accepted identifiers (id, short link, URL). It implicitly contrasts with facet-readers like card_labels or card_actions by promising the whole card, but never names those siblings explicitly, so the boundary is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition ('when you need the current details of one card') plus the intended follow-on actions ('before editing or summarizing it'), which tells the agent this is the pre-mutation read step. It stops short of naming when to prefer the narrower sibling readers or when to use search instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_label_addB
Use when applying an existing Trello label to a card by label id.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| labelId | Yes | Trello label id to add or remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals only that the label must already exist; it does not disclose authorization requirements, idempotency behavior when the label is already present, or the response shape for this mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. It is appropriately sized for a simple two-parameter tool, though the trailing 'by label id' is slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation with fully documented parameters, the description covers the basic action. Without annotations or an output schema, it should say more about duplicate-label behavior and the result of the call, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both cardId and labelId are already documented in the input schema. The description adds only a light emphasis that the label is identified by id, which is largely redundant with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('applying') and resource ('an existing Trello label to a card'), and the phrase 'existing' distinguishes it from card_label_create_and_add. It does not explicitly name that sibling, but the core operation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use condition ('when applying an existing Trello label ... by label id'), implying the label already exists. However, it does not state when not to use it or explicitly point to card_label_create_and_add for new labels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_label_create_and_addA
Create a new board label and apply it to this card. Use card_label_add for an existing label; repeating this creation can create duplicates.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable label name. | |
| color | Yes | Trello label color for the new board label to create and apply. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses the two-part side effect: creating a board label and applying it to the card. It also warns about duplicate creation, though it does not mention permission requirements or whether label creation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and immediately followed by the usage distinction. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation with no output schema, the description gives enough to invoke the tool correctly and avoid duplicate labels. It does not describe return values or permission requirements, leaving a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cardId, name, and color are already fully documented in the schema. The description adds no parameter-specific syntax or format details beyond what the schema provides, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Create a new board label and apply it to this card." It also names the sibling tool for existing labels, making the distinction clear without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs the agent to use card_label_add for an existing label and warns that repeating this creation can create duplicates. That gives both the alternative and the condition for choosing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_label_removeB
Use when removing an existing Trello label from a card by label id.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| labelId | Yes | Trello label id to add or remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It never says whether the operation is idempotent when the label isn't on the card, whether it mutates only that card's associations, what permission level is required, or what is returned on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the trigger condition comes first and the identifier note follows. It is efficient, though so brief that it borders on under-specification rather than tight scoping.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with a fully documented schema and no output schema, this is close to adequate. However, with zero annotations the description should still cover idempotency and error behavior, and it does neither.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already documents that cardId accepts an id, short link, or URL. The description only echoes 'by label id' without adding format, constraint, or edge-case detail beyond the schema, which is the expected baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('removing an existing Trello label from a card') and constrains the identifier ('by label id'). It implicitly separates itself from label_delete (removes the label from the board entirely) by scoping the action 'from a card', but never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when removing an existing Trello label from a card' gives a usable trigger condition, but offers no when-not guidance and does not distinguish this from card_label_add, card_label_create_and_add, or label_delete. An agent has to infer which of the four label tools applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_labelsA
Use when listing the labels currently applied to a card, including label ids for add/remove workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. "Listing" implies a read operation and the mention of label ids signals the payload shape, but there is no statement about read-only semantics, behavior for invalid/unknown card ids, or pagination — meaningful gaps for a tool with zero annotation coverage and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no waste, and the usage trigger is front-loaded. It is slightly indirect ("Use when listing..." rather than "Lists labels on a card"), which costs a point on directness but not on efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter read tool with full schema coverage and no output schema, and the description covers purpose and the add/remove follow-up use case. The main missing piece is an explicit read-only/return-shape statement, which is minor at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single cardId parameter is fully documented in the schema as accepting an id, short link, or Trello card URL. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: listing the labels currently applied to a card. It adds the useful detail that label ids are returned, which separates it from label_get and board_labels, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when listing the labels currently applied to a card" gives a clear triggering condition and the add/remove workflow framing implicitly routes the agent away from card_label_add/card_label_remove. It stops short of naming alternatives or stating when not to use it (e.g., board-wide label catalogs via board_labels).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_listA
Use when you need the current list relationship for a known Trello card before moving or reporting its status.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello related resource fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Current' implies a read, but it does not confirm read-only safety, state permission or rate-limit behavior, or describe the shape of the returned list relationship.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with the use case stated first and no wasted words. It is appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool, the description gives enough to understand the basic use case. However, with no output schema and no annotations, it omits what the returned 'list relationship' contains and how fields changes the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cardId and fields are already documented in the schema. The description adds no parameter-specific detail and does not explain how fields affects the returned list relationship, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource relationship—the current list for a known Trello card—and implies retrieval rather than mutation. It is clear enough to distinguish from generic card or list tools, though it never explicitly states that it returns the card's containing list object or identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete trigger: use before moving the card or reporting its status. That is clear contextual guidance, but it does not mention alternatives such as card_get, card_board, or list_get, nor any explicit when-not-to-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_member_addA
Use when assigning a Trello member to a card by member id; requires write access to the card's board and a member who can be assigned to that board.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| memberId | Yes | Trello member id to add or remove from the card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses authorization and eligibility requirements, but it does not mention idempotency, what happens if the member is already assigned, or expected response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted wording. It immediately tells the agent when to use the tool and what prerequisites apply.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with no annotations and no output schema, the description covers the main authorization and eligibility requirements. However, it omits return behavior and edge-case handling, leaving some gaps for an agent invoking a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already well documented in the schema. The description reinforces that assignment is by member id and references the card's board, but adds little beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (assigning a Trello member to a card) with the key resource and identifier. It is clear what the tool does, though it does not explicitly name the sibling alternative card_member_remove to disambiguate add vs. remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use when assigning a Trello member to a card' gives a clear usage condition, and the description adds prerequisites: write access to the card's board and a member eligible to be assigned. It does not explicitly state when not to use it or name alternatives, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_member_removeA
Use when unassigning a Trello member from a card by member id; requires write access to the card's board.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| memberId | Yes | Trello member id to add or remove from the card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does contribute one material behavioral fact: it 'requires write access to the card's board,' which is a real authorization constraint an agent should know before calling. It says nothing about idempotency, whether removing a non-member errors, or what the response contains — gaps that matter for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the usage trigger front-loaded and the permission caveat trailing, no filler or restatement of the tool name. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter membership mutation with fully described schema and no annotations, the description supplies purpose, trigger, and the write-permission requirement — enough to call it correctly. The only shortfall is silent behavior on edge cases (member not currently on the card), which is minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both cardId and memberId are already documented in the schema with accepted formats (id, short link, URL). The description only reinforces that removal is keyed by member id and adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('unassigning a Trello member from a card') and the keying dimension ('by member id'), which implicitly contrasts with the sibling card_member_add. It is clear, though it never names the add counterpart explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use when unassigning...' framing gives a concrete trigger condition rather than a vague purpose statement. It stops short of stating when-not to use it or naming card_member_add as the alternative, but the condition for invoking it is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_membersA
Use when listing members assigned to a card; requires token access to the card's board. Use fields to keep member output small.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| fields | No | Comma-separated Trello member fields to request; use all for detailed follow-up reads. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses an auth prerequisite ('requires token access to the card's board') and a payload-reduction tactic via fields, but says nothing about pagination, ordering, or what happens when a card has no members.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact clauses, front-loaded with the usage condition and followed by the auth caveat. No padding or restated field names; only minor gain would come from folding the fields tip into a single tighter sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with complete schema coverage and no output schema, the description covers trigger, auth requirement, and output-sizing advice. The only real omission is enumeration/ordering behavior of the returned member list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both cardId and fields are already documented in the schema, including accepted formats and the 'all' value. The description's 'use fields to keep member output small' merely reinforces the schema's guidance with a rationale, adding marginal value over the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('listing members assigned to a card'), which clearly scopes it apart from board_members, workspace_members, member_cards, and search_members without needing to name them. It stops short of explicitly naming the closest sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when listing members assigned to a card' gives a clear triggering condition, and the fields hint implies a lightweight-read use case. It never states when NOT to use it (e.g., prefer board_members for board-wide membership), so exclusions are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_moveB
Use when moving a card to another list, another board, or a different position; this is distinct from general card metadata updates.
| Name | Required | Description | Default |
|---|---|---|---|
| pos | No | Position in the destination list. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| listId | No | Destination list id. Required when moving to another list. | |
| boardId | No | Destination board id. Include when moving across boards. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It clarifies the move scope but says nothing about required permissions, side effects (activity log, notifications), reversibility, or whether position defaults when omitted — significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste; the usage trigger leads and the differentiation clause follows. Appropriately sized for the scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main move scenarios but, with no annotations and no output schema, an agent still lacks permission requirements, side-effect disclosure, and behavior when only cardId is supplied. Adequate but with clear gaps for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents cardId, listId, boardId, and pos. The description confirms the list/board/position intent but adds no syntax or format detail beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (moving) and resource (a card), plus the three scope variants: another list, another board, or a different position. It distinguishes itself from general metadata updates, though it names the sibling card_update only obliquely and never mentions card_position_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit 'Use when…' trigger and draws a clear line against metadata updates, so the agent knows the context. However, it doesn't address the closely related card_position_set sibling, leaving a routing ambiguity it could have closed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_position_setA
Use when changing only a card's position within its current list; use card_move when changing lists or boards too.
| Name | Required | Description | Default |
|---|---|---|---|
| pos | Yes | New position for the card within its current or destination list. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It clarifies scope (current list only) and the alternative, but does not state permissions, reversibility, side effects on other cards, or response behavior; for a mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, front-loaded with the when-to-use condition and immediately followed by the alternative. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two well-defined required parameters, and the description adequately covers selection versus its sibling. It still lacks mutation behavior and return context, but given the simple schema and no output schema, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so cardId and pos are already documented, including the top/bottom/number position values. The description adds no parameter-specific detail beyond the current-list scope already implied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the action (changing a card's position) and scopes it to the current list, while explicitly distinguishing it from card_move for cross-list or cross-board moves. An agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule and names the alternative card_move for the opposite case. This directly routes the agent between the two sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_updateA
Use when changing card metadata such as title, description, due date, due completion, or archive state without moving it.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | New ISO-8601 due date, or null to clear it. | |
| desc | No | New card description. | |
| name | No | New card title. | |
| cardId | Yes | Trello card id, short link, or Trello card URL. | |
| closed | No | Set true to archive the card; false to unarchive it. | |
| dueComplete | No | Whether the due date is complete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet the only trait it discloses is that the card is not moved. It says nothing about partial-update semantics (are unspecified fields preserved?), permission requirements, whether it returns the updated card, or that setting closed=true archives the card.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with zero filler; the usage trigger comes first and the scope constraint follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers purpose and scope but omits return behavior and permission/authorization context. It is adequate to select the tool but not to predict its effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema, which sets the baseline at 3. The description's field enumeration loosely maps to name/desc/due/dueComplete/closed but adds no semantics beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('changing') and resource ('card metadata') and enumerates the affected fields (title, description, due date, due completion, archive state). It is clear on its own, but it does not acknowledge the overlapping siblings card_archive and card_due_date_set, which an agent could easily confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when changing card metadata ... without moving it' gives a clear usage trigger plus an explicit exclusion (no repositioning). What is missing is routing: no mention of card_move, card_archive, or card_due_date_set as the alternatives for those cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
custom_field_getA
Use when you need one Trello custom field definition by id, including its type and any dropdown/list options Trello returns.
| Name | Required | Description | Default |
|---|---|---|---|
| customFieldId | Yes | Trello custom field definition id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that dropdown/list options are included in the response, but says nothing about behavior for invalid or missing ids, permissions, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence starting with the trigger condition, with no filler. It could be marginally tighter but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers the essential return shape (type and options). Error behavior and permissions are unstated, but the core invocation need is met.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema already documents customFieldId as the Trello custom field definition id. The description adds no format, syntax, or id-source detail beyond 'by id', which matches the baseline for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (one Trello custom field definition) scoped by id, and notes the return content (type plus dropdown/list options). It does not explicitly name the sibling custom_field_options, so differentiation is only implied by the phrase 'one ... by id'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when you need one ... by id' gives an implied trigger condition but no explicit when-not or named alternative. An agent must infer that custom_field_options is the choice for listing all definitions rather than fetching a single one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
custom_field_optionsA
Use when listing the available options for a Trello dropdown/list custom field before setting a card list custom field value.
| Name | Required | Description | Default |
|---|---|---|---|
| customFieldId | Yes | Trello custom field definition id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup and gives usage context, but does not mention permissions, pagination, or return behavior for a tool whose purpose is to list options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the use case immediately and stays appropriately short for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read lookup with no output schema and full schema coverage, the description provides enough context to call the tool correctly. It could be slightly more complete by clarifying the return shape or explicit sibling distinction, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single customFieldId parameter is already fully documented in the schema. The description does not add syntax or format details beyond what the schema provides, making the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: listing available options for a Trello dropdown/list custom field. It is clear enough to distinguish from a generic custom field getter, though it does not explicitly name the sibling tool it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use condition: before setting a card list custom field value. This implicitly routes the agent away from card_custom_field_set and toward this lookup first, but there is no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
label_createB
Use when creating a new reusable label on a Trello board before applying it to cards.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable label name. | |
| color | Yes | Trello label color. | |
| boardId | Yes | Trello board id containing the labels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, yet it only says this creates something. It does not state whether duplicate names are rejected, what permissions or board scope are required, whether the change is reversible, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence beginning with 'Use when', with no redundant restatement of the tool name or schema fields. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotation coverage and no output schema, the description is thin: it explains the intent but omits failure modes, permission/board prerequisites, and confirmation of what is created or returned, leaving the agent to infer mutation semantics from the name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (boardId, name, color, with a 30-value color enum) are documented in the schema itself. The description adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('creating a new reusable label on a Trello board') and its qualifier 'reusable ... before applying it to cards' implicitly separates it from label-only siblings like label_get/label_update and the combined card_label_create_and_add. It is clear what the tool does, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when creating a new reusable label ... before applying it to cards' supplies situational context, and the phrase 'before applying it to cards' hints at the two-step workflow versus card_label_create_and_add. However, no alternative is actually named and no when-not-to-use condition is stated, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
label_deleteA
Use only when explicitly asked to permanently delete a board label, removing it from every card using it. Use card_label_remove to unassign it from just one card while preserving the label.
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | Trello label id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the key destructive behavior: the deletion is permanent and cascades across every card using the label. It does not mention permission requirements, confirmation behavior, or what happens if the label id is missing, which keeps it short of a 5 for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the usage constraint front-loaded and the alternative named second. Every clause contributes either a condition, a consequence, or a routing hint, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool with no output schema, the description covers the essential safety context: permanence, cascade scope, and the less-destructive alternative. It leaves out permissions and missing-label behavior, but the core information needed to invoke it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, labelId, and its schema description coverage is 100%, so the schema already explains it adequately. The description adds no additional meaning about the id format or source beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: permanently delete a board label, with the consequence that it is removed from every card using it. It also explicitly distinguishes itself from the sibling card_label_remove, which only unassigns from one card, so an agent can select correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use rule: only when explicitly asked to permanently delete a label. It names the alternative card_label_remove and the condition that selects it, so the boundary between the two tools is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
label_getA
Use when you need the current name, color, or board for a specific Trello label before editing it.
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | Trello label id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure burden. It implies a read operation through "current" and "before editing," but does not explicitly state that it is read-only, has no side effects, or what happens if the label ID is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted language. It states the use condition and the data obtained immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter retrieval tool with a fully documented schema and no output schema, the description is largely complete. It lists the main fields returned, though it could mention error behavior or explicitly confirm read-only semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the sole labelId parameter is already documented in the schema as a required Trello label id. The description does not add parameter-level detail, but the schema does the necessary work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a retrieval operation for a specific Trello label and names the key fields returned: current name, color, or board. It distinguishes itself from editing tools by framing the use case as checking a label before editing it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: use when the current label details are needed before editing. It does not explicitly name label_update as the alternative, but the "before editing it" phrasing makes the read-versus-edit boundary reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
label_updateA
Use when renaming a Trello label or changing its color without changing any card assignments.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New label name. | |
| color | No | New Trello label color, or null to remove the color. | |
| labelId | Yes | Trello label id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the whole burden, and it does disclose one important behavior: the change does not affect existing card assignments (a side-effect scoping statement). It says nothing about partial-update semantics when only one of name/color is supplied, permissions/auth requirements, idempotency, or error cases for invalid label IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the trigger condition and the key scope constraint come first, and every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations and no output schema needs more than a trigger sentence: the description should state that unspecified fields remain unchanged, that it returns the updated label, and whether the caller needs write scope. The card-assignment note is valuable but does not fill those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the enum list for color and the note that null removes the color, so the baseline is 3. The description only mirrors that name/color are the mutable fields and adds no syntax, defaults, or 'omitted means unchanged' clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific operations (rename, change color) on a specific resource (Trello label), and the clause 'without changing any card assignments' separates it from the sibling card_label_add/card_label_remove/card_label_create_and_add tools. An agent can pick the right tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening 'Use when...' gives an explicit trigger condition and the card-assignment clause implicitly excludes the assignment-manipulation siblings. It stops short of naming those alternatives outright (e.g. 'use card_label_add instead to assign'), so it is a clear context rather than a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actionsA
Use when auditing recent activity or comments for a list; use filter, limit, page, since, before, and fields to keep large histories bounded.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Zero-based result page for Trello action collections. | |
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| fields | No | Comma-separated Trello action fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | id,type,date,data,idMemberCreator |
| filter | No | Trello action filter such as all or commentCard. | all |
| listId | Yes | Trello list id to read or update. | |
| member | No | Whether to include member objects on actions. | |
| memberFields | No | Comma-separated Trello member fields when member is true. | username,fullName,initials,avatarUrl |
| memberCreator | No | Whether to include the memberCreator object on actions. | |
| memberCreatorFields | No | Comma-separated Trello memberCreator fields when memberCreator is true. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that action histories can be large and that limit/page/since/before/fields should bound them, which is genuine behavioral insight. It says nothing about read-only semantics, ordering of results, default page size, or what the response contains, leaving meaningful gaps for an 11-parameter read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: the usage condition comes first and the parameter-strategy clause follows. It is tight and readable, though enumerating parameter names that are already fully documented in the schema is mildly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no annotations and no output schema, the description covers when to use it and how to bound results but not the expansion flags (member, memberCreator) or what an action object looks like. It is adequate against a fully documented schema, but an agent still needs the schema open to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has documentation, making 3 the baseline. The description groups the bounding parameters (filter, limit, page, since, before, fields) by intent, which adds light strategic framing, but it omits any mention of member/memberCreator/memberFields/memberCreatorFields and adds no format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete purpose — auditing recent activity or comments scoped to a single list — which implicitly identifies the resource being listed and separates it from board-wide or card-level action tools by the 'for a list' scope. It does not explicitly name a verb like 'list' or contrast against board_actions/card_actions, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when auditing recent activity or comments for a list' gives a clear triggering scenario, and the follow-on clause on bounding large histories tells the agent how to call it responsibly. No explicit when-not or named alternative is offered, which keeps it out of 5 territory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_archiveB
Use when archiving or unarchiving a Trello list while keeping its cards recoverable.
| Name | Required | Description | Default |
|---|---|---|---|
| closed | No | True archives the list; false restores it. | |
| listId | Yes | Trello list id to read or update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and it does disclose a meaningful trait: cards remain recoverable (soft delete, not destruction). It omits permission/auth requirements, whether the action is idempotent, and confirmation behavior, so disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the trigger "Use when" up front and zero filler. Efficient, though it could be marginally more informative given the available space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an unannotated mutation tool with no output schema, the description covers purpose and recoverability but leaves auth needs, reversibility details beyond "recoverable," and confirmation semantics unexplained, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both listId and the closed boolean are already fully documented in the schema. The description adds no parameter-level detail beyond that baseline, which is appropriate but not value-adding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (archive/unarchive) and resource (Trello list), so the agent knows it toggles a list's closed state. However, it does not distinguish itself from the sibling list_update, which could plausibly also set a closed flag, leaving the archive-vs-update boundary unstated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when archiving or unarchiving" gives a use context but is close to circular for a tool named list_archive. No exclusions, prerequisites, or comparison to alternatives like list_update are provided, so selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_boardsA
Use first when the user has not provided a board, list, card id, or Trello URL; returns boards visible to the authenticated Trello member.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello board fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,url,shortUrl,idOrganization,dateLastActivity,prefs,labelNames,subscribed |
| filter | No | Which boards to include for the current Trello member. | open |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the authorization scope (visible to the authenticated member) but says nothing about the default of returning only open boards, rate limits, or result size — and the default filter=open is a behavior an agent could easily misread as 'all boards'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the usage trigger first and the return scope second. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple discovery tool with a fully described two-parameter schema, the description covers when to call and what comes back. The one meaningful gap is that it never warns the caller that results default to open boards only, which matters for a first-lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, filter) are fully documented with a default and an enum in the schema. The description adds no parameter guidance beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list boards) and pins the scope to boards visible to the authenticated member. It is clearly distinguishable from board_get or board_lists, though it does not explicitly contrast with member_boards or workspace_boards, which also return board collections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: use first when the user has supplied no board, list, card id, or Trello URL. That is a clear entry-point rule, but the description does not name the alternative tools to call once an id is known, nor when to prefer member_boards/workspace_boards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cardsA
Use when you need cards in a specific Trello list; use limit, since, before, and fields to keep large lists small.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| fields | No | Comma-separated Trello card fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,idBoard,idList,idMembers,idLabels,url,shortUrl,due,dueComplete,pos,dateLastActivity |
| filter | No | Which cards to include from the list. | open |
| listId | Yes | Trello list id to read cards from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden, yet it only hints at result-size management ('keep large lists small'). It does not describe the default open-only filtering behavior, pagination semantics, permission requirements, or what the returned cards look like, leaving notable gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: usage condition first, parameter advice second. There is no filler and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with fully documented parameters and no output schema, the description covers the trigger and the performance-relevant knobs, which is enough to call it correctly. The remaining omission is sibling routing (board_cards, member_cards) and confirmation of the open-only default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the six parameters is already documented with defaults, bounds, and formats. The description only echoes the parameter names with a sizing rationale and adds no format or interaction detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (cards) and its scope (a specific Trello list), so an agent can tell it reads cards belonging to one list rather than a board or member. It never states the verb (list/retrieve) explicitly, relying on the tool name, and does not name a sibling like board_cards or member_cards to sharpen the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when you need cards in a specific Trello list' gives a clear triggering condition, and the second clause advises using limit/since/before/fields to keep large lists small, which is actionable operational guidance. It stops short of naming alternatives (board_cards, member_cards) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_createB
Use when creating a new Trello list on an existing board.
| Name | Required | Description | Default |
|---|---|---|---|
| pos | No | Position for the list on its board. | bottom |
| name | Yes | Human-readable list name. | |
| boardId | Yes | Board id where the new Trello list should be created. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and discloses almost nothing: it does not say the operation is a write/mutation, what permissions are required, where the list lands by default, whether duplicate names are allowed, or what the call returns. The only non-obvious behavior, that the target board must already exist, is present, which keeps it above a 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no filler, which is good. However, it leads with "Use when" rather than stating the action, and one terse sentence leaves obvious gaps, so brevity here reads more like under-specification than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a three-parameter mutation tool with no annotations and no output schema, so the description is the only place to learn about mutation semantics, error conditions and return behavior — and it says nothing about any of them. The schema covers parameter meaning well, but the behavioral picture an agent needs before writing to a board is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so boardId, name and pos (including the top/bottom/number union and default 'bottom') are already fully documented in the schema. The description only reinforces that boardId must reference an existing board and adds no format, syntax or constraint detail beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence names the verb (creating), the resource (a new Trello list) and the constraint (on an existing board), so an agent can tell this creates rather than updates, archives, moves or reads lists. It is phrased as a usage trigger rather than a purpose statement, and it does not explicitly contrast with siblings like list_update or list_move_to_board, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when creating a new Trello list on an existing board" gives an implied trigger, which is more than nothing. But there is no guidance on when NOT to use it (e.g. when the list already exists, or when the board is not yet created via board_create) and no mention of prerequisites such as authentication or board membership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_getB
Use when you need metadata for a known Trello list before creating cards in it or changing it.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello list fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,closed,idBoard,pos |
| listId | Yes | Trello list id to read or update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about read-only nature, auth/scope requirements, failure behavior for an invalid listId, or pagination. It at least does not imply mutation, which keeps it from scoring 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that opens with 'Use when', with zero redundant or filler content. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should at least sketch what metadata is returned or note that the field list controls the response. As written it is adequate to identify intent but leaves the agent guessing about the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented there, including the default field set and the 'all' keyword. The description adds no parameter semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description implies a read of a Trello list's metadata for a known listId, but never states the verb explicitly ('retrieve/fetch metadata for a list'). It gives no differentiation from siblings that also surface list data, such as board_lists, list_cards, or card_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly names a trigger context: use before creating cards in a list or changing it. That is genuine when-to-use guidance, though it offers no explicit alternatives (e.g., board_lists for discovering lists when the id is unknown) or when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_move_to_boardA
Move an existing list and its cards to another board, changing who can access them. Use list_update to reorder within the current board.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | Trello list id to read or update. | |
| boardId | Yes | Destination board id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose one important side effect — the move changes who can access the list and its cards — which is genuinely beyond structured data. However it says nothing about required permissions (e.g., admin on both boards), reversibility, or what happens to list position on the destination board.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action and its access-permission consequence front-loaded and the alternative tool named second.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema and no annotations, the definition covers purpose, side effect, and the nearest alternative. Missing authorization requirements and failure behavior keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both listId and boardId fully documented in the schema, so the baseline of 3 applies. The description confirms the semantic role of each (source list, destination board) but adds no format or constraint detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (move) and resource (an existing list and its cards) with the destination scope (another board). It also flags the non-obvious consequence — access permissions change — which distinguishes it from a plain reorder operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use list_update to reorder within the current board, this tool for cross-board moves. It doesn't contrast with card_move (single-card moves) or state prerequisites, but the primary ambiguity is resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_updateB
Use when renaming a Trello list, changing its position, or setting its archive state.
| Name | Required | Description | Default |
|---|---|---|---|
| pos | No | Position for the list on its board. | |
| name | No | New list name. | |
| closed | No | Set true to archive the list; false to unarchive it. | |
| listId | Yes | Trello list id to read or update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses nothing beyond the trigger conditions. It does not say whether omitted fields leave existing values untouched (partial vs full update), what permissions are required, whether renames are reversible, or what the call returns. For an unannotated mutation tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler that puts the trigger conditions first. It is efficient but so terse that it omits any structural cues about behavior or return values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Well-specified parameters and missing output schema mean the description needn't explain return values, but for a four-parameter mutation with no annotations it should have covered partial-update semantics, permissions, and the archive-vs-list_archive distinction. As written an agent can invoke it correctly but must guess at mutation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (name, pos, closed, listId) are already documented in the schema, including enum-like values 'top'/'bottom' and the archive/unarchive meaning of closed. The description merely restates those fields at a higher level and adds no syntax, format, or edge-case detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Trello list) and the three concrete operations it covers: rename, reposition, and archive-state change. It is distinguishable from siblings like list_create and list_get, though it never names itself as the update tool nor differentiates from list_archive, which appears to overlap on archiving.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit 'Use when…' trigger list (renaming, changing position, setting archive state), giving an agent clear selection conditions. It offers no exclusions or alternative routing, notably failing to say whether list_archive or list_move_to_board should be preferred for overlapping cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesA
Use first when the user asks to show Trello workspaces or needs to choose a workspace before drilling into its boards or members.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello workspace fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,displayName,desc,url,website,idBoards,dateLastActivity,prefs |
| filter | No | Which Trello workspaces to include for the current member. | all |
| paidAccount | No | Whether to include Trello paid account details when available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden, yet it says nothing about read-only semantics, that results are scoped to the current member, pagination, or what the response contains. Only the weak implication of 'show' signals a read operation. For a tool with zero annotation coverage this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with zero waste, front-loading the 'use first' guidance before the follow-on condition. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, fully documented read tool with no output schema, the description is minimally adequate for selection but leaves out what the agent gets back and how filtering scopes results. Annotations are absent, so more behavioral context would have been warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the filter, fields, and paidAccount parameters are each documented in the schema itself. The description adds no extra meaning about these parameters, which is acceptable given the schema does the work, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (Trello workspaces) and the action ('show'), plus its position in a workflow ('use first ... before drilling into its boards or members'). It distinguishes itself from deeper workspace tools like workspace_get and workspace_boards by framing itself as the entry point, though it never uses an explicit verb like 'list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('when the user asks to show Trello workspaces') and a concrete follow-on situation ('needs to choose a workspace before drilling into its boards or members'). It does not name specific sibling tools to prefer instead, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
member_boardsA
Use when you need boards associated with a known Trello member by id, username, or me; results are limited to boards visible to the configured token.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello board fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,url,shortUrl,idOrganization,dateLastActivity,prefs,labelNames,subscribed |
| filter | No | Which boards to include for the member. | open |
| memberId | Yes | Trello member id, username, or me. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and only discloses one behavioral trait: results are limited to boards visible to the configured token. It omits other useful context such as pagination, error handling, and authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words, efficiently packing the primary use case and a key constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no annotations or output schema, the description covers when to use it and a visibility limitation, but it leaves gaps regarding what is returned (e.g., list format, pagination) and error behavior. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters. The description adds no extra meaning beyond what the schema provides, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (boards) and the relationship (associated with a known Trello member) with acceptable specificity. It does not explicitly name a sibling tool to differentiate against, but the 'known member' qualifier implicitly distinguishes it from list_boards and member_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear context for use ('when you need boards associated with a known Trello member by id, username, or me') and notes a visibility constraint. However, it does not explicitly state when not to use this tool or name alternative siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
member_cardsA
Use when you need cards assigned to a known Trello member by id, username, or me; private board cards require token access to those boards.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| fields | No | Comma-separated Trello card fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,idBoard,idList,idMembers,idLabels,url,shortUrl,due,dueComplete,pos,dateLastActivity |
| filter | No | Which cards assigned to the member to include. | visible |
| memberId | Yes | Trello member id, username, or me. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It usefully discloses that private board cards require token access, which is important context an agent would not infer from the schema. However, it does not explicitly confirm read-only behavior, describe pagination semantics, or explain the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tightly written sentence with the primary use case front-loaded and the private-board auth caveat following immediately. Every clause adds useful information, and there is no redundant or bloated language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters with full schema coverage and no output schema or annotations, the description is nearly complete: it defines the use case, identifies the member formats, and notes private-board token requirements. It could be slightly stronger by explicitly stating that this is a read-only card listing, but the schema covers the parameter details an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters, including memberId formats, limit bounds, since/before cursors, fields, and filter enum. The description repeats the memberId formats but adds no meaning beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific resource and scope: cards assigned to a known Trello member, addressable by id, username, or me. This distinguishes it from sibling tools such as member_boards, board_cards, and list_cards without requiring the agent to inspect the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use the tool: when cards assigned to a known member are needed and the member can be identified. It also adds a prerequisite about token access for private board cards. It does not explicitly name alternatives or exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
member_getA
Use after member search or board member listing to inspect a Trello member profile by id, username, or me before assignment or auditing.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello member profile fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | username,fullName,initials,avatarUrl |
| memberId | Yes | Trello member id, username, or me. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden; "inspect" implies a read-only lookup but readOnlyHint-equivalent behavior is never stated. It adds some useful sequencing context (call after a search/list) but says nothing about error behavior for unknown members or rate limits. With no output schema and no annotations, 3 reflects a minimal but not rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that puts the usage trigger first and the identifier forms second, with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read lookup with full schema coverage and no output schema, the description covers purpose, timing, and accepted identifiers well enough to call correctly. The remaining gap is behavioral (error handling for unknown members), which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description's "by id, username, or me" merely restates the memberId schema description and says nothing about the fields parameter, which the schema fully covers. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("inspect a Trello member profile") and resource, and names the accepted identifiers (id, username, me). This clearly distinguishes it from siblings like search_members, board_members, and member_boards, which retrieve collections rather than a single profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it "after member search or board member listing" and for "assignment or auditing," which gives concrete trigger context and implies the alternatives that produce the identifiers. It stops short of stating when not to use it, so it falls just below the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
member_workspacesA
Use when you need Trello workspaces associated with a known member by id, username, or me; workspace visibility and role permissions constrain results.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello workspace fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,displayName,url,website,idBoards |
| filter | No | Which Trello workspaces to include for the member. | all |
| memberId | Yes | Trello member id, username, or me. | |
| paidAccount | No | Whether to include Trello paid account details when available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add genuine behavioral context that visibility settings and role permissions constrain results, but it never states that this is a read-only operation, nor anything about authorization requirements or pagination/result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the usage trigger and followed by the one caveat that matters. No filler and nothing redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should hint at what comes back; it only indirectly implies workspace objects via the visibility/permission note and leaves the response shape to the schema's field list. For a simple read with complete parameter docs this is adequate but thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains memberId, fields, filter, and paidAccount. The description only echoes the memberId forms (id, username, me) and adds nothing about filter semantics or field selection; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (Trello workspaces) and the scoping relationship (associated with a known member, by id/username/me), which lets an agent distinguish it from list_workspaces and workspace_members. It is framed as a 'use when' clause rather than a direct verb+resource statement, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the triggering condition: a known member whose workspaces you need. It does not name alternatives (list_workspaces for an unfiltered list, member_get for member attributes) or say when not to use it, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Search Trello and return grouped cards, boards, members, and workspaces visible to the token. Defaults to cards and boards; scope and limit results, and use cardsPage for card pagination. Use search_members for a focused member lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Trello search text, trimmed and sent directly to Trello. For search, use Trello operators such as is:open; for search_members, use a member name or username. | |
| cardIds | No | Optional card ids to scope search results. | |
| partial | No | Whether to match query word prefixes in Trello search. | |
| boardIds | No | Use mine to search the current member's boards, or provide one or more board ids. | |
| cardsPage | No | Zero-based result page for card search results. | |
| cardFields | No | Comma-separated Trello card search result fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,closed,idBoard,idList,url,shortUrl,due,dateLastActivity |
| cardsLimit | No | Maximum number of Trello search results to return. | |
| modelTypes | No | Trello object types to search; use organizations for Trello workspaces. | |
| boardFields | No | Comma-separated Trello board search result fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,closed,idOrganization,url,shortUrl,dateLastActivity |
| boardsLimit | No | Maximum number of Trello search results to return. | |
| memberFields | No | Comma-separated Trello member search result fields to request; use all for detailed follow-up reads. | username,fullName,initials,url |
| membersLimit | No | Maximum number of Trello search results to return. | |
| includeCardList | No | Whether to include parent list objects with card results. | |
| organizationIds | No | Optional workspace ids to scope search results. | |
| includeCardBoard | No | Whether to include parent board objects with card results. | |
| includeCardMembers | No | Whether to include member objects with card results. | |
| organizationFields | No | Comma-separated Trello workspace search result fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,displayName,url,website |
| organizationsLimit | No | Maximum number of Trello search results to return. | |
| includeBoardOrganization | No | Whether to include parent workspace objects with board results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the key behavioral trait — results are limited to what the token can see — plus defaults and pagination, but says nothing about read-only semantics, rate limits, or failure modes. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler: the capability and return shape come first, then defaults/pagination, then the sibling hand-off. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter search with no output schema and no annotations, the description orients the agent well (what comes back, what the defaults are, where to paginate). Minor gaps remain around the include* expansions and field-selection parameters, though the schema covers those in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 19 parameters are documented at 100% schema coverage, so the schema already does the heavy lifting and a baseline 3 applies. The description adds only a little on top: the default modelTypes and the cardsPage pagination mechanism, without explaining partial, the include* expansion flags, or field selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Search Trello") plus the exact result shape ("grouped cards, boards, members, and workspaces visible to the token"), which tells the agent this is a multi-model search rather than a single-resource list. The final sentence explicitly separates it from the sibling search_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operating guidance: defaults to cards and boards, scope and limit results, use cardsPage for card pagination, and route focused member lookups to search_members. It lacks explicit when-not conditions or prerequisite notes, but the alternative is named with the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_membersA
Use when looking up Trello members by name or username, optionally scoped to a board or workspace; scoped searches require token access to that board or workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Trello members to return; Trello caps this at 20. | |
| query | Yes | Trello search text, trimmed and sent directly to Trello. For search, use Trello operators such as is:open; for search_members, use a member name or username. | |
| boardId | No | Optional board id to scope member search. | |
| onlyOrgMembers | No | Whether to restrict results to workspace members. | |
| organizationId | No | Optional workspace id to scope member search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the authorization constraint for scoped searches, but says nothing about read-only semantics, rate limits, or result shape. Adequate but notably incomplete for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the trigger condition first and the authorization caveat after a semicolon. No filler, every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read tool with fully documented schema and no output schema, the description covers the essential trigger and the auth prerequisite for scoped searches. It omits only secondary details like result ordering or the limit cap, which the schema already covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the board/workspace scoping that maps to boardId and organizationId, but adds no syntax or behavioral detail beyond what the schema already documents for query, limit, and onlyOrgMembers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a specific verb ('looking up') and resource ('Trello members by name or username'), which clearly distinguishes it from direct-fetch siblings like member_get. It does not explicitly name alternatives such as board_members or workspace_members, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when looking up Trello members by name or username' gives a clear trigger condition, and it adds the scoping options plus the prerequisite that scoped searches require token access to that board or workspace. It stops short of naming when to prefer member_get or board_members instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_actionsA
Use when auditing recent activity or comments across a Trello workspace; use filter, limit, page, since, before, and fields to keep large histories bounded.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Zero-based result page for Trello action collections. | |
| limit | No | Maximum number of Trello objects to return; Trello caps this at 1000. | |
| since | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| before | No | ISO-8601 date, Mongo id, or null cursor for Trello since/before paging. | |
| fields | No | Comma-separated Trello action fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | id,type,date,data,idMemberCreator |
| filter | No | Trello action filter such as all or commentCard. | all |
| member | No | Whether to include member objects on actions. | |
| workspaceId | Yes | Trello workspace id or short name. | |
| memberFields | No | Comma-separated Trello member fields when member is true. | username,fullName,initials,avatarUrl |
| memberCreator | No | Whether to include the memberCreator object on actions. | |
| memberCreatorFields | No | Comma-separated Trello memberCreator fields when memberCreator is true. | username,fullName,initials,avatarUrl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Auditing recent activity' implies a read-only, non-destructive operation and the note about bounding large histories adds useful context, but it says nothing about pagination order, default page size effects, permission requirements, or why unbounded requests are costly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that opens with the triggering condition and closes with the operational technique. No filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter read tool with no annotations and no output schema, the description covers purpose and history-bounding but omits what the response contains (action shape, member/memberCreator enrichment) and how pagination interacts with defaults. The rich schema compensates for parameter detail, leaving a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters are already documented in detail by the schema, establishing a baseline of 3. The description enumerates the bounding parameters (filter, limit, page, since, before, fields) to explain their collective purpose, but adds no syntax or semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear use case — auditing recent activity or comments across a Trello workspace — which, combined with the tool name, tells an agent it retrieves workspace-scoped actions. It implicitly distinguishes itself from board_actions, card_actions, and list_actions via the 'workspace' scope, but never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when auditing recent activity or comments' gives an explicit when-to-use context, and the second clause names the parameters for keeping large histories bounded. However, it offers no exclusions or explicit routing to sibling tools like board_actions or card_actions, which an agent may confuse with this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_boardsC
Use when you need boards in a known Trello workspace so the user can drill into a workspace board.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello board fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,desc,closed,url,shortUrl,idOrganization,dateLastActivity,prefs,labelNames,subscribed |
| filter | No | Which boards to include from the workspace. | open |
| workspaceId | Yes | Trello workspace id or short name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden but discloses almost nothing. It does not state that this is a read-only listing, how results are ordered or paginated, or what the defaults for filter and fields imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact sentence with no repeated or empty content. The only flaw is that its brevity comes at the cost of specificity rather than from ruthless editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with no annotations and no output schema, the description should clarify return shape, defaults, and relationship to similar sibling tools. It omits all of that, so an agent cannot fully predict what calling this endpoint will do.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters including the filter enum and fields default. The description adds no syntax, format, or edge-case meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description phrases usage intent ('Use when you need boards in a known Trello workspace') rather than stating the operation. It never says it lists or retrieves boards, and it does not distinguish itself from siblings like list_boards or member_boards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a positive usage condition (a known workspace), which is useful context. But it names no alternatives, no exclusions, and no prerequisites, leaving the agent to infer when workspace_boards is preferred over list_boards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_getA
Use when you need basic Trello workspace metadata, such as display name, description, URL, website, board ids, or preferences.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello workspace fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | name,displayName,desc,url,website,idBoards,dateLastActivity,prefs |
| workspaceId | Yes | Trello workspace id or short name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. 'Get' plus 'metadata' implies a non-mutating read, and the field list tells the agent what is retrieved, but there is no mention of permission requirements, behavior on an invalid or unknown workspaceId, or rate limits. Adequate but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the trigger condition first and the returned fields second, with no wasted preamble. The field enumeration partially duplicates the schema's default value, costing a little tightness but aiding scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with full schema coverage, the description plus schema cover what an agent needs: what is fetched, which fields are available, and how to identify the workspace. The lack of an output schema is offset by the field list, though return shape (object vs. nested prefs) remains unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both workspaceId ('Trello workspace id or short name') and fields (with a default list) are fully documented in the schema. The description's field enumeration loosely mirrors the fields parameter but adds no format or syntax guidance beyond it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('basic Trello workspace metadata') and enumerates the concrete fields returned (display name, description, URL, website, board ids, preferences), which lets an agent distinguish it from siblings like workspace_boards or workspace_members. It does not explicitly name those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when you need basic Trello workspace metadata' gives a clear trigger condition but offers no exclusions or alternatives — it never says to call list_workspaces first to discover a workspaceId or to use workspace_boards when boards are the actual target. Usage is implied rather than fully routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_membersA
Use when you need members in a known Trello workspace before assignment, auditing, or permission review.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated Trello workspace member fields to request; use all for detailed follow-up reads. Schema-required fields are added automatically. | username,fullName,initials,avatarUrl |
| filter | No | Which workspace members to include. | all |
| workspaceId | Yes | Trello workspace id or short name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. The auditing/permission-review framing implies a read-only lookup, but it says nothing about pagination, result volume, or whether rate limits apply to large workspaces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler, leading with the usage trigger. Slightly ambiguous phrasing ('before assignment' of what) keeps it from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read tool with fully documented parameters and no output schema; the description is adequate but omits any sense of return shape, ordering, or size, which matters for workspace member listings that can be large.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with well-documented fields, filter enum, and workspaceId, so the params are already self-explanatory. The description adds no further meaning beyond the 'known workspace' hint toward workspaceId, which matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description makes clear this returns members of a specific Trello workspace, and 'known Trello workspace' implicitly distinguishes it from the global search_members sibling. The verb 'list'/'retrieve' is never stated outright, but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete when-to-use contexts: before assignment, auditing, and permission review. The 'known workspace' qualifier implies the workspaceId must already be in hand, steering agents away from this tool when searching across workspaces, though no alternative is named explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
77 tool updates
v1.0.4- First observed
auth_token_info - First observed
auth_whoami - First observed
board_actions - First observed
board_cards - First observed
board_create - First observed
board_custom_fields - First observed
board_field_get - First observed
board_get - First observed
board_labels - First observed
board_lists - First observed
board_members - First observed
board_memberships - First observed
card_actions - First observed
card_archive - First observed
card_attachment_add_url - First observed
card_attachment_delete - First observed
card_attachment_get - First observed
card_attachment_upload - First observed
card_attachments - First observed
card_board - First observed
card_checklist_create - First observed
card_checklist_delete - First observed
card_checklist_item_create - First observed
card_checklist_item_delete - First observed
card_checklist_item_move - First observed
card_checklist_item_set_checked - First observed
card_checklist_item_update - First observed
card_checklist_items - First observed
card_checklist_update - First observed
card_checklists - First observed
card_comment_add - First observed
card_comment_delete - First observed
card_comment_update - First observed
card_cover_set - First observed
card_create - First observed
card_custom_field_clear - First observed
card_custom_field_items - First observed
card_custom_field_set - First observed
card_delete - First observed
card_due_date_set - First observed
card_get - First observed
card_label_add - First observed
card_label_create_and_add - First observed
card_label_remove - First observed
card_labels - First observed
card_list - First observed
card_member_add - First observed
card_member_remove - First observed
card_members - First observed
card_move - First observed
card_position_set - First observed
card_update - First observed
custom_field_get - First observed
custom_field_options - First observed
label_create - First observed
label_delete - First observed
label_get - First observed
label_update - First observed
list_actions - First observed
list_archive - First observed
list_boards - First observed
list_cards - First observed
list_create - First observed
list_get - First observed
list_move_to_board - First observed
list_update - First observed
list_workspaces - First observed
member_boards - First observed
member_cards - First observed
member_get - First observed
member_workspaces - First observed
search - First observed
search_members - First observed
workspace_actions - First observed
workspace_boards - First observed
workspace_get - First observed
workspace_members
TDQS
Scored across 77 tools
Descriptions work hard to draw boundaries (card_archive vs card_delete, card_move vs card_position_set, card_label_add vs card_label_create_and_add, and the four *_actions tools scoped by resource). However, real overlaps remain: card_update explicitly covers due dates and archive state that card_due_date_set and card_archive also handle, and card_checklist_item_update claims completion state, checklist, and position — all owned by card_checklist_item_set_checked and card_checklist_item_move.
The dominant pattern is <resource>_<action> (board_get, card_create, label_delete), which is readable and mostly followed. But the `list_` prefix is overloaded: list_boards/list_workspaces mean 'enumerate', while list_get/list_update/list_archive mean 'the list resource' — and card_list vs list_cards are near-identical names with opposite meanings. That collision is a genuine trap for an agent.
77 tools is far beyond a reasonable surface and the granularity is excessive: board_get vs board_field_get, card_list vs card_board vs card_get, and separate tools for due date, position, cover, and archive on a card. While Trello is a large domain, many tools could be folded into a single card_update or board_get variant.
Coverage is broad and deep: full card lifecycle (create/update/move/archive/delete), checklists, labels, attachments, custom field values, members, workspaces, actions, and search. Gaps remain — no board update/archive/delete, no custom field definition create/update/delete (only get/options), and no board member add/remove, so board-level mutation is a dead end.
Maintenance
Related MCP Connectors
Tre — shared memory kanban for humans and agents (MCP Streamable HTTP).
Remote MCP server for saving, searching, syncing, and managing Teak cards.
Headless task management for bots, apps and AI agents. Remote MCP server, OAuth or access token.
Your IMAP mailbox as an MCP server: read, search and (if you allow it) organize mail. Open source.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceThis is an MCP Server for Trello that enables interaction with Trello's API through natural language, allowing management of boards, cards, lists, and other Trello resources.-
- AlicenseBqualityBmaintenanceA Model Context Protocol (MCP) server for Trello that works with any MCP-compatible client -- Claude Desktop, Claude Code, Gemini CLI, and more. Provides 46 tools covering boards, cards, lists, labels, checklists, attachments, members, custom fields, and search.45203 npm3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Trello integration, enabling management of workspaces, boards, lists, cards, and checklists through natural language.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Trello that enables comprehensive management of boards, cards, lists, labels, checklists, attachments, members, custom fields, and search through natural language.203 npmMIT