SmartSuite MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SMARTSUITE_API_KEY | Yes | Your SmartSuite API key | |
| SCHEMA_CACHE_TTL_MS | No | Application schema cache TTL (5 min) | 300000 |
| SMARTSUITE_BASE_URL | No | API base URL | https://app.smartsuite.com/api/v1 |
| SMARTSUITE_LOG_FILE | No | Path to write logs (default: stderr) | |
| SMARTSUITE_MCP_MODE | No | Access mode: readonly, readwrite, admin | readonly |
| SMARTSUITE_LOG_LEVEL | No | Log level: debug, info, warn, error | info |
| SMARTSUITE_ACCOUNT_ID | Yes | Your SmartSuite account ID | |
| SMARTSUITE_MAX_RECORDS | No | Hard cap for list/query tools | 100 |
| SMARTSUITE_RETRY_COUNT | No | Number of retries for rate limits and transient errors | 2 |
| SMARTSUITE_ENABLE_DELETE | No | Enable delete tools | false |
| SMARTSUITE_MAX_BATCH_WRITES | No | Max records per batch update | 25 |
| SMARTSUITE_ALLOWED_SOLUTIONS | No | Comma-separated solution IDs to allow (default: all) | |
| SMARTSUITE_REQUEST_TIMEOUT_MS | No | HTTP request timeout in milliseconds | 30000 |
| SMARTSUITE_DENIED_APPLICATIONS | No | Comma-separated application IDs to block (default: none) | |
| SMARTSUITE_ENABLE_SCHEMA_WRITE | No | Enable schema write tools | false |
| SMARTSUITE_ALLOWED_APPLICATIONS | No | Comma-separated application IDs to allow (default: all) | |
| SMARTSUITE_ENABLE_SMARTDOC_WRITE | No | Enable SmartDoc append tools | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| 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 |
| 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 |
| 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; |
| 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 |
| 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 |
| 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 |
| 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
| 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/SmartSuiteFoundry/smartsuite-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server