隱私偏好

必要功能

用於安全驗證及網站基本功能。

一律啟用

選用的使用分析

允許 PostHog 使用分析嗎?可隨時在頁尾更改選擇。

同時允許在此公開網站進行工作階段重播

重播會顯示公開頁面與互動,並遮蔽輸入內容及私人內容。應用程式重播需另外選擇。

須先啟用分析;網站操作重播預設關閉。

瀏覽器分析選擇不會啟用帳戶分析。

僅在使用時載入搜尋。在下方瀏覽所有類別。

MCP 工具

分類處理帳戶提及

sosoapi_listening_mentions_set_state

使用 expected_revision 更新本機帳戶提及分類;絕不回覆、隱藏或刪除供應商內容。需要 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"
social_account_idstring在父物件中必填
  • format: "uuid"
idstring在父物件中必填
  • format: "uuid"
mutation_idstring在父物件中必填
  • format: "uuid"
expected_revisioninteger在父物件中必填
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
handledboolean選填/項目—
archivedboolean選填/項目—
完整 JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "mutation_id": {
      "type": "string",
      "format": "uuid"
    },
    "expected_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "handled": {
      "type": "boolean"
    },
    "archived": {
      "type": "boolean"
    }
  },
  "required": [
    "workspace_id",
    "social_account_id",
    "id",
    "mutation_id",
    "expected_revision"
  ],
  "additionalProperties": false
}

結構化輸出

此 schema 描述成功工具結果中的 structuredContent。MCP 回應也包含 content,並可能在呼叫失敗時設定 isError。對於發布,請讀取貼文的最終結果,不要把已接受的請求或文字回應當作確認。連結的 API 操作說明了權限和重試規則。

「必填」是指在其父物件及所選分支內必填。必填子欄位不會使選填父物件變成必填。下列規則與欄位名稱均複製自契約。

結構化輸出
欄位 / 分支類型 / 必填約束
$object在父物件中必填
  • additionalProperties: false
mentionobject在父物件中必填
  • additionalProperties: false
mention.idstring在父物件中必填
  • format: "uuid"
mention.workspace_idstring在父物件中必填
  • format: "uuid"
mention.social_account_idstring在父物件中必填
  • format: "uuid"
mention.provider_post_idstring在父物件中必填
  • pattern: "^\\d{2,20}$"
mention.sourcestring在父物件中必填
  • const: "threads"
mention.relationshipstring在父物件中必填
  • const: "account_mention"
mention.revisioninteger在父物件中必填
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
mention.handledboolean在父物件中必填—
mention.archivedboolean在父物件中必填—
mention.availabilitystring在父物件中必填
  • enum: ["available","expired","unavailable"]
mention.postobject | null在父物件中必填—
mention.postanyOf 1object在父物件中必填
  • additionalProperties: false
mention.post.idanyOf 1string在父物件中必填
  • pattern: "^\\d{2,20}$"
mention.post.textanyOf 1string | null在父物件中必填—
mention.post.textanyOf 1 / anyOf 1string在父物件中必填
  • maxLength: 30000
mention.post.textanyOf 1 / anyOf 2null在父物件中必填—
mention.post.usernameanyOf 1string | null在父物件中必填—
mention.post.usernameanyOf 1 / anyOf 1string在父物件中必填
  • pattern: "^[A-Za-z0-9._]{1,30}$"
mention.post.usernameanyOf 1 / anyOf 2null在父物件中必填—
mention.post.permalinkanyOf 1string | null在父物件中必填—
mention.post.permalinkanyOf 1 / anyOf 1string在父物件中必填
  • format: "uri"
mention.post.permalinkanyOf 1 / anyOf 2null在父物件中必填—
mention.post.timestampanyOf 1string | null在父物件中必填—
mention.post.timestampanyOf 1 / anyOf 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)))$"
mention.post.timestampanyOf 1 / anyOf 2null在父物件中必填—
mention.post.media_typeanyOf 1string | null在父物件中必填—
mention.post.media_typeanyOf 1 / anyOf 1string在父物件中必填
  • enum: ["TEXT","TEXT_POST","IMAGE","VIDEO","CAROUSEL_ALBUM","AUDIO","REPOST_FACADE"]
