Skip to main content
Glama
semwalajay83-sem

salesforce-metadata-mcp

Add Picklist Values to Existing Field

sf_add_picklist_values
Idempotent

Add new options to an existing picklist or multiselect field without altering current values. Specify the field and new values to extend dropdown choices.

Instructions

Adds new picklist values to an existing Picklist or MultiselectPicklist field without removing existing values. Use when a user wants to add new options to a dropdown.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valuesYesNew picklist values to add (existing values are preserved)
objectFieldFullNameYesFull API name of the picklist field, e.g. 'Invoice__c.Status__c'

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv3.2.0
    • removedInput schema / properties / values / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / values / items / anyOf
      Added value: +[
      +  {
      +    "maxLength": 255,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "color": {
      +        "description": "Hex color code, e.g. '#FF0000'",
      +        "pattern": "^#[0-9A-Fa-f]{6}$",
      +        "type": "string"
      +      },
      +      "default": {
      +        "default": false,
      +        "description": "Whether this is the default value",
      +        "type": "boolean"
      +      },
      +      "description": {
      +        "description": "Optional description for the value",
      +        "maxLength": 1000,
      +        "type": "string"
      +      },
      +      "fullName": {
      +        "description": "API name for the picklist value (e.g. 'New')",
      +        "maxLength": 255,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "isActive": {
      +        "description": "Whether the value is active (default true)",
      +        "type": "boolean"
      +      },
      +      "label": {
      +        "description": "Display label for the value",
      +        "maxLength": 255,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "fullName",
      +      "label"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / values / items / description
      Added value: +"Either 'Value' or { fullName, label, ... }"
    • removedInput schema / properties / values / items / properties
      Removed value: -{
      -  "color": {
      -    "description": "Hex color code, e.g. '#FF0000'",
      -    "pattern": "^#[0-9A-Fa-f]{6}$",
      -    "type": "string"
      -  },
      -  "default": {
      -    "default": false,
      -    "description": "Whether this is the default value",
      -    "type": "boolean"
      -  },
      -  "description": {
      -    "description": "Optional description for the value",
      -    "maxLength": 1000,
      -    "type": "string"
      -  },
      -  "fullName": {
      -    "description": "API name for the picklist value (e.g. 'New')",
      -    "maxLength": 255,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "isActive": {
      -    "description": "Whether the value is active (default true)",
      -    "type": "boolean"
      -  },
      -  "label": {
      -    "description": "Display label for the value",
      -    "maxLength": 255,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / values / items / required
      Removed value: -[
      -  "fullName",
      -  "label"
      -]
    • removedInput schema / properties / values / items / type
      Removed value: -"object"
  2. First observedv2.8.5

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=false and idempotentHint=true, and the description reinforces this by explicitly promising existing values are preserved. It also scopes behavior to existing Picklist/MultiselectPicklist fields, which adds context beyond the raw annotations. It does not describe duplicate handling or error behavior, but the annotations cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences: the first states the core behavior and preservation guarantee, the second gives a plain-language user trigger. There is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, non-destructive additive op, the description plus schema is complete enough to guide invocation. It clearly identifies the operation, target field type, and user intent. It does not mention return values or failure modes, but no output schema exists and this is a straightforward mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with rich description for both parameters, including fullName formatting and the value entry forms. The tool description adds no new parameter-level meaning beyond what the schema states, so the baseline of 3 is appropriate.

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?

The description uses a specific verb ('Adds') and a clear resource ('new picklist values to an existing Picklist or MultiselectPicklist field'). It also states the key boundary 'without removing existing values', which distinguishes this from replace or rebuild operations and from sibling tools like sf_create_custom_field or sf_delete_metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Use when a user wants to add new options to a dropdown' gives a clear trigger condition. However, it does not explicitly mention when not to use it or name alternative sibling tools, so it stops short of full routing guidance.

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