appsmith-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_state_summaryA | Return counts of widgets, datasources, and queries in the current Appsmith app. |
| list_workspacesA | List workspaces (id and name only). |
| 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). |
| 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. |
| update_appB | Update the current application's surface metadata and settings. |
| delete_appC | Delete an application by id. The user is then redirected away from the editor. |
| 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. |
| add_widgetsA | Add multiple widgets in one tool call. Each entry is the same shape as |
| update_widgetsA | Apply property updates to one or more widgets. Each entry is
|
| delete_widgetsA | Delete multiple widgets in one tool call. Cascades children, disallowUndo is set. |
| set_widget_boundsA | Move and/or resize multiple widgets in one tool call. Each entry is
|
| rename_widgetsA | Rename multiple widgets in one tool call. Each entry is |
| list_pagesA | List all pages in the current application with id, name, default/hidden flags, and which is currently active. |
| reparent_widgetsA | Reparent multiple widgets in one tool call. Each entry is |
| clear_canvasA | Delete every widget directly under MainContainer. Cascades to nested children. |
| get_widgetA | Return the full Redux record for a widget — every property currently set, including position, type-specific config, and dynamic binding paths. |
| 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. |
| create_pagesC | Create multiple blank pages in the current application in one tool call. |
| delete_pagesC | Delete multiple pages in one tool call. |
| switch_pageC | Switch the editor to a different page in the current application. |
| 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). |
| list_datasourcesA | List datasources in the current workspace (id, name, pluginId, workspaceId). Use the id with create_query. |
| list_queriesA | List queries (a.k.a. actions) for the currently open application. |
| create_datasourcesA | Create multiple datasources in one tool call via Appsmith's REST API. Each entry is
|
| create_queriesA | Create multiple queries bound to datasources in one tool call via Appsmith's REST
API. Each entry is |
| update_queriesA | Update multiple queries in one tool call. Each entry is |
| execute_queriesA | Run multiple queries by id and return their responses. Equivalent to clicking the
Run button on each. Each result includes |
| delete_queriesB | Delete multiple queries in one tool call. |
| update_datasourcesA | Update multiple datasources in one tool call. Each entry is |
| delete_datasourcesB | Delete multiple datasources in one tool call. |
| dump_stateA | Return the state of the currently open Appsmith application. |
| 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. |
| get_current_themeA | Return the currently selected theme for the open application, including its
|
| set_themeA | Switch the application to a different theme by id. Use list_themes to find ids. |
| 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. |
| delete_custom_themesA | Delete multiple saved custom themes in one tool call. Each entry is
|
| update_themeA | Patch the current theme's properties. Pass a dict keyed by section
( |
| list_widget_typesA | List every widget type for which a property schema is available. |
| 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 |
| manage_table_columnsA | Add, remove, or reorder columns on a TABLE_WIDGET_V2. Each |
| manage_tabsA | Add, remove, or reorder tabs on a TABS_WIDGET. Each |
| list_js_objectsB | List JS objects (collections) in the current application — id, name, pageId, and the function ids/names declared in each. |
| get_js_objectsA | Return the full source of JS objects — each object's |
| patch_js_objectsA | Make targeted string replacements in JS object bodies without rewriting them. |
| patch_widget_codeA | Make targeted string replacements in a Custom Widget's code without rewriting it. |
| create_custom_widgetA | Create a single Custom Widget — the primary entrypoint of this MCP. |
| get_custom_widgetA | Return a Custom Widget's full source ( |
| update_custom_widgetA | Update a Custom Widget's model, name, events, triggers, height mode, and/or position. |
| delete_custom_widgetC | Delete a Custom Widget by id. |
| create_js_objectsA | Create multiple JS objects in one tool call. Each entry is |
| delete_js_objectsA | Delete multiple JS objects in one tool call. |
| update_js_objectsA | Replace the source of multiple JS objects in one tool call. Each entry is
|
| execute_js_functionsA | Execute multiple JS functions in one tool call. Each entry is |
| 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 |
| get_urlA | Return the URL currently loaded in the attached Firefox tab — e.g. the dashboard
|
| navigateA | Navigate the attached Firefox tab to a URL. Resets the Redux store binding. |
| 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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