仅在使用时加载搜索。在下方浏览所有类别。

MCP 工具

创建 API key

sosoapi_create_api_key

使用选定能力(agent:operate、agent:publish、agent:engage)、可选的 workspace_ids 限制及最长 365 天有效期创建个人访问 key;密钥仅返回一次,之后无法再次读取。agent 只能授予自己已有的授权,最长 30 天,该授权结束时 key 也会失效。需要「管理 API keys」授权;PAT 无法使用。

阅读 Markdown

配置与传输方式

配置: full · 传输方式: stdio、http

选择 core 或 full 以控制客户端显示的工具;这不会变更权限。本地文件上传需要 stdio,无法通过 HTTP 使用。设置 SOSOAPI_OUTPUT_SCHEMAS=1 可在探索结果加入输出schema。无论是否启用此设置,工具皆会返回结构化结果。

权限与副作用

注解帮助客户端描述工具。每次调用仍会检查用户身份验证、角色、资源访问和能力授权。

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

输入字段

「必填」是指在其父对象及所选分支内必填。必填子字段不会使可选父对象变成必填。下列规则与字段名称均复制自契约。

输入字段
字段 / 分支类型 / 必填约束
$object在父对象中必填
  • additionalProperties: false
namestring在父对象中必填
  • minLength: 1
  • maxLength: 80
lifetime_daysinteger可选/项目

Key 到期前的天数(1-365,默认 365)。委派 agent 创建的 key 有效期不得超过 30 天。

  • minimum: 1
  • maximum: 365
capabilitiesarray可选/项目

key 可执行的操作。对已登录用户默认为 operate、publish 和 engage。委派 agent 只能授予自身授权持有的权限(绝不包含 key 管理)。

  • minItems: 1
  • maxItems: 3
capabilities[]string可选/项目
  • enum: ["agent:operate","agent:publish","agent:engage"]
workspace_idsarray可选/项目

将 key 限制于这些 工作区。省略则适用用户可访问的所有 工作区。受限制的 key 在原本使用当前 工作区 的路由中,必须明确指定 工作区(workspace_id),且无法调用组织层级读取。

  • minItems: 1
  • maxItems: 100
workspace_ids[]string可选/项目
  • format: "uuid"
scopesarray可选/项目

capabilities 的已弃用别名。会原样遵循;空白清单则忽略。

  • maxItems: 3
scopes[]string可选/项目
  • enum: ["agent:operate","agent:publish","agent:engage"]
idempotency_keystring可选/项目

可选。复用相同 key 可安全重试。密钥仅显示一次:如重试发现 key 已创建,会返回 409 IDEMPOTENT_REPLAY(details.existing_key 指出该 key),不会再次显示。请撤销该 key,并使用新的 idempotency_key 创建新 key。

  • minLength: 8
  • maxLength: 160
  • pattern: "^[!-~]+$"
完整 JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "lifetime_days": {
      "description": "Days until the key expires (1-365, default 365). A key created by a delegated agent never lives longer than 30 days.",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    },
    "capabilities": {
      "description": "What the key may do. Defaults to operate, publish and engage for a signed-in user. A delegated agent can only grant what its own authorization holds (never key management).",
      "minItems": 1,
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "agent:operate",
          "agent:publish",
          "agent:engage"
        ]
      }
    },
    "workspace_ids": {
      "description": "Limit the key to these Workspaces. Omit it for every Workspace the user can access. A limited key must name its Workspace (workspace_id) on routes that would otherwise use the active Workspace, and cannot call organization-wide reads.",
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "scopes": {
      "description": "Deprecated alias of capabilities. It is honoured exactly; an empty list is ignored.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "agent:operate",
          "agent:publish",
          "agent:engage"
        ]
      }
    },
    "idempotency_key": {
      "description": "Optional. Reuse the same key to retry safely. The secret is shown once: a retry that finds the key already created answers 409 IDEMPOTENT_REPLAY (details.existing_key names it) instead of showing it again. Revoke that key and create a new one with a new idempotency_key.",
      "type": "string",
      "minLength": 8,
      "maxLength": 160,
      "pattern": "^[!-~]+$"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}

结构化输出

此 schema 描述成功工具结果中的 structuredContent。MCP 响应也包含 content,并可能在调用失败时设置 isError。对于发布,请读取帖子的最终结果,不要把获接受的请求或文字响应当作确认。链接的 API 操作说明了权限和重试规则。

「必填」是指在其父对象及所选分支内必填。必填子字段不会使可选父对象变成必填。下列规则与字段名称均复制自契约。

结构化输出
字段 / 分支类型 / 必填约束
$object在父对象中必填
  • additionalProperties: false
