Skip to main content
Glama

@tasklite/mcp

npm MCP Registry license

A backend and an admin for apps built by AI agents. tasklite.net · docs

Describe a system and get the thing behind it: a project with typed tables and relations, rows, REST endpoints, an API key, and an admin interface the business itself operates afterwards. From Claude Code, Claude Desktop, ChatGPT, Gemini, Cursor or VS Code. Deploy a frontend onto it and hand the whole thing over.

Not the CLI task manager. There is an older, unrelated project also called TaskLite, ad-si/TaskLite at tasklite.org, a command-line task manager. This is a different product from a different author: a hosted backend at tasklite.net, published as @tasklite/mcp and as net.tasklite/mcp in the MCP registry.

The 48 tools

Every tool declares readOnlyHint, destructiveHint and openWorldHint, so a client can tell what is safe to run unattended.

Area

Tools

Account

sign_up connect login disconnect connection_status list_organizations configure_external_access

Structure

create_project create_board create_column update_board update_column delete_board delete_column delete_project reorder_columns get_board_schema list_projects list_boards export_project

Data

query_items create_item update_item set_cell delete_item search fetch

Comments

list_comments add_comment update_comment delete_comment

Apps and API

build_backend create_app publish_app list_apps get_app_spec create_app_endpoint list_app_endpoints update_app_endpoint create_app_api_key

Frontend hosting

deploy_frontend list_deployments rollback_deployment get_frontend_prompt

Automation and push

create_automation list_automations push_status send_test_push

build_backend is the one to reach for first: it takes a description of a system and creates the project, the boards, their typed columns including the relations between them, sample rows, and a published REST API with a key, in one call, instead of a dozen.

Related MCP server: MCP-Maker

Setup

