검색은 사용할 때만 로드됩니다. 아래에서 모든 분류를 살펴보세요.

MCP 도구

프로젝트 프로필 수정

sosoapi_update_project_profile

프로젝트 브랜드 프로필 필드를 부분 수정합니다. 생략한 필드는 유지됩니다. 최신 조회의 expected_profile_version과 idempotency_key가 필요합니다(editor 역할).

Markdown으로 읽기

프로필 및 전송 방식

프로필: full · 전송 방식: stdio, http

클라이언트에 표시할 도구는 core 또는 full로 선택하세요. 권한은 변경되지 않습니다. 로컬 파일 업로드에는 stdio가 필요하며 HTTP에서는 사용할 수 없습니다. 검색에 출력 스키마를 포함하려면 SOSOAPI_OUTPUT_SCHEMAS=1을 설정하세요. 이 설정과 관계없이 도구는 구조화된 결과를 반환합니다.

권한 및 부수 효과

주석은 클라이언트의 도구 설명을 돕습니다. 각 호출은 계속 사용자 인증, 역할, 리소스 접근, 기능 권한을 확인합니다.

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

입력 필드

필수는 상위 객체와 선택 분기 안에서 필수라는 뜻입니다. 필수 자식이 선택적 상위 객체를 필수로 만들지는 않습니다. 아래 규칙과 필드명은 계약에서 복사했습니다.

입력 필드
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
project_idstring상위 객체에서 필수
  • format: "uuid"
expected_profile_versioninteger상위 객체에서 필수
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
idempotency_keystring상위 객체에서 필수
  • minLength: 8
  • maxLength: 160
patchobject상위 객체에서 필수
  • additionalProperties: false
patch.taglinestring | null선택 / 항목—
patch.taglineanyOf 1string선택 / 항목
  • maxLength: 300
patch.taglineanyOf 2null선택 / 항목—
patch.descriptionstring | null선택 / 항목—
patch.descriptionanyOf 1string선택 / 항목
  • maxLength: 4000
patch.descriptionanyOf 2null선택 / 항목—
patch.voicestring | null선택 / 항목—
patch.voiceanyOf 1string선택 / 항목
  • maxLength: 1000
patch.voiceanyOf 2null선택 / 항목—
patch.target_audiencestring | null선택 / 항목—
patch.target_audienceanyOf 1string선택 / 항목
  • maxLength: 1000
patch.target_audienceanyOf 2null선택 / 항목—
patch.color_palettearray선택 / 항목
  • maxItems: 20
patch.color_palette[]string선택 / 항목
  • maxLength: 64
patch.goalsarray선택 / 항목
  • maxItems: 50
patch.goals[]string선택 / 항목
  • maxLength: 160
patch.no_go_topicsarray선택 / 항목
  • maxItems: 100
patch.no_go_topics[]string선택 / 항목
  • maxLength: 160
patch.language_primarystring선택 / 항목
  • minLength: 2
  • maxLength: 35
patch.positioningstring | null선택 / 항목—
patch.positioninganyOf 1string선택 / 항목
  • maxLength: 2000
patch.positioninganyOf 2null선택 / 항목—
patch.uspstring | null선택 / 항목—
patch.uspanyOf 1string선택 / 항목
  • maxLength: 1000
patch.uspanyOf 2null선택 / 항목—
patch.visual_identityobject | null선택 / 항목—
patch.visual_identityanyOf 1object선택 / 항목
  • additionalProperties: {}
patch.visual_identity.*anyOf 1any JSON value선택 / 항목—
patch.visual_identityanyOf 2null선택 / 항목—
patch.forbidden_claimsarray선택 / 항목
  • maxItems: 100
patch.forbidden_claims[]string선택 / 항목
  • maxLength: 240
patch.north_star_metricstring | null선택 / 항목—
patch.north_star_metricanyOf 1string선택 / 항목
  • maxLength: 300
patch.north_star_metricanyOf 2null선택 / 항목—
patch.posting_cadenceobject | null선택 / 항목—
patch.posting_cadenceanyOf 1object선택 / 항목
  • additionalProperties: {}
patch.posting_cadence.*anyOf 1any JSON value선택 / 항목—
patch.posting_cadenceanyOf 2null선택 / 항목—
patch.app_store_url_iosstring | null선택 / 항목—
patch.app_store_url_iosanyOf 1string선택 / 항목
  • format: "uri"
patch.app_store_url_iosanyOf 2null선택 / 항목—
patch.app_store_url_androidstring | null선택 / 항목—
patch.app_store_url_androidanyOf 1string선택 / 항목
  • format: "uri"
patch.app_store_url_androidanyOf 2null선택 / 항목—
patch.app_metadataobject선택 / 항목
  • additionalProperties: {}
patch.app_metadata.*any JSON value선택 / 항목—
전체 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
}

구조화된 출력

이 스키마는 성공한 도구 결과의 structuredContent를 설명합니다. MCP 응답에는 content도 포함되며 호출 실패 시 isError가 설정될 수 있습니다. 게시 시 접수된 요청이나 텍스트 응답을 확인으로 간주하지 말고 게시물의 최종 결과를 읽으세요. 연결된 API 작업에 권한과 재시도 규칙이 설명되어 있습니다.

