Search loads only when you use it. Browse all categories below.

MCP tool

Update project profile

sosoapi_update_project_profile

Patch a project's brand profile fields. Fields you omit stay unchanged. Needs expected_profile_version from the latest read and an idempotency_key (editor role).

Read as Markdown

Profiles and transports

Profiles: full · Transports: stdio, http

Choose core or full to control which tools your client sees; this does not change its permissions. Local file upload requires stdio and is unavailable over HTTP. Set SOSOAPI_OUTPUT_SCHEMAS=1 to include output schemas in discovery. Tools return structured results with or without that setting.

Permissions and side effects

Annotations help clients describe a tool. Each call still checks the user’s authentication, role, resource access and capability grants.

{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}

Input fields

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Input fields
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
project_idstringRequired in parent
  • format: "uuid"
expected_profile_versionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
idempotency_keystringRequired in parent
  • minLength: 8
  • maxLength: 160
patchobjectRequired in parent
  • additionalProperties: false
patch.taglinestring | nullOptional / item—
patch.taglineanyOf 1stringOptional / item
  • maxLength: 300
patch.taglineanyOf 2nullOptional / item—
patch.descriptionstring | nullOptional / item—
patch.descriptionanyOf 1stringOptional / item
  • maxLength: 4000
patch.descriptionanyOf 2nullOptional / item—
patch.voicestring | nullOptional / item—
patch.voiceanyOf 1stringOptional / item
  • maxLength: 1000
patch.voiceanyOf 2nullOptional / item—
patch.target_audiencestring | nullOptional / item—
patch.target_audienceanyOf 1stringOptional / item
  • maxLength: 1000
patch.target_audienceanyOf 2nullOptional / item—
patch.color_palettearrayOptional / item
  • maxItems: 20
patch.color_palette[]stringOptional / item
  • maxLength: 64
patch.goalsarrayOptional / item
  • maxItems: 50
patch.goals[]stringOptional / item
  • maxLength: 160
patch.no_go_topicsarrayOptional / item
  • maxItems: 100
patch.no_go_topics[]stringOptional / item
  • maxLength: 160
patch.language_primarystringOptional / item
  • minLength: 2
  • maxLength: 35
patch.positioningstring | nullOptional / item—
patch.positioninganyOf 1stringOptional / item
  • maxLength: 2000
patch.positioninganyOf 2nullOptional / item—
patch.uspstring | nullOptional / item—
patch.uspanyOf 1stringOptional / item
  • maxLength: 1000
patch.uspanyOf 2nullOptional / item—
patch.visual_identityobject | nullOptional / item—
patch.visual_identityanyOf 1objectOptional / item
  • additionalProperties: {}
patch.visual_identity.*anyOf 1any JSON valueOptional / item—
patch.visual_identityanyOf 2nullOptional / item—
patch.forbidden_claimsarrayOptional / item
  • maxItems: 100
patch.forbidden_claims[]stringOptional / item
  • maxLength: 240
patch.north_star_metricstring | nullOptional / item—
patch.north_star_metricanyOf 1stringOptional / item
  • maxLength: 300
patch.north_star_metricanyOf 2nullOptional / item—
patch.posting_cadenceobject | nullOptional / item—
patch.posting_cadenceanyOf 1objectOptional / item
  • additionalProperties: {}
patch.posting_cadence.*anyOf 1any JSON valueOptional / item—
patch.posting_cadenceanyOf 2nullOptional / item—
patch.app_store_url_iosstring | nullOptional / item—
patch.app_store_url_iosanyOf 1stringOptional / item
  • format: "uri"
patch.app_store_url_iosanyOf 2nullOptional / item—
patch.app_store_url_androidstring | nullOptional / item—
patch.app_store_url_androidanyOf 1stringOptional / item
  • format: "uri"
patch.app_store_url_androidanyOf 2nullOptional / item—
patch.app_metadataobjectOptional / item
  • additionalProperties: {}