Install the package (and Claude Code if you don't have it), then add the server by its binary. That avoids a known Windows issue where claude mcp add mis-parses npx -y.

npm install -g @anthropic-ai/claude-code @tasklite/mcp
claude mcp add tasklite -- tasklite-mcp

Add -s user to claude mcp add to make it available in every project (claude mcp add -s user tasklite -- tasklite-mcp); the default scope is the current project only.

Then tell Claude what you want to build. The sign_up tool creates your account, organization, and connection from the conversation (a strong random password is generated locally and never shown; use "forgot password" with your email for web access).

Already have an account? Create a key at TaskLite → Integrations → "Connect Claude Code" and use:

claude mcp add tasklite -e TASKLITE_API_KEY=tl_xxx -- tasklite-mcp

Hosted (no install)

Point any MCP client at the hosted server; there is nothing to install locally:

claude mcp add --transport http tasklite https://mcp.tasklite.net/mcp \
  --header "Authorization: Bearer tl_xxx"

The hosted server is stateless: every request carries its own credential, so one endpoint serves every account safely.

Simplest of all: the connector. In Claude (claude.ai or the desktop app), Settings → Connectors → add TaskLite, or add it by address using the URL above. You sign in once over OAuth; there is no key to create or store. Note that the tools appear in a new chat, not in the conversation you were already in.

Optional env: TASKLITE_API_URL (default https://api.tasklite.net), TASKLITE_APP_URL (default https://app.tasklite.net).

Other clients

One hosted server, every MCP client. Full setup notes: https://tasklite.net/docs/guides/connector-from-cursor-codex-desktop

  • Cursor: Add to Cursor or put {"mcpServers":{"tasklite":{"url":"https://mcp.tasklite.net/mcp"}}} in .cursor/mcp.json.

  • VS Code: Install in VS Code or .vscode/mcp.json with {"servers":{"tasklite":{"type":"http","url":"https://mcp.tasklite.net/mcp"}}}.

  • ChatGPT: Settings → Connectors (developer mode) → add https://mcp.tasklite.net/mcp. The server implements search and fetch.

  • Gemini CLI: gemini extensions install https://github.com/shimon-ks/tasklite-mcp (this repo ships gemini-extension.json), or add httpUrl + oauth to ~/.gemini/settings.json.

  • OpenAI Responses API / Agents SDK, Gemini API: pass the hosted URL with Authorization: Bearer tl_….

Typical flow (what Claude Code does)

  1. create_projectcreate_boardcreate_column × N builds the schema.

  2. create_item / query_items seed and inspect data.

  3. create_appcreate_app_endpoint (with exposedColumns + RLS) → create_app_api_key expose the REST surface for your frontend.

  4. get_app_spec / get_frontend_prompt generate the frontend against it.

  5. Every tool returns an adminUrl, the ready-made admin for the end client.

Hosting your frontend

deploy_frontend puts a static frontend on https://{slug}.tasklite.dev. No server, no hosting account, no CI to configure. Hand the site over in one of three ways:

deploy_frontend(appId: "app-xxxxxx", files: [{ path: "index.html", content: "<!doctype html>…" }, { path: "app.js", content: "…" }])
deploy_frontend(appId: "app-xxxxxx", zipUrl: "https://github.com/you/site/releases/download/v1/dist.zip")
deploy_frontend(appId: "app-xxxxxx", dir: "./dist")

files is the path from ChatGPT or any hosted client: the assistant writes the page and deploys it in the same turn. zipUrl takes an export from Lovable, Bolt or a GitHub release. dir is for an MCP running on the machine with the build output.

Hosted pages call the app API through the relative path /api/{endpoint}. The hosting proxy attaches the app identity server-side, so the browser never carries an API key. list_deployments shows the versions and rollback_deployment points the live URL back at an earlier one.

Security model

  • The tl_ key is exchanged for a short-lived JWT (POST /public/v1/auth/session); all calls run with the key owner's own permissions, never super-admin.

  • App API keys belong in server-side env vars (Next.js API routes), never in browser code. Frontends hosted on tasklite.dev need no key at all.

Development

npm install
npm run build
TASKLITE_API_KEY=tl_xxx TASKLITE_API_URL=http://localhost:3333 node dist/index.js

License

MIT

Available Tools

48 tools
add_commentAInspect

Post a comment on an item's thread. To notify people, pass their user ids in mentionedUserIds (each also appears as an @mention). attachmentIds references already-uploaded files. Needs projectId and itemId.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesItem (row) id
contentYesThe comment text
projectIdYesProject id (from list_projects / create_project)
attachmentIdsNoIds of already-uploaded attachments to link
mentionedUserIdsNoUser ids to @mention and notify

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal a mutating, non-destructive operation. The description adds useful behavioral context: mentions notify users and appear as @mentions, and attachments are not uploaded but referenced. However, it does not discuss return behavior, required permissions, or error conditions, so it is adequate but not particularly rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with the main action front-loaded and optional-parameter behavior explained efficiently. There is no wasted text; every sentence adds useful operational detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create operation with five flat, fully documented parameters and no nested objects or enums, the description is nearly complete. It states required context and clarifies the meaning of optional parameters. The only notable gap is that it doesn't describe the response object, but that is not essential for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters. The description mostly restates schema semantics (e.g., attachmentIds references already-uploaded files, mentionedUserIds are @mentions), without adding significant new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Post a comment on an item's thread.' This clearly identifies it as a create operation and distinguishes it from comment-management siblings like list_comments, update_comment, and delete_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains prerequisites (projectId and itemId) and optional behaviors (mentionedUserIds trigger notification, attachmentIds must reference already-uploaded files), but it never explicitly states when to prefer add_comment over alternatives or when not to use it. The usage context is implied rather than direct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_backendAInspect

Build a whole backend in one call from a spec you compose: the project, its boards, their typed columns (including relations between the boards), optional sample rows, and optionally a published REST API with one endpoint per board and a server-side key. Use it whenever the user describes a system ("a backend for my repair shop: customers, orders, payments") instead of calling create_project, create_board, create_column, create_app, publish_app, create_app_endpoint and create_app_api_key one by one. You do the design — pick column types by meaning (phone, date, currency, dropdown/status with options for closed choices), link boards with a relation column (type "relation", relatedBoard: "", relationType: many_to_one for an order→customer link) — and this tool executes it and returns one compact summary. API field names are derived from column names and never collide with reserved item fields, so there is nothing to retry. Boards are created as plain data tables (kind "data": only the columns you define, no task fields); set kind "tasks" on a board where people track work to do and want status, priority, assignee and due date built in. Every row still has a title.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiNoInclude to publish a REST API over every board and mint a key; omit for a boards-only build
boardsYesThe boards (tables) of the backend, in any order
projectYesThe project that holds the boards
organizationIdNoOrganization id; needed only when the account belongs to several (the error then lists them)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive, so the description's 'executes it' is consistent. The description adds useful behavioral context: it performs design choices, creates everything in dependency order, derives API field names with a no-retry guarantee, and returns a compact summary. That goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense and front-loaded with the core purpose and usage distinction. Later sentences earn their place by covering relations, task boards, API naming, and row title behavior. Some detail overlaps with the schema, but the structure is logical and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a high-complexity orchestration tool with nested objects and no output schema, yet the description covers the expected result ('one compact summary'), key edge behaviors (dependency order, relation resolution, API name derivation), and the primary alternative path. It does not fully specify response shape or error scenarios, but the provided context is sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself is rich, so the description does not need to restate parameter meaning. It adds value above the schema by explaining design intent (pick column types by meaning, link boards with relation columns, relatedBoard references, row title rules, kind defaults). This helps the agent compose a correct spec beyond just filling fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Build a whole backend in one call from a spec you compose', enumerating project, boards, columns, sample rows, and optional REST API. It explicitly contrasts itself with granular siblings by naming create_project, create_board, create_column, create_app, publish_app, create_app_endpoint and create_app_api_key, so an agent can immediately distinguish it from those tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Use it whenever the user describes a system... instead of calling [siblings] one by one.' It also tells when to use kind 'tasks' versus 'data', and explains when to include or omit the api object. This is strong routing and selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_external_accessA
Idempotent
Inspect

Read or change how EXTERNAL users (people who sign up to your app through TaskLite auth: POST /auth/register-external with this organizationId, then POST /auth/login) get into an organization. registrationPolicy: "open" — in at once; "approval" — an organization admin approves each signup (TaskLite mails the admins on every signup, and the person once approved; unapproved users are never billed); "closed" — invite only, self-signup refused. appLoginUrl: the page of YOUR app where these users log in — it becomes the "Log in" button in the approval email, so set it whenever you deploy an app that uses this flow; pass "" to clear. Call with no changes to just read the current settings. Requires organization admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
appLoginUrlNohttps URL of your app's login page for external users; "" clears it
organizationIdNoDefaults to the credential organization
registrationPolicyNoHow external sign-ups are admitted: open, approval or closed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only convey idempotent, non-destructive, read-write hints. The description adds important behavioral detail: approval mode emails admins on every signup, unapproved users are never billed, appLoginUrl becomes the approval email button, and reading is supported by calling with no changes. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the core purpose, then details each policy and parameter. Every sentence adds value, though the long run-on style could be tightened without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a configuration tool with three optional parameters and no output schema, the description is complete: it covers permissions, read vs. change behavior, every enum value, the appLoginUrl semantics, side effects, and prerequisites. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

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 substantially enriches each parameter: it explains the real-world meaning of open/approval/closed, the admin email and billing implications, the appLoginUrl button behavior, and the '' clearing convention. This goes far beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Read or change') and a clear resource: how external users get into an organization via registrationPolicy and appLoginUrl. It also distinguishes this configuration tool from general authentication tools like sign_up and login by spelling out the external-user flow it controls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage context: call with no changes to read settings, set appLoginUrl when deploying an app using this flow, pass '' to clear it, and organization admin rights are required. It doesn't explicitly name sibling alternatives, so it stops 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.

connectAInspect

Connect this machine to an existing TaskLite account, or switch to a different one. Takes a personal API key (tl_...) created at TaskLite → Integrations → "Connect Claude Code". Replaces the current connection if there is one — use this to switch user or organization. The switch takes effect immediately; no restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyYesPersonal TaskLite API key, starts with tl_

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that the tool replaces the current connection and that the switch takes effect immediately with no restart. This is useful behavioral context. The annotations already establish readOnlyHint=false and openWorldHint=true, so the description adds meaningful side-effect information without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the tool's core purpose, followed by key details on the API key, replacement behavior, and immediacy. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter connection tool with no output schema, the description covers the purpose, the input needed, the side effect of replacing an existing connection, and the timing of the switch. An agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the apiKey parameter, including the tl_ prefix. The description adds where the key is created (TaskLite → Integrations → 'Connect Claude Code'), which is helpful, but it does not substantially change parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: connecting this machine to an existing TaskLite account, and additionally switching accounts. It clearly distinguishes itself from siblings like sign_up or disconnect by specifying 'existing account' and 'switch to a different one.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: connect to an existing account or switch user/organization. It explicitly says 'use this to switch user or organization,' but it does not explicitly name alternatives such as sign_up or login or say when not to use those.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connection_statusA
Read-only
Inspect

Check whether this machine is connected to a TaskLite account. Call this first if any tool fails with an auth error.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the readOnlyHint by explaining its role in the authentication workflow, which is not implicit from the annotation alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundant information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides both the function (check connection) and the scenario in which it is needed, making the tool self-contained for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so there is nothing to explain. The description is complete without parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool's purpose: checking connection to a TaskLite account. The verb 'check' is specific and the resource is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use the tool ('Call this first if any tool fails with an auth error'), providing actionable guidance on ordering and error handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_appAInspect

Create an app — a named API surface over the boards of a project, for an external frontend. Then add endpoints and an API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name
projectIdYesProject id (from list_projects / create_project)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate that the operation is not read-only and not destructive; the description adds that the operation creates a scoped app entity and that endpoints/API keys are left for later steps. This aligns with annotations and provides workflow context beyond the structured fields. It could say more about side effects, but the main behavior 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, front-loaded with the core action and resource, and followed by a brief next-step clause. Every word earns its place; there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple creation operation with fully described schema parameters and no nested objects or output schema, so the description carries a modest burden. It explains what an app is and that endpoint/API-key setup follows. A small gap is that it does not state what is returned, such as the newly created app id, which an agent may need for subsequent steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters, so the baseline is 3. The description loosely maps to name and projectId through 'named API surface' and 'boards of a project,' but it does not add details like idempotency, name uniqueness, or the organizationId default. It provides no meaningful semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create an app' and defines it as 'a named API surface over the boards of a project, for an external frontend.' This clearly distinguishes it from project/board/item creation tools. The phrase 'Then add endpoints and an API key' also separates it from endpoint/key-related sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description positions create_app as the first step in a workflow: create the app, 'Then add endpoints and an API key.' This implies the subsequent use of sibling tools such as create_app_endpoint and create_app_api_key, though it does not name them explicitly. It gives useful context but does not include exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_app_api_keyAInspect

Create an API key for an app. SECURITY: the key must live server-side only (env var, Next.js API routes) — never in browser code. If the app has its own users, the server also sends X-App-User: <user id> with the key so per-user endpoints know who is acting.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHuman-readable name
appIdYesApp id or slug (from list_apps / create_app)
scopesNoPermissions recorded on the key: ["read"] or ["read","write"]. Omit to match the app: write when any endpoint accepts POST, PATCH or DELETE.
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses expected behavior (server-side key usage) and a conditional behavior (X-App-User header for apps with their own users). This adds meaningful operational detail not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a single-purpose statement followed by two brief security/usage notes. No redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple creation tool, the description provides adequate context including security and conditional header usage. It does not mention the return value (e.g., the API key itself), but since there is no output schema and the purpose is clear, this is not a critical omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all four parameters with 100% coverage. The tool description adds no significant parameter-specific detail; it focuses on usage and security, so it does not enrich parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create an API key') and the resource ('for an app'), with no ambiguity. It also includes a security note that differentiates it from other app-related tools like create_app or create_app_endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by explaining secure server-side storage and the conditional X-App-User header behavior. It does not explicitly mention when to choose this tool over sibling alternatives, but the purpose is self-explanatory enough that alternatives are not necessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_app_endpointAInspect

Expose a board as a REST endpoint of an app: /apps/{appSlug}/api/{slug}. exposedColumns limits which columns are readable/writable. rowLevelSecurity.enabled makes the endpoint per-user: the developer's server sends X-App-User: <their user id> next to the API key, and the endpoint returns, updates and deletes ONLY that user's rows (401 without the header). Use it whenever the app has its own users.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name
slugYesURL slug: lowercase letters, digits and dashes
appIdYesApp id or slug (from list_apps / create_app)
boardIdYesBoard id (from list_boards / create_board)
allowedMethodsNoHTTP methods the endpoint accepts: GET, POST, PATCH, DELETE
exposedColumnsNoColumns the endpoint reads and writes, with the JSON key each one gets; without it the endpoint returns bare metadata
organizationIdNoOrganization id; defaults to the credential organization when omitted
rowLevelSecurityNoRow-level security: when enabled, each app user sees and edits only their own rows

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains important runtime behavior, especially row-level security: the X-App-User header requirement, 401 behavior, and that only the user's rows are returned, updated, and deleted. It also clarifies readable/writable columns, which is useful beyond the annotations' readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient, front-loading the core purpose and then explaining key behavior without repeating schema details. It packs important security and column semantics into a compact, well-structured explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the most complex aspects: exposed columns and row-level security, including the reserved alias fields and per-user behavior. It does not describe the response format, but the schema already provides full parameter context and the output is likely a standard endpoint object, so this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Every parameter is described in the schema, and the description adds meaningful semantics: exposedColumns limits read/write access, rowLevelSecurity scopes requests per user, and alias naming restrictions avoid reserved fields. This goes well beyond the baseline schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: exposing a board as a REST endpoint, with the exact URL pattern. This distinguishes it from sibling tools like list_app_endpoints and update_app_endpoint while aligning with the create_app_endpoint name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a strong usage condition: 'Use it whenever the app has its own users' for row-level security. It does not explicitly contrast with alternatives, but the purpose is clear enough for an agent to select it over related endpoint tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_automationAInspect

Create an automation on a board: when something happens, do something. The most useful action here is http_request, which calls an external API and writes the answer back into columns — pair it with the "scheduled" trigger and the board keeps itself up to date (prices, exchange rates, shipment status, weather). Triggers: item_created, status_changed, column_value_changed, date_approaching, scheduled. Actions: http_request, send_notification, send_email, change_status, set_column_value, create_cross_board_item, send_webhook. Two more things every action list can use: a { type: "delay", config: { minutes | hours | days } } action pauses the run and resumes the actions after it later (reminders, follow-ups); and any network action (http_request, send_webhook, send_email, send_whatsapp) may carry config.retry: { attempts (1-5), delaySeconds (1-60) }. send_webhook accepts config.secret for an HMAC signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name
actionsYese.g. [{ type: "http_request", config: { url: "https://api.frankfurter.app/latest?from=USD&to=ILS", method: "GET", responseMapping: [{ path: "rates.ILS", columnId: "<column id from get_board_schema>" }] } }]
boardIdYesBoard id (from list_boards / create_board)
triggerYesEvent that starts the automation: item_created, status_changed, column_value_changed, date_approaching, or scheduled (cron)
isActiveNoWhether it is active
projectIdYesProject id (from list_projects / create_project)
triggerConfigNoe.g. { cron: "0 8 * * *" } for scheduled, { columnName } for column_value_changed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only state readOnlyHint=false and destructiveHint=false. The description adds meaningful behavioral detail: http_request writes responses back into columns, delay actions pause and resume the run, network actions support retry config, and send_webhook accepts an HMAC secret. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: it starts with the core purpose, highlights the most useful action pattern, then compactly enumerates triggers, actions, and cross-cutting options like delay and retry. Every sentence contributes useful information without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 7 parameters, nested objects, and no output schema, the description covers invocation well: all trigger and action categories, common configs, and examples. The main omissions are the return format and when triggerConfig is required, but these are minor relative to the overall completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds essential value beyond the schema by giving concrete examples for the actions array, triggerConfig, delay behavior, retry settings, and webhook secret usage. This is especially important for the complex nested actions parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Create an automation on a board') and explains the trigger/action model in plain language. The enumerated triggers and actions clearly identify what the tool does and distinguish it from sibling tools like list_automations or create_board.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete use context, such as pairing the scheduled trigger with http_request to keep a board updated with prices or exchange rates, and lists valid triggers and actions. It does not explicitly say when not to use the tool or name alternatives, but the guidance is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_boardAInspect

Create a board (a data table) inside a project. Add typed columns with create_column afterwards. kind: "tasks" (default) also gives the board the built-in task columns — status, priority, assignee, due date, tags — for work people track; "data" creates a plain table with only the columns you add, for records such as customers, products or orders (requires a TaskLite server from 2026-09-06; older servers ignore kind).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo"tasks": with the built-in task columns (status, priority, assignee, due date, tags). "data": only the columns you add. Default tasks.
nameYesHuman-readable name
projectIdYesProject id (from list_projects / create_project)
descriptionNoFree-text description

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint: false and destructiveHint: false, so the mutation behavior is not new. The description adds valuable behavioral context beyond annotations: tasks boards include built-in columns, data boards contain only added columns, and older servers ignore the kind parameter. This version-dependent behavior is a useful disclosure that annotations do not capture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense without fluff. It front-loads the core purpose, then addresses column creation and kind nuances, including the important version caveat. Every sentence contributes to correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose, kind behavior, defaults, server compatibility, and the relationship with create_column. It does not mention the return value or error cases, but given the simple create operation and rich schema, the essential context for an agent to select and invoke the tool is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds meaningful semantics beyond the schema by explaining the difference between tasks and data with concrete examples and clarifying that columns are added separately. This enhances parameter understanding, especially for kind and its server-version constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action and resource: 'Create a board (a data table) inside a project.' It also differentiates board creation from later column creation with 'Add typed columns with create_column afterwards.' The two kinds, tasks and data, are explained with distinct use cases, so an agent can understand what the tool does relative to siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear selection context by explaining when to choose tasks vs data boards, including examples like work tracking versus customer/product records. It also signals that column definition is a separate step handled by create_column. It does not enumerate exclusions or mention alternatives like update_board, but the context is strong enough for correct use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_columnAInspect

Add a typed column to a board. Valid types: text, rich_text, number, status, date, datetime, duration, people, checkbox, dropdown, label, priority, link, email, phone, relation, lookup, rollup, formula, rating, currency, file. Choose by meaning — date for dates, phone for phones, number/currency for amounts, dropdown/status (with settings.options as an array of labels) for closed choices; text is for free text only. An obvious name/type mismatch is rejected with the suggested type; pass force:true to override. Rules go in settings.validation: { unique, min, max, minLength, maxLength, pattern, patternMessage } — enforced on every write (UI, MCP, App API). Closed choices (dropdown/status) reject values outside settings.options unless settings.allowCustom is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name
typeYesColumn type: text, rich_text, number, status, date, datetime, duration, people, checkbox, dropdown, label, priority, link, email, phone, relation, lookup, rollup, rating, currency, file
forceNoCreate the column even when the name suggests a different type
boardIdYesBoard id (from list_boards / create_board)
settingsNoType-specific settings. For dropdown/status/priority: options, either as labels ["A","B"] or as full objects [{value,label,color}] — labels are expanded server-side, and colors are assigned if you do not supply them.
projectIdYesProject id (from list_projects / create_project)
isRequiredNoRequire a non-blank value on every App API create

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behaviors: obvious name/type mismatches are rejected with a suggested type, force overrides this, validation rules are enforced on every write, and closed-choice types reject values outside options unless allowCustom is true. This goes well beyond the minimal annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded, but it repeats the full type list already present in the schema's type property. The extra guidance is valuable, but the list could have been shortened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, parameter semantics, validation behavior, and key edge cases. Even without an output schema, the agent has enough context to call the tool correctly and understand the consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes every parameter, and the description adds substantial meaning: type selection semantics, settings.options formats, colors being assigned server-side, validation rule shape, and the meaning of force. This gives the agent a clear model of all relevant parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the specific action: adding a typed column to a board. It clearly distinguishes this from sibling tools like update_column, delete_column, and reorder_columns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical guidance on when to use the tool and how to choose column types, including the meaning-based type selection advice and the force:true override. It does not explicitly contrast with update_column or other column tools, but the intended use is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_itemAInspect

Create an item (row) with all of its data in one call. cells maps columnId -> value (use get_board_schema for column ids); every cell is saved with the row. Use set_cell only for later edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags as an array of strings
cellsNoCell values keyed by column id: { "<columnId>": value }. Scalars, { amount, currency } for currency, { relatedItemIds: [...] } for relations
titleYesItem title, shown as the row name
statusNoStatus value (todo, in_progress, done, or a value from the board's status options)
boardIdYesBoard id (from list_boards / create_board)
dueDateNoISO date
priorityNoPriority: low, medium, high or urgent
projectIdYesProject id (from list_projects / create_project)
descriptionNoFree-text description

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint false, destructiveHint false), the description adds behavioral details: it performs a single call that saves all cells with the row, and it distinguishes this from set_cell, which is for later updates. This gives the agent a better understanding of the tool's execution model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the primary purpose. It avoids redundant language and packs essential guidance (cells mapping, set_cell distinction) into a small space without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create operation with no output schema, the description covers the key aspects: creation, the cells map, and the alternative for later edits. It does not mention return values, which is acceptable given the absence of an output schema, and the required parameters are clearly defined in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes each parameter, but the description adds value by explaining the 'cells' parameter more operationally (use get_board_schema for column ids) and emphasizing that every cell is saved in the same call. This goes beyond the schema's basic property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create an item') and the resource ('item (row)'), and it distinguishes the tool from alternatives like set_cell by noting that all data is saved in one call. It also references get_board_schema for column ids, which is a specific usage hint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use set_cell only for later edits,' which provides a clear alternative and when-not-to-use guidance. It also explains how to use the 'cells' parameter with get_board_schema, offering operational context for a key parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectBInspect

Create a project (a business process container). Boards with data live inside projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name
descriptionNoFree-text description
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly false and destructive false, which aligns with the 'Create' verb. The description adds context about the project being a container for boards, but does not disclose any side effects or specific behaviors beyond the creation itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using only two sentences to convey the purpose and a key characteristic. It is well-structured, with the action stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create operation with a fully described input schema, the description is adequate. It explains the fundamental concept of a project and its relationship to boards. It does not mention output or error cases, but these are not required given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides descriptions for all three parameters (name, description, organizationId). The tool description adds no additional semantic information, so it does not improve upon the schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific action ('Create a project') and defines what a project is ('a business process container'). It gives enough context to distinguish from board creation, but could be more explicit about when to use this vs other create tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus alternatives such as create_board or list_projects. No conditions or selection criteria mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_boardA
Destructive
Inspect

Delete a board with every item on it. Destructive and not undoable — confirm with the user first, and prefer delete_column when only part of the model is wrong.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesBoard id (from list_boards / create_board)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the destructiveHint annotation by specifying that the operation deletes all items on the board, is not undoable, and requires user confirmation. This is exactly the type of behavioral context that annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the destructive scope, then adds the critical user-confirmation requirement and the sibling alternative. Every clause earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-required-parameter destructive tool with no output schema, the description covers all essential operational context: what is destroyed, irreversibility, confirmation requirement, and when to use a different tool. Nothing crucial for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both boardId and projectId with source hints from list/create calls, and schema description coverage is 100%. The description adds no parameter-level detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb plus resource — 'Delete a board with every item on it' — and explicitly scopes the operation beyond the tool name by noting the cascade. This also differentiates it from delete_column, which is named as the narrower alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to confirm with the user before invoking, and names delete_column as the preferred alternative when only part of the model is wrong. This gives an agent concrete decision criteria rather than leaving the choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_columnA
Destructive
Inspect

Delete a column and every value stored in it. Destructive — confirm with the user first. Use update_column when the column is right but its name, type or options are wrong.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesBoard id (from list_boards / create_board)
columnIdYesColumn id (from get_board_schema)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns that the operation is destructive and advises confirming with the user first, adding context beyond the destructiveHint annotation. It also clarifies the scope (deletes every value stored in the column), which is valuable behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences deliver all necessary information without redundancy. It is well-structured, front-loading the core action and then adding critical caveats (destructive, confirm, alternative tool).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential context: what the tool does, its destructive nature, user confirmation, and when to avoid it. It does not mention potential cascading effects or dependencies on column references, but given the simplicity of the deletion operation and the absence of an output schema, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add any parameter-specific meaning beyond the schema. However, since the schema itself has 100% coverage for all three parameters (projectId, boardId, columnId), the description's lack of additional per-parameter details is acceptable and aligns with the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (delete a column) and the resource (column), and explicitly mentions that it removes all values stored in it. It also distinguishes itself from update_column, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use this tool (deleting a column) and when to use the alternative update_column (when the column is right but name/type/options are wrong). This directly helps the agent choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_commentA
Destructive
Inspect

Delete a comment from an item thread. Destructive — confirm with the user before calling. Needs projectId, itemId and the commentId.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesItem id (from query_items / create_item)
commentIdYesComment id (from list_comments / add_comment)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already marks this as destructive, and the description adds a meaningful behavioral instruction: confirm with the user before calling. It also emphasizes that all three IDs are required. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and every sentence adds value: what it does, the destructive warning, and the required IDs. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete mutation with only three required parameters, rich schema descriptions, and a destructiveHint annotation, the description is complete. It covers the necessary IDs, the user-confirmation requirement, and the destructive nature, leaving no critical gap for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with clear provenance descriptions (e.g., commentId from list_comments / add_comment). The description merely lists the parameter names without adding new semantic information, so a baseline score of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Delete a comment from an item thread') and identifies the exact resource and scope. It is immediately distinguishable from sibling tools like list_comments, add_comment, and update_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool should be used: whenever a comment needs to be deleted, and it explicitly notes that the user should confirm before calling because the operation is destructive. It does not name alternative tools or explicitly state exclusions, so it stops 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.

delete_itemA
Destructive
Inspect

Delete an item. Destructive — confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesItem id (from query_items / create_item)
boardIdYesBoard id (from list_boards / create_board)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Destructive' and the confirmation requirement beyond the annotations (destructiveHint: true). It clearly signals the side effect of permanent deletion, aligning with the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and to the point, with no unnecessary words. It effectively communicates the purpose and the key warning in two short sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description covers the essential context: what the tool does and the required user confirmation. It could mention permanence explicitly, but the destructive hint and warning make it sufficiently clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not describe the parameters, but the schema already provides detailed descriptions for all three with 100% coverage. The description adds no additional semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete an item') with a specific verb and object, and the destructive warning adds clarity. It is easily distinguished from sibling tools like create_item or update_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance to 'confirm with the user before calling', which is a clear precondition for use. It does not explicitly mention alternatives, but the destructive nature implies this is for intentional deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_projectA
Destructive
Inspect

Delete a project with every board, column and row inside it. Destructive: confirm with the user first, and name the project in the confirmation. The project goes to the organization recycle bin, so it can be restored from the admin until it is emptied.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id (from list_projects / create_project)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses the destructive nature, the confirmation requirement, and that the project goes to the recycle bin for admin restoration, going beyond the destructiveHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, covering scope, user instruction, and recovery in two sentences with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It fully explains the action's impact and recovery path, and since there is no output schema, no further return-value documentation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are clearly described: projectId explains its source (list_projects/create_project) and organizationId notes the default behavior. Schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes a project and all its contents (boards, columns, rows), distinguishing it from sibling delete tools like delete_board and delete_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to confirm with the user first and name the project in the confirmation, providing clear usage guidance and safety instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_frontendAInspect

Deploy a static frontend to TaskLite hosting and get a live URL https://{slug}.tasklite.dev (HTTPS, auto-published on first deploy, versions kept for rollback_deployment). Hand over the frontend in ONE of three ways: files — the files inline (path + content), the way to go from ChatGPT or any hosted client: write index.html and its assets, then deploy in the same turn; zipUrl — a public https URL of a zip (a Lovable/Bolt export, a GitHub release asset); dir — a build output folder on this machine (only when the MCP runs locally next to the files). In the frontend, call the app API via relative /api/{endpoint} — the hosting proxy injects the app identity, so no key ships to the browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoLocal path to the BUILD OUTPUT directory (the one containing index.html), not the project root. Only where the MCP runs on the same machine as the files
appIdYesApp UUID or slug (app-xxxxxx) — see list_apps
filesNoThe site files inline. Must include index.html. Up to 500 files / 8MB decoded — right for a frontend written in the conversation
zipUrlNoPublic https URL of a zip of the BUILD OUTPUT (index.html at the root, or inside a single top-level folder). Up to 50MB
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses behavior beyond the annotations: auto-publishing on first deploy, version retention for rollback, HTTPS and live URL, and the proxy behavior that injects app identity via /api so no API key reaches the browser. These are meaningful context details and do not contradict the provided annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficiently organized: the core purpose and URL format come first, followed by mode-specific guidance and a final note about API routing. Every sentence provides operational value, with no filler or redundant restating of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and lack of an output schema, the description covers everything an agent needs to invoke it correctly: deployment modes, eligibility conditions, file constraints, resulting URL, versioning behavior, and how the deployed frontend should call the API. This is a complete and self-sufficient definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is already 100%, the description adds decision-relevant meaning beyond the raw parameter descriptions. It explains when each deployment mode should be used, gives concrete examples like Lovable/Bolt exports, and adds constraints like file counts and sizes that reinforce and extend the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and outcome: 'Deploy a static frontend to TaskLite hosting and get a live URL'. It clearly identifies the resource and result, and it distinguishes itself from related tools like rollback_deployment by mentioning version retention.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly enumerates the three accepted input modes and the conditions for choosing each: files for hosted clients/ChatGPT, zipUrl for Lovable/Bolt exports or GitHub release assets, and dir only when the MCP runs locally. This gives clear when-to-use guidance and even hints at when rollback_deployment would be relevant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disconnectA
Destructive
Inspect

Disconnect this machine from TaskLite by forgetting the stored credential. Use before connecting a different account, or to revoke local access. Does not delete anything in TaskLite itself and does not revoke the key server-side.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description transparently discloses the tool's local-only scope, stating that it does not delete anything in TaskLite or revoke the key server-side. This aligns with the destructiveHint annotation (the stored credential is removed) while clarifying that no broader destructive effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, consisting of two sentences that convey all necessary information without redundancy or extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, single action), the description fully covers what it does, when to use it, and its limitations. It leaves no gaps that would prevent an agent from using it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to describe. Per the rubric, a baseline of 4 is appropriate when no parameters exist. The description does not need to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: disconnecting the machine from TaskLite by forgetting the stored credential. It uses a specific verb ('disconnect') and resource ('machine from TaskLite'), and distinguishes it from server-side actions. This differentiates it from sibling tools like 'connect' and 'login'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Use before connecting a different account, or to revoke local access.' This clarifies when the tool should be invoked and contrasts with server-side revocation, leaving no ambiguity about its intended use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_projectA
Read-only
Inspect

The whole project as JSON — boards, columns with settings, items with their cells keyed by column id. For migrations, backups and reading a system back. Items are capped per board for the model's sake; the REST endpoint GET /organizations/{orgId}/projects/{projectId}/export.json returns everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id (from list_projects / create_project)
organizationIdNoDefaults to the credential organization
maxItemsPerBoardNoDefault 200

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnly and non-destructive. The description adds useful behavioral context beyond that: the item cap per board and the fact that the REST endpoint returns the complete export. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the key output shape and use cases. The phrase 'reading a system back' is slightly awkward and the full endpoint path adds minor noise, but overall it is compact and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only export tool with no output schema, the description adequately covers output composition, intended use cases, the item cap, and the complete-data alternative. An agent has enough context to select and call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents projectId, organizationId, and maxItemsPerBoard. The description does not add parameter-level semantics beyond the general cap behavior, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action (export), a resource (the whole project), and the exact content of the JSON: boards, columns with settings, items with cells keyed by column id. This clearly distinguishes it from sibling list_* and get_board_schema tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: for migrations, backups, and reading a system back. It also tells the agent that items are capped per board and that the REST endpoint returns everything, effectively providing an alternative when the full dataset is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetchA
Read-only
Inspect

One project, board or item in full, by the id search returned (project:, board::, item:::) or by an app URL path. Returns { id, title, text, url, metadata } — the ChatGPT fetch contract; text is the record as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAn id from search, or an app URL path such as /projects/…/boards/…/items/…
organizationIdNoOnly needed for project ids when the credential has no default organization; otherwise resolved automatically

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly and non-destructive behavior. The description adds useful behavioral details beyond that: the exact return shape and the important fact that text contains the record serialized as JSON. This gives the agent expectations for the response even without an 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences deliver resource scope, id formats, invocation source, and return contract with no filler. The most important identifying information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one required parameter, the description covers id formats, invocation alternatives, and the return contract, compensating for the missing output schema. The optional organizationId is adequately documented in the input schema, so nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds extra meaning by spelling out the composite id encodings (project:<id>, board:<projectId>:<boardId>, item:<projectId>:<boardId>:<itemId>) and the app URL-path alternative, which is more specific than the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (fetch) acting on a specific resource (one project, board, or item) and gives exact id formats and URL-path alternatives. This clearly distinguishes it from listing, searching, and mutating siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says the id comes from a previous search and that app URL paths are also accepted, giving the agent concrete when-to-call context. It does not explicitly name alternatives or exclusions, but the usage context is clear enough for selecting this tool over search/list siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_app_specA
Read-only
Inspect

Get the machine-readable spec of an app (base URL, endpoints, methods, fields) — use it to generate frontend API calls. appId accepts either the app UUID or its slug (app-xxxxxx); list_apps shows both. The returned baseUrl is absolute — use it verbatim, do not rebuild it from the admin URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesApp id or slug (from list_apps / create_app)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only, and description adds behavioral note about returning an absolute baseUrl to use verbatim.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each adding distinct information, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description lists spec contents and provides a caveat about baseUrl, covering key aspects for a read-only operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes both parameters; description adds minimal extra info beyond the schema, maintaining baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool gets the machine-readable spec of an app, listing contents (base URL, endpoints, methods, fields) and purpose (generate frontend API calls), distinguishing it from listing tools like list_apps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides use case ('generate frontend API calls') and parameter guidance (appId accepts UUID or slug, list_apps shows both) but does not explicitly contrast with other app-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_board_schemaA
Read-only
Inspect

Get a board with its full column schema (ids, names, types, settings). Call this before creating items with cells.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesBoard id (from list_boards / create_board)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate readOnlyHint=true and destructiveHint=false. The description simply says 'Get a board' without adding side-effect context (e.g., auth needs, rate limits). Since annotations cover the main behavioral trait, a middle score is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, and clearly structured. It front-loads the core purpose and includes a practical note. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with just two parameters, the description covers the essential context: what is retrieved and why it is used. It does not specify return format, but no output schema exists, and the use case is clear. Minor omission of edge-case guidance prevents a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% parameter coverage with descriptions for both boardId and projectId. The description adds no additional parameter meaning, so with high schema coverage, the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Get a board' and specifies the detailed content: 'full column schema (ids, names, types, settings)'. It also distinguishes its purpose from list_boards by focusing on schema retrieval, and the use case 'before creating items with cells' reinforces its intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: 'Call this before creating items with cells.' This gives clear situational guidance, though it does not explicitly mention alternatives or when not to use it. The instruction is specific and actionable, earning a high score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_frontend_promptA
Read-only
Inspect

Get a ready-made prompt describing the app backend, for pasting into a frontend generator (v0/bolt/lovable/cursor). appId accepts the app UUID or its slug (app-xxxxxx) — use list_apps to find it.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesTarget tool the prompt is written for
appIdYesApp id or slug (from list_apps / create_app)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint true and destructiveHint false, and the description's 'Get' wording implies no side effects. It does not describe return format or errors, but the read-only behavior is sufficiently covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences with no redundant wording. It packs the purpose, use case, and parameter guidance efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has no output schema or nested objects, and all required parameter context is provided. The mention of list_apps gives sufficient integration context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are described with 100% schema coverage. appId is clarified to accept UUID or slug, organizationId notes its default behavior, and tool has an enum with an explanatory description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses the specific verb 'Get' and identifies a clear resource: a ready-made prompt describing the app backend for frontend generators. This distinguishes it from related tools like get_app_spec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly states when to use the tool (when needing a prompt for frontend generators) and gives a prerequisite ('use list_apps to find it'). It does not explicitly contrast with sibling tools, but the use case is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_app_endpointsA
Read-only
Inspect

List an app's REST endpoints — slug, board, allowed methods, and how many columns each exposes. An endpoint exposing 0 columns is broken: it returns only item metadata and silently discards writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesApp id or slug (from list_apps / create_app)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context beyond that: endpoints with 0 exposed columns are broken and silently discard writes. This kind of operational insight helps the agent interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The core purpose comes first, and the broken-endpoint warning adds significant operational value without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with no output schema, the description conveys the return contents and a key data-quality caveat. It is concise and sufficient for correct invocation, though it could optionally mention the response shape more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented (appId, organizationId). The description adds no extra parameter-level meaning, which is acceptable because the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and identifies the exact resource ('an app's REST endpoints') plus the fields returned (slug, board, allowed methods, column count). This clearly differentiates the tool from siblings like list_apps or get_app_spec 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: this is the tool for enumerating an app's endpoints and their properties. It doesn't explicitly contrast itself with alternatives, but its scope is specific enough that an agent can infer when 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_appsA
Read-only
Inspect

