К содержанию
TelegaFirst

Для AI-агентов: markdown этой страницы — /docs/mcp-push.mdиндекс документации — /llms.txt

MCP: push

Обновлено

MCP: push

Это определения инструментов из текущего ToolRegistry, включая полные inputSchema/outputSchema, scope, required_scopes (ALL), risk и версию платформы. Наличие определения не означает, что инструмент уже установлен вашим хостом или разрешён вашим credential. Обновляйте tools/list после изменения бизнеса, readiness и прав. Progressive disclosure через load_domain/describe_tool и существующий meta-dispatch описаны в MCP-руководстве. Scopes и права применяются при вызове; risk не заменяет согласие и отдельные требования денежной операции. JSON ниже — схема, а не успешный результат вызова.

mark_form_submission_handled

Mark ONE submission as dealt with, by its own seq_num (the id you pass to get/mark, returned by pull_form_submissions — not the form's number or the public code). This is what the owner's operators see: the card in their Telegram topic turns from 🔵 to 🟢 and records that YOUR integration did it, by name. Answers outcome: handled — you marked it; already_handled — somebody (an operator, or an earlier call of yours) had already dealt with it and nothing changed; not_found — no such submission in this account. 🔴 Report already_handled as somebody else's work, never as yours. Safe to retry: a repeat call changes nothing.

{
  "description": "Mark ONE submission as dealt with, by its own `seq_num` (the id you pass to get/mark, returned by `pull_form_submissions` — not the form's number or the public code). This is what the owner's operators see: the card in their Telegram topic turns from 🔵 to 🟢 and records that YOUR integration did it, by name. Answers `outcome`: `handled` — you marked it; `already_handled` — somebody (an operator, or an earlier call of yours) had already dealt with it and nothing changed; `not_found` — no such submission in this account. 🔴 Report `already_handled` as somebody else's work, never as yours. Safe to retry: a repeat call changes nothing.",
  "domain": "push",
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "bot": {
        "description": "Optional slug of the bot you expect to act on (get_active_bot). If the active bot differs, the call is refused with ACTIVE_BOT_CHANGED and nothing runs.",
        "maxLength": 128,
        "minLength": 1,
        "type": "string"
      },
      "seq_num": {
        "description": "Value for seq num.",
        "exclusiveMinimum": 0,
        "maximum": 2147483647,
        "type": "integer"
      }
    },
    "required": [
      "seq_num"
    ],
    "type": "object"
  },
  "name": "mark_form_submission_handled",
  "outputSchema": null,
  "platform_version": "1.0.19",
  "required_scopes": [
    "push:form_submissions"
  ],
  "risk": "write",
  "scope": "push:form_submissions",
  "title": "Mark Form Submission Handled"
}

send_notification

Enqueue a push notification (text + optional buttons + media) to a user.

{
  "description": "Enqueue a push notification (text + optional buttons + media) to a user.",
  "domain": "push",
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "bot": {
        "description": "Optional slug of the bot you expect to act on (get_active_bot). If the active bot differs, the call is refused with ACTIVE_BOT_CHANGED and nothing runs.",
        "maxLength": 128,
        "minLength": 1,
        "type": "string"
      },
      "buttons": {
        "description": "Value for buttons.",
        "items": {
          "description": "Value for buttons item.",
          "items": {
            "description": "Value for buttons item item.",
            "oneOf": [
              {
                "additionalProperties": false,
                "description": "Value for buttons item item option.",
                "properties": {
                  "text": {
                    "description": "Value for text.",
                    "maxLength": 30,
                    "type": "string"
                  },
                  "type": {
                    "const": "url",
                    "description": "Value for type.",
                    "type": "string"
                  },
                  "url": {
                    "description": "Value for url.",
                    "format": "uri",
                    "type": "string"
                  }
                },
                "required": [
                  "text",
                  "type",
                  "url"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "description": "Value for buttons item item option.",
                "properties": {
                  "callback_data": {
                    "description": "Value for callback data.",
                    "maxLength": 64,
                    "type": "string"
                  },
                  "text": {
                    "description": "Value for text.",
                    "maxLength": 30,
                    "type": "string"
                  },
                  "type": {
                    "const": "callback",
                    "description": "Value for type.",
                    "type": "string"
                  }
                },
                "required": [
                  "text",
                  "type",
                  "callback_data"
                ],
                "type": "object"
              }
            ]
          },
          "maxItems": 3,
          "type": "array"
        },
        "maxItems": 3,
        "type": "array"
      },
      "idempotency_key": {
        "description": "Value for idempotency key.",
        "maxLength": 255,
        "type": "string"
      },
      "media": {
        "additionalProperties": false,
        "description": "Value for media.",
        "properties": {
          "caption": {
            "description": "Value for caption.",
            "maxLength": 1024,
            "type": "string"
          },
          "type": {
            "description": "Value for type.",
            "enum": [
              "photo",
              "document",
              "video"
            ],
            "type": "string"
          },
          "url": {
            "description": "Value for url.",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "type",
          "url"
        ],
        "type": "object"
      },
      "parse_mode": {
        "anyOf": [
          {
            "description": "Value for parse mode option.",
            "enum": [
              "HTML",
              "Markdown"
            ],
            "type": "string"
          },
          {
            "description": "Value for parse mode option.",
            "type": "null"
          }
        ],
        "description": "Value for parse mode."
      },
      "text": {
        "description": "Value for text.",
        "maxLength": 4096,
        "type": "string"
      },
      "user_seq_id": {
        "description": "Value for user seq id.",
        "exclusiveMinimum": 0,
        "maximum": 2147483647,
        "type": "integer"
      }
    },
    "required": [
      "user_seq_id",
      "text"
    ],
    "type": "object"
  },
  "name": "send_notification",
  "outputSchema": null,
  "platform_version": "1.0.19",
  "required_scopes": [
    "push"
  ],
  "risk": "write",
  "scope": "push",
  "title": "Send Notification"
}

submit_form_submission

Submit answers to one of this business's forms by form_seq_num. The caller tenant is always taken from the API key; do not provide a client id. The form's declared submission schema is enforced before the lead is stored. Returns the new submission own seq_num and its separate public submission_code. This call creates a new submission every time and is not idempotent.

{
  "description": "Submit answers to one of this business's forms by `form_seq_num`. The caller tenant is always taken from the API key; do not provide a client id. The form's declared submission schema is enforced before the lead is stored. Returns the new submission own `seq_num` and its separate public `submission_code`. This call creates a new submission every time and is not idempotent.",
  "domain": "push",
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "bot": {
        "description": "Optional slug of the bot you expect to act on (get_active_bot). If the active bot differs, the call is refused with ACTIVE_BOT_CHANGED and nothing runs.",
        "maxLength": 128,
        "minLength": 1,
        "type": "string"
      },
      "form_seq_num": {
        "description": "Value for form seq num.",
        "exclusiveMinimum": 0,
        "maximum": 2147483647,
        "type": "integer"
      },
      "payload": {
        "description": "Value for payload."
      }
    },
    "required": [
      "form_seq_num",
      "payload"
    ],
    "type": "object"
  },
  "name": "submit_form_submission",
  "outputSchema": null,
  "platform_version": "1.0.19",
  "required_scopes": [
    "push:form_submissions"
  ],
  "risk": "write",
  "scope": "push:form_submissions",
  "title": "Submit Form Submission"
}