mention.post.media_typeanyOf 1 / anyOf 2null在父物件中必填—
mention.post.is_replyanyOf 1boolean | null在父物件中必填—
mention.post.is_quote_postanyOf 1boolean | null在父物件中必填—
mention.post.has_repliesanyOf 1boolean | null在父物件中必填—
mention.post.root_post_idanyOf 1string | null選填/項目—
mention.post.root_post_idanyOf 1 / anyOf 1string選填/項目
  • pattern: "^\\d{2,20}$"
mention.post.root_post_idanyOf 1 / anyOf 2null選填/項目—
mention.post.replied_to_idanyOf 1string | null選填/項目—
mention.post.replied_to_idanyOf 1 / anyOf 1string選填/項目
  • pattern: "^\\d{2,20}$"
mention.post.replied_to_idanyOf 1 / anyOf 2null選填/項目—
mention.postanyOf 2null在父物件中必填—
mention.first_observed_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)))$"
mention.last_checked_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)))$"
mention.expires_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)))$"
mention.coveragestring在父物件中必填
  • const: "partial_native_page"
完整 JSON Schema
{
  "type": "object",
  "properties": {
    "mention": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "social_account_id": {
          "type": "string",
          "format": "uuid"
        },
        "provider_post_id": {
          "type": "string",
          "pattern": "^\\d{2,20}$"
        },
        "source": {
          "type": "string",
          "const": "threads"
        },
        "relationship": {
          "type": "string",
          "const": "account_mention"
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "handled": {
          "type": "boolean"
        },
        "archived": {
          "type": "boolean"
        },
        "availability": {
          "type": "string",
          "enum": [
            "available",
            "expired",
            "unavailable"
          ]
        },
        "post": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^\\d{2,20}$"
                },
                "text": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 30000
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "username": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^[A-Za-z0-9._]{1,30}$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "permalink": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "timestamp": {
                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "media_type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "TEXT",
                        "TEXT_POST",
                        "IMAGE",
                        "VIDEO",
                        "CAROUSEL_ALBUM",
                        "AUDIO",
                        "REPOST_FACADE"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "is_reply": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "is_quote_post": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "has_replies": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "root_post_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^\\d{2,20}$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "replied_to_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^\\d{2,20}$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "text",
                "username",
                "permalink",
                "timestamp",
                "media_type",
                "is_reply",
                "is_quote_post",
                "has_replies"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "first_observed_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"
        },
        "last_checked_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"
        },
        "expires_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"
        },
        "coverage": {
          "type": "string",
          "const": "partial_native_page"
        }
      },
      "required": [
        "id",
        "workspace_id",
        "social_account_id",
        "provider_post_id",
        "source",
        "relationship",
        "revision",
        "handled",
        "archived",
        "availability",
        "post",
        "first_observed_at",
        "last_checked_at",
        "expires_at",
        "coverage"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "mention"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

工具呼叫範例

這些範例使用已依結構描述檢查的虛構值。請將 ID 替換為您有權使用的 ID、將媒體替換為已就緒素材,並將日期替換為已確認的發布時間。提交寫入前,請檢查帳號資格。本頁不會傳送 API 請求。

{
  "name": "sosoapi_listening_mentions_set_state",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": "22222222-2222-4222-8222-222222222222",
    "id": "30000000-0000-4000-8000-000000000006",
    "mutation_id": "40000000-0000-4000-8000-000000000004",
    "expected_revision": 1,
    "handled": true
  }
}

structuredContent

{
  "mention": {
    "id": "30000000-0000-4000-8000-000000000006",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": "22222222-2222-4222-8222-222222222222",
    "provider_post_id": "9999999999999999",
    "source": "threads",
    "relationship": "account_mention",
    "revision": 2,
    "handled": true,
    "archived": false,
    "availability": "unavailable",
    "post": null,
    "first_observed_at": "2099-01-15T09:00:00Z",
    "last_checked_at": "2099-01-15T09:00:00Z",
    "expires_at": "2099-01-16T09:00:00Z",
    "coverage": "partial_native_page"
  }
}
安裝或連結 MCP