List the apps in the organization — id, slug, status. Call this first when you need an app id: the slug (app-xxxxxx) is what shows up in URLs and in generated code, and this is how you map it back to the app.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so no hidden side effects exist. The description adds useful behavioral context beyond the schema, explaining that the slug is what appears in URLs and generated code and how to map it back to the app id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler. The core listing purpose is front-loaded, followed immediately by the most important usage note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list operation with a single optional parameter, the description plus schema and annotations provide everything an agent needs to select and invoke the tool correctly. Return fields are stated, and the safety profile is covered by annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter organizationId is fully described in the schema, including its default behavior. The description adds no parameter-specific detail, which is acceptable since schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the apps in the organization') and the exact fields returned (id, slug, status). The slug-to-app-id mapping guidance strongly differentiates it from sibling list tools like list_projects and list_boards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to call this tool first when an app id is needed, which is actionable usage guidance. It does not explicitly name alternatives or when not to use it, but the tool name and context make the scope clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_automationsA
Read-only
Inspect

List the automations on a board, so you can see what already runs before adding another.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesBoard id (from list_boards / create_board)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes safety, and the description confirms a read-only listing action. No side effects or contradictions are present, though output shape is not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence communicates the action, target, and purpose without extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool, the description covers purpose and parameters adequately. The absence of an output schema is acceptable given the straightforward nature of the action, though a note on the returned automation list would be slightly richer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both required parameters are documented with clear meanings and provenance hints (from list_boards / create_board and list_projects / create_project). Schema coverage is 100%, so the description adds sufficient context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List'), a specific resource ('automations on a board'), and a clear reason ('so you can see what already runs before adding another'). It is easily distinguished from the sibling create_automation tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly indicates when to use the tool: before adding another automation. It does not name the alternative create_automation, but the context makes the intended workflow clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_boardsA
Read-only
Inspect

