Skip to main content
Glama
t0knight
by t0knight

appsmith-mcp

An MCP server that lets an AI agent control Appsmith — building and editing apps (pages, widgets, queries, datasources, JS objects, themes) by driving the real editor in the browser. It attaches to a running Firefox over the WebDriver BiDi protocol and reads/dispatches the editor's Redux store, so an agent can operate Appsmith the same way a person would.

How it works

Appsmith has no public API for editing apps — the builder lives entirely in the browser. This server drives that builder in place: it attaches to a running Firefox over WebDriver BiDi, finds Appsmith's Redux store on the open editor page, and runs predefined JavaScript snippets against it.

Each tool is one such snippet. Reads pull straight from Redux state; writes dispatch the same actions the editor UI fires when you click — so creating a widget, wiring a query, or editing a custom widget's source is the programmatic equivalent of doing it by hand, and changes render live and save to the Appsmith backend.

The tools cover the full editor surface but lean toward custom widgets — self-contained HTML/CSS/JS components — since AI is generally better at building a UI as code than by arranging Appsmith's native widgets on a visual grid.

Related MCP server: browser-mcp

Prerequisites

  • Firefox — the server attaches to a running instance.

  • Python 3.10+ and uv or pip.

  • A reachable Appsmith instance you can log into.

Install

uv:

uv sync

pip:

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Launch Firefox with remote debugging

./launch.sh

This kills any running Firefox and reopens it with the BiDi port enabled (works on macOS, Linux, and Windows via Git Bash). Log into Appsmith and navigate to an app's editor page (.../edit) in that window. The server re-bootstraps on the next tool call after any navigation.

Register with Claude Code

claude mcp add --scope user appsmith /path/to/appsmith-mcp/.venv/bin/appsmith-mcp

After launching/relaunching Firefox, reconnect the server with /mcp so it re-attaches.

Tools

App & workspace

  • list_workspaces — List workspaces (id and name).

  • list_apps — List all applications across workspaces, with editor URLs.

  • create_app — Create a new application.

  • update_app — Update the current app's metadata and settings (name, navigation, theme, layout).

  • delete_app — Delete an application by id.

  • get_state_summary — Counts of widgets, datasources, and queries in the current app.

  • dump_state — Dump the current app's pages and widget tree (optionally full detail).

  • get_logs — Return log/error metadata (no message text).

Pages

  • list_pages — List the app's pages, flags, and which is active.

  • create_pages — Create one or more blank pages.

  • delete_pages — Delete one or more pages.

  • switch_page — Switch the editor to another page.

Custom widgets

  • create_custom_widget — Create a self-contained HTML/CSS/JS widget (the primary entrypoint).

  • get_custom_widget — Return a custom widget's source, model, events, name, and position.

  • update_custom_widget — Update its model, name, events, triggers, height mode, or position.

  • delete_custom_widget — Delete a custom widget by id.

  • patch_widget_code — Make targeted edits to a custom widget's source without rewriting it.

Widgets (native)

  • add_widgets — Add one or more native widgets.

  • update_widgets — Apply property updates to one or more widgets.

  • delete_widgets — Delete one or more widgets (cascades children).

  • set_widget_bounds — Move and/or resize widgets.

  • rename_widgets — Rename widgets.

  • reparent_widgets — Move widgets to a new parent canvas.

  • clear_canvas — Delete every widget on the page.

  • get_widget — Return a widget's full Redux record.

  • check_layout — Diagnose layout/overflow issues across the page.

  • list_widget_types — List widget types with a known property schema.

  • get_widget_schema — Return a widget type's property schema (controls, validation, defaults).

  • manage_table_columns — Add, remove, or reorder columns on a table widget.

  • manage_tabs — Add, remove, or reorder tabs on a tabs widget.

JS objects

  • list_js_objects — List JS objects with their declared function names.

  • get_js_objects — Return full source of JS objects (bodies, functions, variables).

  • create_js_objects — Create one or more JS objects.

  • update_js_objects — Replace the source of one or more JS objects.

  • delete_js_objects — Delete one or more JS objects.

  • patch_js_objects — Make targeted edits to JS object bodies without rewriting them.

  • execute_js_functions — Run JS object functions and return their results.

Queries

  • list_queries — List the app's queries (datasource actions).

  • create_queries — Create one or more queries bound to datasources.

  • update_queries — Update one or more queries.

  • delete_queries — Delete one or more queries.

  • execute_queries — Run queries by id and return their responses.

Datasources

  • list_datasources — List datasources in the current workspace.

  • create_datasources — Create one or more datasources.

  • update_datasources — Update one or more datasources.

  • delete_datasources — Delete one or more datasources.

  • list_plugins — List available plugins (REST, Postgres, MongoDB, etc.).

Themes

  • list_themes — List built-in and saved custom themes.

  • get_current_theme — Return the active theme and its color/font/radius/shadow values.

  • set_theme — Switch the app to a theme by id.

  • update_theme — Patch the current theme's properties.

  • save_custom_theme — Save the current theme as a named custom theme.

  • delete_custom_themes — Delete saved custom themes.

Browser & navigation

  • get_url — Return the URL loaded in the attached Firefox tab.

  • navigate — Navigate the tab to a URL.

  • refresh_page — Reload the tab and wait for it to finish.

  • run_command — Evaluate arbitrary JS in the tab and return the result.

⚠️ run_command evaluates arbitrary JavaScript in the attached browser tab with full access to the Redux store and the page — it can read or modify anything in the live session, bypassing the safety constraints of the other tools. It's an escape hatch for exploring state and discovering action shapes; use it deliberately.

License

MIT

Available Tools

57 tools
add_widgetsA

Add multiple widgets in one tool call. Each entry is the same shape as add_widget's args: {widget_type, parent_id?, left?, top?, columns?, rows?, props?, name?, new_id?}. columns and rows default to each widget type's own getDefaults() values. Returns a list of {widgetId, widgetName, type, parent} per widget, in the same order.

ParametersJSON Schema
NameRequiredDescriptionDefault
widgetsYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses default values for 'columns' and 'rows' and the return structure, which adds value beyond the input schema. However, it lacks information on side effects, destructiveness, or permissions. Since no annotations are provided, the description carries the full burden but only partially addresses it.

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 three sentences and to the point. It is efficient but could be more structured with bullet points. No waste is present.

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 that there is no output schema, the description includes the return format. It covers input shape, default behavior, and return. Missing details like error handling or limits, but otherwise sufficient for a batch tool.

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 input schema is extremely sparse (array of objects with additionalProperties true, 0% coverage). The description compensates fully by detailing each field (widget_type, parent_id?, left?, etc.), providing complete semantic meaning that the schema lacks.

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 'Add multiple widgets in one tool call,' which distinguishes it from the likely sibling 'add_widget' (not listed but referenced). It specifies the action and resource explicitly.

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 usage for batch addition by referencing 'each entry is the same shape as add_widget's args,' but it does not explicitly state when to use this tool versus alternatives like add_widget. No exclusions or conditions are provided.

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

check_layoutA

Diagnose layout issues across every widget on the current page. For each widget returns its grid box, actual rendered pixel dimensions, and whether content overflows its container. For widgets with same-origin iframes (Custom, Iframe) also reports the inner body's scrollHeight so you can size to fit. Use to spot squashed or oversized widgets, then call resize_widget.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

No annotations provided, so the description fully discloses behavior: returns grid box, pixel dimensions, overflow info, and special handling for same-origin iframes (scrollHeight). No contradictions.

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, front-loaded with purpose, each sentence adds unique value (diagnosis details, iframe special case, use case). No wasted words.

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 no output schema, the description explains return values (grid box, dimensions, overflow, scrollHeight) and links to the sibling tool. Complete for a diagnostic tool.

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?

No parameters exist (0 params, 100% schema coverage), so the description does not need to add parameter details. Baseline 4 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 uses a specific verb ('Diagnose') and resource ('layout issues across every widget on the current page'), clearly distinguishing from sibling tools like 'resize_widget' and 'add_widgets'.

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 states when to use the tool ('spot squashed or oversized widgets') and the next step ('then call resize_widget'). No explicit when-not, but the purpose is clear enough.

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

clear_canvasA

Delete every widget directly under MainContainer. Cascades to nested children.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses cascading behavior and scope (MainContainer), which is helpful. However, it does not indicate irreversibility, permissions, side effects on related data, or whether the container itself persists. Since no annotations exist, the description carries full burden but leaves gaps.

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 sentence with no extraneous words. It front-loads the action and scope, making it efficient and scannable.

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 parameterless tool with no output schema or annotations, the description covers the core purpose and scope. It could explicitly state that deletion is irreversible or that MainContainer remains, but it is largely complete given the tool's simplicity.

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?

With no parameters, the description adds value by clarifying scope and cascading behavior beyond the empty schema. The additional context (MainContainer, nested children) fully compensates for the lack of 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 clearly states it deletes widgets under MainContainer with cascading to nested children. It uses a specific verb (delete) and resource (widgets under MainContainer), differentiating it from siblings like delete_widgets or delete_app.

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 provided on when to use this tool versus alternatives (e.g., delete_widgets for specific widgets). It lacks preconditions, exclusions, or scenarios where this tool is appropriate.

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

create_appB

Create a new Appsmith application. Uses the first workspace if workspace_id is omitted. On success Appsmith navigates to the new app's editor, so the Redux binding is reset.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNobag
nameYes
colorNo#FFDEDE
workspace_idNo

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden and discloses key behaviors: workspace fallback, navigation to new app editor, and Redux binding reset. This is good transparency for a mutation tool, though could mention return value or error handling.

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?

