Skip to main content
Glama
SmartSuiteFoundry

SmartSuite MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SMARTSUITE_API_KEYYesYour SmartSuite API key
SCHEMA_CACHE_TTL_MSNoApplication schema cache TTL (5 min)300000
SMARTSUITE_BASE_URLNoAPI base URLhttps://app.smartsuite.com/api/v1
SMARTSUITE_LOG_FILENoPath to write logs (default: stderr)
SMARTSUITE_MCP_MODENoAccess mode: readonly, readwrite, adminreadonly
SMARTSUITE_LOG_LEVELNoLog level: debug, info, warn, errorinfo
SMARTSUITE_ACCOUNT_IDYesYour SmartSuite account ID
SMARTSUITE_MAX_RECORDSNoHard cap for list/query tools100
SMARTSUITE_RETRY_COUNTNoNumber of retries for rate limits and transient errors2
SMARTSUITE_ENABLE_DELETENoEnable delete toolsfalse
SMARTSUITE_MAX_BATCH_WRITESNoMax records per batch update25
SMARTSUITE_ALLOWED_SOLUTIONSNoComma-separated solution IDs to allow (default: all)
SMARTSUITE_REQUEST_TIMEOUT_MSNoHTTP request timeout in milliseconds30000
SMARTSUITE_DENIED_APPLICATIONSNoComma-separated application IDs to block (default: none)
SMARTSUITE_ENABLE_SCHEMA_WRITENoEnable schema write toolsfalse
SMARTSUITE_ALLOWED_APPLICATIONSNoComma-separated application IDs to allow (default: all)
SMARTSUITE_ENABLE_SMARTDOC_WRITENoEnable SmartDoc append toolsfalse

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
smartsuite_diagnosticsA

Validate SmartSuite MCP server configuration and connectivity. Returns server version, mode, and account info. Does not return the API key.

smartsuite_list_solutionsA

List SmartSuite solutions (workspaces) accessible to the authenticated user.

smartsuite_get_solutionA

Get details for a specific SmartSuite solution.

smartsuite_create_solutionA

Create a new solution. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Only a name is required; the server assigns a slug, a default logo, and private-to-you permissions. Optionally set logoIcon and logoColor. Add tables to it with smartsuite_create_application. Dry-run preview unless confirm:true.

smartsuite_list_applicationsA