List the boards inside a project — id, name, description. Every other board tool needs a boardId, and this is the only way to discover one without being handed a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based; defaults to 1
limitNoDefaults to 50
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the returned field set and the discovery role, which is useful context beyond the annotations. Pagination behavior is not described, but the page/limit parameters make it inferable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight, front-loaded sentence that covers the verb, resource, output fields, and the key usage rationale. Every clause earns its place; there is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, the description is complete: it names what is returned, identifies the required parent scope, and explains why the tool is needed. The absence of an output schema is compensated by listing the return fields, while schema and annotations cover parameters and safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the meaning of projectId, page, and limit is already fully documented. The description adds no parameter-level detail beyond the implicit 'inside a project' scope, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('List'), a precise resource ('boards inside a project'), and the returned fields (id, name, description). The added note that every other board tool needs a boardId clearly differentiates it from the many board-related siblings 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent when to use this tool: it is the only way to discover a boardId unless the user provides a URL, and all other board tools depend on that ID. This gives a clear decision rule for using it before board mutations or queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_commentsA
Read-only
Inspect

List the comments (the correspondence thread) on an item, oldest first. Each comment includes its author and any @mentions. Needs projectId and itemId (get itemId from query_items).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page, default 1
limitNoPage size, default 20
itemIdYesItem (row) id
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only, non-destructive behavior is covered. The description adds no extra behavioral context such as rate limits or authentication requirements, so it meets but does not exceed the baseline for tools with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, with the main purpose front-loaded. It avoids unnecessary detail and stays focused, making it easy to scan and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the output format (comments with author and mentions), the ordering (oldest first), and the required parameters. Given the tool's simplicity and the absence of an output schema, it provides enough context for correct invocation without over-explaining.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all 4 parameters, so the baseline is 3. The description adds value by explicitly tying itemId to query_items and clarifying that projectId and itemId are required, which helps the agent understand how to obtain them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), the resource ('comments on an item'), and the ordering ('oldest first'). It also clarifies that each comment includes author and @mentions, distinguishing it from other comment tools like add_comment or delete_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a useful usage hint by telling the agent to get itemId from query_items. However, it does not explicitly name alternatives or state when not to use this tool, so it falls short of fully explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_deploymentsA
Read-only
Inspect

