Pencarian hanya dimuat saat digunakan. Jelajahi semua kategori di bawah.

Alat MCP

Baca performa publik

sosoapi_read_public_performance

Baca penghitung publik X tidak resmi untuk akun yang terhubung ke ruang kerja. Penghitung yang hilang tetap berstatus tidak tersedia; X API berbayar maupun kredensial tidak digunakan.

Baca sebagai Markdown

Profil dan transport

Profil: full · Transport: stdio, http

Pilih core atau full untuk mengatur alat yang terlihat oleh klien; ini tidak mengubah izinnya. Unggahan file lokal memerlukan stdio dan tidak tersedia melalui HTTP. Atur SOSOAPI_OUTPUT_SCHEMAS=1 untuk menyertakan skema output saat penemuan. Alat mengembalikan hasil terstruktur dengan atau tanpa pengaturan itu.

Izin dan efek samping

Anotasi membantu klien menjelaskan alat. Setiap panggilan tetap memeriksa autentikasi pengguna, peran, akses sumber daya, dan izin kemampuan.

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

Kolom input

Wajib berarti wajib dalam objek induk dan cabang yang dipilih. Anak wajib tidak membuat induk opsional menjadi wajib. Aturan dan nama kolom di bawah disalin dari kontrak.

Kolom input
Kolom / cabangJenis / wajibBatasan
$objectWajib dalam induk
  • additionalProperties: false
workspace_idstringWajib dalam induk
  • format: "uuid"
social_account_idstringWajib dalam induk
  • format: "uuid"
cursorstringOpsional / item
  • minLength: 1
  • maxLength: 2048
refreshbooleanOpsional / item—
JSON Schema lengkap
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "refresh": {
      "type": "boolean"
    }
  },
  "required": [
    "workspace_id",
    "social_account_id"
  ],
  "additionalProperties": false
}

Output terstruktur

Skema ini menjelaskan structuredContent dalam hasil alat yang berhasil. Respons MCP juga menyertakan content dan dapat menetapkan isError saat panggilan gagal. Untuk publikasi, baca hasil akhir postingan alih-alih menganggap permintaan diterima atau respons teks sebagai konfirmasi. Operasi API yang ditautkan menjelaskan izin dan aturan percobaan ulang.

Wajib berarti wajib dalam objek induk dan cabang yang dipilih. Anak wajib tidak membuat induk opsional menjadi wajib. Aturan dan nama kolom di bawah disalin dari kontrak.

Output terstruktur
Kolom / cabangJenis / wajibBatasan
$objectWajib dalam induk
  • additionalProperties: false
contract_versionstringWajib dalam induk
  • const: "public-performance/v1"
sourcestringWajib dalam induk
  • const: "fxtwitter"
source_kindstringWajib dalam induk
  • const: "unofficial_public"
platformstringWajib dalam induk
  • const: "x"
workspace_idstringWajib dalam induk
  • format: "uuid"
social_account_idstringWajib dalam induk
  • format: "uuid"
provider_account_idstringWajib dalam induk
  • pattern: "^\\d{2,20}$"
fetched_atstringWajib dalam induk
  • 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)))$"
upstream_updated_atnullWajib dalam induk—
expires_atstringWajib dalam induk
  • 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)))$"
cache_statusstringWajib dalam induk
  • enum: ["hit","stored","bypassed"]
statusstringWajib dalam induk
  • enum: ["available","partial","unavailable"]
profileobject | nullWajib dalam induk—
profileanyOf 1objectWajib dalam induk
  • additionalProperties: false
profile.nameanyOf 1stringWajib dalam induk
  • maxLength: 200
profile.handleanyOf 1stringWajib dalam induk
  • maxLength: 100
profile.followersanyOf 1integer | nullWajib dalam induk—
profile.followersanyOf 1 / anyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
profile.followersanyOf 1 / anyOf 2nullWajib dalam induk—
profileanyOf 2nullWajib dalam induk—
postsarrayWajib dalam induk
  • maxItems: 100
posts[]objectOpsional / item
  • additionalProperties: false
posts[].idstringWajib dalam induk
  • pattern: "^\\d{2,20}$"
posts[].urlstringWajib dalam induk
  • format: "uri"
posts[].textstringWajib dalam induk
  • maxLength: 30000
posts[].published_atstring | nullWajib dalam induk—
posts[].published_atanyOf 1stringWajib dalam induk
  • 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)))$"
posts[].published_atanyOf 2nullWajib dalam induk—
posts[].kindstringWajib dalam induk
  • enum: ["post","reply"]
posts[].media_kindstringWajib dalam induk
  • enum: ["text","image","video"]
posts[].metricsobjectWajib dalam induk
  • additionalProperties: false
