{"name":"ru.anyskills/anyskills","slug":"anyskills","title":"AnySkills","description":"AnySkills online school: build courses, lessons and tests, publish, track student progress.","url":"https://mcp.market/server/anyskills","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":5,"ok":5,"last_checked_at":"2026-09-20T19:01:13.417Z","last_ok_at":"2026-09-20T19:01:13.417Z","latency_ms":712},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://anyskills.ru/ai/","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://mcp.anyskills.ru/","headers":[{"description":"Bearer <API key issued in the school cabinet: Settings -> API and AI>","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"cohort_progress","description":"По каждому ученику потока: процент курса (считается по обязательным\nопубликованным урокам, как в кабинете), когда последний раз заходил\nили проходил урок, сколько дней с тех пор. Плюс доходимость потока —\nдоля тех, кто дошёл до 100 %. Имена — только по ступени 3\n(см. описание сервера), иначе «Ученик 14».","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cohort_id":{"type":"integer","title":"Cohort Id"}},"required":["cohort_id"]}},{"name":"create_course","description":"Заводит курс-черновик: ученикам он не виден, пока не опубликован\nчерез `publish_course`. Черновиков можно держать сколько угодно\nна любом тарифе. Режим доступа: `open` — всё открыто сразу,\n`cohort` — по расписанию потока, `sequence` — по прогрессу ученика.\nАвтор курса — хозяин ключа. Повтор с тем же Idempotency-Key\nвернёт тот же курс, а не создаст второй.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"description":{"type":"string","title":"Description","default":""},"access_mode":{"type":"string","enum":["open","cohort","sequence"],"title":"Access Mode","default":"open"}},"required":["title"]}},{"name":"create_lesson","description":"Урок встаёт в конец модуля. `document` — в формате Editor.js:\n`{\"blocks\": [{\"type\": \"header\", \"data\": {\"text\": \"...\", \"level\": 2}},\n{\"type\": \"paragraph\", \"data\": {\"text\": \"...\"}}, ...]}`. Разрешённые\nблоки: header, paragraph, list, quote, callout, code, table, image,\nvideo (провайдер и идентификатор, не iframe), file, test\n(`{\"test_id\": N}`). Неизвестные блоки выбрасываются, разметка\nчистится. Образец готового документа отдаёт `get_lesson`.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"module_id":{"type":"integer","title":"Module Id"},"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"kind":{"type":"string","enum":["lecture","practice","webinar","test","survey"],"title":"Kind","default":"lecture"},"duration_minutes":{"anyOf":[{"type":"integer","maximum":600,"minimum":0},{"type":"null"}],"title":"Duration Minutes"},"is_required":{"type":"boolean","title":"Is Required","default":true},"document":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Document"}},"required":["module_id","title"]}},{"name":"create_module","description":"Модуль встаёт в конец курса. Уроки добавляются в модуль отдельно,\n`create_lesson`. Порядок модулей потом можно поменять в кабинете.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"course_id":{"type":"integer","title":"Course Id"},"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"}},"required":["course_id","title"]}},{"name":"create_test","description":"Тест целиком за один вызов: параметры и вопросы по порядку.\nТипы вопросов: `one` (один из списка, ровно один верный), `many`\n(несколько верных), `text` и `number` (верный ответ в `correct_text`),\n`open` (ответ своими словами; `reference_answer` и `criteria` помогают\nпроверке). Куда положить: `lesson_id` — блоком в конец урока,\n`module_id` — итоговым тестом модуля; можно и то и другое, можно ничего.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"description":{"type":"string","title":"Description","default":""},"pass_score":{"type":"integer","maximum":100,"minimum":0,"title":"Pass Score","default":70},"max_attempts":{"type":"integer","maximum":100,"minimum":0,"title":"Max Attempts","default":0},"questions":{"items":{"properties":{"text":{"type":"string","minLength":1,"title":"Text"},"kind":{"type":"string","enum":["one","many","text","number","open"],"title":"Kind","default":"one"},"weight":{"type":"integer","maximum":100,"minimum":1,"title":"Weight","default":1},"options":{"items":{"properties":{"text":{"type":"string","maxLength":300,"minLength":1,"title":"Text"},"is_correct":{"type":"boolean","title":"Is Correct","default":false}},"type":"object","required":["text"],"title":"OptionIn"},"type":"array","title":"Options","default":[]},"correct_text":{"type":"string","title":"Correct Text","default":""},"reference_answer":{"type":"string","title":"Reference Answer","default":""},"criteria":{"type":"string","title":"Criteria","default":""}},"type":"object","required":["text"],"title":"QuestionIn"},"type":"array","minItems":1,"title":"Questions"},"lesson_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lesson Id"},"module_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Module Id"}},"required":["title","questions"]}},{"name":"get_course","description":"Один курс целиком: модули по порядку, в каждом — уроки по порядку\nс типом (`lecture`, `practice`, `webinar`, `test`, `survey`),\nдлительностью и признаком обязательности. Итоговый тест модуля,\nесли есть, назван по номеру — его вопросы отдаёт `get_test`.\nТекст уроков сюда не входит: за ним `get_lesson`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"course_id":{"type":"integer","title":"Course Id"}},"required":["course_id"]}},{"name":"get_lesson","description":"Документ урока в формате Editor.js: список блоков `header`,\n`paragraph`, `list`, `quote`, `callout`, `code`, `table`, `image`,\n`video`, `file`. Это тот же формат, в котором урок принимается\nна запись, поэтому ответ годится как образец для `create_lesson`.\nУ старых уроков документа может не быть — тогда `document` пуст,\nа содержимое лежит строками в `blocks`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lesson_id":{"type":"integer","title":"Lesson Id"}},"required":["lesson_id"]}},{"name":"get_school_summary","description":"Название школы, тариф, сколько курсов и из них опубликовано,\nсколько учеников и потоков, и что можно этому ключу.\n\nИИ вызывает это первым при подключении и представляется человеку\nпо-человечески: не списком инструментов, а тремя делами, ради\nкоторых школа его подключила, и одним примером вопроса.\nЦифры настоящие, из этого же ключа.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"get_test","description":"Тест целиком: порог зачёта, число попыток и вопросы по порядку.\nУ каждого вопроса тип (`one`, `many`, `text`, `number`, `open`),\nварианты с отметкой верного либо верный текст. Верные ответы\nотдаются, потому что ключ принадлежит сотруднику школы, а не ученику.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"test_id":{"type":"integer","title":"Test Id"}},"required":["test_id"]}},{"name":"list_cohorts","description":"Потоки: курс, даты старта и окончания, сколько записано. Поток —\nгруппа учеников с общим расписанием; прогресс по нему —\n`cohort_progress`. Ученики вне потоков (запись без потока) сюда\nне попадают — их ищет `stuck_students` без `cohort_id`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"list_courses","description":"Все курсы школы, включая черновики: название, опубликован ли,\nсколько модулей и уроков. Звать первым, чтобы узнать номера курсов\nдля остальных запросов. Черновик отличается от опубликованного\nполем `is_published`; ученики видят только опубликованные.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"publish_course","description":"Открывает курс ученикам или возвращает в черновики. Публикация\nидёт через лимит тарифа — ту же проверку, что кнопка в кабинете:\nсчитаются только опубликованные курсы, черновики нет. Если лимит\nисчерпан — 409 с текстом, что делать. Снять с публикации можно всегда.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"course_id":{"type":"integer","title":"Course Id"},"published":{"type":"boolean","title":"Published","default":true}},"required":["course_id"]}},{"name":"question_stats","description":"По каждому вопросу теста: сколько ответов и какая доля верных\nпо завершённым попыткам. Считаются ВСЕ попытки, а не последняя:\nвопрос, на котором спотыкаются с первого раза, виден только так.\nНиже 50 % верных — вопрос стоит перечитать: он либо трудный, либо\nсформулирован неясно.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"test_id":{"type":"integer","title":"Test Id"}},"required":["test_id"]}},{"name":"review_queue","description":"Работы, которые ждут куратора: кто сдал, по какому заданию, когда\nи сколько часов ждёт. Отсортировано от самых старых. Принять или\nвернуть работу через API нельзя — только посмотреть очередь.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"stuck_students","description":"Ученики, которые не дошли до конца и ничего не делали дольше `days`\nдней (ни входа, ни пройденного урока). Это адрес для куратора,\nа не оценка ученика. `cohort_id` сужает до одного потока; без него —\nвся школа, включая записи без потока. Черновики курсов не считаются.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"days":{"type":"integer","title":"Days","default":7},"cohort_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cohort Id"}},"required":[]}},{"name":"update_lesson","description":"Меняет название и/или документ урока. Истории правок нет и замена\nнеобратима, поэтому при замене документа ОБЯЗАТЕЛЬНО передать\n`updated_at` из `get_lesson`: если урок с тех пор менялся —\nотказ 409, а не затирание. Сначала `get_lesson`, потом правка.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"lesson_id":{"type":"integer","title":"Lesson Id"},"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Title"},"document":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Document"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"required":["lesson_id"]}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-20T00:23:45.864Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:23:45.833Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 3332ms"]},"poisoning":{"score":15,"max":15,"notes":["16 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.anyskills.ru/","reachable":true,"authRequired":false,"latencyMs":3332,"serverInfo":{"name":"AnySkills","version":"4.0.3"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://anyskills.ru/favicon.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}