List the hosted-frontend deployments of an app — versions, which one is live, and the public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesApp id or slug (from list_apps / create_app)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description does not add extra behavioral details about side effects or requirements, so it meets the baseline for a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and resource, then lists the key output attributes. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions that the output includes versions, the live deployment, and the public URL, which gives agents an idea of what to expect. It doesn't mention pagination or ordering, but those are minor for a list operation and no output schema is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides descriptions for both parameters (appId and organizationId), including the default behavior for organizationId. The description does not add further clarification beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'hosted-frontend deployments of an app', and it distinguishes the tool from siblings like deploy_frontend and rollback_deployment by specifying the output (versions, live status, public URL).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the appropriate use case (when you need to view deployment versions and status), but it does not explicitly contrast with alternative list tools such as list_apps or get_app_spec. Still, it provides enough guidance for a straightforward listing operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_organizationsA
Read-only
Inspect

List the organizations the authenticated user belongs to. Use the returned id as organizationId in other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds context about scoping to the authenticated user and the follow-up use of the id, but does not disclose details like pagination, ordering, or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The purpose is front-loaded and the follow-up usage instruction is immediately actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool, the description is complete: it states the scope, the result's key value, and how to use that value. No output schema exists, but the description gives enough context to invoke the tool and consume its result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so parameter semantics are not a burden. The baseline of 4 applies, and the description does not need to explain any input fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('organizations the authenticated user belongs to'), making the tool's purpose clear. It is naturally distinguished from sibling tools like list_projects and list_boards by the organization resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates that this tool is for obtaining organization IDs, and instructs using the returned id as organizationId in other tools. It does not explicitly mention when not to use it or contrast with alternatives, but the intended context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsA
Read-only
Inspect

List projects in an organization. The API returns 50 per page — an organization with more than that needs page 2 and beyond, so check the returned total before assuming a project does not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based; defaults to 1
limitNoDefaults to 50
organizationIdNoDefaults to the credential organization

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful behavioral detail beyond annotations: the API paginates at 50 per page and callers must check the returned total to avoid false negatives. This is valuable context for correct result interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, and the additional pagination caveat is directly relevant to successful use. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation, the description covers the key invocation concern: pagination and the need to verify totals. There is no output schema, but the description still communicates enough about what the caller must handle. It could mention the return format briefly, but the absence is minor given the tool's simplicity and annotation coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds meaning beyond the schema by explaining that the default page limit of 50 has real consequences: an organization with more projects requires pagination. This enriches the page and limit parameter semantics without repeating schema content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List projects in an organization.' This clearly identifies what the tool does, though it does not explicitly contrast itself with siblings like list_boards or list_organizations. The resource naming is enough for an agent to understand the basic purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this tool lists projects at the organization level, so an agent can infer when to call it over organization- or board-level alternatives. It does not explicitly state exclusions or alternative tool names, but the page-size guidance provides practical usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

loginAInspect

Connect this machine to an existing TaskLite account with email + password, or switch to a different account. Creates a personal API key named "claude-code" on that account and stores it, so the password is used once and never saved. Replaces the current connection if there is one. Prefer connect when the user already has a tl_ key.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address
passwordYesUsed once to mint an API key; never stored

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses all important side effects: creates a personal API key named 'claude-code', stores it, uses password only once, and replaces the current connection. This is transparent about what the tool does beyond just authenticating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: first sentence states the action, second explains the side effect, third provides alternative usage. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides all necessary context: what the tool does, its side effects, and when to use an alternative. Since there is no output schema, the description adequately covers the tool's behavior and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with adequate descriptions for both email and password. The description does not add extra meaning beyond the schema, but the baseline is 3 given complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: connecting to an existing TaskLite account with email/password, or switching accounts. It also distinguishes itself from the sibling 'connect' tool by noting when to prefer it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides a usage condition: 'Prefer connect when the user already has a tl_ key.' It also explains the side effect of creating and storing an API key, giving clear guidance on how and when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_appAInspect

Publish an app — required before its API endpoints accept external calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesApp id or slug (from list_apps / create_app)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not reveal side effects or state changes beyond 'publish'. It is neither read-only nor destructive per annotations, but no detail is given about what happens during publishing (e.g., whether it is reversible or triggers a deployment).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant information. It is well-structured and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately explains the tool's purpose and prerequisite, and the schema covers parameters. It lacks information about return values or error behavior, but this is not critical for a publish action. Overall, it provides sufficient context for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description does not add meaning beyond the parameter schema, which already has clear descriptions for appId and organizationId. The description provides no extra context about parameter usage or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Publish' and the resource 'app', and provides a specific purpose: it is required before API endpoints accept external calls. This gives an unambiguous understanding of what the tool does and distinguishes it from other app-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (before external calls are accepted) but does not explicitly contrast it with alternatives like build_backend or deploy_frontend. It lacks explicit guidance on when to prefer this over other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