posts[].metrics.viewsinteger | nullWajib dalam induk—
posts[].metrics.viewsanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
posts[].metrics.viewsanyOf 2nullWajib dalam induk—
posts[].metrics.likesinteger | nullWajib dalam induk—
posts[].metrics.likesanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
posts[].metrics.likesanyOf 2nullWajib dalam induk—
posts[].metrics.repliesinteger | nullWajib dalam induk—
posts[].metrics.repliesanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
posts[].metrics.repliesanyOf 2nullWajib dalam induk—
posts[].metrics.repostsinteger | nullWajib dalam induk—
posts[].metrics.repostsanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
posts[].metrics.repostsanyOf 2nullWajib dalam induk—
posts[].metrics.quotesinteger | nullWajib dalam induk—
posts[].metrics.quotesanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
posts[].metrics.quotesanyOf 2nullWajib dalam induk—
posts[].metrics.bookmarksinteger | nullWajib dalam induk—
posts[].metrics.bookmarksanyOf 1integerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
posts[].metrics.bookmarksanyOf 2nullWajib dalam induk—
coverageobjectWajib dalam induk
  • additionalProperties: false
coverage.completebooleanWajib dalam induk—
coverage.next_cursorstring | nullWajib dalam induk—
coverage.next_cursoranyOf 1stringWajib dalam induk
  • maxLength: 2048
coverage.next_cursoranyOf 2nullWajib dalam induk—
coverage.views_available_postsintegerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
coverage.omitted_rowsintegerWajib dalam induk
  • minimum: 0
  • maximum: 9007199254740991
coverage.reasonsarrayWajib dalam induk
  • maxItems: 8
coverage.reasons[]stringOpsional / item
  • maxLength: 300
JSON Schema lengkap
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "public-performance/v1"
    },
    "source": {
      "type": "string",
      "const": "fxtwitter"
    },
    "source_kind": {
      "type": "string",
      "const": "unofficial_public"
    },
    "platform": {
      "type": "string",
      "const": "x"
    },
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "provider_account_id": {
      "type": "string",
      "pattern": "^\\d{2,20}$"
    },
    "fetched_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)))$"
    },
    "upstream_updated_at": {
      "type": "null"
    },
    "expires_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)))$"
    },
    "cache_status": {
      "type": "string",
      "enum": [
        "hit",
        "stored",
        "bypassed"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "available",
        "partial",
        "unavailable"
      ]
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 200
            },
            "handle": {
              "type": "string",
              "maxLength": 100
            },
            "followers": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "name",
            "handle",
            "followers"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "posts": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^\\d{2,20}$"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "text": {
            "type": "string",
            "maxLength": 30000
          },
          "published_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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "type": "string",
            "enum": [
              "post",
              "reply"
            ]
          },
          "media_kind": {
            "type": "string",
            "enum": [
              "text",
              "image",
              "video"
            ]
          },
          "metrics": {
            "type": "object",
            "properties": {
              "views": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "likes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "replies": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "reposts": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "quotes": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bookmarks": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "views",
              "likes",
              "replies",
              "reposts",
              "quotes",
              "bookmarks"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "url",
          "text",
          "published_at",
          "kind",
          "media_kind",
          "metrics"
        ],
        "additionalProperties": false
      }
    },
    "coverage": {
      "type": "object",
      "properties": {
        "complete": {
          "type": "boolean"
        },
        "next_cursor": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2048
            },
            {
              "type": "null"
            }
          ]
        },
        "views_available_posts": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "omitted_rows": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "reasons": {
          "maxItems": 8,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 300
          }
        }
      },
      "required": [
        "complete",
        "next_cursor",
        "views_available_posts",
        "omitted_rows",
        "reasons"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "contract_version",
    "source",
    "source_kind",
    "platform",
    "workspace_id",
    "social_account_id",
    "provider_account_id",
    "fetched_at",
    "upstream_updated_at",
    "expires_at",
    "cache_status",
    "status",
    "profile",
    "posts",
    "coverage"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Contoh panggilan alat

Contoh ini menggunakan nilai fiktif yang diperiksa terhadap skema. Ganti ID dengan yang diizinkan bagi Anda, media dengan aset siap, dan tanggal dengan waktu publikasi yang dikonfirmasi. Periksa kelayakan akun sebelum mengirim penulisan. Halaman ini tidak mengirim permintaan API.

{
  "name": "sosoapi_read_public_performance",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": "22222222-2222-4222-8222-222222222222"
  }
}

structuredContent

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "social_account_id": "22222222-2222-4222-8222-222222222222",
  "contract_version": "public-performance/v1",
  "source": "fxtwitter",
  "source_kind": "unofficial_public",
  "platform": "x",
  "provider_account_id": "12345",
  "fetched_at": "2099-01-15T09:00:00Z",
  "upstream_updated_at": null,
  "expires_at": "2099-01-15T09:05:00Z",
  "cache_status": "stored",
  "status": "unavailable",
  "profile": null,
  "posts": [],
  "coverage": {
    "complete": false,
    "next_cursor": null,
    "views_available_posts": 0,
    "omitted_rows": 0,
    "reasons": [
      "Fictional public source unavailable; no account data was read."
    ]
  }
}
Instal atau hubungkan MCP