# 查找監察收集執行記錄

Canonical URL: https://sosoapi.ai/zh-hant/docs/mcp/listening-runs-query

`sosoapi_listening_runs_query`

按指定串流分頁讀取已記錄採集工作，包括延後及失敗；缺少工作不等於該時段沒有帖子，列表不會補抓歷史。

## Profiles 及連接方式

Profiles: full

Transports: stdio, http

Profile 只影響工具可見性，不會授予權限。HTTP 不提供本機檔案上傳。SOSOAPI_OUTPUT_SCHEMAS=1 會宣告輸出 schema；兩種模式均會回傳 structured results。

## 權限及改動

MCP annotations 只提供工具發現提示，並非存取控制保證；實際呼叫仍須通過登入、角色、資源及能力檢查。

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

`/listening-api/runs/query` — agent:research; current authorized Listening data; indexed public sample is partial and is not a verified account mention

## 輸入欄位

```json
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "cursor": {
      "type": "string",
      "format": "uuid"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "stream_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "workspace_id",
    "stream_id"
  ],
  "additionalProperties": false
}
```

## 結構化輸出

此 schema 描述成功工具結果的 structuredContent。MCP envelope 亦包括 content，失敗時可能設定 isError；請勿將文字收據或已接受的請求視為平台終態。權限及重試規則請參閱對應的 API 操作。

```json
{
  "type": "object",
  "properties": {
    "items": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid"
          },
          "stream_id": {
            "type": "string",
            "format": "uuid"
          },
          "stream_revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "query_revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "generation": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "source": {
            "type": "string",
            "const": "hacker_news"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "partial",
              "succeeded",
              "deferred",
              "cancelled",
              "failed"
            ]
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "collection_paused",
                  "authorization_expired",
                  "authorization_revoked",
                  "stream_changed",
                  "stream_paused",
                  "stream_deleted",
                  "cancelled",
                  "workspace_budget",
                  "source_budget",
                  "run_budget",
                  "source_rate_limited",
                  "source_unavailable",
                  "source_invalid",
                  "execution_exhausted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "requested_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"
          },
          "completed_at": {
            "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"
              }
            ]
          },
          "retry_after": {
            "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"
              }
            ]
          },
          "result_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20
          },
          "provider_gets": {
            "type": "integer",
            "minimum": 0,
            "maximum": 21
          },
          "coverage": {
            "type": "string",
            "const": "partial_indexed_sample"
          },
          "exhaustive": {
            "type": "boolean",
            "const": false
          },
          "method_version": {
            "type": "string",
            "const": "hn-indexed-literal-sample/v1"
          },
          "observation_counts": {
            "type": "object",
            "properties": {
              "source_items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              },
              "matched_items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              },
              "removed_items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              },
              "unavailable_items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              }
            },
            "required": [
              "source_items",
              "matched_items",
              "removed_items",
              "unavailable_items"
            ],
            "additionalProperties": false
          },
          "window_since": {
            "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"
          },
          "window_until": {
            "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"
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "maximum": 49
          },
          "next_page_available": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "workspace_id",
          "stream_id",
          "stream_revision",
          "query_revision",
          "generation",
          "source",
          "status",
          "reason",
          "requested_at",
          "completed_at",
          "retry_after",
          "result_count",
          "provider_gets",
          "coverage",
          "exhaustive",
          "method_version",
          "observation_counts",
          "window_since",
          "window_until",
          "page",
          "next_page_available"
        ],
        "additionalProperties": false
      }
    },
    "next_cursor": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "next_cursor"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
```

## 工具呼叫範例

以下虛構值已按 contract 驗證，並非真實帳戶 ID、憑證或發佈紀錄。請以已授權範圍回傳的 ID、已準備完成的素材及已審核排程取代，並在寫入前核對平台資格。此頁不會呼叫 API。

```json
{
  "name": "sosoapi_listening_runs_query",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "stream_id": "11111111-1111-4111-8111-111111111111"
  }
}
```

structuredContent

```json
{
  "items": [],
  "next_cursor": null
}
```

## 對應 API 操作

- [/listening-api/runs/query](https://sosoapi.ai/zh-hant/docs/api/listening-api-runs-query)