push_statusA
Read-only
Inspect

Whether an app can send push notifications to phones, and how many devices are registered. Push goes out through the customer's OWN Firebase project, so it has to be configured once per app before send_push automations do anything. This tool never returns the key.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesApp id or slug (from list_apps / create_app)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds valuable behavior details: it never returns the key, and it explains the dependency on the customer's own Firebase project. This helps the agent understand side effects and security boundaries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no redundant wording. It packs the essential purpose, configuration prerequisite, and a key security behavior into a compact, readable form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives enough context for a simple read-only status tool: what it checks, what it reports, and what it never returns. It does not describe exact output structure, but no output schema is provided and the tool is low-complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for both parameters with clear descriptions. The tool description does not add 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks whether an app can send push notifications and reports the number of registered devices. It distinguishes this read-only status check from send-related tools like send_test_push.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that Firebase must be configured before send_push automations work, implying this tool should be used to verify configuration readiness. It does not explicitly name alternative tools, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_itemsA
Read-only
Inspect

List items (rows) of a board, including their cell values. Returns all items unless limit/page are given (the API defaults to 50 per page when unpaged, so the tool pages through and concatenates). Narrow the result with search, status, priority and sort instead of fetching everything. This is the admin view; the REST endpoints of a published app take a fuller grammar — filter[column][gte], relation filters, per-field search — see get_app_spec.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page, only with limit
sortNoSort by title, createdAt, updatedAt or status; prefix with "-" for descending, e.g. "-createdAt". Anything else keeps the board order
limitNoPage size; omit to fetch all items
searchNoFree text; matches the row title and its text cells
statusNoOnly rows with one of these statuses, comma separated: "todo,in_progress" (task boards only)
boardIdYesBoard id (from list_boards / create_board)
archivedNoWhich rows to include. Default active
priorityNoOnly rows with one of these priorities, comma separated (task boards only)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnly=true and destructiveHint=false. The description adds useful behavioral context about pagination defaults (50 per page, auto-pagination) and notes it is the admin view, but does not mention auth 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense, front-loading the core purpose and then adding pagination, filtering, and admin-view context without fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description sufficiently covers the tool's behavior: what it returns, pagination, filtering options, and when to use it. It also points to get_app_spec for advanced filtering, making it complete for the intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed parameter descriptions (e.g., sort format, status/priority task-board-only). The tool description adds a couple of behavioral nuances (page only with limit, omit limit to fetch all), slightly enriching beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List items (rows) of a board' with a specific verb 'list' and resource 'board'. It distinguishes from sibling tools like create_item and get_board_schema, and clarifies it is the admin view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use this tool (to list items, with pagination and filtering), advises narrowing results instead of fetching everything, and points to get_app_spec for more advanced REST grammar, making the when/where alternatives clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_columnsA
Idempotent
Inspect

Set the display order of a board's columns. Pass every column id in the wanted order (get_board_schema lists them).

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesBoard id (from list_boards / create_board)
columnIdsYesColumn ids in the new order (every column of the board)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish mutating, idempotent, non-destructive behavior. The description adds that the order is set as a complete list rather than a partial patch, which is useful, but it does not disclose response behavior or failure modes. This is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler. The core action comes first, and the critical full-list requirement is stated in the second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter reorder tool with a fully documented schema and safe/idempotent annotations, the description is nearly complete. It covers the full-set requirement and points to get_board_schema; it only omits explicit output/failure details, which are less critical here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the columnIds schema already states 'new order' and 'every column of the board.' The description's main added value is pointing to get_board_schema as the source for valid column ids, which is helpful but not a substantial semantic addition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Set') and a precise resource ('display order of a board's columns'), which distinguishes it from siblings like create_column, update_column, and delete_column. The action is immediately clear and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational context: pass every column id in the wanted order and use get_board_schema to obtain those ids. It does not explicitly name alternatives or exclusion conditions, but for a simple reorder operation the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollback_deploymentAInspect

Point the live URL back at a previous deployment version (see list_deployments for available versions).

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesApp id or slug (from list_apps / create_app)
versionYesDeployment version number (from list_deployments)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose that this action overwrites the current live deployment, nor does it mention whether the change is reversible, the required permissions, or any confirmation step. The destructiveHint annotation is false, but the action has a significant impact on the live environment, so transparency is lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no fluff. It efficiently conveys the purpose and points to a related tool, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for the operation's simplicity, but it omits details about the return value or success/failure indicators. Given that no output schema is provided, this is a minor gap and does not hinder basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions already cover appId and version thoroughly, and the description adds minimal extra meaning (e.g., 'previous deployment version'). Since the schema coverage is 100%, the description does not need to compensate, but it also does not enrich the parameters further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Point the live URL back') and the target resource ('a previous deployment version'), and references list_deployments for available versions, distinguishing it from sibling tools like deploy_frontend or list_deployments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implicitly guides usage by referencing list_deployments to find versions, but does not explicitly contrast with deploy_frontend or state conditions for when a rollback is preferred over a new deployment. Still, the context is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_test_pushAInspect

Send one real push notification to the given app users, to prove the chain works before an automation depends on it. Confirm with the user first: this reaches actual phones.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoNotification body
appIdYesApp id or slug (from list_apps / create_app)
titleNoNotification title; defaults to "TaskLite"
userIdsYesApp user ids to notify (the same ids row-level security uses)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description prominently discloses that this sends a real push notification and that it reaches actual phones, which is the key behavioral side effect. It also advises confirming with the user first, providing important transparency beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well structured, using two sentences to communicate the action, purpose, and an important user-confirmation caveat without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides sufficient context for a test push tool: what it sends, to whom, and why. It does not describe return values or failure behavior, but there is no output schema requiring that, so the omission is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters are described in the schema, and the description adds helpful context such as referencing list_apps/create_app for appId and tying userIds to row-level security. Some details, such as body being optional while appId and userIds are required, are not explicitly clarified, but overall semantics are clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: sending one real push notification to specified app users, and explains its purpose: to prove the chain works before relying on an automation. It is easy to distinguish from sibling tools because it explicitly frames itself as a test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by saying the tool should be used to 'prove the chain works before an automation depends on it' and instructs to confirm with the user first. It does not explicitly name alternative tools, but the intended scenario is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_cellAInspect

Set a single cell value on an item by columnId.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe new cell value; shape depends on the column type
itemIdYesItem (row) id
boardIdYesBoard id (from list_boards / create_board)
columnIdYesColumn id (from get_board_schema)
projectIdYesProject id (from list_projects / create_project)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description implies mutation but does not elaborate on overwriting behavior, validation, or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear, and direct sentence with no filler. It front-loads the verb and object, making the tool's purpose immediately understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Invocation details are complete: all required parameters are explained, and references to get_board_schema help the agent determine value shapes. No output schema is provided, so return-value documentation is not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters are described, with helpful provenance for IDs (e.g., boardId from list_boards/create_board, columnId from get_board_schema). The value parameter notes that its shape depends on the column type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the operation: 'Set a single cell value on an item by columnId.' It is specific and distinct from sibling tools like update_item, which implies broader updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to choose this over alternatives such as update_item. The intended use is only inferred from the purpose, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sign_upAInspect

Create a brand-new TaskLite account + organization and connect this machine — no website visit needed. A strong random password is generated locally and never shown or stored; for web access the user later uses "forgot password" with this email. Ask the user for email, their name, and a business name before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe user's full name
emailYesEmail address
organizationNameYesBusiness/organization name

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description transparently discloses the side effects: creating an account and organization, connecting the machine, generating a password locally, and not showing or storing it. This is especially important given the openWorldHint and readOnlyHint annotations, and the description fully aligns with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, using two focused sentences to convey purpose, side effects, and caller instructions. There is no redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential context: what the tool does, what the agent should ask for, and important security-related behavior. It does not describe failure cases or return behavior, but given the absence of an output schema and the clear side-effect disclosure, it is sufficiently complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides clear descriptions for all three required parameters, and the tool description mostly restates them rather than adding deeper semantic meaning. It does not introduce ambiguity, but it also does not significantly extend the schema's parameter-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a brand-new TaskLite account and organization and connects the machine, distinguishing it from login, connection_status, and other account-related tools. It also explicitly notes that no website visit is needed, further clarifying its unique purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to ask the user for email, name, and business name before calling, and explains the sign-up flow including the locally generated password and forgot-password behavior. This gives clear and actionable usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_app_endpointAInspect

Change an existing endpoint — most often to set exposedColumns on one that was created without them. Get the endpoint id from list_app_endpoints and the column ids from get_board_schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHuman-readable name
slugNoURL slug: lowercase letters, digits and dashes
appIdYesApp id or slug (from list_apps / create_app)
isActiveNoWhether it is active
endpointIdYesEndpoint id (from list_app_endpoints)
allowedMethodsNoHTTP methods the endpoint accepts: GET, POST, PATCH, DELETE
exposedColumnsNoReplacement list of exposed columns (same shape as create_app_endpoint)
organizationIdNoOrganization id; defaults to the credential organization when omitted

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions changing an endpoint but does not disclose side effects (e.g., whether exposedColumns is replaced entirely, whether other fields are updated, or if there are permission requirements). Annotations only say destructiveHint false, which doesn't cover mutation semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence that states the primary purpose and how to obtain the necessary ids. No redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for basic usage, but it does not mention that exposedColumns is a replacement list (vs. a merge), nor does it indicate what happens if other fields (name, slug, allowedMethods) are provided. These details are inferable from the schema but not spelled out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all parameters with detailed descriptions, including reserved-word constraints for aliases. The description adds value by explicitly pointing to list_app_endpoints and get_board_schema as sources for the ids, which is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Change an existing endpoint') and the specific resource (endpoint). It distinguishes from create_app_endpoint by focusing on existing endpoints and the most common use case (setting exposedColumns).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete scenario (set exposedColumns on an endpoint created without them) and tells where to get the needed ids (endpoint id from list_app_endpoints, column ids from get_board_schema). It does not explicitly contrast with create_app_endpoint, but the phrase 'existing endpoint' implies it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_boardA
Idempotent
Inspect