Three sentences that front-load purpose, then add default behavior and side effects. No redundant information, efficient for an agent.

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?

Given four parameters, no output schema, and no annotations, the description covers purpose, a key default, and a side effect, but omits return value, error conditions, and details for three parameters. Adequate but with clear gaps.

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

Parameters2/5

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

Schema coverage is 0%; description only indirectly addresses workspace_id by noting its default behavior. No details on name, icon, or color parameters, leaving most parameters semantically undocumented.

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 clearly states it creates a new Appsmith application ('Create a new Appsmith application'). It adds specific behavior about workspace fallback and navigation side effects, but does not explicitly differentiate from siblings like update_app or create_pages.

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 usage when needing to create an app and covers workspace ID behavior, but provides no explicit guidance on when not to use the tool or mention alternatives (e.g., duplicate app).

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

create_custom_widgetA

Create a single Custom Widget — the primary entrypoint of this MCP.

The widget is auto-sized to fill the main canvas: full width (all columns) and a
height measured from the canvas's available pixel height. Size and position are not
configurable. `html`/`css`/`js` seed its source; any omitted field falls back to
Appsmith's starter template. `default_model` seeds the data the widget reads via
`appsmith.model` (dict or JSON string). Seeded source is written to both `srcDoc` and
`uncompiledSrcDoc` so a reload can't revert it (`synced: true`).
Returns `{widgetId, widgetName, type, parent, columns, rows, measuredHeightPx, synced}`.
ParametersJSON Schema
NameRequiredDescriptionDefault
jsNo
cssNo
htmlNo
nameNo
default_modelNo

TDQS

A4/5.0
Behavior4/5

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

The description discloses important behaviors: auto-sizing to full width/height, non-configurable size/position, fallback to starter template for omitted fields, seeding of default_model, and syncing of source to both srcDoc and uncompiledSrcDoc. Since no annotations are provided, the description carries full burden and does so well.

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 a single, focused paragraph with clear structure: purpose first, then details. It is concise with no fluff, though could be slightly more structured with bullet points.

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?

The description covers the return format and syncing behavior, but lacks prerequisites (e.g., whether a page must exist) and does not mention any related tools. Given the complexity and no output schema, it is adequate but not fully complete.

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

Parameters4/5

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

The description explains the purpose of html/css/js (seed source), default_model (seed data), and mentions that omitted fields fall back to starter template. It adds meaning beyond the input schema, though the name parameter is not explicitly described. Schema coverage is 0%, so description compensates effectively.

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 'Create a single Custom Widget — the primary entrypoint of this MCP', using a specific verb and resource. It distinguishes itself from sibling tools like add_widgets and update_custom_widget by positioning itself as the primary creation tool.

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 this is the main creation tool but does not explicitly state when to use it versus alternatives, nor does it provide when-not-to-use conditions. No alternatives are named.

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

create_datasourcesA

Create multiple datasources in one tool call via Appsmith's REST API. Each entry is {"name", "plugin_id", "url"?, "datasource_config"?, "workspace_id"?}. If datasource_config is omitted, a per-plugin template is filled in (REST/GraphQL, Postgres/MySQL/Mongo) per entry's pluginPackageName. For REST you can pass just url. DB templates have empty host/port/credentials — populate them via datasource_config for a working connection. workspace_id defaults to the currently selected workspace. The Redux list is refetched once at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasourcesYes

TDQS

A4.4/5.0
Behavior4/5

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

Despite no annotations, the description discloses key behaviors: template filling when datasource_config is omitted, per-plugin defaults for REST/GraphQL and DB templates, default workspace_id, and final Redux list refetch. Mutation is implied and 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 a single focused paragraph of five sentences, front-loading the purpose (create multiple datasources) followed by structured details. Every sentence adds value with no 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?

Given no output schema and no annotations, the description covers parameter semantics, behavioral traits, default behaviors, and side effects (refetch). It is complete for a creation tool.

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?

With 0% schema description coverage, the description fully compensates by listing allowed fields (name, plugin_id, url, datasource_config, workspace_id), explaining optionality and defaults, and clarifying template behavior. This provides clear 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 clearly states the tool creates multiple datasources via the REST API, using a specific verb and resource. It distinguishes from sibling tools like update_datasources and delete_datasources by focusing on creation.

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 batch creation efficiency but does not explicitly state when to use this tool over alternatives like update_datasources or list_datasources. No when-not-to-use guidance is provided.

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

create_js_objectsA

Create multiple JS objects in one tool call. Each entry is {"name", "body", "function_names"?, "page_id"?}. body is the full source (e.g. export default { foo: () => 1, bar: () => 2 }). If function_names is omitted, the top-level function names in body are parsed automatically per entry. page_id defaults to the currently open page.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectsYes

TDQS

A3.9/5.0
Behavior4/5

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

As no annotations exist, the description carries the full transparency burden. It effectively discloses that function_names can be auto-parsed from body if omitted, and page_id defaults to the current page. However, it does not mention mutation or potential overwrites, though the creation intent is clear.

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, well-structured paragraph that front-loads the purpose and efficiently explains parameters inline. Every sentence adds value with no redundancy.

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 covers the core functionality (creating objects with flexible parameters), it lacks details on return values (e.g., IDs of created objects) and error conditions (e.g., invalid body). Given no output schema, this information would improve completeness.

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 input schema only specifies an array of objects with no property constraints (schema coverage 0%). The description compensates by detailing the expected entry fields (name, body, optional function_names, optional page_id) and their semantics (body is full source, auto-parsing behavior). This provides essential meaning beyond the schema, though it could be more precise about required sub-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 clearly states the tool creates multiple JS objects in one call, using the verb 'create' and resource 'JS objects'. It differentiates from siblings like update_js_objects, delete_js_objects, and list_js_objects, making its unique purpose evident.

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 provided on when to use this tool versus alternatives like update_js_objects or patch_js_objects. The description focuses on parameter format but omits context about choosing creation over modification.

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

create_pagesC

Create multiple blank pages in the current application in one tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions creating multiple blank pages but fails to describe side effects, error handling (e.g., duplicate names), or required permissions. Critical information is missing.

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

Conciseness3/5

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

The description is concise at 12 words, but it may be too brief, omitting necessary details. While front-loaded, it does not fully earn its place due to missing critical information.

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?

Given the single parameter and no output schema, the description is incomplete. It does not explain return values, error behavior, or behavior for duplicate names. The agent lacks sufficient information to use the tool confidently.

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

Parameters1/5

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

The schema has 0% description coverage for the only parameter 'names', and the description adds no additional meaning beyond the schema. The agent has no information about what 'names' expects (e.g., uniqueness, format, constraints).

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'), the object ('blank pages'), and the context ('in the current application in one tool call'). It distinguishes from sibling tools like 'delete_pages' and 'list_pages' by specifying the creation of multiple pages.

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?

The description provides no guidance on when to use this tool versus alternatives. No mention of prerequisites, limitations, or when not to use it, which is essential for an AI agent to select the correct tool.

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

create_queriesA

Create multiple queries bound to datasources in one tool call via Appsmith's REST API. Each entry is {"name", "datasource_id", "action_config"?, "page_id"?}. If action_config is omitted, a per-plugin default is used: REST → GET / with empty headers/params; SQL DBs → SELECT 1;; Mongo → FIND with {} and limit 10. page_id defaults to the currently open page. The Redux action list is refetched once at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYes

TDQS

A4.5/5.0
Behavior5/5

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

Without annotations, the description fully carries the burden. It details defaults for 'action_config' and 'page_id', offers per-plugin default examples, and mentions the Redux refetch at end, providing substantial behavioral disclosure.

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 with four sentences, front-loaded with purpose. Every sentence adds essential information without 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?

Given the tool's complexity (single parameter with nested objects, no output schema), the description covers input structure, defaults, and side effects. It lacks explicit output return information but is otherwise complete.

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?

Despite 0% schema description coverage, the description thoroughly explains the fields within the 'queries' array (name, datasource_id, optional action_config and page_id) and their defaults, adding meaning beyond the bare 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 it creates multiple queries bound to datasources in a single API call. It distinguishes from sibling tools like 'create_datasources' and 'create_js_objects' by its specific verb and resource.

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 usage for batch query creation but provides no explicit guidance on when to use this tool versus alternatives. No exclusions or specific contexts are mentioned.

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

delete_appC

Delete an application by id. The user is then redirected away from the editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the burden. It mentions a redirect, but fails to disclose that deletion is irreversible or any side effects on associated data. Irreversibility is a critical behavioral trait for a delete operation.

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 very short with one sentence, but it includes a key behavioral note. It is appropriately concise for a simple tool, though a bit more structure could improve readability.

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 delete operation, the description is incomplete. It does not mention that deletion is permanent, any return value, or error conditions. Given the many sibling delete tools, additional context about when to use this specific tool would be valuable.

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

Parameters2/5

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

Schema coverage is 0%. The description says 'by id' but adds no value beyond the parameter name 'app_id' and its type. No format, constraints, or examples are provided.

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 'Delete' and the resource 'application by id', which is distinct from sibling tools that delete other resources like widgets, pages, etc. The added detail about redirection further clarifies the action.

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 on when to use this tool versus alternatives like 'delete_widgets' or 'delete_pages'. No prerequisites or exclusions mentioned.

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