apiKeyobject在父对象中必填
  • additionalProperties: false
apiKey.idstring在父对象中必填
  • format: "uuid"
apiKey.namestring在父对象中必填—
apiKey.last_4string在父对象中必填—
apiKey.scopesarray在父对象中必填—
apiKey.scopes[]string可选/项目—
apiKey.created_atstring在父对象中必填
  • 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)))$"
apiKey.expires_atstring | null在父对象中必填—
apiKey.expires_atanyOf 1string在父对象中必填
  • 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)))$"
apiKey.expires_atanyOf 2null在父对象中必填—
apiKey.last_used_atstring | null在父对象中必填—
apiKey.last_used_atanyOf 1string在父对象中必填
  • 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)))$"
apiKey.last_used_atanyOf 2null在父对象中必填—
apiKey.revoked_atstring | null在父对象中必填—
apiKey.revoked_atanyOf 1string在父对象中必填
  • 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)))$"
apiKey.revoked_atanyOf 2null在父对象中必填—
apiKey.statusstring在父对象中必填
  • enum: ["active","expired","revoked"]
apiKey.replacesobject | null在父对象中必填—
apiKey.replacesanyOf 1object在父对象中必填
  • additionalProperties: false
apiKey.replaces.idanyOf 1string在父对象中必填
  • format: "uuid"
apiKey.replaces.nameanyOf 1string在父对象中必填—
apiKey.replaces.last_4anyOf 1string在父对象中必填—
apiKey.replaces.statusanyOf 1string在父对象中必填
  • enum: ["active","expired","revoked"]
apiKey.replacesanyOf 2null在父对象中必填—
apiKey.replaced_byarray在父对象中必填—
apiKey.replaced_by[]object可选/项目
  • additionalProperties: false
apiKey.replaced_by[].idstring在父对象中必填
  • format: "uuid"
apiKey.replaced_by[].namestring在父对象中必填—
apiKey.replaced_by[].last_4string在父对象中必填—
apiKey.replaced_by[].statusstring在父对象中必填
  • enum: ["active","expired","revoked"]
apiKey.capabilitiesarray可选/项目—
apiKey.capabilities[]string可选/项目
  • enum: ["agent:operate","agent:publish","agent:engage"]
apiKey.workspace_idsarray | null可选/项目—
apiKey.workspace_idsanyOf 1array可选/项目—
apiKey.workspace_ids[]anyOf 1string可选/项目
  • format: "uuid"
apiKey.workspace_idsanyOf 2null可选/项目—
apiKey.created_by_delegated_grant_idstring | null可选/项目—
apiKey.created_by_delegated_grant_idanyOf 1string可选/项目
  • format: "uuid"
apiKey.created_by_delegated_grant_idanyOf 2null可选/项目—
secretstring在父对象中必填
  • minLength: 1
完整 JSON Schema
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "type": "string"
        },
        "last_4": {
          "type": "string"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "created_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)))$"
        },
        "expires_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"
            }
          ]
        },
        "last_used_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"
            }
          ]
        },
        "revoked_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"
            }
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "expired",
            "revoked"
          ]
        },
        "replaces": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                },
                "last_4": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "expired",
                    "revoked"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "last_4",
                "status"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "replaced_by": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "last_4": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "expired",
                  "revoked"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "last_4",
              "status"
            ],
            "additionalProperties": false
          }
        },
        "capabilities": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "agent:operate",
              "agent:publish",
              "agent:engage"
            ]
          }
        },
        "workspace_ids": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "created_by_delegated_grant_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "name",
        "last_4",
        "scopes",
        "created_at",
        "expires_at",
        "last_used_at",
        "revoked_at",
        "status",
        "replaces",
        "replaced_by"
      ],
      "additionalProperties": false
    },
    "secret": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "apiKey",
    "secret"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

工具调用示例

这些示例使用已依schema检查的虚构值。请将 ID 替换为你有权使用的 ID、将媒体替换为已就绪素材,并将日期替换为已确认的发布时间。提交写入前,请检查账号资格。本页不会发送 API 请求。

{
  "name": "sosoapi_create_api_key",
  "arguments": {
    "name": "example"
  }
}

structuredContent

{
  "apiKey": {
    "id": "11111111-1111-4111-8111-111111111111",
    "name": "example",
    "last_4": "example",
    "scopes": [],
    "created_at": "2099-01-15T09:00:00Z",
    "expires_at": null,
    "last_used_at": null,
    "revoked_at": null,
    "status": "active",
    "replaces": null,
    "replaced_by": []
  },
  "secret": "example"
}
安装或连接 MCP