개인정보 설정

필수 기능

보안 및 사이트 기본 기능에 필요합니다.

항상 켜짐

선택적 사용 분석

PostHog 사용 분석을 허용하시겠어요? 하단에서 언제든 선택을 바꿀 수 있습니다.

이 공개 웹사이트의 세션 리플레이도 허용

리플레이는 입력값과 비공개 콘텐츠를 가린 상태로 공개 페이지와 상호작용을 보여 줍니다. App 리플레이는 별도로 선택합니다.

분석을 먼저 켜야 합니다. 웹사이트 세션 재생은 기본적으로 꺼져 있습니다.

브라우저 분석 설정은 계정 분석을 켜지 않습니다.

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

MCP 도구

연구 프로젝트 만들기

sosoapi_research_projects_create

신뢰할 수 없는 팀 텍스트 및 명시적 범위로 Research 프로젝트를 만듭니다. 재시도할 때 mutation_id를 재사용합니다. agent:research가 필요합니다.

Markdown으로 읽기

프로필 및 전송 방식

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

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

권한 및 부수 효과

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

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

입력 필드

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

입력 필드
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
workspace_idstring상위 객체에서 필수
  • format: "uuid"
mutation_idstring상위 객체에서 필수
  • format: "uuid"
contentobject상위 객체에서 필수
  • additionalProperties: false
content.titlestring상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
content.questionstring상위 객체에서 필수
  • minLength: 1
  • maxLength: 2000
content.purposestring상위 객체에서 필수
  • maxLength: 1000
content.audiencestring상위 객체에서 필수
  • maxLength: 2000
content.brandsarray상위 객체에서 필수
  • maxItems: 20
content.brands[]object선택 / 항목
  • additionalProperties: false
content.brands[].idstring상위 객체에서 필수
  • format: "uuid"
content.brands[].namestring상위 객체에서 필수
  • minLength: 1
  • maxLength: 100
content.brands[].termsarray상위 객체에서 필수
  • minItems: 1
  • maxItems: 20
content.brands[].terms[]string선택 / 항목
  • minLength: 1
  • maxLength: 100
content.scopeobject상위 객체에서 필수
  • additionalProperties: false
content.scope.querystring상위 객체에서 필수
  • maxLength: 2000
content.scope.excluded_termsarray상위 객체에서 필수
  • maxItems: 50
content.scope.excluded_terms[]string선택 / 항목
  • minLength: 1
  • maxLength: 100
content.scope.platformsarray상위 객체에서 필수
  • maxItems: 7
content.scope.platforms[]string선택 / 항목
  • enum: ["threads","instagram","facebook","youtube","x","reddit","web"]
content.scope.source_categoriesarray상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
content.scope.source_categories[]string선택 / 항목
  • enum: ["your_accounts","public_posts","team_notes"]
content.scope.languagesarray상위 객체에서 필수
  • maxItems: 18
content.scope.languages[]string선택 / 항목
  • minLength: 1
  • maxLength: 35
content.scope.sincestring | null상위 객체에서 필수—
content.scope.sinceanyOf 1string상위 객체에서 필수
  • 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)))$"
content.scope.sinceanyOf 2null상위 객체에서 필수—
content.scope.untilstring | null상위 객체에서 필수—
content.scope.untilanyOf 1string상위 객체에서 필수
  • 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)))$"
content.scope.untilanyOf 2null상위 객체에서 필수—
전체 JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "mutation_id": {
      "type": "string",
      "format": "uuid"
    },
    "content": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "question": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        "purpose": {
          "type": "string",
          "maxLength": 1000
        },
        "audience": {
          "type": "string",
          "maxLength": 2000
        },
        "brands": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "$ref": "#/$defs/s1"
              },
              "terms": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "$ref": "#/$defs/s1"
                }
              }
            },
            "required": [
              "id",
              "name",
              "terms"
            ],
            "additionalProperties": false
          }
        },
        "scope": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "maxLength": 2000
            },
            "excluded_terms": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "$ref": "#/$defs/s1"
              }
            },
            "platforms": {
              "maxItems": 7,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "threads",
                  "instagram",
                  "facebook",
                  "youtube",
                  "x",
                  "reddit",
                  "web"
                ]
              }
            },
            "source_categories": {
              "minItems": 1,
              "maxItems": 3,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "your_accounts",
                  "public_posts",
                  "team_notes"
                ]
              }
            },
            "languages": {
              "maxItems": 18,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 35
              }
            },
            "since": {
              "$ref": "#/$defs/s0"
            },
            "until": {
              "$ref": "#/$defs/s0"
            }
          },
          "required": [
            "query",
            "excluded_terms",
            "platforms",
            "source_categories",
            "languages",
            "since",
            "until"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "title",
        "question",
        "purpose",
        "audience",
        "brands",
        "scope"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "workspace_id",
    "mutation_id",
    "content"
  ],
  "additionalProperties": false,
  "$defs": {
    "s0": {
      "anyOf": [
        {
          "type": "string",
          "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)))$",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ]
    },
    "s1": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  }
}

구조화된 출력

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

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

구조화된 출력
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
projectobject상위 객체에서 필수
  • additionalProperties: false
project.idstring상위 객체에서 필수
  • format: "uuid"
project.workspace_idstring상위 객체에서 필수
  • format: "uuid"
project.revisioninteger상위 객체에서 필수
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
project.archivedboolean상위 객체에서 필수—
project.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)))$"
project.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)))$"
project.contentobject상위 객체에서 필수
  • additionalProperties: false