delete_custom_themesA

Delete multiple saved custom themes in one tool call. Each entry is {"theme_id", "name"?}. name is looked up from the themes list per entry if omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
themesYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided. Description discloses input format and that name can be looked up, but does not mention deletion behavior (idempotency, error handling, permissions) or return value. For a mutation tool with no annotations, more behavioral context is needed.

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?

Two sentences, front-loaded with purpose. Efficient with no redundant information, though slightly more detail on behavior could be added without harming conciseness.

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?

Without output schema or annotations, description lacks behavioral details like success/failure, partial deletion, and permissions. For a deletion tool, these omissions reduce completeness.

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?

Input schema has low coverage (0%), but the description explicitly details the structure of each entry: theme_id required, name optional with lookup behavior. This adds significant meaning beyond the bare 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?

Tool name and description clearly specify deleting multiple saved custom themes. The description uses a specific verb 'Delete' with resource 'custom themes' and distinguishes from sibling tools like save_custom_theme and update_theme.

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 states it deletes multiple themes in one call, implying batch deletion. It does not explicitly state when to use alternatives, but sibling tools cover other operations on custom themes, so context is clear.

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

delete_custom_widgetC

Delete a Custom Widget by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
widget_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description only says 'Delete', lacking details on permanence, cascade effects, permissions, or error handling. This is minimal disclosure for a destructive action.

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?

Single concise sentence, no extraneous words. Straightforward and front-loaded.

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?

Despite low complexity (1 param, no output schema), the description fails to mention irreversibility, success indicators, or side effects. For a delete tool, more context is needed.

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

Parameters1/5

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

The schema description coverage is 0%; the description does not add any meaning to the 'widget_id' parameter beyond its name. The agent receives no guidance on format, source, or constraints.

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' and the specific resource 'Custom Widget by id', distinguishing it from siblings like 'delete_widgets' that target regular widgets.

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 on when to use this tool versus alternatives such as 'delete_widgets' or other deletion tools. No context about prerequisites or exclusions.

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

delete_datasourcesB

Delete multiple datasources in one tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasource_idsYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action without disclosing behavioral traits such as side effects, permissions required, reversibility, or error handling.

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 effectively communicates the tool's purpose without unnecessary words.

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?

For a simple deletion tool with one parameter and no output schema, the description is moderately adequate but lacks information on return values, success/failure handling, and potential partial failures.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description adds no meaning to the single parameter (datasource_ids) beyond what the schema shows. It fails to explain expected format, constraints, or validation.

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), resource (datasources), and scope (multiple in one call). It effectively distinguishes from sibling tools like update_datasources or create_datasources.

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 usage for batch deletion but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or caveats.

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

delete_js_objectsA

Delete multiple JS objects in one tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
js_object_idsYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'Delete multiple JS objects' without revealing side effects (e.g., irreversibility, required permissions, error handling on invalid IDs). This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It front-loads the key action and resource, making it easy to parse. Every word earns its place.

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?

Given the one-parameter schema, no output schema, and no annotations, the description is too minimal. It lacks information about return values, error scenarios, and parameter details, leaving the agent with significant uncertainty.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'multiple JS objects' but does not elaborate on the 'js_object_ids' parameter format, source, or constraints. This adds minimal value beyond the schema 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 states the verb (delete) and resource (JS objects), and the phrase 'multiple JS objects' distinguishes it from sibling tools like create, get, list, patch, and update. It is specific and 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?

The description implies use for batch deletion of JS objects, which is clear context. However, it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many sibling tools. Without exclusions, it still offers reasonable usage direction.

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

delete_pagesC

Delete multiple pages in one tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so description should detail side effects (e.g., cascading deletion of widgets), prerequisites, or reversibility. Only states 'Delete multiple pages' which is insufficient for a destructive operation.

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

Conciseness5/5

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

Single concise sentence with no wasted words. Perfectly efficient.

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?

Missing prerequisites, expected effects, and output information. For a destructive tool with no annotations and no output schema, description should provide much more.

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

Parameters1/5

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

Schema description coverage is 0% and description does not explain what page_ids should contain (e.g., format, source like list_pages). Adds no value beyond schema.

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?

Clear verb ('Delete') and resource ('pages') with batch indication ('multiple pages'), but no differentiation from siblings like 'delete_widgets'.

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 on when to use this tool vs alternatives (e.g., single page deletion tool). Siblings include many delete tools but description does not provide context.

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

delete_queriesB

Delete multiple queries in one tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
query_idsYes

TDQS

B3.1/5.0
Behavior2/5

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

The description does not disclose any behavioral traits beyond the fact that it deletes multiple queries. With no annotations provided, critical information such as irreversibility, permission requirements, side effects on dependent resources (e.g., pages using queries), or error handling is missing.

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 sentence with no filler words. It is concise and front-loaded, effectively communicating the core action.

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?

Given the tool's destructive nature and lack of output schema, the description is insufficient. It does not explain return values, success/failure signals, or how deletion fits into the broader app lifecycle (e.g., impact on pages that reference deleted queries).

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

Parameters2/5

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

The schema has 0% description coverage for its single parameter 'query_ids'. The description only implies that query_ids are the identifiers of queries to delete, but does not explain the expected format, origin (e.g., from list_queries), or any constraints like minimum or maximum count.

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 'delete' and the resource 'queries', and emphasizes 'multiple queries in one tool call', which distinguishes it from other delete tools for different resources (e.g., delete_app, delete_datasources) and from query-related tools like execute_queries or update_queries.

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?

The description provides no guidance on when to use this tool versus alternatives (e.g., updating queries to disable them, or using list_queries to review before deletion). No conditions or exclusions are mentioned.

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

delete_widgetsA

Delete multiple widgets in one tool call. Cascades children, disallowUndo is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
widget_idsYes

TDQS

A3.8/5.0
Behavior4/5

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

Despite no annotations, the description discloses important behavioral traits: cascading deletion of children and that undo is not allowed. This helps the agent understand the destructive side effects. However, it does not mention authentication requirements 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 extremely concise, using two short sentences to convey the core action and key behavioral details. Every sentence provides value without extraneous information.

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?

For a simple one-parameter tool, the description covers the essential behavioral traits (cascade, no undo). However, it lacks information on error handling, limits on batch size, or behavior for invalid IDs. Given no output schema, some additional context would improve completeness.

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

Parameters2/5

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

The description only implies that widget_ids are the parameter for specifying which widgets to delete. It does not explain the format or source of widget IDs, leaving the agent to infer from the schema. With 0% schema coverage, more detail was expected.

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 explicitly states the tool deletes multiple widgets, specifying the resource (widgets) and the batch nature. This distinguishes it from sibling tools like delete_app or delete_custom_widget, which target different resources.

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 indicates when to use this tool (for batch deletion of widgets) but does not provide guidance on when not to use it or compare with alternatives like delete_custom_widget. No explicit exclusions or prerequisites.

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

dump_stateA

Return the state of the currently open Appsmith application.

Always returns `url`, `application`, `pages`, and `widgets` (the canvas as a
nested tree of id/name/type/parent/position/children starting at MainContainer).
With `verbose=False` (default) that lightweight shape is all you get.

Pass `verbose=True` to also carry every property set on each widget node, plus
top-level `datasources` (with connection storage), `queries` (with their
actionConfiguration), `jsObjects` (with their bodies), and a derived
`connections` list mapping widget property/trigger paths to the queries/JS
objects/datasources they bind to by name. This can be large for non-trivial
apps.
ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It transparently describes the return structure for both modes and warns that verbose can be large. However, it does not explicitly state that the tool is read-only or discuss authorization or rate limits, though those are less critical for a read 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 well-structured with a clear, front-loaded statement of purpose, followed by detailed behavior for both parameter values. Every sentence adds value, and there is no redundancy or unnecessary 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 tool with one boolean parameter and no output schema, the description is complete. It covers both operational modes, the structure of the return, and the implications of using each mode, leaving no gaps in understanding.

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 single parameter verbose is fully explained: non-default (False) returns a lightweight shape, while True adds extensive extra data. This adds significant meaning beyond the schema's type and default, and since schema coverage is 0%, the description compensates completely.

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 clearly states it returns the state of the currently open Appsmith application, listing the core return fields and distinguishing between verbose and non-verbose modes. However, it does not explicitly differentiate from sibling tools like get_state_summary, which may have overlapping functionality.

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 explains when to use verbose vs non-verbose based on size needs, but lacks explicit guidance on when to use this tool over alternatives such as get_state_summary or get_widget. Usage context is implied but not fully explicit.

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

execute_js_functionsA

Execute multiple JS functions in one tool call. Each entry is {"js_object_id", "function_name"}. Returns each result if the eval tree captured it; otherwise reports that the dispatch fired but no value surfaced (function may still have run for its side effects).

ParametersJSON Schema
NameRequiredDescriptionDefault
executionsYes

TDQS

A4/5.0
Behavior4/5

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

Despite no annotations, the description discloses key behavioral details: it returns results only if captured by the eval tree, otherwise reports dispatch without value, and explicitly states functions may run for side effects. This goes beyond basic operation.

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 brief and front-loaded with the main action. However, it could be slightly more structured (e.g., separating input format from output behavior).

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?