Rename a board or change its description. Structure (columns) is changed with update_column / delete_column / reorder_columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHuman-readable name
boardIdYesBoard id (from list_boards / create_board)
projectIdYesProject id (from list_projects / create_project)
descriptionNoFree-text description

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not add behavioral details beyond the annotations. Annotations already indicate readOnly=false, destructive=false, and idempotent=true. The description simply restates the action without mentioning side effects, permissions, or partial-update semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the primary purpose, and the second sentence cleanly separates scope from related tools. No unnecessary words or redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description is clear on the primary action, it does not explicitly state whether missing optional parameters are preserved or cleared, which is a common ambiguity for update tools. It also omits any mention of prerequisites (e.g., needing an existing board) beyond what is implied by the schema. Given the simplicity of the operation, the description is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides full coverage of all parameters with descriptions, including their sources (e.g., boardId from list_boards/create_board). The tool description does not add further semantic meaning or clarify optional/partial update behavior, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: renaming a board or changing its description. It also explicitly differentiates from sibling tools for column structure changes, making its scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It indirectly indicates when to use by stating what it does and explicitly points to update_column/delete_column/reorder_columns for structural changes. It does not fully enumerate all alternative tools, but the column differentiation is the most relevant and sufficient for this context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_columnA
Idempotent
Inspect

Change a column after the fact: rename it, change its type (e.g. number -> currency), replace settings (dropdown options), or set isRequired / isHidden. A type change converts existing values (number↔currency, text→number/date/checkbox, anything→text) and clears the ones that cannot convert; the response carries conversion: { converted, cleared }. settings.validation rules apply here too.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHuman-readable name
typeNoNew column type (same list as create_column)
forceNoSkip the name/type sanity check
boardIdYesBoard id (from list_boards / create_board)
columnIdYesColumn id (from get_board_schema)
isHiddenNoHide the column in the TaskLite UI
settingsNoReplaces the column settings, e.g. { options: [...] } for dropdown/status
projectIdYesProject id (from list_projects / create_project)
isRequiredNoRequire a non-blank value on every App API create
descriptionNoFree-text description

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by explaining the type-conversion behavior: existing values are converted where possible, unconvertible values are cleared, and the response contains conversion: { converted, cleared }. This is critical behavioral information, especially the data-clearing side effect, and the annotations alone would not convey it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense: it identifies the operation, gives concrete examples, explains conversion side effects, and mentions response content. There is no filler or redundant restatement of the tool name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description appropriately discloses the key return detail (the conversion result). It also covers the main mutation semantics. It does not fully explain the 'force' sanity check or the exact behavior of the settings object, but the schema provides partial context and the description covers the highest-risk behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all 10 parameters, so the baseline is 3. The description adds meaningful semantics by explaining how 'type' changes affect existing values and that 'settings' validation rules continue to apply, going beyond the simple property descriptions in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation: changing an existing column after creation, and enumerates the concrete actions (rename, type change, settings replacement, isRequired/isHidden). This makes it easy to distinguish from siblings like create_column or update_board without needing to inspect schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'after the fact' and the list of modifiable attributes make it clear this tool is for updating an existing column rather than creating one. It does not explicitly name alternatives or state when not to use it, but the context is strong enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_commentAInspect

Edit the text of an existing comment. Only the author can edit their comment. Needs projectId, itemId and the commentId.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesItem (row) id
contentYesThe new comment text
commentIdYesComment id (from list_comments)
projectIdYesProject id (from list_projects / create_project)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only operation, so the description does not need to restate that editing mutates state. It adds valuable behavioral context beyond annotations by specifying the author-only restriction, which is an important permission constraint for an agent to respect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no redundant filler. The core action is front-loaded, followed by the essential authorization constraint and required identifiers. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with four fully documented parameters and no output schema, the description covers the key context: what action is performed, who may perform it, and which identifiers are needed. It could mention the required content parameter more explicitly, but the schema covers that, so the tool is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for all four parameters, so the baseline is appropriate. The description adds some clarity by associating projectId, itemId, and commentId as required identifiers, though it omits the also-required 'content' parameter. Overall, it does not significantly enhance what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Edit the text of an existing comment') on a clear resource (comments), which immediately distinguishes it from sibling comment tools like add_comment, delete_comment, and list_comments. The purpose is unambiguous and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by noting that only the author can edit, and by listing the required identifiers (projectId, itemId, commentId). It does not explicitly name alternative tools or exclusion conditions, but the context is sufficient for an agent to know when this tool applies versus comment creation/deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_itemCInspect

