La recherche se charge uniquement lorsque vous l’utilisez. Parcourez toutes les catégories ci-dessous.

Outil MCP

Mettre à jour le profil d’un projet

sosoapi_update_project_profile

Modifier certains champs du profil de marque d’un projet. Les champs omis restent inchangés. Nécessite expected_profile_version issu de la dernière lecture et une idempotency_key (rôle editor).

Lire en Markdown

Profils et transports

Profils : full · Transports : stdio, http

Choisissez core ou full pour définir les outils visibles du client ; cela ne change pas ses autorisations. Le téléversement local nécessite stdio et n’est pas disponible sur HTTP. Définissez SOSOAPI_OUTPUT_SCHEMAS=1 pour inclure les schémas de sortie à la découverte. Les outils renvoient des résultats structurés avec ou sans ce réglage.

Autorisations et effets de bord

Les annotations aident les clients à décrire un outil. Chaque appel vérifie toujours l’authentification, le rôle, l’accès aux ressources et les capacités accordées de l’utilisateur.

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

Champs d’entrée

Requis signifie requis dans l’objet parent et la branche sélectionnée. Un enfant requis ne rend pas obligatoire un parent facultatif. Les règles et noms de champs ci-dessous proviennent du contrat.

Champs d’entrée
Champ / brancheType / requisContraintes
$objectRequis dans le parent
  • additionalProperties: false
project_idstringRequis dans le parent
  • format: "uuid"
expected_profile_versionintegerRequis dans le parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
idempotency_keystringRequis dans le parent
  • minLength: 8
  • maxLength: 160
patchobjectRequis dans le parent
  • additionalProperties: false
patch.taglinestring | nullFacultatif / élément—
patch.taglineanyOf 1stringFacultatif / élément
  • maxLength: 300
patch.taglineanyOf 2nullFacultatif / élément—
patch.descriptionstring | nullFacultatif / élément—
patch.descriptionanyOf 1stringFacultatif / élément
  • maxLength: 4000
patch.descriptionanyOf 2nullFacultatif / élément—
patch.voicestring | nullFacultatif / élément—
patch.voiceanyOf 1stringFacultatif / élément
  • maxLength: 1000
patch.voiceanyOf 2nullFacultatif / élément—
patch.target_audiencestring | nullFacultatif / élément—
patch.target_audienceanyOf 1stringFacultatif / élément
  • maxLength: 1000
patch.target_audienceanyOf 2nullFacultatif / élément—
patch.color_palettearrayFacultatif / élément
  • maxItems: 20
patch.color_palette[]stringFacultatif / élément
  • maxLength: 64
patch.goalsarrayFacultatif / élément
  • maxItems: 50
patch.goals[]stringFacultatif / élément
  • maxLength: 160
patch.no_go_topicsarrayFacultatif / élément
  • maxItems: 100
patch.no_go_topics[]stringFacultatif / élément
  • maxLength: 160
patch.language_primarystringFacultatif / élément
  • minLength: 2
  • maxLength: 35
patch.positioningstring | nullFacultatif / élément—
patch.positioninganyOf 1stringFacultatif / élément
  • maxLength: 2000
patch.positioninganyOf 2nullFacultatif / élément—
patch.uspstring | nullFacultatif / élément—
patch.uspanyOf 1stringFacultatif / élément
  • maxLength: 1000
patch.uspanyOf 2nullFacultatif / élément—
patch.visual_identityobject | nullFacultatif / élément—
patch.visual_identityanyOf 1objectFacultatif / élément
  • additionalProperties: {}
patch.visual_identity.*anyOf 1any JSON valueFacultatif / élément—
patch.visual_identityanyOf 2nullFacultatif / élément—
patch.forbidden_claimsarrayFacultatif / élément
  • maxItems: 100
patch.forbidden_claims[]stringFacultatif / élément
  • maxLength: 240
patch.north_star_metricstring | nullFacultatif / élément—
patch.north_star_metricanyOf 1stringFacultatif / élément
  • maxLength: 300
patch.north_star_metricanyOf 2nullFacultatif / élément—
patch.posting_cadenceobject | nullFacultatif / élément—
patch.posting_cadenceanyOf 1objectFacultatif / élément
  • additionalProperties: {}
patch.posting_cadence.*anyOf 1any JSON valueFacultatif / élément—
patch.posting_cadenceanyOf 2nullFacultatif / élément—
patch.app_store_url_iosstring | nullFacultatif / élément—
patch.app_store_url_iosanyOf 1stringFacultatif / élément
  • format: "uri"
patch.app_store_url_iosanyOf 2nullFacultatif / élément—
patch.app_store_url_androidstring | nullFacultatif / élément—
patch.app_store_url_androidanyOf 1stringFacultatif / élément
  • format: "uri"
patch.app_store_url_androidanyOf 2nullFacultatif / élément—
patch.app_metadataobjectFacultatif / élément
  • additionalProperties: {}
patch.app_metadata.*any JSON valueFacultatif / élément—
JSON Schema complet
{
  "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
}

Sortie structurée

Ce schéma décrit structuredContent dans un résultat d’outil réussi. La réponse MCP contient aussi content et peut définir isError en cas d’échec. Pour publier, lisez le résultat final de la publication plutôt que de considérer une requête acceptée ou une réponse texte comme une confirmation. L’opération API liée explique les autorisations et règles de nouvelle tentative.