With no output schema, the description adequately covers return behavior and side effects. It lacks error handling details but is sufficient for a function execution tool given the constraints.

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 provides no description for the 'executions' parameter and allows arbitrary additional properties. The description compensates by specifying the expected structure of each entry (js_object_id and function_name), which is critical for correct usage.

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 'Execute' and resource 'JS functions', and specifies that multiple functions can be invoked in one call. It also provides the format of each entry, making the 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 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 like execute_queries or other sibling tools. There is no mention of prerequisites, when-not to use, or trade-offs.

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

execute_queriesA

Run multiple queries by id and return their responses. Equivalent to clicking the Run button on each. Each result includes {ok, statusCode, isExecutionSuccess, body}.

ParametersJSON Schema
NameRequiredDescriptionDefault
query_idsYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the result structure ({ok, statusCode, isExecutionSuccess, body}) but does not mention side effects, permissions, rate limits, or execution order. Adequate but not detailed.

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 wasted words. First sentence states action and result, second provides equivalent and result structure. Front-loaded and efficient.

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 one simple required param and no output schema, description provides result structure. Lacks details on parallel execution or error handling but is largely complete for this tool's simplicity.

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 has 0% description coverage, so description must add meaning. It explains that query_ids are the IDs of queries to run, which goes beyond the schema's bare title 'Query Ids'. Adds sufficient context for a single required 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?

Description clearly states verb 'run' with object 'multiple queries by id' and mentions returning responses. It also provides the equivalent action (clicking Run button) and distinguishes from siblings like create/delete/list queries.

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?

Description states when to use (equivalent to Run button) but does not provide explicit when-not or comparison to alternatives like execute_js_functions or other execution tools. Context is clear but lacks exclusions.

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

get_current_themeA

Return the currently selected theme for the open application, including its properties.{colors, fontFamily, borderRadius, boxShadow} — the values widgets bind to via {{appsmith.theme.*}}.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It transparently describes the return behavior and output structure, including the nested properties and their binding usage. It implies a read-only operation without side effects.

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 sentence, front-loaded with the key action and result. Every word adds value, with no redundancy 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?

Given the tool's simplicity (no parameters, no output schema), the description provides essential return details and real-world binding context. It could mention the top-level theme object structure, but the listed properties and their purpose are sufficient for an agent to use the tool 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 input schema has no parameters, so the description adds no parameter semantics. Per the guidelines, 0 parameters receives a baseline score of 4, as the description does not need to compensate beyond acknowledging no inputs.

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 returns the currently selected theme, specifying the exact properties (colors, fontFamily, borderRadius, boxShadow) and how widgets bind to them. This distinguishes it from sibling tools like list_themes or set_theme.

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 usage for retrieving the active theme but does not explicitly state when to use it vs alternatives like list_themes (to see all themes) or set_theme (to change theme). No exclusions or alternative guidance provided.

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

get_custom_widgetA

Return a Custom Widget's full source (srcDoc html/css/js), defaultModel, events, name, and grid position. Errors if the id is not a CUSTOM_WIDGET.

ParametersJSON Schema
NameRequiredDescriptionDefault
widget_idYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses error behavior ('Errors if the id is not a CUSTOM_WIDGET') but does not state read-only nature, permissions, or potential side effects. Adequate but could be more explicit.

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?

Single sentence, front-loaded with key return values, no redundant words. Efficient 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?

For a simple get tool with one parameter and no output schema, the description covers return fields and error condition. It omits some detail (e.g., that widget must exist) but is largely complete.

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

Parameters2/5

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

Schema coverage is 0%, but the description does not elaborate on the widget_id parameter beyond its name. It does not specify format, constraints, or source of the ID, leaving the agent to infer from the schema alone.

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 'Return' and specifies the exact fields the tool returns: full source, defaultModel, events, name, grid position. It also distinguishes from sibling tools like get_widget and get_widget_schema by focusing on custom widgets and detailed source code.

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 on when to use this tool versus alternatives. The description does not mention specific scenarios or compare with other tools like get_widget or create_custom_widget.

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

get_js_objectsA

Return the full source of JS objects — each object's body, every function's body, and declared variables, plus id/name/pageId. Pass a list of ids to filter; omit it (or pass an empty list) to return them all.

ParametersJSON Schema
NameRequiredDescriptionDefault
js_object_idsNo

TDQS

A4.2/5.0
Behavior3/5

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

Describes return content and filtering behavior but does not disclose side effects (e.g., read-only) or permissions. Without annotations, this is a moderate disclosure.

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 front-load the core return content, then explain filtering. 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?

Given one optional parameter and no output schema, description covers return structure and usage. Could mention errors or limits, but adequate for a simple read tool.

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 only parameter, js_object_ids, is fully explained: passing a list filters, omitting returns all. The schema only provides its name and type, so the description adds significant meaning.

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 'Return the full source of JS objects' with specific fields (body, function body, variables, id/name/pageId). Distinguishes from sibling tools like list_js_objects and delete_js_objects.

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 explicit filtering guidance: pass a list of ids to filter, omit for all. However, no comparison with sibling tools like list_js_objects (which might return summary) or execute_js_functions.

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

get_logsA

Return log/error metadata only — severity, category, timestamp, source name/type. Message text and payloads are intentionally excluded to avoid leaking confidential data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that message text and payloads are intentionally excluded for confidentiality, which is a key behavioral trait. However, it does not mention ordering, scope (e.g., all logs or current app), or pagination behavior beyond the limit parameter.

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: two sentences, no unnecessary words. The first sentence immediately states the purpose, and the second adds crucial context about exclusions. Every sentence is valuable and front-loaded.

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 tool's simplicity (one parameter, no output schema), the description is fairly complete. It explains what fields are returned and why message text is excluded. However, it does not specify the scope (e.g., logs for the current app or workspace) or any sorting/ordering, which would improve completeness.

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

Parameters1/5

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

There is only one parameter ('limit'), and the description does not mention it at all. With 0% schema description coverage, the description should explain the parameter's meaning and effect, but it fails to do so. The default value and integer type are in the schema but not enriched by the 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 clearly states that the tool returns log/error metadata including severity, category, timestamp, and source name/type. It also explicitly states what is excluded (message text/payloads) and why, providing a precise purpose that distinguishes it from siblings that return full data or other objects.

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 does not provide explicit guidance on when to use this tool versus alternatives like 'get_state_summary' or 'list_queries'. It implies that it is for metadata-only retrieval and is safe for confidential data, but no direct comparison or exclusion criteria are given.

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

get_state_summaryA

Return counts of widgets, datasources, and queries in the current Appsmith app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It states the tool returns counts, which is a read-only operation. No hidden behaviors are indicated, and the description is consistent with a simple get 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 clear sentence with no waste. It is front-loaded with the action and resources.

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 zero parameters, no output schema, and a simple purpose, the description is mostly complete. It does not mention real-time accuracy or caching, but for a summary tool this 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?

There are no parameters, so schema coverage is 100%. The description does not need to add parameter semantics, and the baseline score of 4 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 it returns counts of widgets, datasources, and queries in the current Appsmith app. The verb 'Return' and specific resources distinguish it from sibling tools that list details.

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 that this tool is for a summary overview, while sibling tools like list_widgets, list_datasources, list_queries provide detailed lists. However, it does not explicitly state when to use this tool over alternatives.

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

get_urlA

Return the URL currently loaded in the attached Firefox tab — e.g. the dashboard /applications, an app editor /app/<slug>/page1-<id>/edit, or elsewhere.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It implies read-only behavior and gives output examples, but does not disclose error conditions (e.g., no attached tab) or side effects. Adequate but could be more transparent.

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 sentence with concrete examples, no wasted words, and front-loaded with the main action.

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 tool with no parameters and no output schema, the description is complete: it explains what it does, provides representative output examples, and implies the context (attached Firefox tab). No gaps.

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?

Input schema has zero parameters, baseline is 4. Description does not need to explain parameters, but it adds value by showing output format examples. Schema coverage is 100% trivially.

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 returns the URL from the attached Firefox tab, with concrete examples like '/applications' or '/app/<slug>/page1-<id>/edit'. It uses specific verb 'Return' and resource 'URL currently loaded'. Given sibling tools, it distinguishes itself as a simple getter.

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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. For a straightforward getter, this is acceptable but not exemplary.

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

get_widgetA

Return the full Redux record for a widget — every property currently set, including position, type-specific config, and dynamic binding paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
widget_idYes

TDQS

A3.7/5.0
Behavior4/5

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

No annotations provided, but description clearly states it returns data without side effects. It does not mention error conditions or permissions, but for a simple read operation, it is adequately transparent.

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?

Single sentence that is front-loaded and precise. Every word adds value; 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?

Given the tool's simplicity (1 param, no output schema), the description covers the output well. It could mention that widget_id must exist, but it is reasonably complete.

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

Parameters1/5

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

Schema has 0% description coverage for the only parameter (widget_id). The description does not explain the parameter or provide any additional meaning beyond its name.

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 it returns the full Redux record for a widget, specifying included properties (position, config, bindings). This distinguishes it from siblings like get_widget_schema or list_widget_types.

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?

No explicit guidance on when to use this vs alternatives. The description implies use for full record retrieval, but doesn't mention when not to use or what other tools are better for partial views.

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

get_widget_schemaA

Return the full property schema for a widget — defaults, meta properties, and every configurable property with its label, controlType, validation, options, and section. Use property_name to drill into a single property. Use the property names with update_widget.

