Skip to main content

update_custom_tool

Edit an existing custom tool: rename it, change its description, or replace its connector definition. Use a bare name with a standalone personal credential, me/name for private content in organization scope, or <team>/name for a bound team. A bare organization-scoped name denotes the read-only organization catalogue.

Only the fields you provide change. As with create_custom_tool, you never set a secret here — those are managed in the dashboard.

Parameters​

ParameterTypeRequiredDescription
namestringYesCaller-relative address: bare with a standalone personal credential, me/name in private organization space, or <team>/name for a bound team.
new_namestringNoRename the tool to this bare name (no /).
descriptionstringNoReplace the description.
connectorobjectNoReplace the connector definition (same shape as create_custom_tool).

Response​

FieldTypeDescription
namestringCanonical caller-relative address after the update.
idstringThe tool's identifier.
enabledbooleanWhether the tool is active.

Example​

{
"name": "weather",
"new_name": "weather-v2",
"description": "Fetch weather, now with forecasts"
}

Result:

{
"name": "weather-v2",
"id": "018f...c2a1",
"enabled": true
}

Errors​

Each failure carries a precise code in the response. A domain rejection — a not-found, a name clash, or a permission denial — is returned as a tool result with isError: true, so the agent can read the code and self-correct; malformed arguments and server faults are JSON-RPC protocol errors.

CodeCauseDelivered as
custom_tool_not_foundNo custom tool remains at the requested name in the target space, including if it was renamed while this call was pending.tool error (isError)
invalid_custom_tool_namenew_name is invalid.tool error (isError)
name_too_longnew_name exceeds its maximum length.tool error (isError)
description_too_longThe description exceeds its maximum length.tool error (isError)
invalid_connectorThe replacement connector is invalid.tool error (isError)
team_not_foundNo team with that name is bound to this credential.tool error (isError)
forbiddenThe credential lacks update authority, uses me/ outside organization scope, or targets the read-only organization catalogue.tool error (isError)
empty_nameThe name is empty after removing the team prefix.tool error (isError)
personal_cannot_address_teamYou used a team/ prefix (or team field) with a personal credential.tool error (isError)
no_personal_spaceA userless organization credential used me/name.tool error (isError)
invalid_argumentsThe arguments are missing or don't match the input schema.protocol error (invalid_params)
internal_errorAn unexpected error occurred.protocol error (internal_error)

Notes​

  • Changing the auth type to one that needs a secret, when none is stored, disables the tool. A person must add the new secret and enable the tool again in the dashboard.
  • Updating a custom tool counts as one tool call against your plan's tool-invocation allowance.