필수는 상위 객체와 선택 분기 안에서 필수라는 뜻입니다. 필수 자식이 선택적 상위 객체를 필수로 만들지는 않습니다. 아래 규칙과 필드명은 계약에서 복사했습니다.

구조화된 출력
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
contract_versionstring상위 객체에서 필수
  • const: "project/v1"
profileobject상위 객체에서 필수
  • additionalProperties: false
profile.project_idstring상위 객체에서 필수
  • format: "uuid"
profile.workspace_idstring상위 객체에서 필수
  • format: "uuid"
profile.taglinestring | null상위 객체에서 필수—
profile.taglineanyOf 1string상위 객체에서 필수—
profile.taglineanyOf 2null상위 객체에서 필수—
profile.descriptionstring | null상위 객체에서 필수—
profile.descriptionanyOf 1string상위 객체에서 필수—
profile.descriptionanyOf 2null상위 객체에서 필수—
profile.voicestring | null상위 객체에서 필수—
profile.voiceanyOf 1string상위 객체에서 필수—
profile.voiceanyOf 2null상위 객체에서 필수—
profile.target_audiencestring | null상위 객체에서 필수—
profile.target_audienceanyOf 1string상위 객체에서 필수—
profile.target_audienceanyOf 2null상위 객체에서 필수—
profile.color_palettearray상위 객체에서 필수—
profile.color_palette[]string선택 / 항목—
profile.goalsarray상위 객체에서 필수—
profile.goals[]string선택 / 항목—
profile.no_go_topicsarray상위 객체에서 필수—
profile.no_go_topics[]string선택 / 항목—
profile.language_primarystring상위 객체에서 필수—
profile.positioningstring | null상위 객체에서 필수—
profile.positioninganyOf 1string상위 객체에서 필수—
profile.positioninganyOf 2null상위 객체에서 필수—
profile.uspstring | null상위 객체에서 필수—
profile.uspanyOf 1string상위 객체에서 필수—
profile.uspanyOf 2null상위 객체에서 필수—
profile.visual_identityobject | null상위 객체에서 필수—
profile.visual_identityanyOf 1object상위 객체에서 필수
  • additionalProperties: {}
profile.visual_identity.*anyOf 1any JSON value선택 / 항목—
profile.visual_identityanyOf 2null상위 객체에서 필수—
profile.forbidden_claimsarray상위 객체에서 필수—
profile.forbidden_claims[]string선택 / 항목—
profile.north_star_metricstring | null상위 객체에서 필수—
profile.north_star_metricanyOf 1string상위 객체에서 필수—
profile.north_star_metricanyOf 2null상위 객체에서 필수—
profile.posting_cadenceobject | null상위 객체에서 필수—
profile.posting_cadenceanyOf 1object상위 객체에서 필수
  • additionalProperties: {}
profile.posting_cadence.*anyOf 1any JSON value선택 / 항목—
profile.posting_cadenceanyOf 2null상위 객체에서 필수—
profile.app_store_url_iosstring | null상위 객체에서 필수—
profile.app_store_url_iosanyOf 1string상위 객체에서 필수—
profile.app_store_url_iosanyOf 2null상위 객체에서 필수—
profile.app_store_url_androidstring | null상위 객체에서 필수—
profile.app_store_url_androidanyOf 1string상위 객체에서 필수—
profile.app_store_url_androidanyOf 2null상위 객체에서 필수—
profile.app_metadataobject상위 객체에서 필수
  • additionalProperties: {}
profile.app_metadata.*any JSON value선택 / 항목—
profile.profile_versioninteger상위 객체에서 필수
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
profile.updated_bystring | null상위 객체에서 필수—
profile.updated_byanyOf 1string상위 객체에서 필수
  • format: "uuid"
profile.updated_byanyOf 2null상위 객체에서 필수—
profile.updated_by_kindstring상위 객체에서 필수
  • enum: ["jwt","api_key","delegated_ai","migration"]
profile.updated_by_api_key_idstring | null상위 객체에서 필수—
profile.updated_by_api_key_idanyOf 1string상위 객체에서 필수
  • format: "uuid"
profile.updated_by_api_key_idanyOf 2null상위 객체에서 필수—
profile.updated_by_delegated_grant_idstring | null상위 객체에서 필수—
profile.updated_by_delegated_grant_idanyOf 1string상위 객체에서 필수
  • format: "uuid"
profile.updated_by_delegated_grant_idanyOf 2null상위 객체에서 필수—
profile.created_atstring상위 객체에서 필수
  • 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_atstring상위 객체에서 필수
  • 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_idstring상위 객체에서 필수
  • format: "uuid"
appliedboolean상위 객체에서 필수—
dedupedboolean상위 객체에서 필수—
전체 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
}

도구 호출 예제

예제는 스키마로 확인한 가상 값을 사용합니다. ID를 사용 권한이 있는 값으로, 미디어를 준비된 에셋으로, 날짜를 확인된 게시 시각으로 바꾸세요. 쓰기 제출 전에 계정 적격성을 확인하세요. 이 페이지는 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
}
MCP 설치 또는 연결