appsmith-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APPSMITH_URL | Yes | The URL of the Appsmith instance | |
| APPSMITH_PASSWORD | Yes | The Appsmith password | |
| APPSMITH_USERNAME | Yes | The Appsmith username | |
| APPSMITH_MCP_MAX_CHARS | No | Maximum number of characters for large payloads (page DSLs, exports). Payloads are truncated at this limit. | |
| APPSMITH_MCP_ALLOW_DESTRUCTIVE | No | Set to 'true' to allow destructive operations such as delete application and non-GET appsmith_api_request calls |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| appsmith_whoamiA | Returns the authenticated Appsmith user and instance info. Use this first to confirm the MCP server can reach and log into the instance. |
| appsmith_list_workspacesA | Lists the workspaces the authenticated user can access, with their ids. |
| appsmith_list_applicationsA | Lists Appsmith applications, optionally filtered to one workspace. Returns app ids needed by the other tools. |
| appsmith_list_pagesC | Lists the pages of an application, with page ids and which page is the default. |
| appsmith_get_pageA | Returns a page. By default returns a widget outline (name, type, id) which is compact; set full=true for the raw layout DSL, which can be very large. |
| appsmith_list_queriesB | Lists the non-JS actions (database queries and API calls) of an application, including their datasource and current body. |
| appsmith_list_js_objectsB | Lists the JS objects (action collections) of an application and their function names. |
| appsmith_list_datasourcesC | Lists datasources in a workspace, with the plugin each one uses. |
| appsmith_get_datasource_structureB | Returns the introspected schema (tables, columns, keys) of a datasource. |
| appsmith_list_pluginsA | Lists available Appsmith plugins (Postgres, REST API, MongoDB, ...) and their ids. |
| appsmith_search_entitiesB | Searches applications and workspaces by keyword. |
| appsmith_export_applicationA | Exports an application as JSON. Writes to outputPath when given (recommended — exports are large); otherwise returns the JSON inline, truncated. |
| appsmith_create_workspaceC | Creates a new Appsmith workspace. |
| appsmith_create_applicationB | Creates an application inside a workspace. |
| appsmith_create_pageB | Creates a page in an application, with the same empty root canvas the editor creates. |
| appsmith_update_queryA | Edits an existing query or API action. Only the fields you pass are changed — the server merges the rest, so the datasource and untouched settings are preserved. Does not rename: renaming needs a refactor that rewrites bindings across the app. |
| appsmith_create_queryB | Creates a query on a page against an existing datasource. The plugin and workspace are taken from the datasource. |
| appsmith_delete_queryA | Deletes a query or API action. Disabled unless APPSMITH_MCP_ALLOW_DESTRUCTIVE=true is set in the server env. |
| appsmith_create_js_objectA | Creates a JS object from its source. The exported functions are parsed out of the body — Appsmith stores each one separately, and the source alone would produce an object with no callable functions. |
| appsmith_update_js_objectA | Replaces a JS object's source. Functions are parsed from the new body and diffed against the current ones, so added, changed and removed functions are all applied — a plain body write would leave deleted functions behind. |
| appsmith_delete_js_objectA | Deletes a JS object and all its functions. Check for references first — nothing rewrites bindings that point at it. Disabled unless APPSMITH_MCP_ALLOW_DESTRUCTIVE=true is set in the server env. |
| appsmith_get_widgetA | Returns one widget's properties from a page, without dumping the whole layout. Use this to see current values before editing. |
| appsmith_update_widgetA | Sets properties on a widget, e.g. {"isDisabled": "{{ appsmith.store.modo === "edicion" }}"}. Binding registration is handled automatically: a value containing {{ }} is added to the widget's dynamicBindingPathList, and a literal value is removed from it. Property names may be dot paths for nested config. Other widgets on the page are left untouched. |
| appsmith_clone_widgetA | Copies an existing widget (and everything inside it) into the same page under a new name, then applies any property overrides. This is how to add a widget: Appsmith's widget defaults live in its frontend, not its API, so copying a real widget of the wanted type is what produces a valid one. The copy lands below its siblings. Bindings inside the copy are carried over as-is, so any that named the source widget still point at the original — the response lists what was renamed so they can be fixed. |
| appsmith_generate_crud_pageA | Runs Appsmith's own page generator: builds a page with a table, a form and the wired-up queries from one datasource table. This is the supported way to create a complete, detailed screen — the layout comes from Appsmith rather than being assembled by hand. |
| appsmith_execute_queryB | Executes an existing query/API by its action id and returns the result. This runs against the real datasource — a write query will write. |
| appsmith_publish_applicationA | Deploys the current edit-mode state of an application, making it live for viewers. |
| appsmith_clone_applicationA | Clones an application within its workspace. Useful as a backup before risky edits. |
| appsmith_delete_applicationA | Permanently deletes an application. Disabled unless APPSMITH_MCP_ALLOW_DESTRUCTIVE=true is set in the server env. |
| appsmith_api_requestA | Calls any Appsmith REST endpoint directly, for things the typed tools do not cover. GET is always allowed; other methods require APPSMITH_MCP_ALLOW_DESTRUCTIVE=true. |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/Davidgraciano/appsmith-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server