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

MCP tool

Update user profile

sosoapi_update_user_profile

Change the signed-in user's own profile (display_name, timezone, avatar_url, theme). Send only the fields to change.

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
display_namestringOptional / item
  • minLength: 0
  • maxLength: 120
timezonestringOptional / item
  • minLength: 1
  • maxLength: 64
avatar_urlstringOptional / item
  • minLength: 0
  • maxLength: 2048
themestringOptional / item
  • enum: ["light","dark","system"]
expected_versionintegerOptional / item

Optional. The version you read. If it changed since, the update fails with 409 VERSION_CONFLICT instead of overwriting.

  • maximum: 2147483647
  • exclusiveMinimum: 0
include_versionbooleanOptional / item

Optional. true adds the resource version to the answer.

—
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "display_name": {
      "type": "string",
      "minLength": 0,
      "maxLength": 120
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "avatar_url": {
      "type": "string",
      "minLength": 0,
      "maxLength": 2048
    },
    "theme": {
      "type": "string",
      "enum": [
        "light",
        "dark",
        "system"
      ]
    },
    "expected_version": {
      "description": "Optional. The version you read. If it changed since, the update fails with 409 VERSION_CONFLICT instead of overwriting.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647
    },
    "include_version": {
      "description": "Optional. true adds the resource version to the answer.",
      "type": "boolean"
    }
  },
  "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
actionstringRequired in parent
  • const: "update"
profileobjectRequired in parent
  • additionalProperties: false
profile.user_idstringRequired in parent
  • format: "uuid"
profile.display_namestring | nullRequired in parent—
profile.display_nameanyOf 1stringRequired in parent—
profile.display_nameanyOf 2nullRequired in parent—
profile.timezonestring | nullRequired in parent—
profile.timezoneanyOf 1stringRequired in parent—
profile.timezoneanyOf 2nullRequired in parent—
profile.avatar_urlstring | nullRequired in parent—
profile.avatar_urlanyOf 1stringRequired in parent—
profile.avatar_urlanyOf 2nullRequired in parent—
profile.avatar_preview_urlstring | nullOptional / item—
profile.avatar_preview_urlanyOf 1stringOptional / item
  • format: "uri"
profile.avatar_preview_urlanyOf 2nullOptional / item—
profile.avatar_preview_expires_atstring | nullOptional / item—
profile.avatar_preview_expires_atanyOf 1stringOptional / item
  • 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))$"
profile.avatar_preview_expires_atanyOf 2nullOptional / item—
profile.themestring | nullRequired in parent—
profile.themeanyOf 1stringRequired in parent
  • enum: ["light","dark","system"]
profile.themeanyOf 2nullRequired in parent—
profile.created_atstring | nullRequired in parent—
profile.created_atanyOf 1stringRequired in parent—
profile.created_atanyOf 2nullRequired in parent—
profile.updated_atstring | nullRequired in parent—
profile.updated_atanyOf 1stringRequired in parent—
profile.updated_atanyOf 2nullRequired in parent—
profile.deletion_scheduled_atstring | nullRequired in parent—
profile.deletion_scheduled_atanyOf 1stringRequired in parent—
profile.deletion_scheduled_atanyOf 2nullRequired in parent—
profile.hard_delete_atstring | nullRequired in parent—
profile.hard_delete_atanyOf 1stringRequired in parent—
profile.hard_delete_atanyOf 2nullRequired in parent—
profile.versionintegerOptional / item
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "const": "update"
    },
    "profile": {
      "type": "object",
      "properties": {
        "user_id": {
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "timezone": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "avatar_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "avatar_preview_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "avatar_preview_expires_at": {
          "anyOf": [
            {
              "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))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "theme": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "light",
                "dark",
                "system"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "deletion_scheduled_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "hard_delete_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "version": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "user_id",
        "display_name",
        "timezone",
        "avatar_url",
        "theme",
        "created_at",
        "updated_at",
        "deletion_scheduled_at",
        "hard_delete_at"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "action",
    "profile"
  ],
  "$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_user_profile",
  "arguments": {}
}

structuredContent

{
  "action": "update",
  "profile": {
    "user_id": "11111111-1111-4111-8111-111111111111",
    "display_name": null,
    "timezone": null,
    "avatar_url": null,
    "theme": null,
    "created_at": null,
    "updated_at": null,
    "deletion_scheduled_at": null,
    "hard_delete_at": null
  }
}
Install or connect MCP