Skip to content

sf agent mcp update --label returns success but resets the label to the server name #3624

Description

@konkonrong-lgtm

Summary

sf agent mcp update --label returns success, but doesn't persist the requested label.

A custom label works when the MCP server is created, but updating it later resets the label to the server name.

--description updates correctly on the same server.

I also reproduced the behavior with a direct PUT to the API Catalog endpoint, without using sf agent mcp update.

Steps To Reproduce

A repository is not required to reproduce this issue because the behavior occurs against an org-level API Catalog MCP server resource and can be reproduced directly with Salesforce CLI commands.

  1. Create an MCP server with a custom label:
sf agent mcp create --name OssMcpLabelTest2 --label "Custom Create Label" --server-url "https://mcptest-daniel-e6e72a8eba7a.herokuapp.com/mcp" -o <target-org> --json

The server is created successfully and the response contains:

{
  "name": "OssMcpLabelTest2",
  "label": "Custom Create Label"
}
  1. Update only the label:
sf agent mcp update --mcp-server-id <MCP_SERVER_ID> --label "Updated Label Test" -o <target-org> --json

The command succeeds with status: 0, but the returned server contains:

{
  "name": "OssMcpLabelTest2",
  "label": "OssMcpLabelTest2"
}

rather than the requested value:

{
  "label": "Updated Label Test"
}
  1. Read the server again:
sf agent mcp get --mcp-server-id <MCP_SERVER_ID> -o <target-org> --json

The persisted value is still:

{
  "name": "OssMcpLabelTest2",
  "label": "OssMcpLabelTest2"
}
  1. As a control, update the description:
sf agent mcp update --mcp-server-id <MCP_SERVER_ID> --description "OSS Description Test" -o <target-org> --json

A subsequent sf agent mcp get correctly returns:

{
  "description": "OSS Description Test"
}
  1. I also reproduced the issue without using sf agent mcp update, by sending a raw PUT request directly to the API Catalog endpoint:
'{"label":"Raw Label Test"}' | sf api request rest '/services/data/v67.0/api-catalog/mcp-servers/<MCP_SERVER_ID>' --method PUT --header 'Content-Type: application/json' --body - -o <target-org>

The request succeeds, but the response again contains:

{
  "name": "OssMcpLabelTest2",
  "label": "OssMcpLabelTest2"
}

A subsequent:

sf agent mcp get --mcp-server-id <MCP_SERVER_ID> -o <target-org> --json

confirms that "Raw Label Test" was not persisted.

I reproduced the label update behavior with two separate MCP server registrations.

Expected result

Running:

sf agent mcp update --mcp-server-id <MCP_SERVER_ID> --label "Updated Label Test" -o <target-org> --json

should update and persist the MCP server label as:

{
  "label": "Updated Label Test"
}

Actual result

The command returns success, but the requested label is not persisted.

Instead, the label becomes equal to the MCP server's name:

{
  "name": "OssMcpLabelTest2",
  "label": "OssMcpLabelTest2"
}

The same behavior occurs when sending the update directly to the API Catalog REST endpoint with a raw PUT request.

Additional information

  • Reproduced with two MCP server registrations.
  • Custom labels work on create.
  • Description updates work correctly.
  • The same label behavior occurs with a direct REST PUT.
  • sf doctor was run before filing; no related diagnostic problems were reported.
  • agent mcp is currently in Developer Preview.

System Information

Shell: Windows PowerShell

{
  "architecture": "win32-x64",
  "cliVersion": "@salesforce/cli/2.146.3",
  "nodeVersion": "node-v22.23.1",
  "osVersion": "Windows_NT 10.0.26200",
  "rootPath": "C:\\Program Files\\sf\\client",
  "shell": "cmd.exe",
  "pluginVersions": [
    "@oclif/plugin-autocomplete 3.2.54 (core)",
    "@oclif/plugin-commands 4.1.61 (core)",
    "@oclif/plugin-help 6.2.55 (core)",
    "@oclif/plugin-not-found 3.2.90 (core)",
    "@oclif/plugin-plugins 5.4.86 (core)",
    "@oclif/plugin-search 1.2.54 (core)",
    "@oclif/plugin-update 4.7.56 (core)",
    "@oclif/plugin-version 2.2.52 (core)",
    "@oclif/plugin-warn-if-update-available 3.1.70 (core)",
    "@oclif/plugin-which 3.2.59 (core)",
    "@salesforce/cli 2.146.3 (core)",
    "agent 1.45.0 (core)",
    "apex 3.9.40 (core)",
    "api 1.3.54 (core)",
    "auth 4.4.9 (core)",
    "data 4.0.115 (core)",
    "deploy-retrieve 3.24.61 (core)",
    "info 3.4.155 (core)",
    "limits 3.3.106 (core)",
    "marketplace 1.3.44 (core)",
    "org 5.11.26 (core)",
    "packaging 2.30.6 (core)",
    "schema 3.3.131 (core)",
    "settings 2.4.101 (core)",
    "sobject 1.4.125 (core)",
    "telemetry 3.8.33 (core)",
    "templates 56.20.0 (core)",
    "trust 3.8.43 (core)",
    "user 3.10.9 (core)"
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:afdxCLI issue within plugin-agent or agents librarybugIssue or pull request that identifies or fixes a buginvestigatingWe're actively investigating this issueowned by another teamThe Salesforce CLI team does not own this work but will pass on the information to the correct team.validatedVersion information for this issue has been validated

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions