# 尋找輿情監測符合項目

標準 URL： https://sosoapi.ai/zh-tw/docs/mcp/listening-results-query

`sosoapi_listening_results_query`

依串流、狀態和期間尋找目前不可信的符合項目；無法使用的來源文字仍會遮蔽。需要 agent:research。

## 設定與傳輸方式

設定：full

傳輸方式：stdio、http

選擇 core 或 full 以控制用戶端顯示的工具；這不會變更權限。本機檔案上傳需要 stdio，無法透過 HTTP 使用。設定 SOSOAPI_OUTPUT_SCHEMAS=1 可在探索結果加入輸出結構描述。無論是否啟用此設定，工具皆會回傳結構化結果。

## 權限與副作用

註解幫助用戶端描述工具。每次呼叫仍會檢查使用者身分驗證、角色、資源存取和能力授權。

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

`/listening-api/results/query` — agent:research; 目前獲授權的輿情監測資料；已索引的公開樣本並不完整，也不是經驗證的帳戶提及

## 輸入欄位

```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"
    },
    "source": {
      "type": "string",
      "enum": [
        "hacker_news"
      ]
    },
    "handled": {
      "type": "boolean"
    },
    "archived": {
      "type": "boolean"
    },
    "since": {
      "$ref": "#/$defs/s0"
    },
    "until": {
      "$ref": "#/$defs/s0"
    }
  },
  "required": [
    "workspace_id",
    "stream_id"
  ],
  "additionalProperties": false,
  "$defs": {
    "s0": {
      "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"
    }
  }
}
```

## 結構化輸出

此 schema 描述成功工具結果中的 structuredContent。MCP 回應也包含 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"
          },
          "run_id": {
            "type": "string",
            "format": "uuid"
          },
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "source": {
            "type": "string",
            "const": "hacker_news"
          },
          "source_item_id": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,15}$"
          },
          "canonical_url": {
            "type": "string",
            "pattern": "^https:\\/\\/news\\.ycombinator\\.com\\/item\\?id=[1-9][0-9]{0,15}$"
          },
          "title": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "excerpt": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ]
          },
          "author": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "published_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"
              }
            ]
          },
          "retrieved_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"
          },
          "source_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"
          },
          "availability": {
            "type": "string",
            "enum": [
              "available",
              "removed",
              "expired",
              "unavailable"
            ]
          },
          "metrics": {
            "type": "object",
            "properties": {
              "score": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "replies": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "score",
              "replies"
            ],
            "additionalProperties": false
          },
          "handled": {
            "type": "boolean"
          },
          "archived": {
            "type": "boolean"
          },
          "match_kind": {
            "type": "string",
            "const": "literal_query_match"
          },
          "coverage": {
            "type": "string",
            "const": "partial_indexed_sample"
          },
          "sentiment": {
            "type": "null"
          }
        },
        "required": [
          "id",
          "workspace_id",
          "stream_id",
          "run_id",
          "revision",
          "source",
          "source_item_id",
          "canonical_url",
          "title",
          "excerpt",
          "author",
          "published_at",
          "retrieved_at",
          "source_checked_at",
          "expires_at",
          "availability",
          "metrics",
          "handled",
          "archived",
          "match_kind",
          "coverage",
          "sentiment"
        ],
        "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
}
```

## 工具呼叫範例

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

```json
{
  "name": "sosoapi_listening_results_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/results/query](https://sosoapi.ai/zh-tw/docs/api/listening-api-results-query)