ParametersJSON Schema
NameRequiredDescriptionDefault
widget_typeYes
property_nameNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool returns schema details (defaults, meta properties, etc.) and is implicitly a read operation. No contradictions or hidden behaviors are apparent, making it transparent for a schema retrieval tool.

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, consisting of two sentences that efficiently convey the purpose, contents, and usage. It uses a dash to list contents and avoids unnecessary detail, earning 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?

Given the tool's simplicity (2 parameters, no output schema), the description is mostly complete. It explains the return value, optional drill-down, and how to use results. It could mention that widget_type is the type of widget to query, but overall it suffices.

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 0%, so the description must compensate. It explains property_name's role for drilling down but does not describe widget_type, which is required. The description adds some meaning beyond the schema (which has no descriptions), but the lack of explanation for widget_type leaves a gap.

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 it returns the full property schema for a widget, listing specific contents such as defaults, meta properties, and configurable properties. It distinguishes itself from siblings like get_widget and update_widgets by focusing on schema introspection and explicitly mentioning use with update_widget.

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 usage guidance by instructing to use property_name for drilling into a single property and to use the property names with update_widget. However, it does not explicitly state when to use versus alternatives like get_widget, though the 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_appsA

List all applications across all workspaces with their editor URLs. Fetches via Appsmith's HTTP API, so it works from any page (dashboard or editor).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Discloses the use of HTTP API and that it lists all applications across workspaces, but lacks details on potential large result sets or limitations.

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, front-loaded with the primary action, and no extraneous 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?

Given no parameters or output schema, the description fully covers what the tool does, how it works, and what it returns.

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?

No parameters exist; description adds value by specifying output fields (editor URLs) beyond the empty schema, aligning with baseline 4 for 0 params.

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 specifies the verb 'list', resource 'applications', scope 'across all workspaces', and output 'with their editor URLs', clearly distinguishing it from sibling tools like create_app or get_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?

Indicates it works from any page via HTTP API, providing context for use, but does not explicitly compare to alternatives like get_url for single app retrieval.

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

list_datasourcesA

List datasources in the current workspace (id, name, pluginId, workspaceId). Use the id with create_query.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It lists the returned fields but omits behavioral details like whether the tool is read-only, requires permissions, or has side effects. Basic transparency is present but insufficient for a tool with no 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?

Two concise sentences, front-loaded with the action and including a usage hint. No wasted words.

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?

The description lists the returned fields but does not address pagination, filtering, limits, or error cases. For a list tool with no output schema, more context about the list behavior would improve completeness.

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 input schema has zero parameters, so the description adds no parameter description. However, it contextualizes the output fields, which is helpful. With no parameters, the baseline is 4, and no additional info is needed.

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 lists datasources and specifies the returned fields (id, name, pluginId, workspaceId). It effectively distinguishes from sibling tools like create_datasources, update_datasources, and delete_datasources.

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 usage hint: 'Use the id with create_query.' This guides the agent on how to use the output. However, it does not explicitly state when not to use this tool or list alternatives.

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

list_js_objectsB

List JS objects (collections) in the current application — id, name, pageId, and the function ids/names declared in each.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses the returned fields but does not mention behavioral aspects like read-only nature, authentication requirements, or any side effects. Since no annotations are provided, the description carries the full burden, but it falls short of full 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?

The description is a single concise sentence, front-loaded with the verb and resource. No wasted 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?

For a simple listing tool with no parameters and no output schema, the description adequately specifies the fields returned. It could mention the data structure (e.g., array of objects) but is otherwise 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 is empty, so schema coverage is 100%. The description adds no parameter info because there are none. Baseline 3 applies.

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 clearly states the verb 'List' and the resource 'JS objects (collections)', and specifies the fields returned (id, name, pageId, function ids/names). It distinguishes from siblings like 'get_js_objects' by implying a list of all objects, but does not explicitly differentiate.

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 on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or scenarios. Usage is implied by the name, but explicit guidelines are absent.

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

list_pagesA

List all pages in the current application with id, name, default/hidden flags, and which is currently active.

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?

No annotations provided, so description carries full burden. It describes what the tool does (list with fields) but doesn't disclose any behavioral traits like read-only nature, performance implications, or that it's safe to call multiple times. For a simple list, this is adequate but minimal.

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?

Single sentence, well-structured, front-loaded with key information. No wasted words.

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 list tool with no output schema, the description fully covers what the tool does and what it returns (id, name, flags, active page). No gaps given complexity level.

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?

Input schema has no parameters (100% schema coverage trivially). Description adds no parameter info because none needed. Baseline of 4 is appropriate as description is not required to add meaning beyond schema for 0-param tools.

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 clearly states the verb 'List' and the resource 'pages in the current application', with explicit fields returned. No ambiguity and distinct from sibling tools like list_apps or list_datasources.

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?

Implicit usage context is clear (list all pages), but no explicit guidance on when to use this vs alternatives or any exclusions. For a simple list operation this is sufficient, but could be improved by noting it returns all pages without filtering.

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

list_pluginsA

List Appsmith plugins available to the current workspace (id, name, packageName, type). Use to find a pluginId for create_datasource — common ones: "REST API" (type: API), "PostgreSQL", "MongoDB", "MySQL" (type: DB).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations, so description carries full burden. It describes the output fields and the fact that it lists plugins, but does not explicitly state it is a read-only operation with no side effects. Still, it is reasonably transparent.

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 wasted words. Front-loads purpose, then states use case with examples. Excellent conciseness.

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?

No output schema, but description explains the return fields and provides common plugin examples. For a simple list tool, this is complete and adequate.

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?

No parameters exist, so baseline is 4. Description adds nothing about parameters, but that is appropriate as there are none.

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?

Specifies verb (list), resource (plugins available to workspace), and scope (current workspace). Also lists return fields (id, name, packageName, type) and gives common plugin examples, making it clear and distinct from 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?

Explicitly states usage to find a pluginId for create_datasource, which is precise context. However, does not mention when not to use, but for a trivial list tool, it is sufficient.

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

list_queriesA

List queries (a.k.a. actions) for the currently open application.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It indicates a read-only operation by saying 'list', but lacks details on side effects, permissions, return format, or any other behavioral context.

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 sentence of 12 words, front-loaded with 'List queries', containing no fluff. Every word is essential.

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 tool's simplicity (0 params, no output schema, no annotations), the description is complete enough to convey the basic operation. It could mention return structure, but it's adequate for a simple list tool.

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 0 parameters and schema coverage is 100%. With no parameters, the description does not need to add parameter meaning, earning the baseline 4 per guidelines.

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 resource 'queries' with alias 'actions', and states the scope 'for the currently open application'. It clearly distinguishes from sibling tools like create_queries, delete_queries, etc.

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 usage context ('for the currently open application') but does not provide explicit when-to-use or when-not-to-use guidance, nor does it name alternatives.

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

list_themesA

List the themes available to the current application — built-in plus any saved custom themes. Each entry has id, name, displayName, and isSystemTheme.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so the description carries the burden of disclosing behavior. It correctly implies a non-destructive read operation and clarifies the scope (current app, built-in + custom). However, it does not explicitly state invariants like 'no side effects' or permissions.

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, front-loaded with the primary purpose and then the output fields. No redundant or unnecessary 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?

The description fully explains what the tool returns (list of themes with id, name, displayName, isSystemTheme) and its scope (current app, built-in + custom). Given no output schema, this is complete and sufficient for an agent to understand the tool's functionality.

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?

There are no parameters, and the input schema is fully covered (trivially 100%). The description adds no parameter information but does explain the output structure, which is useful but beyond this dimension.

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 lists themes available to the current application, specifying both built-in and custom themes, and distinguishes from siblings like get_current_theme (single theme) and set_theme (applying a theme). The verb 'list' and resource 'themes' are specific.

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?

No explicit guidance on when to use versus alternatives; however, the description implies it is for obtaining the full list, and the sibling names (get_current_theme, set_theme, etc.) provide context. Usage is implied but not explicitly stated.

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

list_widget_typesA

List every widget type for which a property schema is available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, but description is straightforward for a read-only listing. It does not disclose any limitations or side effects.

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?

Single sentence, no waste, perfectly sized for the simple tool.

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?

No output schema, but description implies a list of names. Lacks details on output format, which may be inferred from context. Adequate for a simple listing.

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?

No parameters, so baseline 4 applies. The description adds nothing beyond the schema, but that is acceptable.

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 clearly states it lists widget types with available property schemas, using specific verb and resource. It distinguishes from sibling tools like get_widget_schema.

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 on when to use this tool versus alternatives. The description only states functionality without context for selection.

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

list_workspacesA

List workspaces (id and name only).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden but only reveals that it lists workspaces with id and name; no mention of side effects, authorization, or performance characteristics. Adequate but minimal.

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?

Single sentence, no fluff; every word is meaningful and front-loaded.

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 tool's simplicity (0 params, no output schema), the description sufficiently covers the essential function and output, though it could mention scope or context.

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?

No parameters exist, so schema coverage is 100%. The description adds no param details, but the baseline for 0 params is 4.

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 clearly states the tool lists workspaces and specifies the returned fields (id and name), making its purpose unmistakable.

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 on when to use this tool versus sibling list tools like list_apps or list_pages; lacks context for selection.

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

manage_table_columnsA

