_ registry / mcp http-sse · checked 59m ago

AnySkills

https://mcp.anyskills.ru

Registry code: 0e73ee13dd17f2a4

api record

Это школа на платформе AnySkills, подключённая через ключ сотрудника.

При первом обращении в разговоре вызови get_school_summary и коротко

endpoint
https://mcp.anyskills.ru/
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is AnySkills live?
Yes — it answered the hub's last check (checked 59m ago). It answered 98% of checks over the last 30 days.
Is AnySkills free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does AnySkills have?
45 tools: question_stats, check_funnel, get_link_stats, get_course, get_deal, list_funnels, get_lesson, get_funnel, ….
Is AnySkills safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
98%

90 days 98.2%· all time 98.2%

latency
391ms

last good check

priced tools
0

of 45 tools

_ answered our checks, 90 days 384 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • build an online course from notes
  • find stuck students
  • track cohort progress
  • manage sales deals of a school
  • publish a course
takes → gives
text, documents → data
tools
14 reads11 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 45 tools
35 auth-required 10 never probed 35 of 45 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • remove_deal_tag auth-required never probed

    Снять со сделки метку по имени (или прежнему имени). Метка остаётся в справочнике и на других сделках. Если её на сделке не было, ответ `changed: false`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "deal_id",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "deal_id": {
          "type": "integer",
          "title": "Deal Id"
        }
      }
    }
    arguments 17 lines
  • create_sales_stage changes data auth-required never probed

    Новый этап «в работе» в воронке продаж: сразу после after_stage_id, а без него перед «Оплачено» и «Отказом». Цвет: secondary, azure, blue, purple, yellow, orange, green, red. Людям это ничего не шлёт. Удалить этап может только человек в кабинете.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "color": {
          "type": "string",
          "title": "Color",
          "default": "secondary"
        },
        "after_stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "After Stage Id"
        }
      }
    }
    arguments 28 lines
  • update_sales_stage auth-required never probed

    Переименовать этап, сменить цвет или переставить: after_stage_id это этап, после которого он встанет. Смысл этапа (в работе, успех, отказ) меняется только в кабинете.

    mcp-tool

    {
      "type": "object",
      "required": [
        "stage_id"
      ],
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "color": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Color"
        },
        "stage_id": {
          "type": "integer",
          "title": "Stage Id"
        },
        "after_stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "After Stage Id"
        }
      }
    }
    arguments 45 lines
  • create_sales_rule auth-required never probed

    Шаг правила продаж, ВСЕГДА выключенный: включает его владелец в кабинете, до этого он ничего не делает. Повод: event tag (tag_id, метка поставлена на сделку) или stage (stage_id, сделка перешла на этап). delay_minutes: через сколько. action: bot (funnel_id, запустить воронку бота), tag_add или tag_remove (target_tag_id), stage (target_stage_id, «Оплачено» нельзя), task (task_text, task_days), goal (цель Метрики). skip_if_replied: не делать, если человек ответил.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "goal": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Goal"
        },
        "event": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Event"
        },
        "action": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Action"
        },
        "tag_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tag Id"
        },
        "stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Stage Id"
        },
        "funnel_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Funnel Id"
        },
        "task_days": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Days"
        },
        "task_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Text"
        },
        "lost_reason": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lost Reason"
        },
        "delay_minutes": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Delay Minutes"
        },
        "target_tag_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Tag Id"
        },
        "skip_if_replied": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Skip If Replied"
        },
        "target_stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Stage Id"
        }
      }
    }
    arguments 149 lines
  • update_short_link auth-required never probed

    Поменять, куда ведёт ссылка (url), её название (title) или убрать в архив (archived=true, вернуть: false). Короткий адрес не меняется: новый url сразу получат все, кто нажмёт ссылку под роликами, в письмах и в рекламе, поэтому сначала прочитайте ссылку (list_short_links) и убедитесь, что меняете ту. Ссылку в бота url переводит на адрес. Архивная ссылка продолжает вести людей, она только уходит из списка. Например: {"url": "https://it-ontime.ru/mikrotik-2026"}. Удаления нет: ссылка с переходами хранит историю.

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id"
      ],
      "properties": {
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "link_id": {
          "type": "integer",
          "title": "Link Id"
        },
        "archived": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Archived"
        }
      }
    }
    arguments 45 lines
  • add_deal_note changes data auth-required never probed

    Добавить заметку в ленту сделки: итог звонка, договорённость, возражение. Заметку увидят менеджеры в карточке сделки.

    mcp-tool

    {
      "type": "object",
      "required": [
        "deal_id",
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "title": "Text"
        },
        "deal_id": {
          "type": "integer",
          "title": "Deal Id"
        }
      }
    }
    arguments 17 lines
  • stuck_students reads auth-required 6h ago

    Ученики, которые не дошли до конца и ничего не делали дольше `days` дней (ни входа, ни пройденного урока). Это адрес для куратора, а не оценка ученика. `cohort_id` сужает до одного потока; без него — вся школа, включая записи без потока. Черновики курсов не считаются.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "days": {
          "type": "integer",
          "title": "Days",
          "default": 7
        },
        "cohort_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cohort Id"
        }
      }
    }
    arguments 22 lines
  • add_deal_tag changes data auth-required never probed

    Поставить сделке метку по имени. Имя сравнивается без регистра и с прежними именами меток; такой метки нет, она заводится. Если метка в группе «одна из», прежняя метка группы снимается сама. Повторная метка ничего не меняет. Событие ложится в ленту сделки.

    mcp-tool

    {
      "type": "object",
      "required": [
        "deal_id",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "deal_id": {
          "type": "integer",
          "title": "Deal Id"
        }
      }
    }
    arguments 17 lines
  • update_deal_tag changes data auth-required never probed

    Переименовать метку (прежнее имя запомнится, бот и правила по нему её найдут), сменить цвет, группу (пустая строка убирает из группы) или признак источника. Удалить и склеить метки можно только в кабинете.

    mcp-tool

    {
      "type": "object",
      "required": [
        "tag_id"
      ],
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "color": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Color"
        },
        "group": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Group"
        },
        "tag_id": {
          "type": "integer",
          "title": "Tag Id"
        },
        "is_source": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is Source"
        }
      }
    }
    arguments 56 lines
  • update_sales_rule changes data auth-required never probed

    Поправить шаг правила, пока он выключен: только присланные поля. Включённый шаг работает на людях, его меняет только владелец в кабинете: ответ 409.

    mcp-tool

    {
      "type": "object",
      "required": [
        "rule_id"
      ],
      "properties": {
        "goal": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Goal"
        },
        "event": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Event"
        },
        "action": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Action"
        },
        "tag_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tag Id"
        },
        "rule_id": {
          "type": "integer",
          "title": "Rule Id"
        },
        "stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Stage Id"
        },
        "funnel_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Funnel Id"
        },
        "task_days": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Days"
        },
        "task_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Task Text"
        },
        "lost_reason": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lost Reason"
        },
        "delay_minutes": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Delay Minutes"
        },
        "target_tag_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Tag Id"
        },
        "skip_if_replied": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Skip If Replied"
        },
        "target_stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Stage Id"
        }
      }
    }
    arguments 155 lines
  • create_funnel_draft auth-required never probed

    Новая воронка бота черновиком. Людям ничего не уходит: опубликовать её может только человек в кабинете, ссылка в ответе (editor_url). Формат воронки: get_funnel_format. В ответе проверка (errors, warnings): исправьте ошибки правкой черновика.

    mcp-tool

    {
      "type": "object",
      "required": [
        "bot_id",
        "name",
        "graph"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "graph": {
          "type": "object",
          "title": "Graph",
          "additionalProperties": true
        },
        "bot_id": {
          "type": "integer",
          "title": "Bot Id"
        }
      }
    }
    arguments 23 lines
  • create_lesson changes data auth-required never probed

    Урок встаёт в конец модуля. `document` — в формате Editor.js: `{"blocks": [{"type": "header", "data": {"text": "...", "level": 2}}, {"type": "paragraph", "data": {"text": "..."}}, ...]}`. Разрешённые блоки: header, paragraph, list, quote, callout, code, table, image, video (провайдер и идентификатор, не iframe), file, test (`{"test_id": N}`). Неизвестные блоки выбрасываются, разметка чистится. Образец готового документа отдаёт `get_lesson`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "module_id",
        "title"
      ],
      "properties": {
        "kind": {
          "enum": [
            "lecture",
            "practice",
            "webinar",
            "test",
            "survey"
          ],
          "type": "string",
          "title": "Kind",
          "default": "lecture"
        },
        "title": {
          "type": "string",
          "title": "Title",
          "maxLength": 200,
          "minLength": 1
        },
        "document": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Document"
        },
        "module_id": {
          "type": "integer",
          "title": "Module Id"
        },
        "is_required": {
          "type": "boolean",
          "title": "Is Required",
          "default": true
        },
        "duration_minutes": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 600,
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Duration Minutes"
        }
      }
    }
    arguments 61 lines
  • create_module changes data auth-required never probed

    Модуль встаёт в конец курса. Уроки добавляются в модуль отдельно, `create_lesson`. Порядок модулей потом можно поменять в кабинете.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course_id",
        "title"
      ],
      "properties": {
        "title": {
          "type": "string",
          "title": "Title",
          "maxLength": 200,
          "minLength": 1
        },
        "course_id": {
          "type": "integer",
          "title": "Course Id"
        }
      }
    }
    arguments 19 lines
  • list_cohorts reads auth-required 2d ago

    Потоки: курс, даты старта и окончания, сколько записано. Поток — группа учеников с общим расписанием; прогресс по нему — `cohort_progress`. Ученики вне потоков (запись без потока) сюда не попадают — их ищет `stuck_students` без `cohort_id`.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_courses auth-required 2d ago

    Все курсы школы, включая черновики: название, опубликован ли, сколько модулей и уроков. Звать первым, чтобы узнать номера курсов для остальных запросов. Черновик отличается от опубликованного полем `is_published`; ученики видят только опубликованные.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • get_funnel_format reads auth-required 9h ago

    Формат воронки: блоки, их настройки и стрелки. Прочитать до того, как собирать или править воронку: черновик присылается целиком в этом формате.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • create_course auth-required never probed

    Заводит курс-черновик: ученикам он не виден, пока не опубликован через `publish_course`. Черновиков можно держать сколько угодно на любом тарифе. Режим доступа: `open` — всё открыто сразу, `cohort` — по расписанию потока, `sequence` — по прогрессу ученика. Автор курса — хозяин ключа. Повтор с тем же Idempotency-Key вернёт тот же курс, а не создаст второй.

    mcp-tool

    {
      "type": "object",
      "required": [
        "title"
      ],
      "properties": {
        "title": {
          "type": "string",
          "title": "Title",
          "maxLength": 200,
          "minLength": 1
        },
        "access_mode": {
          "enum": [
            "open",
            "cohort",
            "sequence"
          ],
          "type": "string",
          "title": "Access Mode",
          "default": "open"
        },
        "description": {
          "type": "string",
          "title": "Description",
          "default": ""
        }
      }
    }
    arguments 29 lines
  • add_deal_task auth-required never probed

    Поставить задачу по сделке со сроком: позвонить, отправить договор. Ответственный — хозяин ключа. Срок обязателен: задача без срока не попадёт в «Сегодня» и будет забыта.

    mcp-tool

    {
      "type": "object",
      "required": [
        "deal_id",
        "text",
        "due_at"
      ],
      "properties": {
        "text": {
          "type": "string",
          "title": "Text"
        },
        "due_at": {
          "type": "string",
          "title": "Due At",
          "format": "date-time"
        },
        "deal_id": {
          "type": "integer",
          "title": "Deal Id"
        }
      }
    }
    arguments 23 lines
  • update_lesson auth-required never probed

    Меняет название и/или документ урока. Истории правок нет и замена необратима, поэтому при замене документа ОБЯЗАТЕЛЬНО передать `updated_at` из `get_lesson`: если урок с тех пор менялся — отказ 409, а не затирание. Сначала `get_lesson`, потом правка.

    mcp-tool

    {
      "type": "object",
      "required": [
        "lesson_id"
      ],
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "document": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Document"
        },
        "lesson_id": {
          "type": "integer",
          "title": "Lesson Id"
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Updated At"
        }
      }
    }
    arguments 48 lines
  • create_test auth-required never probed

    Тест целиком за один вызов: параметры и вопросы по порядку. Типы вопросов: `one` (один из списка, ровно один верный), `many` (несколько верных), `text` и `number` (верный ответ в `correct_text`), `open` (ответ своими словами; `reference_answer` и `criteria` помогают проверке). Куда положить: `lesson_id` — блоком в конец урока, `module_id` — итоговым тестом модуля; можно и то и другое, можно ничего.

    mcp-tool

    {
      "type": "object",
      "required": [
        "title",
        "questions"
      ],
      "properties": {
        "title": {
          "type": "string",
          "title": "Title",
          "maxLength": 200,
          "minLength": 1
        },
        "lesson_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Lesson Id"
        },
        "module_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Module Id"
        },
        "questions": {
          "type": "array",
          "items": {
            "type": "object",
            "title": "QuestionIn",
            "required": [
              "text"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "one",
                  "many",
                  "text",
                  "number",
                  "open"
                ],
                "type": "string",
                "title": "Kind",
                "default": "one"
              },
              "text": {
                "type": "string",
                "title": "Text",
                "minLength": 1
              },
              "weight": {
                "type": "integer",
                "title": "Weight",
                "default": 1,
                "maximum": 100,
                "minimum": 1
              },
              "options": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "OptionIn",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string",
                      "title": "Text",
                      "maxLength": 300,
                      "minLength": 1
                    },
                    "is_correct": {
                      "type": "boolean",
                      "title": "Is Correct",
                      "default": false
                    }
                  }
                },
                "title": "Options",
                "default": []
              },
              "criteria": {
                "type": "string",
                "title": "Criteria",
                "default": ""
              },
              "correct_text": {
                "type": "string",
                "title": "Correct Text",
                "default": ""
              },
              "reference_answer": {
                "type": "string",
                "title": "Reference Answer",
                "default": ""
              }
            }
          },
          "title": "Questions",
          "minItems": 1
        },
        "pass_score": {
          "type": "integer",
          "title": "Pass Score",
          "default": 70,
          "maximum": 100,
          "minimum": 0
        },
        "description": {
          "type": "string",
          "title": "Description",
          "default": ""
        },
        "max_attempts": {
          "type": "integer",
          "title": "Max Attempts",
          "default": 0,
          "maximum": 100,
          "minimum": 0
        }
      }
    }
    arguments 134 lines
  • publish_course changes data auth-required never probed

    Открывает курс ученикам или возвращает в черновики. Публикация идёт через лимит тарифа — ту же проверку, что кнопка в кабинете: считаются только опубликованные курсы, черновики нет. Если лимит исчерпан — 409 с текстом, что делать. Снять с публикации можно всегда.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course_id"
      ],
      "properties": {
        "course_id": {
          "type": "integer",
          "title": "Course Id"
        },
        "published": {
          "type": "boolean",
          "title": "Published",
          "default": true
        }
      }
    }
    arguments 17 lines
  • create_lead auth-required never probed

    Завести заявку: человек и сделка одним запросом. Нужна почта, телефон или Telegram. Человек, который уже есть, не заводится второй раз; повторная заявка про то же ложится заметкой в открытую сделку. Заголовок `Idempotency-Key` защищает от двойной отправки.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name",
          "default": ""
        },
        "email": {
          "type": "string",
          "title": "Email",
          "default": ""
        },
        "phone": {
          "type": "string",
          "title": "Phone",
          "default": ""
        },
        "comment": {
          "type": "string",
          "title": "Comment",
          "default": ""
        },
        "telegram": {
          "type": "string",
          "title": "Telegram",
          "default": ""
        },
        "utm_term": {
          "type": "string",
          "title": "Utm Term",
          "default": ""
        },
        "course_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Course Id"
        },
        "utm_medium": {
          "type": "string",
          "title": "Utm Medium",
          "default": ""
        },
        "utm_source": {
          "type": "string",
          "title": "Utm Source",
          "default": ""
        },
        "utm_content": {
          "type": "string",
          "title": "Utm Content",
          "default": ""
        },
        "utm_campaign": {
          "type": "string",
          "title": "Utm Campaign",
          "default": ""
        }
      }
    }
    arguments 67 lines
  • move_deal auth-required never probed

    Перевести сделку на другой этап той же воронки. Для отказа можно указать причину. Перевод пишется в ленту сделки с пометкой, что его сделал ключ API сотрудника.

    mcp-tool

    {
      "type": "object",
      "required": [
        "deal_id",
        "stage_id"
      ],
      "properties": {
        "reason": {
          "type": "string",
          "title": "Reason",
          "default": ""
        },
        "deal_id": {
          "type": "integer",
          "title": "Deal Id"
        },
        "stage_id": {
          "type": "integer",
          "title": "Stage Id"
        }
      }
    }
    arguments 22 lines
  • create_deal_tag changes data auth-required never probed

    Новая метка в справочнике сделок. group: имя группы «одна из» (у сделки одна метка группы, например «Урок»), новая группа заведётся. is_source: метка говорит, откуда пришёл человек. Имя, занятое другой меткой или её прежним именем, отказ: возьмите ту метку.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "color": {
          "type": "string",
          "title": "Color",
          "default": "secondary"
        },
        "group": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Group"
        },
        "is_source": {
          "type": "boolean",
          "title": "Is Source",
          "default": false
        }
      }
    }
    arguments 33 lines
  • update_funnel_draft changes data auth-required never probed

    Заменить черновик воронки целиком, в том числе у работающей: люди идут по опубликованной версии, пока человек не опубликует правки в кабинете (там он увидит их списком). draft_version из get_funnel: если черновик успели поменять, ответ 409, прочитайте воронку заново. В ответе задетые блоки и проверка.

    mcp-tool

    {
      "type": "object",
      "required": [
        "funnel_id",
        "graph",
        "draft_version"
      ],
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "graph": {
          "type": "object",
          "title": "Graph",
          "additionalProperties": true
        },
        "funnel_id": {
          "type": "integer",
          "title": "Funnel Id"
        },
        "draft_version": {
          "type": "integer",
          "title": "Draft Version"
        }
      }
    }
    arguments 34 lines
  • create_short_link changes data auth-required never probed

    Короткая ссылка на домене школы: на адрес (url) или в бота (bot_username и, если нужно, start_code: код воронки «Старта»). platform (youtube, vk, rutube, telegram, direct, email, site, other) ставит метки сама: utm_source, utm_medium, utm_campaign; свои метки (utm: source, medium, campaign, content, term) главнее. path: свой путь латиницей; без него система выберет понятный, варианты покажет suggest_link_path. button: подпись кнопки под роликом, set_id: ролик или кампания школы. Та же ссылка (тот же адрес или бот с кодом, та же площадка, кнопка и ролик) второй раз не заводится: вернётся прежняя, created=false. Например: url https://it-ontime.ru/mikrotik, platform youtube → short_url https://go.it-ontime.ru/mikrotik, метки youtube, video, mikrotik. Ошибка (путь занят, адрес не тот, нет домена) приходит ответом 400 с текстом для человека.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "url": {
          "type": "string",
          "title": "Url",
          "default": ""
        },
        "utm": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Utm"
        },
        "path": {
          "type": "string",
          "title": "Path",
          "default": ""
        },
        "title": {
          "type": "string",
          "title": "Title",
          "default": ""
        },
        "button": {
          "type": "string",
          "title": "Button",
          "default": ""
        },
        "set_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Set Id"
        },
        "platform": {
          "type": "string",
          "title": "Platform",
          "default": ""
        },
        "start_code": {
          "type": "string",
          "title": "Start Code",
          "default": ""
        },
        "bot_username": {
          "type": "string",
          "title": "Bot Username",
          "default": ""
        }
      }
    }
    arguments 66 lines
  • list_deals reads auth-required 30h ago

    Сделки школы, новые сверху: этап, курс, сумма, метки, откуда пришёл человек. Например, «какие сделки ждут оплаты»: отбор по этапу, «кто молчит»: по метке (`tag`, имя метки или её прежнее имя). Люди без имён, если у ключа нет области «имена» или школа не разрешила ИИ персональные данные. Не больше 200 за раз.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "tag": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tag"
        },
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 50
        },
        "stage_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Stage Id"
        },
        "open_only": {
          "type": "boolean",
          "title": "Open Only",
          "default": true
        },
        "updated_since": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Updated Since"
        }
      }
    }
    arguments 50 lines
  • list_deal_tags auth-required 30h ago

    Справочник меток сделок школы: имя, цвет, группа «одна из» (у сделки одна метка группы, новая снимает прежнюю), признак источника (откуда пришёл человек), прежние имена и на скольких сделках метка стоит. Нужен, чтобы поставить метку существующим именем, а не завести дубль.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_sales_rules auth-required 12h ago

    Шаги правил продаж: повод (event tag или stage, с номером метки или этапа), через сколько минут, что сделать (action: bot запустить воронку бота, tag_add, tag_remove, stage, task, goal), включён ли и почему может не сработать (problem).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_sales_stages reads auth-required 12h ago

    Этапы воронки продаж школы по порядку: номер, название и смысл (open — в работе, won — успех, lost — отказ). Нужны, чтобы перевести сделку или отобрать сделки на одном этапе.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_short_links reads auth-required 9h ago

    Короткие ссылки школы, новые сверху: короткий адрес, куда ведёт (адрес или бот с кодом воронки), площадка, ролик или кампания, метки и цифры за последние 30 дней в stats_30d: clicks (переходы), people (разные люди), to_bot (пришли в бота), leads (заявки), deals (сделки), payments (оплаты), revenue (рубли, строкой). Отбор: q ищет в названии, адресе, кнопке, имени бота и пути; platform: youtube, vk, rutube, telegram, direct, email, site, other; set_id: ссылки одного ролика или кампании; archived=true: архив. Например, «какая ссылка под роликами YouTube принесла больше денег»: platform=youtube, затем сравнить stats_30d.revenue. Не больше 200 за раз, дальше offset; total показывает, сколько всего.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "q": {
          "type": "string",
          "title": "Q",
          "default": ""
        },
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 50
        },
        "offset": {
          "type": "integer",
          "title": "Offset",
          "default": 0
        },
        "set_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Set Id"
        },
        "archived": {
          "type": "boolean",
          "title": "Archived",
          "default": false
        },
        "platform": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Platform"
        }
      }
    }
    arguments 48 lines
  • suggest_link_path auth-required 9h ago

    До трёх свободных понятных путей для новой ссылки, лучшие первыми: латиница, дефисы, до 40 знаков (go.школа.ru/osi-minikurs вместо go.школа.ru/k7Pq2a). Строятся из того, что передали: адрес, куда вести (url), название ссылки (title), подпись кнопки под роликом (button), название ролика (video_title) или ролик и кампания школы (set_id), кампания (campaign), заголовок страницы (page_title), код воронки бота (code), площадка (platform). Ничего не создаёт. Выбранный путь передайте в create_short_link (path); без path он выберет первый сам. Например: video_title «Модель OSI», button «Мини-курс» → model-osi-minikurs, minikurs, model-osi.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "url": {
          "type": "string",
          "title": "Url",
          "default": ""
        },
        "code": {
          "type": "string",
          "title": "Code",
          "default": ""
        },
        "title": {
          "type": "string",
          "title": "Title",
          "default": ""
        },
        "button": {
          "type": "string",
          "title": "Button",
          "default": ""
        },
        "set_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Set Id"
        },
        "campaign": {
          "type": "string",
          "title": "Campaign",
          "default": ""
        },
        "platform": {
          "type": "string",
          "title": "Platform",
          "default": ""
        },
        "page_title": {
          "type": "string",
          "title": "Page Title",
          "default": ""
        },
        "video_title": {
          "type": "string",
          "title": "Video Title",
          "default": ""
        }
      }
    }
    arguments 57 lines
  • review_queue reads auth-required 6h ago

    Работы, которые ждут куратора: кто сдал, по какому заданию, когда и сколько часов ждёт. Отсортировано от самых старых. Принять или вернуть работу через API нельзя — только посмотреть очередь.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • get_school_summary reads auth-required 59m ago

    Название школы, тариф, сколько курсов и из них опубликовано, сколько учеников и потоков, и что можно этому ключу. ИИ вызывает это первым при подключении и представляется человеку по-человечески: не списком инструментов, а тремя делами, ради которых школа его подключила, и одним примером вопроса. Цифры настоящие, из этого же ключа.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_bots auth-required 3d ago

    Боты школы в Telegram: номер, название, адрес и работает ли. Номер бота нужен, чтобы читать его воронки и собирать новые.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • question_stats unknown 4h ago

    По каждому вопросу теста: сколько ответов и какая доля верных по завершённым попыткам. Считаются ВСЕ попытки, а не последняя: вопрос, на котором спотыкаются с первого раза, виден только так. Ниже 50 % верных — вопрос стоит перечитать: он либо трудный, либо сформулирован неясно.

    mcp-tool

    {
      "type": "object",
      "required": [
        "test_id"
      ],
      "properties": {
        "test_id": {
          "type": "integer",
          "title": "Test Id"
        }
      }
    }
    arguments 12 lines
  • check_funnel reads unknown 4h ago

    Та же проверка, что перед публикацией, но ничего не публикует. errors: не опубликуется, пока не исправить; warnings: можно, но стоит посмотреть. У каждой записи номер блока (node) и текст.

    mcp-tool

    {
      "type": "object",
      "required": [
        "funnel_id"
      ],
      "properties": {
        "funnel_id": {
          "type": "integer",
          "title": "Funnel Id"
        }
      }
    }
    arguments 12 lines
  • get_link_stats unknown 59m ago

    Что принесла одна ссылка за период. funnel: clicks (переходы), people (разные люди), to_bot (пришли в бота), leads (заявки с сайта), deals (сделки), payments (оплаты), revenue (рубли, строкой), returned (вернулись в бота, были в нём раньше), filtered (отсеяны роботы и повторы). daily: переходы по дням. paths: люди по каждому пути за 7 и 30 дней и всего, видно, идут ли ещё по старому пути. referrers: откуда переходят, devices: с чего. Период: since и until, даты ГГГГ-ММ-ДД включительно, по Москве; без них последние days дней (по умолчанию 30), days=0 значит всё время. Например, «сколько оплат дал ролик за сентябрь»: since=2026-09-01, until=2026-09-30.

    mcp-tool

    {
      "type": "object",
      "required": [
        "link_id"
      ],
      "properties": {
        "days": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Days"
        },
        "since": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Since"
        },
        "until": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Until"
        },
        "link_id": {
          "type": "integer",
          "title": "Link Id"
        }
      }
    }
    arguments 47 lines
  • get_course reads unknown 2d ago

    Один курс целиком: модули по порядку, в каждом — уроки по порядку с типом (`lecture`, `practice`, `webinar`, `test`, `survey`), длительностью и признаком обязательности. Итоговый тест модуля, если есть, назван по номеру — его вопросы отдаёт `get_test`. Текст уроков сюда не входит: за ним `get_lesson`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course_id"
      ],
      "properties": {
        "course_id": {
          "type": "integer",
          "title": "Course Id"
        }
      }
    }
    arguments 12 lines
  • get_deal unknown 30h ago

    Одна сделка: поля, человек и последние 30 событий ленты (заметки менеджеров, переводы, открытие доступа, оплаты). Помогает ответить, что с человеком происходит и о чём с ним договорились.

    mcp-tool

    {
      "type": "object",
      "required": [
        "deal_id"
      ],
      "properties": {
        "deal_id": {
          "type": "integer",
          "title": "Deal Id"
        }
      }
    }
    arguments 12 lines
  • list_funnels reads unknown 4h ago

    Воронки бота: состояние (draft — черновик, active — работает, paused — остановлена), есть ли неопубликованные правки и чьи.

    mcp-tool

    {
      "type": "object",
      "required": [
        "bot_id"
      ],
      "properties": {
        "bot_id": {
          "type": "integer",
          "title": "Bot Id"
        }
      }
    }
    arguments 12 lines
  • get_lesson reads unknown 6h ago

    Документ урока в формате Editor.js: список блоков `header`, `paragraph`, `list`, `quote`, `callout`, `code`, `table`, `image`, `video`, `file`. Это тот же формат, в котором урок принимается на запись, поэтому ответ годится как образец для `create_lesson`. У старых уроков документа может не быть — тогда `document` пуст, а содержимое лежит строками в `blocks`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "lesson_id"
      ],
      "properties": {
        "lesson_id": {
          "type": "integer",
          "title": "Lesson Id"
        }
      }
    }
    arguments 12 lines
  • get_funnel unknown 12h ago

    Черновик и опубликованная версия воронки, номер версии черновика (нужен для правки) и сколько людей сейчас стоит на каждом блоке опубликованной версии. Люди считаются числом, без имён.

    mcp-tool

    {
      "type": "object",
      "required": [
        "funnel_id"
      ],
      "properties": {
        "funnel_id": {
          "type": "integer",
          "title": "Funnel Id"
        }
      }
    }
    arguments 12 lines
  • cohort_progress reads unknown 59m ago

    По каждому ученику потока: процент курса (считается по обязательным опубликованным урокам, как в кабинете), когда последний раз заходил или проходил урок, сколько дней с тех пор. Плюс доходимость потока — доля тех, кто дошёл до 100 %. Имена — только по ступени 3 (см. описание сервера), иначе «Ученик 14».

    mcp-tool

    {
      "type": "object",
      "required": [
        "cohort_id"
      ],
      "properties": {
        "cohort_id": {
          "type": "integer",
          "title": "Cohort Id"
        }
      }
    }
    arguments 12 lines
  • get_test reads unknown 3d ago

    Тест целиком: порог зачёта, число попыток и вопросы по порядку. У каждого вопроса тип (`one`, `many`, `text`, `number`, `open`), варианты с отметкой верного либо верный текст. Верные ответы отдаются, потому что ключ принадлежит сотруднику школы, а не ученику.

    mcp-tool

    {
      "type": "object",
      "required": [
        "test_id"
      ],
      "properties": {
        "test_id": {
          "type": "integer",
          "title": "Test Id"
        }
      }
    }
    arguments 12 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 0e73ee13dd17f2a4.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/0e73ee13dd17f2a4/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/0e73ee13dd17f2a4/badge.svg)](https://brick.blue/agent/0e73ee13dd17f2a4?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.