List SmartSuite applications (tables). Optionally filter by solution. Returns full table objects by default (heavy — includes each table's field structure); set slim:true to return only {id, name, slug, solution, fieldCount}, which is the safe way to inventory a multi-table solution without exceeding the token budget. The response includes a total (pre-limit count).

smartsuite_create_applicationA

Create a new table (application) in a solution. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Supply a name and the solutionId. The table is created with a default "Title" primary field; add more fields with smartsuite_create_field. Dry-run preview unless confirm:true.

smartsuite_describe_applicationA

Describe a SmartSuite application schema, including field slugs, types, and options, plus the record term (custom record terminology). Always call this before creating or updating records so you know field slugs and valid values. Set includeLayout:true to also return the record-view layout (sections with collapse flags, and the field row arrangement of the active layout mode). TOKEN COST: the schema is large; a full table is ~1k+ tokens. The schema is STABLE within a session — call this once per table and reuse the result; do NOT re-describe the same application (use forceRefresh only after you change the schema). When you only need field slugs/types/choices (e.g. to build or query records), use verbosity:"compact" or the lighter smartsuite_list_fields instead of the default.

smartsuite_list_deleted_applicationsA

List soft-deleted applications (tables) in a solution's trash (read-only). Returns id, name, and recordTerm for each. Note: SmartSuite exposes no public endpoint to restore a deleted application, so this is listing only (restore a table from the SmartSuite UI).

smartsuite_list_fieldsA

List a SmartSuite application's fields as a token-lean column list: slug, label, type, choice options (value+label), and linked-app targets — omitting help text and false flags. Cheapest way to learn a table's fields; prefer this over smartsuite_describe_application when you just need field slugs/types/choices and not the record layout or help text. The result is stable within a session — call once per table and reuse it.

smartsuite_describe_fieldA

Get detailed metadata for a single field in a SmartSuite application, including help text, choice options, linked-record targets, and — for formula fields — the formula expression and its computed return type.

smartsuite_analyze_formulasA

Review and analyze formula fields in a SmartSuite application. Without fieldSlug: returns every formula field with its return type, validity (valid:false = broken formula), native complexity score + tier, and structural metrics (function count, nesting depth, reference counts) — sortable by name or score. With fieldSlug: returns full detail for one formula plus its dependency graph (resolved [field].[field] reference chains across linked tables) as both an ASCII tree and a Mermaid flowchart. Set deep:true to also compute the cross-table Impact Index (samples record counts and link fan-out — several extra API calls).

smartsuite_validate_formulaA

Validate a SmartSuite formula expression against an application WITHOUT writing anything (safe in any mode). Returns {valid, safe, warnings} when valid, or a descriptive error message when not (syntax errors, unknown functions, missing field references). Field references use [slug] and chain across linked/compound fields as [slug].[slug]. Use this to check a formula before creating or updating a field.

smartsuite_create_formula_fieldA

Create a new formula field in a SmartSuite application. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. The expression is validated first — an invalid formula is never created. Without confirm:true returns a dry-run preview (validation result + what would be created); set confirm:true to create. The field slug is generated automatically.

smartsuite_update_formula_fieldA

Update an existing formula field's expression, label, and/or return type. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. The current definition is fetched and only the supplied fields are changed (other params preserved). The new expression is validated first. Without confirm:true returns a dry-run preview (new vs previous); set confirm:true to apply.

smartsuite_set_field_help_textA

Set or modify a field's help text (any field type). Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. helpText is lightweight markdown — paragraphs (blank-line separated), bullet lists (-/*), ordered lists (1.), and inline bold / italic — converted to SmartSuite's rich help_doc. Pass helpText:"" to clear it. displayFormat controls how it shows: "tooltip" (info icon) or "below_field_name". The full field definition is read and rewritten (other params preserved). Applies asynchronously. Dry-run preview unless confirm:true.

smartsuite_create_fieldA

Create a field of any type in an application (including rollup and lookup fields — not just formulas). Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. You supply fieldType + label and an OPTIONAL sparse params object; SmartSuite fills type defaults, so most fields need no params. Provide params only where they matter, e.g.: singleselectfield/multipleselectfield/statusfield → {choices:[{label, value_help_text?, weight?}]} where value_help_text is the option DESCRIPTION shown in the dropdown and weight is its NUMERIC value (used by formulas/rollups); e.g. {choices:[{label:"High", value_help_text:"Ship this week", weight:3}]}. Choice colors and order are auto-assigned if omitted so the dropdown renders correctly (status choices take no weight/description); linkedrecordfield → {linked_application:"", entries_allowed:"single"|"multiple"} (backlink auto-created); rollupfield → {linked_field:"", field_selection:"", function:"sum"|"count"|"min"|"max"|"average"|"concatenate"|...}; lookupfield → {linked_field, field_selection}; numberfield → {precision, separator}; currencyfield → {currency:"USD"}; textfield → {max_length}. (For formula fields use smartsuite_create_formula_field.) AI FIELDS: to make a field AI-populated, pass aiPrompt — a plain-text prompt where {{field_slug}} inserts a live reference to another field (e.g. "Summarize {{title}} for {{s096c9e74e}}"). The tool builds the correct rich-text instructions with field-reference pills and enables the AI agent; put the AI model/credential and other ai_agent settings in params.ai_agent if needed. (This is the reliable way to set dynamic AI prompts — do NOT hand-build ai_agent.instructions.) The slug is generated and the field is placed in the record-view layout. Dry-run preview unless confirm:true.

smartsuite_update_fieldA

Update a field's label and/or params (any type). Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. params is a PATCH — only the keys you pass are changed (shallow-merged onto the existing params); everything else (choices, nested, links) is preserved. Read the field first with smartsuite_describe_field to see current params. Note: choices is replaced wholesale, not merged — to edit select options pass the FULL choices array (each choice may set value_help_text=description and weight=numeric value; colors auto-assigned if omitted). Applies asynchronously. Dry-run preview unless confirm:true. (For help text use smartsuite_set_field_help_text; for formula expressions use smartsuite_update_formula_field.) AI PROMPT: pass aiPrompt (plain text with {{field_slug}} references) to (re)build the field's dynamic AI instructions; it preserves the existing ai_agent model/settings and replaces only the prompt.

smartsuite_delete_fieldA

Delete a field from a table by slug. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true AND SMARTSUITE_ENABLE_DELETE=true. Destructive — removes the field and its data (system fields are refused). Useful e.g. to replace a formula field with a rollup: create the rollup, then delete the old formula. Dry-run preview unless confirm:true.

smartsuite_list_deleted_fieldsA

List soft-deleted fields in a solution (read-only). Returns each deleted field's slug, label, and fieldType. Solution-scoped — the API does not attribute deleted fields to their source application, so results are not app-filtered. Restore one with smartsuite_restore_field (supplying the applicationId it belonged to).

smartsuite_restore_fieldA

Restore a soft-deleted field back into its application. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Supply the applicationId the field belonged to and its slug (from smartsuite_list_deleted_fields). Dry-run preview unless confirm:true.

smartsuite_list_recordsA

List records from a SmartSuite application. Use smartsuite_describe_application first to learn field slugs. For large result sets, pass format:"compact" and a fields projection to cut token usage substantially.

smartsuite_get_recordA

Get a single SmartSuite record by ID.

smartsuite_search_recordsB

Search records using a text query across specified fields.

smartsuite_query_recordsA

Query records using a structured SmartSuite filter. Use smartsuite_describe_application first to learn field slugs and valid values for choice fields.

smartsuite_create_recordA

Create a new record in a SmartSuite application. Requires readwrite or admin mode. Call smartsuite_describe_application first to learn field slugs.

smartsuite_create_recordsA

Batch-create multiple records in one call. Requires readwrite or admin mode. Supports dry-run (default) then confirm. Respects the server batch-size cap (SMARTSUITE_MAX_BATCH_WRITES). Returns created record IDs and any per-row failures. Call smartsuite_describe_application first to learn field slugs.

smartsuite_update_recordA

Update an existing record. Requires readwrite or admin mode. Only supply fields you want to change.

smartsuite_update_recordsA

Batch update multiple records. Supports dry-run mode. Requires readwrite or admin mode.

smartsuite_delete_recordsA

Delete records (soft-delete to the trash). Requires readwrite or admin mode AND SMARTSUITE_ENABLE_DELETE=true. Supports dry-run. The response returns the deleted recordIds; they can be recovered with smartsuite_restore_records (when SMARTSUITE_ENABLE_RESTORE=true) or listed via smartsuite_list_deleted_records.

smartsuite_list_deleted_recordsA

List soft-deleted records in a solution's trash (read-only). Solution-scoped — spans all applications in the solution; pass applicationId to filter to one. Returns id, title, applicationId, applicationName, deletedBy (member id), and deletedAt. Use the returned ids with smartsuite_restore_records. Respects allow/deny lists.

smartsuite_restore_recordsA

Restore soft-deleted records from the trash. Requires readwrite or admin mode AND SMARTSUITE_ENABLE_RESTORE=true. Without confirm:true returns a preview; pass confirm:true to restore. Get record IDs from the smartsuite_delete_records response, the audit log, or smartsuite_list_deleted_records.

smartsuite_list_commentsB

List comments on a SmartSuite record.

smartsuite_create_commentA

Add a comment to a SmartSuite record. Requires readwrite or admin mode.

smartsuite_list_viewsA

List views for a SmartSuite application (grid, kanban, calendar, timeline, gantt, map, chart, form). Dashboards are excluded — use smartsuite_list_dashboards for those. Returns a slim list by default: id, name, type, description, order, and isDefault (the lowest-order view, inferred since SmartSuite has no explicit default flag). Set includeConfig:true to also return each view's filters, sort, group-by, and visible/collapsed fields.

smartsuite_describe_viewA

Get the full configuration for a single SmartSuite view: filters, sort, group-by, visible/collapsed fields, sharing/permission settings, and the raw view state. Use smartsuite_list_views to find view IDs.

smartsuite_create_viewA

Create a view (report) in an application. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Supply applicationId, label (must be unique — the tool checks and suggests an alternative if taken), and viewMode (grid, card, kanban, calendar, timeline, gantt, chart, map). Optionally set the initial configuration: visibleFields (array of field slugs), filters (array of {field, comparison, value}) with filterOperator ("and"/"or"), sort (array of {field, direction:"asc"|"desc"}), and groupBy (array of {field,...}). Omit config to create a view with SmartSuite defaults. Field slugs are validated against the schema. Dry-run preview unless confirm:true. (For forms use smartsuite_create_form; dashboards are separate.)

smartsuite_update_viewA

Update a view (report): rename it (label), change its description, and/or change its configuration — visibleFields, filters (+filterOperator), sort, groupBy. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Only the parts you pass are changed; each provided config window replaces that window (e.g. passing sort replaces the sort rules). Field slugs are validated. Refuses forms/dashboards (use their own tools). Use smartsuite_list_views / smartsuite_describe_view to find the viewId and current settings.

smartsuite_delete_viewA

Delete a view (report). Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true AND SMARTSUITE_ENABLE_DELETE=true. Refuses to delete the only remaining view of an application, and refuses forms/dashboards (use their own tools). Without confirm:true returns a preview; pass confirm:true to permanently delete. Destructive — cannot be undone.

smartsuite_list_dashboardsA

List dashboards for a SmartSuite application. Returns id, name, description, order, tab count, and the tab list (id/name/order) for each dashboard. Use smartsuite_describe_dashboard for branding and widget detail.

smartsuite_describe_dashboardA

Get the full configuration for a single SmartSuite dashboard: tabs, footer/branding, style, and sharing settings. Set includeWidgets:true to also fetch every widget on every tab (type, name, position, size, and parsed params). Widget types include content widgets (hero, simple-banner, heading, faq, text-block, divider) and data widgets (chart, pivot, summary-card, progress, comparison, list-view, card-view, kanban-view, calendar-view, timeline-view, record-details, filter, data-schema).

smartsuite_create_dashboardA

Create a dashboard in an application. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Supply applicationId and a unique label (checked; suggests an alternative if taken). Optionally pass tabs (array of tab names, or {name, order} objects) — otherwise one default tab is created. Add widgets afterward with smartsuite_add_dashboard_widget. Dry-run preview unless confirm:true.

smartsuite_update_dashboardA

Update a dashboard: rename (label), change description, and/or edit tabs, footer, and style. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. tabs REPLACES the tab set — pass the full desired list as {id?, name, order?}; include a tab's existing id to rename/reorder it (get ids from smartsuite_describe_dashboard), omit id to add a new tab, drop a tab to remove it (its widgets go too). tabsEnabled toggles the tab bar; tabsPosition is "left"/"top". footer/style are merged onto the existing config.

smartsuite_delete_dashboardA

Delete a dashboard and all its widgets. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true AND SMARTSUITE_ENABLE_DELETE=true. Refuses non-dashboard reports. Without confirm:true returns a preview; pass confirm:true to permanently delete. Destructive — cannot be undone.

smartsuite_add_dashboard_widgetA

Add a widget to a dashboard tab. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Supply dashboardId, widgetType, and optionally tabId (defaults to the first tab), name, position {x,y}, size {width,height}, and params. VALID widgetType values — content: text-block-widget, heading-widget, simple-banner-widget, hero-widget, faq-widget, divider-widget; data: list-view-widget, card-view-widget, kanban-view-widget, calendar-view-widget, timeline-view-widget, chart-widget, pivot-widget, summary-card-widget, progress-widget, comparison-widget, filter-widget, record-details-widget, data-schema-widget; other: spacing-widget, button-row-widget, webpage-widget, record-picker-widget, countdown-widget, world-clock-widget (these last six have no auto-fill template — supply params). LAYOUT: x/width are column units (4 = full width), y/height are pixels. If you omit position/size, the widget gets its natural per-type default size (e.g. summary-card/progress/comparison are width 1, height 128; charts width 2; list/calendar width 4) — so metric cards render at the right height. If you omit position, the widget is appended BELOW existing widgets on the tab (not stacked at 0,0, which would overlap/hide widgets) — set position only to place deliberately (e.g. side-by-side metric cards need explicit x). The widget is created with a valid accent color and non-null description/collapsed defaults so the UI highlight-color editor works; pass color (hex) to choose the accent. PARAMS is widget-type-specific and passed through as-is. It is now OPTIONAL: if you omit params, the tool fills a minimal valid template for the widget type (data widgets default to showing the dashboard's own application with sensible default fields), so any of the 19 types can be created with just dashboardId + widgetType. Supply params only to customize — e.g. text-block/heading {content:}, divider {color}, data widgets {solution, application, source, ...window objects, filters, fields}. To customize a data widget precisely, describe an existing widget of the same type (smartsuite_describe_dashboard includeWidgets:true) and adapt it. The response includes filledFromTemplate:true when a default template was used. SUMMARY-CARD (metric) notes: the number renders in params.color — keep it a visible accent (never white/#FFFFFF, or it is invisible on the light card); function_type is count|sum|avg|min|max (avg, NOT "average"); the card needs the drill_in skeleton + appearance/size/mode the template provides; height 156 (128 clips padding). CHART: params must include totals, benchmarks, advanced_options, and categories or it 400s (the template includes them).

smartsuite_update_dashboard_widgetA

Update a dashboard widget's settings and/or layout. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Change position {x,y} and size {width,height} to move/resize (x/width columns, y/height pixels), rename (name), toggle showName/collapsedByDefault, set color/description, move to another tab (tabId), or replace params. NOTE: params is replaced wholesale — to tweak it, read the widget first via smartsuite_describe_dashboard(includeWidgets:true) and pass the full new params object. Updating params can also reset the widget height, so pass size in the same call to preserve it.

smartsuite_remove_dashboard_widgetA

Remove a widget from a dashboard. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true AND SMARTSUITE_ENABLE_DELETE=true. Without confirm:true returns a preview; pass confirm:true to permanently delete. Destructive — cannot be undone.

smartsuite_normalize_dashboard_widgetsA

Repair a dashboard's widgets: reset them to their natural per-type size and/or re-stack them to remove overlaps. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Fixes dashboards built with wrong sizes (e.g. metric cards left too tall — which re-saving in the UI does not correct) or with widgets piled on top of each other (all near position (0,0), so they overlap and hide each other). Dry-run preview (before→after per widget) unless confirm:true. SIZE: by default HEIGHT is normalized; dimension:"both" also fixes width; restrict with widgetTypes (e.g. ["summary-card-widget"]). REFLOW: pass reflow:true to re-lay-out the tab — widgets sharing the same current row (same position_y) are kept side-by-side, and rows are stacked top-to-bottom by their tallest widget so nothing overlaps (reflow repositions ALL widgets on the tab, regardless of widgetTypes). Use tabId to limit to one tab.

smartsuite_list_formsA

List forms (form-type report views) for a SmartSuite application. Returns each form's id, name, description, page count, bound-field count, sharing state, and public form URL (when sharing is enabled). Forms are how external/internal users submit records; in ITSM dashboards they are launched from button-row widgets.

smartsuite_describe_formA

Get the full structure of a SmartSuite form for review: settings (title, description, submit label, redirect, branding, logo), sharing (enabled, public URL, password protection), and the page-by-page layout. Each page is an input (form), review, or submission page. Input-page items are parsed into bound fields (slug, label, required, help text) and content elements (heading, html_block/paragraph, callout, consent, divider, image, video, recaptcha, pdf_viewer), including section groupings and conditional-visibility flags.

smartsuite_create_formA

Create a new form for a SmartSuite application. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. The label is checked for uniqueness and any supplied field slugs are validated against the application schema first. Without confirm:true returns a dry-run preview; set confirm:true to create. Optionally seed the first input page with fields and set form settings.

smartsuite_update_formA

Update a form's settings and/or structure. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Provide any of: settings (title/description/submitLabel/redirectToUrl/displaySmartSuiteBranding) to merge; fields to replace the first input page's fields (slugs validated against the schema); or formState as a full raw form_state object (advanced escape hatch, replaces everything). Without confirm:true returns a dry-run preview; set confirm:true to apply.

smartsuite_submit_formA

Submit a SmartSuite form — creates a record through the form's submission pipeline, exactly as a user filling out the form would. Two-step: call WITHOUT values to get the form's input spec (fields to collect, with type and choice hints); then call WITH values (keyed by field slug, using normal SmartSuite record value shapes) to submit. Validates that supplied fields are on the form and that required fields are present. Submitting requires readwrite or admin mode (it creates a record).

smartsuite_list_automationsA

List automations for a solution. Automations are scoped per solution (not per table). Returns each automation's id, name, enabled state, trigger reference, action count/types, and generated description.

smartsuite_describe_automationA

Get the full configuration for one automation: trigger config and all action groups, plus name, enabled state, and timezone. Use smartsuite_list_automations to find automation IDs.

smartsuite_describe_automation_stepA

Resolve the full schema of one automation step — its trigger (default) or a chosen action — by calling the automation engine's dynamic description. For a trigger: returns label, inputs (with dropdown options), context outputs, the fields the trigger exposes to downstream actions, and the fields usable in conditions. For an action: returns label, integration, and inputs (with options). Use smartsuite_describe_automation first to see the action list; select an action with actionIndex or actionInstanceId. This view is for UNDERSTANDING a step (labels, types, option values) and is slimmed — do NOT feed it back into update_automation to edit an action; it omits full input encodings (e.g. an AI action's model), and saving a rebuild from it can strip those settings.

smartsuite_get_automation_limitsA

Get the workspace's automation run usage and plan limit (account-wide). Returns plan category (e.g. enterprise), the automation run limit, runs used, remaining, percent used, and whether the limit is enforced. Use this for "how much of our automation quota are we using?" and plan-type questions.

smartsuite_list_automation_credentialsA

List the integration credentials configured for a solution's automations (e.g. Gmail, Slack, Microsoft Teams, webhooks, SmartSuite). Returns each credential's id, integration, auth method, and label. Use this to review which external integrations a solution's automations connect to.

smartsuite_list_solution_membersA

List the members available to a solution (id, name, email, job title, status). These are the members automations can assign work to or run as. Also useful for resolving member ids seen in records, assignments, and credentials.

smartsuite_create_automationA

Create an automation in a solution. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. You supply the trigger (an object with trigger_reference.trigger_id and inputs) and the actions; use smartsuite_describe_automation_step on a similar existing automation to learn the exact trigger/action/input shapes and option values. Pass actions either as the native nested actionGroups ([{actions:{actions:[...]}}]) or as a flat actions array (wrapped into one group automatically). Pass credentialId once to fill it onto the trigger and every action that omits one. automaticDescription (the UI display phrase) and timezone are optional.

smartsuite_update_automationA

Update an existing automation. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Fetches the current automation and applies only the fields you provide — label, trigger, actionGroups/actions, automaticDescription, timezone — preserving the rest (including first_created and the untouched trigger/actions). Pass credentialId to fill missing credentials. IMPORTANT — preserve fidelity: trigger and action groups you supply REPLACE the existing ones wholesale (no per-action merge). To change only the label/description, OMIT trigger and actions so they are preserved byte-for-byte. Do NOT rebuild an action or trigger from smartsuite_describe_automation_step output — that view is SLIMMED (it drops input encodings such as an AI action's model setting); reconstructing from it and saving will strip those settings and can leave the automation invalid (which the engine then marks disabled). If you must edit one action, start from the raw automation object and change only the target input. The enabled state is engine-computed from validity — you cannot set it directly; a disabled result means the automation is invalid (see the returned statusReason).

smartsuite_delete_automationA

Delete an automation. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true AND SMARTSUITE_ENABLE_DELETE=true. Without confirm:true it returns a preview of what would be deleted; pass confirm:true to permanently delete. Destructive — cannot be undone.

smartsuite_set_automation_ai_promptA

Set the dynamic prompt on an automation's AI ("AI Workflow Agent" / ai-custom-prompt) action. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true. Supply promptTemplate as plain text where {{field_slug}} inserts a live reference to a field (resolved against applicationId — the table the automation works on). The tool builds the correct rich-text prompt (with field-reference pills) and writes it to the action, leaving the rest of the automation intact — this is the reliable way to author workflow AI prompts (do NOT hand-build the prompt). If the automation has multiple AI actions, pass actionInstanceId. Dry-run preview unless confirm:true. (Reads via GetAutomation, so it works even in solutions where listing automations fails.)

smartsuite_list_my_workA

List the authenticated user's assigned work ("My Work") — comment mentions, assigned checklist items, and records assigned via people fields — for answering questions like "what's on my plate?", "how many open items are overdue?", or "what's assigned to me in this solution?". Returns a summary (totals, overdue count, breakdowns by item type / priority / solution) plus the items themselves (with a truncated text preview). Defaults to open items; set status:"resolved" for completed work (which also returns per-period counts).

smartsuite_update_my_workA

Update one of the authenticated user's My Work items: mark it resolved/open and/or set its due date. Requires readwrite or admin mode. Use smartsuite_list_my_work to find the item id. Returns the updated item.

smartsuite_get_smartdoc_contentA

Retrieve the content of a SmartDoc field as plain text and raw value.

smartsuite_get_file_urlA

Resolve a SmartSuite file handle to a signed CDN download URL. SmartSuite file fields (type: filefield) return an array of file objects — each has a "handle" property. Pass that handle here to get a temporary URL for downloading the file. Example field value: [{ "handle": "abc123", "filename": "report.pdf", "size": 12345, "mimetype": "application/pdf" }]

smartsuite_upload_fileA

Upload a file from the local filesystem to a SmartSuite file field. Requires readwrite or admin mode. The file is read from the local path and posted as multipart form data.

smartsuite_append_smartdoc_contentA

Append markdown content to a SmartDoc field. Requires readwrite or admin mode. Does not replace existing content.

smartsuite_add_layout_sectionA

Add a section (a labeled grouping) to an application's record-view layout. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE. A section groups the fields that follow it (until the next section) in the record detail view. By default edits the top-level layout; pass tabId to edit a specific tab's layout when tabs are enabled. Place it after a field with afterField (the section appears just after that field; fields after it fall under the section), or omit to append at the end. Dry-run preview unless confirm:true.

smartsuite_update_layout_sectionA

Update an existing record-view layout section (title, description, collapsed, hidden) by its section__… slug. Requires schema-write. Pass description:"" to clear it. Dry-run preview unless confirm:true.

smartsuite_remove_layout_sectionA

Remove a section from an application's record-view layout by its section__… slug. Requires schema-write. Removes only the section grouping; fields that were under it are preserved (they just rejoin the surrounding layout). Dry-run preview unless confirm:true.

smartsuite_add_layout_tabA

Add a tab to an application's record-view layout. Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE. Enables tabs if not already on (the first tab mirrors the current top-level layout so existing fields stay visible; later tabs start empty). Optional description, position (0-based; default end), and tab-bar style ("basic"/"process"/"journey") / align (container-level). Dry-run preview unless confirm:true.

smartsuite_update_layout_tabA

Update a record-view tab (name, description, position) by its tab id, and/or the tab-bar style/align. Requires schema-write. Pass description:"" to clear it. Dry-run preview unless confirm:true.

smartsuite_remove_layout_tabA

Remove a tab from an application's record-view layout by its tab id. Requires schema-write. Fields remain in the top-level layout (not deleted). Removing the last tab disables tabs. Dry-run preview unless confirm:true.

smartsuite_move_layout_fieldA

Move/arrange a field in the record-view layout — reorder it, place it under a section, or move it to a different tab. Requires readwrite/admin + SMARTSUITE_ENABLE_SCHEMA_WRITE. To move a field to ANOTHER tab, pass toTab = the destination tab id: the field is removed from its current tab and added to the destination (this is the cross-tab move — plain reorder can't pull a field in from another tab). Otherwise it reorders within the current layout. Pass afterField = a field slug OR a section__ slug to position this field right after it (right after a section marker = first field under that section); omit afterField for the end. In two-column layouts the field is placed as its own full-width row. When tabs are enabled and toTab is NOT used, tabId is required (a tab id, "all", or "top"). Dry-run preview unless confirm:true.

smartsuite_update_applicationA

Update table (application) attributes — rename the table (name) and/or change its record term (e.g. "record" → "invoice"). Requires readwrite/admin + SMARTSUITE_ENABLE_SCHEMA_WRITE. Dry-run preview unless confirm:true. (This is the table rename tool; for field renames use smartsuite_update_field.)

smartsuite_set_field_visibilityA

Hide or show a field in the record view. Requires readwrite/admin + SMARTSUITE_ENABLE_SCHEMA_WRITE. hidden:true hides the field (adds it to the layout's record-wide hidden_fields list); hidden:false shows it. Hidden fields stay in the layout structure but aren't displayed; this is record-wide (not per-tab). Dry-run preview unless confirm:true.

smartsuite_set_display_logicA

Add, modify, or remove display (visibility) logic on a field, section, or tab — show it only when conditions on other fields are met. Requires readwrite/admin + SMARTSUITE_ENABLE_SCHEMA_WRITE. Set target ("field"|"section"|"tab") + targetId (field slug / section__ slug / tab id) and conditions: an array of {comparison, field, value} combined by operator ("and"/"or"); pass clear:true to remove the rule. Example: show the Priority field only when Status is complete → target:"field", targetId:"priority", conditions:[{comparison:"is", field:"status", value:"complete"}]. Common comparisons: is, is_not, is_empty, is_not_empty, contains. Dry-run preview unless confirm:true.

smartsuite_move_attachmentsA

Move attachments (files) from one file field to another. Requires readwrite/admin mode. Copies the source field's files into the target field (handles reference existing storage — no re-upload) and clears the source. Target one record with recordId, or every record that has source files with allRecords:true (capped at SMARTSUITE_MAX_RECORDS). mode "append" (default) keeps the target's existing files; "replace" overwrites. Set clearSource:false to copy instead of move. Both fields must be filefield type. Dry-run preview unless confirm:true.

smartsuite_match_solutionsA

Step 1 of solution migration: match solutions in a lower-environment workspace to those in your primary (production) workspace by exact name, since object ids differ across workspaces. Set your primary workspace to production (the migration target). Requires SMARTSUITE_ENABLE_CROSS_WORKSPACE. Without confirm, returns proposed matches (exact / ambiguous / unmatched) for review. Re-call with confirm:true to confirm unambiguous matches, and overrides:[{sourceId,prodId}] to resolve ambiguous/unmatched ones. Persists to a project mapping file.

smartsuite_match_applicationsB

Step 2 of solution migration: for one confirmed solution pair, match its tables (applications) by exact name (table ids AND slugs both regenerate across workspaces, so name is the only handle). Same confirm/overrides flow as match_solutions. Persists the lower→prod table-id map into the project.

smartsuite_diff_schemasA

Step 3 of solution migration: compare table/field schemas (lower → prod) for confirmed mappings and write the diff package. Fields match by slug (stable across cloned workspaces); cross-table references are remapped via the table map and system-generated values are ignored, so only real differences surface. With scope "all" (default) it also diffs views and forms in full and dashboards at the report-config level (matched by name); scope "schema" limits to tables + fields. Classifies added / removed / modified (with per-property detail and compatible/risky risk). Writes diff.json and returns a summary.

smartsuite_export_diffA

Step 4 of solution migration: render the project diff as a human-readable XLSX (summary tab + per-change detail) alongside the JSON. Run smartsuite_diff_schemas first. Returns the written file paths.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/SmartSuiteFoundry/smartsuite-mcp-server'

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