Skip to main content
Glama
SmartSuiteFoundry

SmartSuite MCP Server

smartsuite_create_field

Create a field of any type in a SmartSuite application, including rollup, lookup, count, and AI-populated fields. Supply field type and label; add params only when needed.

Instructions

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?, value_help_text?, weight?}]} where value is the stored option key (omit it and one is derived from the label, e.g. "Ready for Review" → "ready_for_review"; SmartSuite itself silently stores NO options for a choice that reaches it without a value) 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"} (REQUIRED — without it SmartSuite creates the field with a null target and an error badge, and still reports success; camelCase linkedApplication, as returned by describe_application, is accepted and converted; the reciprocal backlink field is auto-created on the target table immediately, but its VALUES are populated asynchronously — measured 15-45s after a link is written, so a read-back sooner than that shows [] on the reciprocal side and is not a failure); rollupfield → {linked_field:"", field_selection:"", function: exactly one of "sum"|"min"|"max"|"average"|"range" — there are no others. These are the only tokens that compute: SmartSuite accepts ANY string here without error and the field then returns null on every record, so a guessed token yields a field that looks valid and is silently empty. There is no "count" rollup (use a countfield to count linked records) and no "concatenate" (use a formula field with ARRAYJOIN([link].[field], "; ")). field_selection must point at a numeric field — a non-numeric target leaves the rollup invalid; lookupfield → {linked_field, field_selection}; countfield → {linked_field:""} — THE way to count linked records (there is no rollup "count"). SmartSuite fills every other default; add suffix/prefix/color to label the number, and field_filter:{operator:"and"|"or", fields:[{field, comparison, value}]} with include_filters:true for a CONDITIONAL count (e.g. only linked records whose status is not complete); 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. The agent's OTHER settings go in params.ai_agent and are honoured as passed — name them explicitly, because the defaults matter: enable_internet_search (DEFAULT FALSE — an agent asked to find something online or cite a source cannot search unless you set this true, and will invent the answer), run_automatically (defaults true — the agent fills the field when a record is saved), and model (a credential reference of the form "cred:"; list them with smartsuite_list_automation_credentials). (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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelYesField display label.
paramsNoOptional sparse field params; omit to accept type defaults. See the tool description for which params each type needs.
confirmNoMust be true to create (default false = preview).
aiPromptNoOptional: make this an AI-populated field. Plain-text prompt where {{field_slug}} inserts a live reference to another field. The tool builds the rich-text AI instructions (with field pills) and enables the AI agent.
fieldTypeYesSmartSuite field type, e.g. textfield, textareafield, richtextareafield, numberfield, currencyfield, percentfield, datefield, duedatefield, singleselectfield, multipleselectfield, statusfield, yesnofield, linkedrecordfield, userfield, emailfield, phonefield, linkfield, filefield, addressfield, ratingfield, durationfield, timefield, checklistfield, tagsfield, colorpickerfield.
applicationIdYesThe application (table) ID.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.0.0
    • removedInput schema / properties / afterFieldSlug
      Removed value: -{
      -  "description": "Optional: place the new field after this field slug (default: end).",
      -  "type": "string"
      -}
  2. First observedv0.9.8

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only carry readOnlyHint=false, so the description must do the rest — and it does: dry-run preview unless confirm:true, silent partial failures (missing linked_application reports success with a null target; a guessed rollup function token yields a silently-null field), and async backlink population measured at 15-45s. This is exactly the hidden behavior an agent needs.

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?

Front-loads the blocking operational constraint (mode + env var) and the required fieldType/label contract before the per-type detail. It is dense and long, but the length is justified by the number of field types; a few nested parentheticals (choice defaults, camelCase conversion) slow scanning without being wasteful.

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 6-param mutation tool with nested objects, no enums, and no output schema, the description covers preconditions, per-type param contracts, failure modes, async timing, and AI-field configuration. Nothing an agent needs to call it correctly is missing.

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 100%, but the description goes far beyond it by enumerating the shape of the sparse params object per field type (choices with value/value_help_text/weight, linked_application required, field_filter/include_filters) and by explaining aiPrompt's {{field_slug}} templating and the params.ai_agent defaults (enable_internet_search defaults false, run_automatically true).

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?

States a specific verb and resource ('Create a field of any type in an application') and immediately disambiguates from the sibling that handles the one excluded case ('For formula fields use smartsuite_create_formula_field'). An agent can tell it apart from smartsuite_create_fields or smartsuite_update_field without opening a schema.

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?

Gives explicit preconditions ('Requires readwrite/admin mode AND SMARTSUITE_ENABLE_SCHEMA_WRITE=true'), routes formula work to a named alternative, and specifies per-field-type guidance for when params matter. Exclusions are named (no rollup 'count', no 'concatenate', use countfield/formula instead).

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

Deploy Server

Other Tools