検索は使用時のみ読み込みます。以下ですべてのカテゴリを閲覧できます。

MCPツール

アセットを作成

sosoapi_create_asset

自身でホストしているメディアやテキストのアセットレコードを登録します(asset_url、asset_type)。アップロードは行いません。ローカルファイルにはsosoapi_upload_asset、公開URLからSosoAPIに取得させる場合はsosoapi_import_asset_urlを使用してください。workspace_idを指定します(明示的な対象指定が必須になると、未指定は拒否されます)。idempotency_keyは任意です。

Markdownで読む

プロファイルと通信方式

プロファイル: full · 通信方式: stdio, http

coreまたはfullで表示ツールを選べますが権限は変わりません。ローカルアップロードはstdioのみでHTTPは非対応です。SOSOAPI_OUTPUT_SCHEMAS=1で検出時に出力スキーマを含めます。設定に関係なく構造化結果を返します。

権限と副作用

注釈はクライアントがツールを説明するためのものです。各呼び出しでは引き続き認証、ロール、リソースアクセス、機能権限を確認します。

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

入力フィールド

必須とは、親オブジェクトと選択分岐内で必須という意味です。必須の子があっても任意の親は必須になりません。以下のルールとフィールド名は契約から転記しています。

入力フィールド
フィールド/分岐型/必須制約
$object親要素内で必須
  • additionalProperties: false
workspace_idstring任意/項目
  • format: "uuid"
asset_typestring親要素内で必須
  • enum: ["text","image","video"]
asset_urlstring親要素内で必須
  • minLength: 1
  • maxLength: 2048
titlestring任意/項目
  • maxLength: 200
descriptionstring任意/項目
  • maxLength: 2000
tagsarray任意/項目
  • maxItems: 50
tags[]string任意/項目
  • maxLength: 64
metadataobject任意/項目

自由形式のJSONオブジェクトです。シリアライズ後のUTF-8サイズは16384バイト以下である必要があります。

  • additionalProperties: {}
metadata.*any JSON value任意/項目—
sourcestring任意/項目
  • maxLength: 64
source_metadataobject任意/項目

自由形式のJSONオブジェクトです。シリアライズ後のUTF-8サイズは16384バイト以下である必要があります。

  • additionalProperties: {}
source_metadata.*any JSON value任意/項目—
idempotency_keystring任意/項目
  • minLength: 8
  • maxLength: 160
完全なJSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "asset_type": {
      "type": "string",
      "enum": [
        "text",
        "image",
        "video"
      ]
    },
    "asset_url": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "title": {
      "type": "string",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "tags": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 64
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {},
      "description": "Free-form JSON object; its serialized UTF-8 size must not exceed 16384 bytes."
    },
    "source": {
      "type": "string",
      "maxLength": 64
    },
    "source_metadata": {
      "type": "object",
      "additionalProperties": {},
      "description": "Free-form JSON object; its serialized UTF-8 size must not exceed 16384 bytes."
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 160
    }
  },
  "required": [
    "asset_type",
    "asset_url"
  ],
  "additionalProperties": false
}

構造化された出力

このスキーマは、成功時のツール結果に含まれるstructuredContentを説明します。MCPレスポンスはcontentも含み、失敗時にisErrorを設定する場合があります。公開では、受理やテキスト応答を確認済みと扱わず、投稿の最終結果を取得してください。権限・再試行ルールはリンク先のAPI操作をご覧ください。

必須とは、親オブジェクトと選択分岐内で必須という意味です。必須の子があっても任意の親は必須になりません。以下のルールとフィールド名は契約から転記しています。

構造化された出力
フィールド/分岐型/必須制約
$object親要素内で必須
  • additionalProperties: false
assetobject親要素内で必須
  • additionalProperties: false
asset.idinteger | string親要素内で必須—
asset.idanyOf 1integer親要素内で必須
  • minimum: -9007199254740991
  • maximum: 9007199254740991
asset.idanyOf 2string親要素内で必須—
asset.workspace_idstring親要素内で必須
  • format: "uuid"
asset.user_idstring親要素内で必須
  • format: "uuid"
asset.asset_typestring親要素内で必須
  • enum: ["text","image","video","audio"]
asset.asset_urlstring | null親要素内で必須—
asset.asset_urlanyOf 1string親要素内で必須—
asset.asset_urlanyOf 2null親要素内で必須—
asset.preview_urlstring | null任意/項目

ワークスペースで認可された一時読み取りURLです。preview_expires_at後はAssetの取得・一覧で更新し、永続的なメディア識別にはasset_urlを維持します。

—
asset.preview_urlanyOf 1string任意/項目
  • format: "uri"
asset.preview_urlanyOf 2null任意/項目—
asset.preview_expires_atstring | null任意/項目—
asset.preview_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))$"
asset.preview_expires_atanyOf 2null任意/項目—
asset.titlestring | null親要素内で必須—
asset.titleanyOf 1string親要素内で必須—
asset.titleanyOf 2null親要素内で必須—
asset.descriptionstring | null親要素内で必須—
asset.descriptionanyOf 1string親要素内で必須—
asset.descriptionanyOf 2null親要素内で必須—
asset.tagsarray | null親要素内で必須—
asset.tagsanyOf 1array親要素内で必須—
asset.tags[]anyOf 1string任意/項目—
asset.tagsanyOf 2null親要素内で必須—
asset.metadataobject | null親要素内で必須—
asset.metadataanyOf 1object親要素内で必須
  • additionalProperties: {}
asset.metadata.*anyOf 1any JSON value任意/項目—
asset.metadataanyOf 2null親要素内で必須—
asset.sourcestring | null任意/項目—
asset.sourceanyOf 1string任意/項目—
asset.sourceanyOf 2null任意/項目—
asset.source_metadataobject | null任意/項目—
asset.source_metadataanyOf 1object任意/項目
  • additionalProperties: {}
asset.source_metadata.*anyOf 1any JSON value任意/項目—
asset.source_metadataanyOf 2null任意/項目—
asset.created_atstring親要素内で必須—
asset.versioninteger任意/項目
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dedupedboolean親要素内で必須—
完全なJSON Schema
{
  "type": "object",
  "properties": {
    "asset": {
      "type": "object",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "string"
            }
          ]
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "user_id": {
          "type": "string",
          "format": "uuid"
        },
        "asset_type": {
          "type": "string",
          "enum": [
            "text",
            "image",
            "video",
            "audio"
          ]
        },
        "asset_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "preview_url": {
          "description": "Workspace-authorized temporary read URL. Refresh through Asset read/list after preview_expires_at; keep asset_url as persisted media identity.",
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "preview_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))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "metadata": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "source_metadata": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "id",
        "workspace_id",
        "user_id",
        "asset_type",
        "asset_url",
        "title",
        "description",
        "tags",
        "metadata",
        "created_at"
      ],
      "additionalProperties": false
    },
    "deduped": {
      "type": "boolean"
    }
  },
  "required": [
    "asset",
    "deduped"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

ツール呼び出しの例

スキーマ確認済みの架空値の例です。認可されたID、準備済みメディア、確認済みの公開日時に置き換え、書き込み前に適格性を確認してください。このページはAPIを呼びません。

{
  "name": "sosoapi_create_asset",
  "arguments": {
    "asset_type": "text",
    "asset_url": "example"
  }
}

structuredContent

{
  "asset": {
    "id": 0,
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "user_id": "11111111-1111-4111-8111-111111111111",
    "asset_type": "text",
    "asset_url": null,
    "title": null,
    "description": null,
    "tags": null,
    "metadata": null,
    "created_at": "example"
  },
  "deduped": false
}
MCPをインストール・接続