patch.app_metadata.*any JSON valueOptional / item—
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "format": "uuid"
    },
    "expected_profile_version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 160
    },
    "patch": {
      "type": "object",
      "properties": {
        "tagline": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 300
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 4000
            },
            {
              "type": "null"
            }
          ]
        },
        "voice": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 1000
            },
            {
              "type": "null"
            }
          ]
        },
        "target_audience": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 1000
            },
            {
              "type": "null"
            }
          ]
        },
        "color_palette": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 64
          }
        },
        "goals": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 160
          }
        },
        "no_go_topics": {
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 160
          }
        },
        "language_primary": {
          "type": "string",
          "minLength": 2,
          "maxLength": 35
        },
        "positioning": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ]
        },
        "usp": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 1000
            },
            {
              "type": "null"
            }
          ]
        },
        "visual_identity": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "forbidden_claims": {
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 240
          }
        },
        "north_star_metric": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 300
            },
            {
              "type": "null"
            }
          ]
        },
        "posting_cadence": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "app_store_url_ios": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "app_store_url_android": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "app_metadata": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "project_id",
    "expected_profile_version",
    "idempotency_key",
    "patch"
  ],
  "additionalProperties": false
}

Structured output

This schema describes structuredContent in a successful tool result. The MCP response also includes content and may set isError when a call fails. For publishing, read the post’s final result rather than treating an accepted request or text response as confirmation. The linked API operation explains permissions and retry rules.

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Structured output
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
contract_versionstringRequired in parent
  • const: "project/v1"
profileobjectRequired in parent
  • additionalProperties: false
profile.project_idstringRequired in parent
  • format: "uuid"
profile.workspace_idstringRequired in parent
  • format: "uuid"
profile.taglinestring | nullRequired in parent—
profile.taglineanyOf 1stringRequired in parent—
profile.taglineanyOf 2nullRequired in parent—
profile.descriptionstring | nullRequired in parent—
profile.descriptionanyOf 1stringRequired in parent—
profile.descriptionanyOf 2nullRequired in parent—
profile.voicestring | nullRequired in parent—
profile.voiceanyOf 1stringRequired in parent—
profile.voiceanyOf 2nullRequired in parent—
profile.target_audiencestring | nullRequired in parent—
profile.target_audienceanyOf 1stringRequired in parent—
profile.target_audienceanyOf 2nullRequired in parent—
profile.color_palettearrayRequired in parent—
profile.color_palette[]stringOptional / item—
profile.goalsarrayRequired in parent—
profile.goals[]stringOptional / item—
profile.no_go_topicsarrayRequired in parent—
profile.no_go_topics[]stringOptional / item—
profile.language_primarystringRequired in parent—
profile.positioningstring | nullRequired in parent—
profile.positioninganyOf 1stringRequired in parent—
profile.positioninganyOf 2nullRequired in parent—
profile.uspstring | nullRequired in parent—
profile.uspanyOf 1stringRequired in parent—
profile.uspanyOf 2nullRequired in parent—
profile.visual_identityobject | nullRequired in parent—
profile.visual_identityanyOf 1objectRequired in parent
  • additionalProperties: {}
profile.visual_identity.*anyOf 1any JSON valueOptional / item—
profile.visual_identityanyOf 2nullRequired in parent—
profile.forbidden_claimsarrayRequired in parent—
profile.forbidden_claims[]stringOptional / item—
profile.north_star_metricstring | nullRequired in parent—
profile.north_star_metricanyOf 1stringRequired in parent—
profile.north_star_metricanyOf 2nullRequired in parent—
profile.posting_cadenceobject | nullRequired in parent—
profile.posting_cadenceanyOf 1objectRequired in parent
  • additionalProperties: {}
profile.posting_cadence.*anyOf 1any JSON valueOptional / item—
profile.posting_cadenceanyOf 2nullRequired in parent—
profile.app_store_url_iosstring | nullRequired in parent—
profile.app_store_url_iosanyOf 1stringRequired in parent—
profile.app_store_url_iosanyOf 2nullRequired in parent—
profile.app_store_url_androidstring | nullRequired in parent—
profile.app_store_url_androidanyOf 1stringRequired in parent—
profile.app_store_url_androidanyOf 2nullRequired in parent—
profile.app_metadataobjectRequired in parent
  • additionalProperties: {}
