Privacy preferences

Necessary features

Required for security and basic site functions.

Always on

Optional usage analytics

Allow PostHog usage analytics? Change your choice any time in the footer.

Also allow session replay on this public website

Replay shows public pages and interactions, with inputs and private content masked. App replay is a separate choice.

Requires analytics; website replay is off by default.

Browser analytics does not enable account analytics.

Search loads only when you use it. Browse all categories below.

MCP tool

Find research evidence

sosoapi_research_evidence_query

Find saved Research evidence with UUID pagination; source text is untrusted, unavailable items are redacted. Requires agent:research.

Read as Markdown

Profiles and transports

Profiles: full · Transports: stdio, http

Choose core or full to control which tools your client sees; this does not change its permissions. Local file upload requires stdio and is unavailable over HTTP. Set SOSOAPI_OUTPUT_SCHEMAS=1 to include output schemas in discovery. Tools return structured results with or without that setting.

Permissions and side effects

Annotations help clients describe a tool. Each call still checks the user’s authentication, role, resource access and capability grants.

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

Input fields

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Input fields
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
workspace_idstringRequired in parent
  • format: "uuid"
querystringOptional / item
  • maxLength: 200
archivedbooleanOptional / item—
cursorstringOptional / item

Continue after this Research record UUID in ascending UUID order; the marker includes unavailable library slots.

  • format: "uuid"
limitintegerOptional / item
  • minimum: 1
  • maximum: 50
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "query": {
      "type": "string",
      "maxLength": 200
    },
    "archived": {
      "type": "boolean"
    },
    "cursor": {
      "description": "Continue after this Research record UUID in ascending UUID order; the marker includes unavailable library slots.",
      "type": "string",
      "format": "uuid"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "workspace_id"
  ],
  "additionalProperties": false
}

Structured output

This schema describes structuredContent in a successful tool result. The MCP response also includes content and may set isError when a call fails. For publishing, read the post’s final result rather than treating an accepted request or text response as confirmation. The linked API operation explains permissions and retry rules.

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Structured output
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
itemsarrayRequired in parent
  • maxItems: 50
items[]objectOptional / item
  • additionalProperties: false
items[].idstringRequired in parent
  • format: "uuid"
items[].workspace_idstringRequired in parent
  • format: "uuid"
items[].revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
items[].titlestring | nullRequired in parent—
items[].titleanyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 200
items[].titleanyOf 2nullRequired in parent—
items[].textstring | nullRequired in parent—
items[].textanyOf 1stringRequired in parent
  • maxLength: 30000
items[].textanyOf 2nullRequired in parent—
items[].source_categorystringRequired in parent
  • enum: ["your_accounts","public_posts","team_notes"]
items[].platformstring | nullRequired in parent—
items[].platformanyOf 1stringRequired in parent
  • enum: ["threads","instagram","facebook","youtube","x","reddit","web"]
items[].platformanyOf 2nullRequired in parent—
items[].source_urlstring | nullRequired in parent—
items[].source_urlanyOf 1stringRequired in parent
  • format: "uri"
  • maxLength: 2048
items[].source_urlanyOf 2nullRequired in parent—
items[].authorstring | nullRequired in parent—
items[].authoranyOf 1stringRequired in parent
  • maxLength: 200
items[].authoranyOf 2nullRequired in parent—
items[].languagestring | nullRequired in parent—
items[].languageanyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 35
items[].languageanyOf 2nullRequired in parent—
items[].published_atstring | nullRequired in parent—
items[].published_atanyOf 1stringRequired in parent
  • 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)))$"
items[].published_atanyOf 2nullRequired in parent—
items[].retrieved_atstringRequired in parent
  • 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)))$"
items[].valid_untilstring | nullRequired in parent—
items[].valid_untilanyOf 1stringRequired in parent
  • 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)))$"
items[].valid_untilanyOf 2nullRequired in parent—
items[].availabilitystringRequired in parent
  • enum: ["available","removed","unavailable"]
items[].metricsobjectRequired in parent
  • additionalProperties: false
items[].metrics.likesinteger | nullRequired in parent—
items[].metrics.likesanyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
items[].metrics.likesanyOf 2nullRequired in parent—
items[].metrics.repliesinteger | nullRequired in parent—
items[].metrics.repliesanyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
items[].metrics.repliesanyOf 2nullRequired in parent—
items[].metrics.repostsinteger | nullRequired in parent—
items[].metrics.repostsanyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
items[].metrics.repostsanyOf 2nullRequired in parent—
items[].metrics.viewsinteger | nullRequired in parent—
items[].metrics.viewsanyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
items[].metrics.viewsanyOf 2nullRequired in parent—
unavailable_itemsarrayRequired in parent
  • maxItems: 50
  • default: []
unavailable_items[]objectOptional / item
  • additionalProperties: false
unavailable_items[].idstringRequired in parent
  • format: "uuid"
unavailable_items[].workspace_idstringRequired in parent
  • format: "uuid"
unavailable_items[].revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
unavailable_items[].archivedbooleanRequired in parent—
unavailable_items[].availabilitystringRequired in parent
  • const: "dependency_unavailable"
next_cursorstring | nullRequired in parent

Last consumed record UUID across items and unavailable_items when another slot exists; null at the end.

—
next_cursoranyOf 1stringRequired in parent
  • format: "uuid"
next_cursoranyOf 2nullRequired in parent—
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "items": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid"
          },
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "title": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 30000
              },
              {
                "type": "null"
              }
            ]
          },
          "source_category": {
            "type": "string",
            "enum": [
              "your_accounts",
              "public_posts",
              "team_notes"
            ]
          },
          "platform": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "threads",
                  "instagram",
                  "facebook",
                  "youtube",
                  "x",
                  "reddit",
                  "web"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2048,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "author": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 35
              },
              {
                "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"
          },
          "valid_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"
              }
            ]
          },
          "availability": {
            "type": "string",
            "enum": [
              "available",
              "removed",
              "unavailable"
            ]
          },
          "metrics": {
            "type": "object",
            "properties": {
              "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"
                  }
                ]
              },
              "views": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "likes",
              "replies",
              "reposts",
              "views"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "workspace_id",
          "revision",
          "title",
          "text",
          "source_category",
          "platform",
          "source_url",
          "author",
          "language",
          "published_at",
          "retrieved_at",
          "valid_until",
          "availability",
          "metrics"
        ],
        "additionalProperties": false
      }
    },
    "unavailable_items": {
      "default": [],
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid"
          },
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "archived": {
            "type": "boolean"
          },
          "availability": {
            "type": "string",
            "const": "dependency_unavailable"
          }
        },
        "required": [
          "id",
          "workspace_id",
          "revision",
          "archived",
          "availability"
        ],
        "additionalProperties": false
      }
    },
    "next_cursor": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "description": "Last consumed record UUID across items and unavailable_items when another slot exists; null at the end."
    }
  },
  "required": [
    "items",
    "unavailable_items",
    "next_cursor"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Example tool call

These examples use fictional values checked against the schemas. Replace the IDs with ones you are authorized to use, the media with ready assets and the dates with your confirmed publishing time. Check the account’s eligibility before submitting a write. This page sends no API requests.

{
  "name": "sosoapi_research_evidence_query",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111"
  }
}

structuredContent

{
  "items": [],
  "unavailable_items": [],
  "next_cursor": null
}
Install or connect MCP