Update item fields (title, description, status, priority, dueDate, tags).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags as an array of strings
titleNoItem title, shown as the row name
itemIdYesItem (row) id
statusNoStatus value (todo, in_progress, done, or a value from the board's status options)
boardIdYesBoard id (from list_boards / create_board)
dueDateNoDue date, ISO 8601 (YYYY-MM-DD or full timestamp)
priorityNoPriority: low, medium, high or urgent
projectIdYesProject id (from list_projects / create_project)
descriptionNoFree-text description

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations (readOnlyHint=false, destructiveHint=false) only confirm that this mutates without destroying; the description adds no behavioral context on top of that. It does not disclose partial-update semantics, whether omitted fields are preserved, validation of status/priority values, or what happens if the item does not exist. For a mutation tool, an agent cannot predict side effects from this text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-sentence description is front-loaded with verb and resource and contains no filler; every word earns its place. The compact parenthetical field list works as a quick reference for the 6 mutable fields. It is appropriately sized given the schema carries the detailed parameter documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no output schema, this description is too thin: it omits partial-update semantics, the distinction from set_cell, and any expectation about results or errors. The rich input schema is not enough to make the tool safely invokable without behavioral context. The three required IDs (projectId, boardId, itemId) are at least documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and individual descriptions are informative (e.g., status values, dueDate ISO 8601 format, projectId provenance from list_projects). The description's field list is a helpful at-a-glance overview but adds no meaning beyond the schema. Baseline 3 applies because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Update item fields" states a specific verb and resource, and the parenthetical enumerates exactly the mutable fields (title, description, status, priority, dueDate, tags), making its purpose obvious against create_item and delete_item. It falls short of 5 because it does not differentiate from set_cell, which also modifies item data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives: set_cell for single-cell updates, create_item for new items, or update_board for board-level settings are never mentioned. An agent must infer usage entirely from the tool name and sibling list; no prerequisites or when-not conditions are stated.

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.

  1. 41 tool updatesv0.13.0
    • Changedadd_comment2 fields changed
      • addedInput schema / properties / itemId / description
        Added value: +"Item (row) id"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Addedbuild_backend
    • Changedconfigure_external_access1 field changed
      • addedInput schema / properties / registrationPolicy / description
        Added value: +"How external sign-ups are admitted: open, approval or closed"
    • Changedcreate_app3 fields changed
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedcreate_app_api_key4 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / scopes
        Added value: +{
        +  "description": "Permissions recorded on the key: [\"read\"] or [\"read\",\"write\"]. Omit to match the app: write when any endpoint accepts POST, PATCH or DELETE.",
        +  "items": {
        +    "enum": [
        +      "read",
        +      "write"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
    • Changedcreate_app_endpoint13 fields changed
      • addedInput schema / properties / allowedMethods / description
        Added value: +"HTTP methods the endpoint accepts: GET, POST, PATCH, DELETE"
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / exposedColumns / description
        Added value: +"Columns the endpoint reads and writes, with the JSON key each one gets; without it the endpoint returns bare metadata"
      • addedInput schema / properties / exposedColumns / items / properties / alias / description
        Added value: +"JSON key exposed for this column: letters, digits, underscore. Never one of the reserved item fields id, title, description, status, priority, dueDate, assignedTo, createdAt, updatedAt, order, appUserId — a business status column becomes repairStatus or orderStatus, not status."
      • addedInput schema / properties / exposedColumns / items / properties / columnId / description
        Added value: +"Column id (from get_board_schema)"
      • addedInput schema / properties / exposedColumns / items / properties / readOnly / description
        Added value: +"Expose the column for reading only; writes to it are refused with 400"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / rowLevelSecurity / description
        Added value: +"Row-level security: when enabled, each app user sees and edits only their own rows"
      • addedInput schema / properties / rowLevelSecurity / properties / enabled / description
        Added value: +"Scope every request to the calling app user (X-App-User header)"
      • addedInput schema / properties / rowLevelSecurity / properties / filterByUserId / description
        Added value: +"Also filter reads to rows the user created"
      • addedInput schema / properties / slug / description
        Added value: +"URL slug: lowercase letters, digits and dashes"
    • Changedcreate_automation7 fields changed
      • addedInput schema / properties / actions / items / properties / config / description
        Added value: +"Action-specific config, e.g. { url, method, headers, responseMapping } for http_request"
      • addedInput schema / properties / actions / items / properties / type / description
        Added value: +"Column type: text, rich_text, number, status, date, datetime, duration, people, checkbox, dropdown, label, priority, link, email, phone, relation, lookup, rollup, rating, currency, file"
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / isActive / description
        Added value: +"Whether it is active"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
      • addedInput schema / properties / trigger / description
        Added value: +"Event that starts the automation: item_created, status_changed, column_value_changed, date_approaching, or scheduled (cron)"
    • Changedcreate_board4 fields changed
      • addedInput schema / properties / description / description
        Added value: +"Free-text description"
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "\"tasks\": with the built-in task columns (status, priority, assignee, due date, tags). \"data\": only the columns you add. Default tasks.",
        +  "enum": [
        +    "tasks",
        +    "data"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedcreate_column5 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / isRequired / description
        Added value: +"Require a non-blank value on every App API create"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
      • addedInput schema / properties / type / description
        Added value: +"Column type: text, rich_text, number, status, date, datetime, duration, people, checkbox, dropdown, label, priority, link, email, phone, relation, lookup, rollup, rating, currency, file"
    • Changedcreate_item8 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / cells / description
        Added value: +"Cell values keyed by column id: { \"<columnId>\": value }. Scalars, { amount, currency } for currency, { relatedItemIds: [...] } for relations"
      • addedInput schema / properties / description / description
        Added value: +"Free-text description"
      • addedInput schema / properties / priority / description
        Added value: +"Priority: low, medium, high or urgent"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
      • addedInput schema / properties / status / description
        Added value: +"Status value (todo, in_progress, done, or a value from the board's status options)"
      • addedInput schema / properties / tags / description
        Added value: +"Tags as an array of strings"
      • addedInput schema / properties / title / description
        Added value: +"Item title, shown as the row name"
    • Changedcreate_project3 fields changed
      • addedInput schema / properties / description / description
        Added value: +"Free-text description"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
    • Changeddelete_board2 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changeddelete_column3 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / columnId / description
        Added value: +"Column id (from get_board_schema)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changeddelete_comment3 fields changed
      • addedInput schema / properties / commentId / description
        Added value: +"Comment id (from list_comments / add_comment)"
      • addedInput schema / properties / itemId / description
        Added value: +"Item id (from query_items / create_item)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changeddelete_item3 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / itemId / description
        Added value: +"Item id (from query_items / create_item)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Addeddelete_project
    • Changeddeploy_frontend5 fields changed
      • changedInput schema / properties / dir / description
        Previous value: -"Path to the BUILD OUTPUT directory (the one containing index.html), not the project root"New value: +"Local path to the BUILD OUTPUT directory (the one containing index.html), not the project root. Only where the MCP runs on the same machine as the files"
      • addedInput schema / properties / files
        Added value: +{
        +  "description": "The site files inline. Must include index.html. Up to 500 files / 8MB decoded — right for a frontend written in the conversation",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "content": {
        +        "description": "File content. Text as-is; binary as base64 with encoding \"base64\"",
        +        "type": "string"
        +      },
        +      "encoding": {
        +        "description": "Default utf8",
        +        "enum": [
        +          "utf8",
        +          "base64"
        +        ],
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "Path inside the site, e.g. \"index.html\", \"app.js\", \"css/style.css\"",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "content"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 500,
        +  "type": "array"
        +}
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / zipUrl
        Added value: +{
        +  "description": "Public https URL of a zip of the BUILD OUTPUT (index.html at the root, or inside a single top-level folder). Up to 50MB",
        +  "format": "uri",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "appId",
        -  "dir"
        -]New value: +[
        +  "appId"
        +]
    • Changedexport_project1 field changed
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedget_app_spec2 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
    • Changedget_board_schema2 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedget_frontend_prompt3 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / tool / description
        Added value: +"Target tool the prompt is written for"
    • Changedlist_app_endpoints2 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
    • Changedlist_apps1 field changed
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
    • Changedlist_automations2 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedlist_boards1 field changed
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedlist_comments2 fields changed
      • addedInput schema / properties / itemId / description
        Added value: +"Item (row) id"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedlist_deployments2 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
    • Changedlogin1 field changed
      • addedInput schema / properties / email / description
        Added value: +"Email address"
    • Changedpublish_app2 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
    • Addedpush_status
    • Changedquery_items7 fields changed
      • addedInput schema / properties / archived
        Added value: +{
        +  "description": "Which rows to include. Default active",
        +  "enum": [
        +    "active",
        +    "archived",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / priority
        Added value: +{
        +  "description": "Only rows with one of these priorities, comma separated (task boards only)",
        +  "type": "string"
        +}
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
      • addedInput schema / properties / search
        Added value: +{
        +  "description": "Free text; matches the row title and its text cells",
        +  "type": "string"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "description": "Sort by title, createdAt, updatedAt or status; prefix with \"-\" for descending, e.g. \"-createdAt\". Anything else keeps the board order",
        +  "type": "string"
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "Only rows with one of these statuses, comma separated: \"todo,in_progress\" (task boards only)",
        +  "type": "string"
        +}
    • Changedreorder_columns3 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / columnIds / description
        Added value: +"Column ids in the new order (every column of the board)"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedrollback_deployment3 fields changed
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / version / description
        Added value: +"Deployment version number (from list_deployments)"
    • Addedsend_test_push
    • Changedset_cell4 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / columnId / description
        Added value: +"Column id (from get_board_schema)"
      • addedInput schema / properties / itemId / description
        Added value: +"Item (row) id"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedsign_up1 field changed
      • addedInput schema / properties / email / description
        Added value: +"Email address"
    • Changedupdate_app_endpoint11 fields changed
      • addedInput schema / properties / allowedMethods / description
        Added value: +"HTTP methods the endpoint accepts: GET, POST, PATCH, DELETE"
      • addedInput schema / properties / appId / description
        Added value: +"App id or slug (from list_apps / create_app)"
      • addedInput schema / properties / endpointId / description
        Added value: +"Endpoint id (from list_app_endpoints)"
      • addedInput schema / properties / exposedColumns / description
        Added value: +"Replacement list of exposed columns (same shape as create_app_endpoint)"
      • addedInput schema / properties / exposedColumns / items / properties / alias / description
        Added value: +"JSON key exposed for this column: letters, digits, underscore. Never one of the reserved item fields id, title, description, status, priority, dueDate, assignedTo, createdAt, updatedAt, order, appUserId — a business status column becomes repairStatus or orderStatus, not status."
      • addedInput schema / properties / exposedColumns / items / properties / columnId / description
        Added value: +"Column id (from get_board_schema)"
      • addedInput schema / properties / exposedColumns / items / properties / readOnly / description
        Added value: +"Expose the column for reading only; writes to it are refused with 400"
      • addedInput schema / properties / isActive / description
        Added value: +"Whether it is active"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / organizationId / description
        Added value: +"Organization id; defaults to the credential organization when omitted"
      • addedInput schema / properties / slug / description
        Added value: +"URL slug: lowercase letters, digits and dashes"
    • Changedupdate_board4 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / description / description
        Added value: +"Free-text description"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedupdate_column7 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / columnId / description
        Added value: +"Column id (from get_board_schema)"
      • addedInput schema / properties / description / description
        Added value: +"Free-text description"
      • addedInput schema / properties / isHidden / description
        Added value: +"Hide the column in the TaskLite UI"
      • addedInput schema / properties / isRequired / description
        Added value: +"Require a non-blank value on every App API create"
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedupdate_comment3 fields changed
      • addedInput schema / properties / commentId / description
        Added value: +"Comment id (from list_comments)"
      • addedInput schema / properties / itemId / description
        Added value: +"Item (row) id"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
    • Changedupdate_item9 fields changed
      • addedInput schema / properties / boardId / description
        Added value: +"Board id (from list_boards / create_board)"
      • addedInput schema / properties / description / description
        Added value: +"Free-text description"
      • addedInput schema / properties / dueDate / description
        Added value: +"Due date, ISO 8601 (YYYY-MM-DD or full timestamp)"
      • addedInput schema / properties / itemId / description
        Added value: +"Item (row) id"
      • addedInput schema / properties / priority / description
        Added value: +"Priority: low, medium, high or urgent"
      • addedInput schema / properties / projectId / description
        Added value: +"Project id (from list_projects / create_project)"
      • addedInput schema / properties / status / description
        Added value: +"Status value (todo, in_progress, done, or a value from the board's status options)"
      • addedInput schema / properties / tags / description
        Added value: +"Tags as an array of strings"
      • addedInput schema / properties / title / description
        Added value: +"Item title, shown as the row name"
  2. 44 tool updatesv0.7.0
    • First observedadd_comment
    • First observedconfigure_external_access
    • First observedconnect
    • First observedconnection_status
    • First observedcreate_app
    • First observedcreate_app_api_key
    • First observedcreate_app_endpoint
    • First observedcreate_automation
    • First observedcreate_board
    • First observedcreate_column
    • First observedcreate_item
    • First observedcreate_project
    • First observeddelete_board
    • First observeddelete_column
    • First observeddelete_comment
    • First observeddelete_item
    • First observeddeploy_frontend
    • First observeddisconnect
    • First observedexport_project
    • First observedfetch
    • First observedget_app_spec
    • First observedget_board_schema
    • First observedget_frontend_prompt
    • First observedlist_app_endpoints
    • First observedlist_apps
    • First observedlist_automations
    • First observedlist_boards
    • First observedlist_comments
    • First observedlist_deployments
    • First observedlist_organizations
    • First observedlist_projects
    • First observedlogin
    • First observedpublish_app
    • First observedquery_items
    • First observedreorder_columns
    • First observedrollback_deployment
    • First observedsearch
    • First observedset_cell
    • First observedsign_up
    • First observedupdate_app_endpoint
    • First observedupdate_board
    • First observedupdate_column
    • First observedupdate_comment
    • First observedupdate_item

TDQS

A3.6/5.0

Scored across 48 tools

Disambiguation4/5

Most tools target a distinct resource+action (projects, boards, columns, items, comments, apps, automations, deployments), and overlapping pairs like login/connect and query_items/search/fetch are separated by explicit credential/scope guidance. A few adjacent tools (build_backend vs the step-by-step creates, update_item vs set_cell) could be confused, but their descriptions call out when to use which.

Naming Consistency4/5

The set overwhelmingly follows verb_noun snake_case (list_projects, create_column, update_item, delete_board, rollback_deployment). Minor deviations exist — add_comment vs create_comment, query_items vs list_items, connection_status vs get_connection_status, and bare verbs like login/connect — but they are easy to predict and not chaotic.

Tool Count2/5

48 tools is a very large surface for one server, well beyond the 16-25 'heavy' range. Even with a broad scope spanning auth, schema design, apps, automations, and deployment, the count will force agents to browse and compare many similar CRUD tools.

Completeness3/5

Core workflows are well covered: projects/boards/columns have full CRUD, items and comments have full CRUD, and app endpoints plus deployment have create/list/update. But several lifecycle gaps stand out — automations can be created and listed but not updated/deleted, apps have no delete/unpublish/revoke-key operations, and projects cannot be renamed/updated.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers