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

MCP tool

List projects

sosoapi_list_projects

List a Workspace's projects (an optional layer for provenance and account defaults) and which one is active.

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": false
}

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"
limitintegerOptional / item

Page size, 1 to 100. Sending limit or cursor switches this route to cursor paging and adds next_cursor to the answer.

  • minimum: 1
  • maximum: 100
cursorstringOptional / item

Opaque cursor: the next_cursor of the previous page, unchanged. Omit it for the first page. The same filters must be sent with every page.

  • minLength: 1
  • maxLength: 512
include_versionbooleanOptional / item

Optional. true adds the resource version to the answer.

—
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size, 1 to 100. Sending limit or cursor switches this route to cursor paging and adds next_cursor to the answer."
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "description": "Opaque cursor: the next_cursor of the previous page, unchanged. Omit it for the first page. The same filters must be sent with every page."
    },
    "include_version": {
      "description": "Optional. true adds the resource version to the answer.",
      "type": "boolean"
    }
  },
  "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
projectsarrayRequired in parent—
projects[]objectOptional / item
  • additionalProperties: false
projects[].idstringRequired in parent
  • format: "uuid"
projects[].workspace_idstringRequired in parent
  • format: "uuid"
projects[].namestringRequired in parent
  • minLength: 1
  • maxLength: 200
projects[].operational_statestringRequired in parent
  • enum: ["active","archived"]
projects[].lifecycle_versionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
projects[].defaults_versionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
projects[].archived_atstring | nullRequired in parent—
projects[].archived_atanyOf 1stringRequired in parent—
projects[].archived_atanyOf 2nullRequired in parent—
projects[].archived_bystring | nullRequired in parent—
projects[].archived_byanyOf 1stringRequired in parent
  • format: "uuid"
projects[].archived_byanyOf 2nullRequired in parent—
projects[].archived_by_api_key_idstring | nullRequired in parent—
projects[].archived_by_api_key_idanyOf 1stringRequired in parent
  • format: "uuid"
projects[].archived_by_api_key_idanyOf 2nullRequired in parent—
projects[].created_atstringRequired in parent—
projects[].updated_atstringRequired in parent—
projects[].versionintegerOptional / item
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
active_project_idstring | nullRequired in parent—
active_project_idanyOf 1stringRequired in parent
  • format: "uuid"
active_project_idanyOf 2nullRequired in parent—
next_cursorstring | nullOptional / item

Present only when the request sent limit or cursor. Null on the last page.

—
next_cursoranyOf 1stringOptional / item—
next_cursoranyOf 2nullOptional / item—
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "operational_state": {
            "type": "string",
            "enum": [
              "active",
              "archived"
            ]
          },
          "lifecycle_version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "defaults_version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "archived_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "archived_by": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "archived_by_api_key_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "id",
          "workspace_id",
          "name",
          "operational_state",
          "lifecycle_version",
          "defaults_version",
          "archived_at",
          "archived_by",
          "archived_by_api_key_id",
          "created_at",
          "updated_at"
        ],
        "additionalProperties": false
      }
    },
    "active_project_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    },
    "next_cursor": {
      "description": "Present only when the request sent limit or cursor. Null on the last page.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "projects",
    "active_project_id"
  ],
  "$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_list_projects",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111"
  }
}

structuredContent

{
  "projects": [],
  "active_project_id": null
}
Install or connect MCP