Add, remove, or reorder columns on a TABLE_WIDGET_V2. Each add entry is {"id": "<column_id>", "label"?: str, "columnType"?: "text"|"number"|"date"|"image"|..., "isDerived"?: bool} — defaults match Appsmith's "+" button. remove is a list of column ids. reorder is the desired full list of column ids in order; ids not in the list keep their relative order at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNo
removeNo
reorderNo
widget_idYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It describes the behavior for each operation, including defaults for add entries and behavior for reorder (ids not in list keep relative order). However, it does not disclose side effects, error handling, or permission requirements.

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 a single concise paragraph that efficiently covers all three operations without redundancy. It could be slightly improved with bullet points for readability, but it is well-structured and front-loaded.

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?

Given the tool's complexity (4 parameters, 1 required, no output schema), the description covers input semantics adequately. However, it lacks information about output, error conditions, or success/failure indicators. The absence of annotations also reduces completeness.

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 input schema has 0% description coverage, so the description must compensate. It significantly adds meaning by detailing the structure of 'add' entries (id, label, columnType with defaults), that 'remove' is a list of ids, and that 'reorder' is a full list. This is well beyond the minimal schema info.

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 that the tool adds, removes, or reorders columns on a TABLE_WIDGET_V2, using specific verbs and a specific resource. This distinguishes it from sibling tools like delete_widgets or update_widgets that operate on widgets as a whole.

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 explains how each operation works (add, remove, reorder) but does not provide explicit guidance on when to use this tool versus alternatives such as delete_widgets or update_widgets. The usage context is implied but not directly stated.

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

manage_tabsA

Add, remove, or reorder tabs on a TABS_WIDGET. Each add entry is {"label"?: str} — Appsmith generates the tab id and creates the child Canvas; if label is given it overrides the auto-generated "Tab N". remove is a list of tab ids. reorder is the desired full list of tab ids in order.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNo
removeNo
reorderNo
widget_idYes

TDQS

A4.1/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It details the behavior of each operation: Appsmith generates tab ids and creates child Canvases for 'add'; 'remove' expects tab ids; 'reorder' expects full list. It reveals the auto-generation and overriding logic. However, it does not mention side effects, permissions, or error conditions.

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. The first sentence states the purpose, and the second explains the parameters. It is front-loaded and every sentence adds value without redundancy.

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?

Despite good parameter coverage, the description lacks information about return values (e.g., success indication, errors). It does not explain what happens on invalid input. Given the complexity of tab management, additional context about the result or edge cases would be beneficial.

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 0%, so the description compensates well. It explains that 'add' entries are objects with an optional label, and describes the effects. For 'remove' and 'reorder', it clarifies they are lists of tab ids. Widget_id is not elaborated but is self-explanatory.

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: adding, removing, or reordering tabs on a TABS_WIDGET. It uses specific verbs and a specific resource, and the sibling tools list shows distinct alternatives like manage_table_columns, making differentiation easy.

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 explains how to use the tool (e.g., structure of add entries) but does not provide explicit guidance on when to use it versus alternative tools like add_widgets or reparent_widgets. The context implies it is only for tabs, but no when-not or alternatives are mentioned.

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

patch_js_objectsA

Make targeted string replacements in JS object bodies without rewriting them.

Each edit is `{"target_id", "old", "new", "replace_all"?}` where `target_id`
is a JS object id. `old` is matched literally; if it occurs more than once the
edit fails unless `replace_all` is true (then every occurrence is replaced).

Per-edit result reports `replacements` (count) or an `error` (target not
found / `old` not found / ambiguous match).
ParametersJSON Schema
NameRequiredDescriptionDefault
editsYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description adequately discloses key behaviors: literal matching, failure on multiple occurrences unless replace_all is true, and per-edit result reporting. It does not cover all potential side effects or idempotency, but it gives sufficient detail for safe invocation.

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: two sentences plus a terse bullet-like explanation of the edit format and result structure. Every sentence adds value, and the most important information (what the tool does) 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?

Given no output schema, the description explains the per-edit result (replacements count or error), which is essential. It also clarifies edge cases (multiple occurrences causing failure). For a tool with one parameter and straightforward behavior, this is complete.

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 input schema only defines 'edits' as an array of objects with no further details. The description compensates fully by explaining the required fields (target_id, old, new) and optional replace_all, along with match behavior. This is critical for correct parameter usage.

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: making targeted string replacements in JS object bodies. It uses a specific verb ('make targeted string replacements') and identifies the resource ('JS object bodies'), distinguishing it from sibling tools like update_js_objects that likely rewrite entire objects.

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 usage context by mentioning 'without rewriting them', suggesting it's for targeted edits rather than full rewrites. However, it does not explicitly state when to use this tool versus siblings (e.g., update_js_objects), nor does it provide exclusions or alternative scenarios.

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

patch_widget_codeA

Make targeted string replacements in a Custom Widget's code without rewriting it.

Each edit is `{"widget_id", "field", "old", "new", "replace_all"?}` where
`field` is one of `html`, `css`, or `js`. `old` is matched literally; if it
occurs more than once the edit fails unless `replace_all` is true (then every
occurrence is replaced).

Per-edit result reports `replacements` (count) or an `error` (widget not
found / wrong type / bad field / `old` not found / ambiguous match). The change is
written to both `srcDoc` and `uncompiledSrcDoc` so a reload can't revert it;
successful edits report `synced: true`.
ParametersJSON Schema
NameRequiredDescriptionDefault
editsYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description provides substantial behavioral details: literal matching, failure on ambiguous match unless 'replace_all' is true, writing to both srcDoc and uncompiledSrcDoc, and per-edit result structure. It lacks disclosure about permissions or irreversibility, but covers the main behavioral traits well.

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 well-structured with a clear goal, then detailed explanation. It is relatively long but every sentence adds value. A slight reduction could improve conciseness, but it remains focused.

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 tool's complexity (array of edit objects, no output schema), the description covers input format, per-edit result fields (replacements, error), and sync behavior. It does not explicitly describe the overall return structure (likely an array of results), but provides enough context for an agent to infer behavior.

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 0% for the single parameter, but the description fully explains the edit object structure with fields (widget_id, field, old, new, replace_all), including allowed field values, matching behavior, and effect of replace_all. This compensates completely for the missing 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: 'Make targeted string replacements in a Custom Widget's code without rewriting it.' It uses a specific verb ('patch' vs 'rewrite') and resource, and distinguishes from siblings like 'update_custom_widget' which likely replaces the entire code.

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 when to use this tool (targeted changes) vs alternatives like full rewrites via 'update_custom_widget'. However, it does not explicitly state when not to use it or name the alternative, leaving room for improvement.

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

refresh_pageA

Reload the attached Firefox tab (same URL) and wait for it to finish loading. Resets the Redux store binding, so the next tool call re-bootstraps it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden and effectively discloses key behaviors: reloading the tab, waiting for load, and resetting the Redux store. However, it omits potential side effects like losing unsaved state or performance impact.

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 that are front-loaded with the primary action and followed by a key behavioral note. No wasted 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?

For a simple tool with no parameters and no output schema, the description is sufficient. It explains the core action and a significant side effect. Could optionally describe the return value or success state.

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?

No parameters exist, so the schema coverage is 100%. The description does not need to add parameter semantics, and the baseline of 4 is appropriate per guidance.

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: reload the attached Firefox tab with the same URL and wait for loading. It differentiates from sibling tools like 'navigate' or 'switch_page' by specifying the reload behavior and the Redux store reset.

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 usage when needing to reload the current page but does not explicitly state when not to use it or compare to alternatives like 'navigate' or 'switch_page'. No exclusion criteria or best practices provided.

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

rename_widgetsA