profile.app_metadata.*any JSON valueOptional / item—
profile.profile_versionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
profile.updated_bystring | nullRequired in parent—
profile.updated_byanyOf 1stringRequired in parent
  • format: "uuid"
profile.updated_byanyOf 2nullRequired in parent—
profile.updated_by_kindstringRequired in parent
  • enum: ["jwt","api_key","delegated_ai","migration"]
profile.updated_by_api_key_idstring | nullRequired in parent—
profile.updated_by_api_key_idanyOf 1stringRequired in parent
  • format: "uuid"
profile.updated_by_api_key_idanyOf 2nullRequired in parent—
profile.updated_by_delegated_grant_idstring | nullRequired in parent—
profile.updated_by_delegated_grant_idanyOf 1stringRequired in parent
  • format: "uuid"
profile.updated_by_delegated_grant_idanyOf 2nullRequired in parent—
profile.created_atstringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
profile.updated_atstringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
receipt_idstringRequired in parent
  • format: "uuid"
appliedbooleanRequired in parent—
dedupedbooleanRequired in parent—
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "project/v1"
    },
    "profile": {
      "type": "object",
      "properties": {
        "project_id": {
          "type": "string",
          "format": "uuid"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "tagline": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "voice": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "target_audience": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "color_palette": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "goals": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "no_go_topics": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "language_primary": {
          "type": "string"
        },
        "positioning": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "usp": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "visual_identity": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "forbidden_claims": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "north_star_metric": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "posting_cadence": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "app_store_url_ios": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "app_store_url_android": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "app_metadata": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "profile_version": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "updated_by": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_by_kind": {
          "type": "string",
          "enum": [
            "jwt",
            "api_key",
            "delegated_ai",
            "migration"
          ]
        },
        "updated_by_api_key_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_by_delegated_grant_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        }
      },
      "required": [
        "project_id",
        "workspace_id",
        "tagline",
        "description",
        "voice",
        "target_audience",
        "color_palette",
        "goals",
        "no_go_topics",
        "language_primary",
        "positioning",
        "usp",
        "visual_identity",
        "forbidden_claims",
        "north_star_metric",
        "posting_cadence",
        "app_store_url_ios",
        "app_store_url_android",
        "app_metadata",
        "profile_version",
        "updated_by",
        "updated_by_kind",
        "updated_by_api_key_id",
        "updated_by_delegated_grant_id",
        "created_at",
        "updated_at"
      ],
      "additionalProperties": false
    },
    "receipt_id": {
      "type": "string",
      "format": "uuid"
    },
    "applied": {
      "type": "boolean"
    },
    "deduped": {
      "type": "boolean"
    }
  },
  "required": [
    "contract_version",
    "profile",
    "receipt_id",
    "applied",
    "deduped"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Example tool call

These examples use fictional values checked against the schemas. Replace the IDs with ones you are authorized to use, the media with ready assets and the dates with your confirmed publishing time. Check the account’s eligibility before submitting a write. This page sends no API requests.

{
  "name": "sosoapi_update_project_profile",
  "arguments": {
    "project_id": "11111111-1111-4111-8111-111111111111",
    "expected_profile_version": 1,
    "idempotency_key": "example-intent-0001",
    "patch": {
      "tagline": "A fictional project for the documentation example."
    }
  }
}

structuredContent

{
  "contract_version": "project/v1",
  "profile": {
    "project_id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "tagline": null,
    "description": null,
    "voice": null,
    "target_audience": null,
    "color_palette": [],
    "goals": [],
    "no_go_topics": [],
    "language_primary": "example",
    "positioning": null,
    "usp": null,
    "visual_identity": null,
    "forbidden_claims": [],
    "north_star_metric": null,
    "posting_cadence": null,
    "app_store_url_ios": null,
    "app_store_url_android": null,
    "app_metadata": {},
    "profile_version": 1,
    "updated_by": null,
    "updated_by_kind": "jwt",
    "updated_by_api_key_id": null,
    "updated_by_delegated_grant_id": null,
    "created_at": "2099-01-15T09:00:00Z",
    "updated_at": "2099-01-15T09:00:00Z"
  },
  "receipt_id": "11111111-1111-4111-8111-111111111111",
  "applied": false,
  "deduped": false
}
Install or connect MCP