Requis signifie requis dans l’objet parent et la branche sélectionnée. Un enfant requis ne rend pas obligatoire un parent facultatif. Les règles et noms de champs ci-dessous proviennent du contrat.

Sortie structurée
Champ / brancheType / requisContraintes
$objectRequis dans le parent
  • additionalProperties: false
contract_versionstringRequis dans le parent
  • const: "project/v1"
profileobjectRequis dans le parent
  • additionalProperties: false
profile.project_idstringRequis dans le parent
  • format: "uuid"
profile.workspace_idstringRequis dans le parent
  • format: "uuid"
profile.taglinestring | nullRequis dans le parent—
profile.taglineanyOf 1stringRequis dans le parent—
profile.taglineanyOf 2nullRequis dans le parent—
profile.descriptionstring | nullRequis dans le parent—
profile.descriptionanyOf 1stringRequis dans le parent—
profile.descriptionanyOf 2nullRequis dans le parent—
profile.voicestring | nullRequis dans le parent—
profile.voiceanyOf 1stringRequis dans le parent—
profile.voiceanyOf 2nullRequis dans le parent—
profile.target_audiencestring | nullRequis dans le parent—
profile.target_audienceanyOf 1stringRequis dans le parent—
profile.target_audienceanyOf 2nullRequis dans le parent—
profile.color_palettearrayRequis dans le parent—
profile.color_palette[]stringFacultatif / élément—
profile.goalsarrayRequis dans le parent—
profile.goals[]stringFacultatif / élément—
profile.no_go_topicsarrayRequis dans le parent—
profile.no_go_topics[]stringFacultatif / élément—
profile.language_primarystringRequis dans le parent—
profile.positioningstring | nullRequis dans le parent—
profile.positioninganyOf 1stringRequis dans le parent—
profile.positioninganyOf 2nullRequis dans le parent—
profile.uspstring | nullRequis dans le parent—
profile.uspanyOf 1stringRequis dans le parent—
profile.uspanyOf 2nullRequis dans le parent—
profile.visual_identityobject | nullRequis dans le parent—
profile.visual_identityanyOf 1objectRequis dans le parent
  • additionalProperties: {}
profile.visual_identity.*anyOf 1any JSON valueFacultatif / élément—
profile.visual_identityanyOf 2nullRequis dans le parent—
profile.forbidden_claimsarrayRequis dans le parent—
profile.forbidden_claims[]stringFacultatif / élément—
profile.north_star_metricstring | nullRequis dans le parent—
profile.north_star_metricanyOf 1stringRequis dans le parent—
profile.north_star_metricanyOf 2nullRequis dans le parent—
profile.posting_cadenceobject | nullRequis dans le parent—
profile.posting_cadenceanyOf 1objectRequis dans le parent
  • additionalProperties: {}
profile.posting_cadence.*anyOf 1any JSON valueFacultatif / élément—
profile.posting_cadenceanyOf 2nullRequis dans le parent—
profile.app_store_url_iosstring | nullRequis dans le parent—
profile.app_store_url_iosanyOf 1stringRequis dans le parent—
profile.app_store_url_iosanyOf 2nullRequis dans le parent—
profile.app_store_url_androidstring | nullRequis dans le parent—
profile.app_store_url_androidanyOf 1stringRequis dans le parent—
profile.app_store_url_androidanyOf 2nullRequis dans le parent—
profile.app_metadataobjectRequis dans le parent
  • additionalProperties: {}
profile.app_metadata.*any JSON valueFacultatif / élément—
profile.profile_versionintegerRequis dans le parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
profile.updated_bystring | nullRequis dans le parent—
profile.updated_byanyOf 1stringRequis dans le parent
  • format: "uuid"
profile.updated_byanyOf 2nullRequis dans le parent—
profile.updated_by_kindstringRequis dans le parent
  • enum: ["jwt","api_key","delegated_ai","migration"]
profile.updated_by_api_key_idstring | nullRequis dans le parent—
profile.updated_by_api_key_idanyOf 1stringRequis dans le parent
  • format: "uuid"
profile.updated_by_api_key_idanyOf 2nullRequis dans le parent—
profile.updated_by_delegated_grant_idstring | nullRequis dans le parent—
profile.updated_by_delegated_grant_idanyOf 1stringRequis dans le parent
  • format: "uuid"
profile.updated_by_delegated_grant_idanyOf 2nullRequis dans le parent—
profile.created_atstringRequis dans le 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_atstringRequis dans le 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_idstringRequis dans le parent
  • format: "uuid"
appliedbooleanRequis dans le parent—
dedupedbooleanRequis dans le parent—
JSON Schema complet
{
  "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
}

Exemple d’appel d’outil

Ces exemples utilisent des valeurs fictives vérifiées contre les schémas. Remplacez les identifiants par ceux que vous êtes autorisé à utiliser, les médias par des ressources prêtes et les dates par l’heure confirmée. Vérifiez l’éligibilité du compte avant toute écriture. Cette page n’envoie aucune requête API.

{
  "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
}
Installer ou connecter MCP