project.content.titlestring상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
project.content.questionstring상위 객체에서 필수
  • minLength: 1
  • maxLength: 2000
project.content.purposestring상위 객체에서 필수
  • maxLength: 1000
project.content.audiencestring상위 객체에서 필수
  • maxLength: 2000
project.content.brandsarray상위 객체에서 필수
  • maxItems: 20
project.content.brands[]object선택 / 항목
  • additionalProperties: false
project.content.brands[].idstring상위 객체에서 필수
  • format: "uuid"
project.content.brands[].namestring상위 객체에서 필수
  • minLength: 1
  • maxLength: 100
project.content.brands[].termsarray상위 객체에서 필수
  • minItems: 1
  • maxItems: 20
project.content.brands[].terms[]string선택 / 항목
  • minLength: 1
  • maxLength: 100
project.content.scopeobject상위 객체에서 필수
  • additionalProperties: false
project.content.scope.querystring상위 객체에서 필수
  • maxLength: 2000
project.content.scope.excluded_termsarray상위 객체에서 필수
  • maxItems: 50
project.content.scope.excluded_terms[]string선택 / 항목
  • minLength: 1
  • maxLength: 100
project.content.scope.platformsarray상위 객체에서 필수
  • maxItems: 7
project.content.scope.platforms[]string선택 / 항목
  • enum: ["threads","instagram","facebook","youtube","x","reddit","web"]
project.content.scope.source_categoriesarray상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
project.content.scope.source_categories[]string선택 / 항목
  • enum: ["your_accounts","public_posts","team_notes"]
project.content.scope.languagesarray상위 객체에서 필수
  • maxItems: 18
project.content.scope.languages[]string선택 / 항목
  • minLength: 1
  • maxLength: 35
project.content.scope.sincestring | null상위 객체에서 필수—
project.content.scope.sinceanyOf 1string상위 객체에서 필수
  • 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)))$"
project.content.scope.sinceanyOf 2null상위 객체에서 필수—
project.content.scope.untilstring | null상위 객체에서 필수—
project.content.scope.untilanyOf 1string상위 객체에서 필수
  • 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)))$"
project.content.scope.untilanyOf 2null상위 객체에서 필수—
전체 JSON Schema
{
  "type": "object",
  "properties": {
    "project": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "archived": {
          "type": "boolean"
        },
        "created_at": {
          "type": "string",
          "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)))$",
          "format": "date-time"
        },
        "updated_at": {
          "type": "string",
          "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)))$",
          "format": "date-time"
        },
        "content": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "question": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2000
            },
            "purpose": {
              "type": "string",
              "maxLength": 1000
            },
            "audience": {
              "type": "string",
              "maxLength": 2000
            },
            "brands": {
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "terms": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    }
                  }
                },
                "required": [
                  "id",
                  "name",
                  "terms"
                ],
                "additionalProperties": false
              }
            },
            "scope": {
              "type": "object",
              "properties": {
                "query": {
                  "type": "string",
                  "maxLength": 2000
                },
                "excluded_terms": {
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "platforms": {
                  "maxItems": 7,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "threads",
                      "instagram",
                      "facebook",
                      "youtube",
                      "x",
                      "reddit",
                      "web"
                    ]
                  }
                },
                "source_categories": {
                  "minItems": 1,
                  "maxItems": 3,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "your_accounts",
                      "public_posts",
                      "team_notes"
                    ]
                  }
                },
                "languages": {
                  "maxItems": 18,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 35
                  }
                },
                "since": {
                  "anyOf": [
                    {
                      "type": "string",
                      "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)))$",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "until": {
                  "anyOf": [
                    {
                      "type": "string",
                      "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)))$",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "query",
                "excluded_terms",
                "platforms",
                "source_categories",
                "languages",
                "since",
                "until"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "title",
            "question",
            "purpose",
            "audience",
            "brands",
            "scope"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "id",
        "workspace_id",
        "revision",
        "archived",
        "created_at",
        "updated_at",
        "content"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "project"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

도구 호출 예제

예제는 스키마로 확인한 가상 값을 사용합니다. ID를 사용 권한이 있는 값으로, 미디어를 준비된 에셋으로, 날짜를 확인된 게시 시각으로 바꾸세요. 쓰기 제출 전에 계정 적격성을 확인하세요. 이 페이지는 API 요청을 보내지 않습니다.

{
  "name": "sosoapi_research_projects_create",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "mutation_id": "11111111-1111-4111-8111-111111111111",
    "content": {
      "title": "example",
      "question": "example",
      "purpose": "example",
      "audience": "example",
      "brands": [],
      "scope": {
        "query": "example",
        "excluded_terms": [],
        "platforms": [],
        "source_categories": [
          "your_accounts"
        ],
        "languages": [],
        "since": null,
        "until": null
      }
    }
  }
}

structuredContent

{
  "project": {
    "id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "revision": 1,
    "archived": false,
    "created_at": "2099-01-15T09:00:00Z",
    "updated_at": "2099-01-15T09:00:00Z",
    "content": {
      "title": "example",
      "question": "example",
      "purpose": "example",
      "audience": "example",
      "brands": [],
      "scope": {
        "query": "example",
        "excluded_terms": [],
        "platforms": [],
        "source_categories": [
          "your_accounts"
        ],
        "languages": [],
        "since": null,
        "until": null
      }
    }
  }
}
MCP 설치 또는 연결