Rename multiple widgets in one tool call. Each entry is {"widget_id": <id>, "new_name": <str>}. New names must be valid Appsmith identifiers (alphanumeric, can't start with a digit, no spaces) — Appsmith may reject conflicts.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A3.8/5.0
Behavior3/5

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

Discloses naming constraints and potential conflict rejection, but does not detail atomicity or partial failure behavior. With no annotations, more detail would be beneficial.

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, front-loaded purpose. 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?

Covers input format and naming rules. Lacks return value description but acceptable given low complexity and no output 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?

Schema coverage is 0% (array items have only additionalProperties). The description specifies the expected key-value format, adding crucial 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 clearly states the tool renames multiple widgets, with a specific verb and resource. It distinguishes from siblings like update_widgets.

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 on when to use this tool vs alternatives (e.g., update_widgets). Lacks explicit when/to-use and when-not-to-use context.

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

reparent_widgetsA

Reparent multiple widgets in one tool call. Each entry is {"widget_id": <id>, "new_parent_id": <id>}. The new parent must accept children (a CANVAS_WIDGET). Position is preserved verbatim — call set_widget_bounds afterwards if the new parent's snap dimensions differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It states that position is preserved verbatim and hints at the need for post-adjustment. However, it omits error handling (e.g., invalid widget IDs) and reversibility, leaving gaps in 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?

Three sentences, each adding distinct value: purpose, parameter format, and usage constraint. No repetition or unnecessary words. Highly efficient.

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 single parameter and lack of output schema, the description covers the essential aspects: action, data format, parent constraint, and post-action step. It could mention validation or failure cases, but it remains fairly complete for a straightforward tool.

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 has 0% coverage for the 'updates' parameter, but the description adds full meaning by specifying the exact structure: each entry is {widget_id, new_parent_id}. This compensates entirely for the schema deficiency.

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 'reparent' and resource 'widgets', and indicates it operates on multiple widgets in a single call. It distinguishes from siblings like add_widgets and update_widgets by specifying the action of changing parentage.

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 provides explicit constraints: new_parent_id must accept children (CANVAS_WIDGET) and advises calling set_widget_bounds after if snap dimensions differ. It does not explicitly state when not to use or list alternatives, but the guidance is clear and helpful for standard use.

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

run_commandA

Evaluate an arbitrary JS snippet in the attached Firefox tab and return the result. The snippet runs in page context with access to window.__store. Use for exploring Redux state and discovering action shapes. Result must be JSON-serializable. Use sparingly and only with explicit user permission — this is an escape hatch that can dispatch any action and read any state, bypassing the safety constraints of the other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
snippetYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: runs in page context, accesses `window.__store`, result must be JSON-serializable, can dispatch any action and read any state, and is an escape hatch bypassing safety constraints. This is highly transparent.

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 slightly long but well-structured and front-loaded with the action. Every sentence serves a purpose: stating the action, context, usage restrictions, and safety warnings. Minor reduction possible but still effective.

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 no output schema, the description explains the result is returned and mentions the context. It covers the snippet's capabilities and constraints. Could mention error handling or security implications, but overall adequate for a powerful escape hatch tool.

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 description coverage is 0%, the description adds significant meaning beyond the schema by explaining that the snippet runs in page context, accesses Redux store, and must return JSON-serializable results. This compensates fully for the lack of schema documentation.

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 evaluates an arbitrary JS snippet in the attached Firefox tab and returns the result. It specifies the context (page context with access to `window.__store`) and distinguishes itself from siblings by being an escape hatch for exploring Redux state and action shapes.

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 use for exploring Redux state and discovering action shapes. It instructs to use sparingly and only with explicit user permission, and warns that it bypasses safety constraints of other tools, providing clear when-to-use and 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.

save_custom_themeB

Save the current theme (with any local edits) as a named custom theme. The new theme appears in list_themes for future set_theme calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions the theme appears in list_themes, but does not specify whether saving an existing name overwrites or fails, nor any other side effects or authorization requirements.

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 clearly state the action and outcome, with no wasted words. The essential information is front-loaded.

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 tool's simplicity (one parameter, no output schema), the description covers the core functionality well. Missing details like overwrite behavior are minor gaps.

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

Parameters1/5

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

With 0% schema description coverage, the description should add meaning beyond the parameter name. It only reiterates that the name is the theme name, offering no format, constraints, or uniqueness 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?

The description clearly states the verb 'save', the resource 'current theme', and the outcome 'named custom theme'. It also distinguishes from sibling tools like set_theme by noting the saved theme appears in list_themes for future use.

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 usage after local edits via 'with any local edits', but does not explicitly state when to use this tool vs alternatives like update_theme or set_theme. No exclusions or prerequisites are given.

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

set_themeA

Switch the application to a different theme by id. Use list_themes to find ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
theme_idYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided; description states it switches theme but omits details on persistence, permissions, or side effects. Adequate for a simple action but minimal.

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, no unnecessary words. Front-loaded with action and resource, then provides guidance.

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 one-parameter tool with no output schema, description covers purpose and parameter sourcing. Could mention return behavior but not essential.

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 has no description for theme_id (0% coverage). Description adds crucial context: the id comes from list_themes, helping agent understand parameter source and format.

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 clearly states action (switch theme), resource (application theme), and how to find theme ids using list_themes. Differentiates from sibling tools like update_theme and list_themes.

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 use list_themes to find ids, implying prerequisite step. Does not explicitly exclude other uses, but context is clear. Could improve by noting not for creating themes.

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

set_widget_boundsA

Move and/or resize multiple widgets in one tool call. Each entry is {"widget_id": <id>, "left": <int>, "top": <int>, "columns": <int>, "rows": <int>}left/top set the top-left, columns/rows set the size; any omitted field is preserved per widget. When rows is given, auto-height widgets are switched to FIXED so the resize sticks (reported as heightModeOverridden).

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It discloses a key behavioral trait: when `rows` is given, auto-height widgets switch to FIXED (with `heightModeOverridden` reported). However, it does not cover error handling, permissions, or effects of invalid inputs.

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 wasted words. It front-loads the purpose, then details the entry format and behavior efficiently. Every sentence adds value.

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 no output schema and only one parameter, the description provides a good level of detail. It explains the data format and a specific side effect. Missing details like return value or validation of required fields, but it is largely sufficient for a focused tool.

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 input schema is minimal (only an array of objects with no field definition), and schema coverage is 0%. The description compensates fully by explicitly listing all fields (`widget_id`, `left`, `top`, `columns`, `rows`), explaining their roles, and noting that omitted fields are preserved. This adds significant 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 clearly states the action: 'Move and/or resize multiple widgets in one tool call.' It specifies the resource (widgets) and the operation (bounds modification), distinguishing it from sibling tools like rename_widgets or reparent_widgets.

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 for when to use the tool (to move/resize widgets) but does not explicitly state when not to use it or compare alternatives. It implies usage for batch bounds changes, but lacks exclusions.

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

switch_pageC

Switch the editor to a different page in the current application.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYes

TDQS

C2.7/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond the basic action. It lacks details on side effects (e.g., unsaved changes), required permissions, or whether the tool is read-only or destructive. With no annotations, the description should carry this burden but fails to do so.

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

Conciseness3/5

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

The description is very concise (one sentence) but lacks structure. While it front-loads the action, it omits necessary details that could be added without significant lengthening. It feels under-specified rather than efficiently complete.

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?

Given the tool's simplicity, the description still fails to provide enough context. It does not differentiate from the sibling 'navigate' tool, nor does it mention the absence of a return value. The single parameter is left entirely unspecified.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain parameter semantics. It does not clarify the expected format of 'page_id' (e.g., numeric ID, string name) or how to obtain valid values. The parameter is entirely dependent on external knowledge.

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 'switch' and resource 'page', and specifies the scope 'in current application'. It effectively distinguishes the tool from siblings like 'navigate' (which may involve external URLs) and 'create_pages' (which creates rather than switches).

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 provided on when to use this tool versus alternatives (e.g., 'navigate' or 'refresh_page'). There is no mention of prerequisites, such as the page existing or how to obtain valid page IDs.

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

update_appB

Update the current application's surface metadata and settings. name/icon/color rename or restyle. navigation patches applicationDetail.navigationSetting (e.g. {"showNavbar": true, "orientation": "side", "navStyle": "sidebar", "colorStyle": "light", "showSignIn": true}). theme_settings patches the app-wide sizing/density overrides (e.g. {"sizing": 1.0, "density": 1.0, "appMaxWidth": "LARGE"}). positioning patches the layout system (e.g. {"type": "FIXED"}). app_id defaults to the currently open application.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNo
nameNo
colorNo
app_idNo
navigationNo
positioningNo
theme_settingsNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description provides some behavioral context: it patches specific nested objects (navigation, theme_settings, positioning) and defaults app_id to the current app. However, it omits side effects, error conditions, and permission requirements.

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 relatively concise, front-loading the main purpose. Each parameter group is explained in separate phrases, though a more structured format (e.g., bullet points) could improve clarity.

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?

The description covers the main functionality and key parameters but lacks information about return values, error handling, and permissions. Given the complexity (7 params, no output schema), it is adequate but not comprehensive.

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?

Despite 0% schema description coverage, the description adds significant meaning by explaining each parameter's purpose and providing example JSON for navigation, theme_settings, and positioning. This compensates well for the schema gap.

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 clearly states the tool updates application surface metadata and settings, listing specific fields (name, icon, navigation, etc.). It distinguishes from siblings like create_app and delete_app, though not explicitly from other update tools like update_theme.

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 on when to use this tool versus alternatives. The description does not mention prerequisites, when-not scenarios, or compare to sibling tools like update_theme or create_app.

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

update_custom_widgetA

Update a Custom Widget's model, name, events, triggers, height mode, and/or position.

`default_model` replaces the model the widget reads via `appsmith.model` (dict or JSON
string). `name` renames it. `events` registers the event names the widget can emit
(e.g. `["onRefresh"]`). `triggers` binds those events to expressions, keyed by event
name (e.g. `{"onRefresh": "{{ bootstrap.load() }}"}`) — each is wired into the widget's
dynamicTriggerPathList automatically. `dynamic_height` is `"AUTO_HEIGHT"` or `"FIXED"`.
`left`/`top`/`columns`/`rows` move/resize it. Source code (html/css/js) is not editable
here — use patch_widget_code for targeted in-place source edits.
ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
leftNo
nameNo
rowsNo
eventsNo
columnsNo
triggersNo
widget_idYes
default_modelNo
dynamic_heightNo

TDQS

A4.8/5.0
Behavior4/5

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

Reveals side effect: triggers are 'wired into the widget's dynamicTriggerPathList automatically.' No annotations, so description carries burden. Could mention immediate application or validation, but already provides useful behavioral context beyond the 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 concise paragraphs: first sentence states purpose, then parameter explanations. No redundant or extraneous sentences. Information is front-loaded and easy to parse.

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 10 parameters, 0% schema coverage, no output schema, and no annotations, description covers all necessary information: purpose, parameter semantics, usage constraints, and alternative sibling. Leaves no gaps for an agent to misinterpret.

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 description coverage is 0%, so description fully compensates. Explains all 10 parameters with specific details: default_model (dict/JSON string), events (array of strings), triggers (keyed by event name), dynamic_height (two enum values), position (left/top/columns/rows). Even notes that triggers are wired automatically.

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 verb 'Update' and resource 'Custom Widget', listing specific aspects (model, name, events, triggers, height mode, position). Distinguishes from sibling patch_widget_code by noting source code is not editable here.

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 states when not to use: 'Source code (html/css/js) is not editable here — use patch_widget_code for targeted in-place source edits.' Provides clear scenario-based guidance and alternative tool.

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

update_datasourcesA

Update multiple datasources in one tool call. Each entry is {"datasource_id", "name"?, "datasource_config"?}. datasource_config is shallow-merged into the current datasourceConfiguration across every environment storage per entry, so you can change just url or authentication.password without re-sending the whole config. The Redux datasource list is refetched once at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It explains the shallow-merge behavior and that the Redux list is refetched at the end. It lacks details on error handling, idempotency, or limits, but the key behaviors are 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 concise with four sentences, front-loaded with the primary purpose. Every sentence adds value, and there is no fluff.

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?

No output schema is provided, and the description does not explain the return value (e.g., success/failure, updated IDs). It also omits constraints like the maximum number of updates per call. For a tool with one parameter and good behavioral details, it is mostly complete but leaves some gaps.

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 input schema has 0% description coverage, so the description must compensate. It does so by detailing the structure of the 'updates' array entries: requiring 'datasource_id' and optional 'name' and 'datasource_config', and explaining how 'datasource_config' is shallow-merged. This adds significant 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 clearly states the tool updates multiple datasources in one call, specifying the structure of each entry and the shallow-merge behavior. It distinguishes itself from create_datasources and delete_datasources by focusing on updates.

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 implicitly conveys when to use this tool (updating multiple datasources at once), but it does not explicitly state when not to use it or provide alternatives like updating one-by-one. However, the context is clear enough for an AI agent.

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

update_js_objectsA

Replace the source of multiple JS objects in one tool call. Each entry is {"js_object_id", "body"}. Function names are re-parsed by Appsmith from each body.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Includes re-parsing side effect but lacks details on overwrite behavior, permissions, error handling, or atomicity.

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, front-loaded with purpose, no redundant words.

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?

Lacks details on return value, error behavior, batch limits, or idempotency. Adequate but not thorough given no annotations or output 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?

With 0% schema description coverage, description adds meaning by specifying the required structure (js_object_id, body) and noting function name re-parsing, compensating for sparse 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?

Clearly states it replaces the source of multiple JS objects in one call, using a batch format. Distinguishes from siblings like create_js_objects and patch_js_objects via emphasis on bulk replacement.

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?

No explicit comparison to alternatives like patch_js_objects; usage context is implied but not clarified.

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

update_queriesA

Update multiple queries in one tool call. Each entry is {"query_id", "action_config"?, "name"?, "run_behaviour"?}. action_config is shallow-merged into the existing actionConfiguration per entry, so you can change just httpMethod or body without re-sending the rest. The Redux action list is refetched once at the end.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description reveals the shallow-merge behavior for action_config and the refetch of Redux action list. However, it omits details about overwrite behavior for other fields, error handling, or required permissions.

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 with no wasted words. The purpose is front-loaded, followed by entry format and key behavioral note (merge and refetch). Each sentence adds distinct value.

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?

The description covers main usage and merge behavior but lacks return value, error handling, and prerequisite information (e.g., where to get query_ids). Given no output schema and no annotations, more context would be beneficial.

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 provides 0% coverage, so the description compensates by defining the entry structure (query_id, action_config?, name?, run_behaviour?) and explaining the shallow-merge semantics. It adds significant meaning beyond the schema, though type information is missing.

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 updates multiple queries in one call, with specific fields (query_id, action_config, name, run_behaviour). This distinguishes it from sibling tools like delete_queries, create_queries, and other update 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 usage for batch updates and explains partial updates via shallow merge, but does not explicitly state when not to use this tool or what alternatives exist (e.g., updating a single query individually).

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

update_themeA

Patch the current theme's properties. Pass a dict keyed by section (colors, fontFamily, borderRadius, boxShadow) whose values are dicts of keys to override. Example: {"colors": {"primaryColor": "#1a73e8"}, "fontFamily": {"appFont": "Inter"}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertiesYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It explains the allowed sections and structure but does not state whether changes are persistent, if invalid keys are ignored, or any side effects.

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 plus an example. The purpose is front-loaded, and every sentence adds value. 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?

Given the tool's simplicity (one parameter, no output schema), the description is largely complete: it explains the parameter structure and usage. Could optionally mention success response or error handling, but not essential for basic usage.

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 has 0% description coverage for the single 'properties' parameter. The description adds significant meaning by specifying the expected structure (dict keyed by section) and providing a concrete example, fully compensating for the lack of schema 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 clearly states 'Patch the current theme's properties', with specific verb 'patch' indicating partial update. It lists the sections that can be overridden, differentiating from sibling tools like 'set_theme' (full replace) and 'save_custom_theme' (save as new).

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?

Usage is implied: use when you want to override specific theme properties. However, there is no explicit guidance on when not to use or comparison with alternatives like 'set_theme' or 'save_custom_theme'.

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

update_widgetsA

Apply property updates to one or more widgets. Each entry is {"widget_id": <id>, "props": {<prop>: <value>, ...}}.

Dict values are deep-merged with existing state — so to change just one sub-key you
can pass `{"srcDoc": {"css": "..."}}` without resending html/js. Non-dict values are
replaced.

Bindings and triggers are wired automatically:
  - properties whose name starts with `on` (e.g. `onClick`) are registered as triggers.
  - string values containing `{{...}}` are registered as dynamic bindings.
  - any other value is a literal and is removed from the dynamic path lists.

Composite widgets (Statbox) and Modal show/hide are delegated automatically.
Returns a list of per-widget results.
ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYes

TDQS

A4.4/5.0
Behavior4/5

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

Discloses key behaviors such as deep-merge semantics, automatic registration of triggers and bindings, and delegation for modals/statboxes. Mentions return value but lacks clarity on error handling or authentication needs. Since no annotations exist, the description carries full burden and does so well.

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?

Several sentences but well-structured, front-loading the main action and then detailing subtleties. Could be slightly more concise, but each sentence adds value.

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?

Comprehensive for a complex tool with one parameter and no output schema. Covers input format, behavior, and return. Minor omissions like error handling or invalid IDs, but sufficient for most use cases.

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?

Compensates for 0% schema coverage by fully explaining the structure of the 'updates' parameter: each entry must have widget_id and props, and describes how different value types are handled (dict deep-merge, non-dict replace, bindings/triggers).

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 'Apply property updates to one or more widgets,' using a specific verb and resource. Distinguishes from sibling tools like delete_widgets, add_widgets, and reparent_widgets.

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 detailed instructions on how to structure updates, including deep merging, automatic binding/triggers, and delegation for composite widgets. However, it does not explicitly state when to avoid using this tool.

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. Dates show when Glama detected each change.

  1. 57 tool updatesv0.1.0
    • First observedadd_widgets
    • First observedcheck_layout
    • First observedclear_canvas
    • First observedcreate_app
    • First observedcreate_custom_widget
    • First observedcreate_datasources
    • First observedcreate_js_objects
    • First observedcreate_pages
    • First observedcreate_queries
    • First observeddelete_app
    • First observeddelete_custom_themes
    • First observeddelete_custom_widget
    • First observeddelete_datasources
    • First observeddelete_js_objects
    • First observeddelete_pages
    • First observeddelete_queries
    • First observeddelete_widgets
    • First observeddump_state
    • First observedexecute_js_functions
    • First observedexecute_queries
    • First observedget_current_theme
    • First observedget_custom_widget
    • First observedget_js_objects
    • First observedget_logs
    • First observedget_state_summary
    • First observedget_url
    • First observedget_widget
    • First observedget_widget_schema
    • First observedlist_apps
    • First observedlist_datasources
    • First observedlist_js_objects
    • First observedlist_pages
    • First observedlist_plugins
    • First observedlist_queries
    • First observedlist_themes
    • First observedlist_widget_types
    • First observedlist_workspaces
    • First observedmanage_table_columns
    • First observedmanage_tabs
    • First observednavigate
    • First observedpatch_js_objects
    • First observedpatch_widget_code
    • First observedrefresh_page
    • First observedrename_widgets
    • First observedreparent_widgets
    • First observedrun_command
    • First observedsave_custom_theme
    • First observedset_theme
    • First observedset_widget_bounds
    • First observedswitch_page
    • First observedupdate_app
    • First observedupdate_custom_widget
    • First observedupdate_datasources
    • First observedupdate_js_objects
    • First observedupdate_queries
    • First observedupdate_theme
    • First observedupdate_widgets

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with batch and individual versions (e.g., create_datasources vs create_custom_widget). However, some overlap exists between patch_js_objects and update_js_objects, and between patch_widget_code and update_custom_widget, though they target different aspects (targeted edits vs full replacement). Overall, ambiguity is low.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_app, list_queries, update_widgets). The naming is predictable and easy to understand, with no mixing of conventions or unclear verbs.

Tool Count2/5

With 57 tools, the server is excessively large. Many tools are batch versions (e.g., create_datasources, delete_queries) that could be combined with optional parameters, and there are numerous delete tools for each resource type. The count feels inflated relative to the domain's core operations.

Completeness4/5

The tool surface covers CRUD operations for all major resources (widgets, datasources, queries, JS objects, pages, apps, themes) and includes execution, navigation, and diagnostics. Minor gaps exist, such as the lack of individual creation tools for datasources/queries/JS objects (only batch versions), but these are workable.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/t0knight/appsmith-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server