يُحمّل البحث عند استخدامه فقط. تصفّح جميع الفئات أدناه.

أداة MCP

إنشاء مفتاح API

sosoapi_create_api_key

إنشاء مفتاح وصول شخصي بإمكانات مختارة (agent:operate و agent:publish و agent:engage) وحد workspace_ids اختياري وعمر حتى 365 يوماً؛ يُعاد السر مرة ولا يُقرأ ثانيةً. لا يمنح الوكيل إلا ما يملكه تفويضه حتى 30 يوماً، ويتوقف المفتاح بانتهاء التفويض. يلزم Manage API keys؛ لا يتاح لـ PAT.

اقرأ بصيغة Markdown

الملفات التعريفية ووسائل النقل

الملفات التعريفية: full · وسائل النقل: stdio, http

اختر core أو full للأدوات التي يراها عميلك؛ لا يغيّر ذلك أذوناته. يحتاج رفع الملفات المحلية stdio ولا يتاح بـ HTTP. اضبط SOSOAPI_OUTPUT_SCHEMAS=1 لمخططات المخرجات بالاكتشاف. النتائج منظّمة بهذا الإعداد أوبدونه.

الأذونات والآثار الجانبية

تساعد الشروح العملاء على وصف الأداة. يظل كل استدعاء يفحص مصادقة المستخدم ودوره ووصوله إلى المورد وتفويض الإمكانات.

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

حقول الإدخال

تعني «مطلوب» داخل الكائن الأب والفرع المختار. الحقل الابن المطلوب لا يجعل الأب الاختياري مطلوباً. نُسخت القواعد وأسماء الحقول أدناه من العقد.

حقول الإدخال
الحقل / الفرعالنوع / مطلوبالقيود
$objectمطلوب في العنصر الأب
  • additionalProperties: false
namestringمطلوب في العنصر الأب
  • minLength: 1
  • maxLength: 80
lifetime_daysintegerاختياري / عنصر

الأيام حتى انتهاء المفتاح (1-365، الافتراضي 365). المفتاح الذي ينشئه وكيل مفوّض لا يتجاوز عمره 30 يوماً.

  • minimum: 1
  • maximum: 365
capabilitiesarrayاختياري / عنصر

ما يُسمح للمفتاح بفعله. الافتراضي operate و publish و engage لمستخدم مسجّل. لا يمنح الوكيل المفوّض إلا ما يتضمنه تفويضه (ولا إدارة المفاتيح أبداً).

  • minItems: 1
  • maxItems: 3
capabilities[]stringاختياري / عنصر
  • enum: ["agent:operate","agent:publish","agent:engage"]
workspace_idsarrayاختياري / عنصر

تقييد المفتاح بهذه المساحات. احذفه لكل مساحة متاحة للمستخدم. يجب أن يحدد المفتاح المقيّد 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اختياري / عنصر

اختياري. أعِد المفتاح نفسه للمحاولة بأمان. يُعرض السر مرة: إذا وجدت المحاولة المفتاح منشأً، تُعيد 409 IDEMPOTENT_REPLAY (يسميه details.existing_key) بدلاً من عرضه. ألغِه وأنشئ آخر بـ idempotency_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
}

مخرجات منظّمة

يصف المخطط 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
}

مثال لاستدعاء أداة

تستخدم الأمثلة قيماً خيالية مفحوصة بالمخططات. استبدل المعرّفات بالمفوّض لك، والوسائط بأصول جاهزة، والتواريخ بوقت نشر مؤكد. افحص أهلية الحساب قبل الكتابة. لا تُرسل الصفحة طلبات 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 أو ربطه