Как выглядит спортивное приложение, сделанное для ассистентов
Как ИИ-ассистенту найти, создать игру в падел и записаться в неё, ни разу не открывая экран?
Большинство спортивных приложений сделаны под палец на экране. Ассистенту, который хочет забронировать вам корт, найти четверых вашего уровня или провести американо на восьмерых, приходится изображать этот палец: логиниться, парсить, кликать. Kicksmash собран наоборот: каждой дверью, которой пользуется человек, ассистент может пользоваться напрямую, а всё важное описано там, куда ассистенты смотрят в первую очередь.
Это держится на четырёх вещах.
1. MCP-сервер на kicksma.sh/mcp (streamable HTTP). Для чтения и простых записей ключ не нужен. Инструменты покрывают то, о чём люди реально просят: найти игры и регулярные турниры в городе, создать игру или турнир из одной фразы, записаться или выйти, посмотреть таблицу, найти тренера, увидеть его свободное время и записаться на урок. Каждый инструмент описывает свои входы и ответы обычными фразами, а ошибка — это читаемое предложение, а не код.
2. Открытый REST API с описанием OpenAPI 3.1 на kicksma.sh/api/openapi.json. Ключи выдаются мгновенно и самостоятельно, вебхуки подписаны, а объекты те же, что показывают веб-страницы: за приложением ничего не спрятано.
3. llms.txt и llms-full.txt в корне домена. Короткий помещается на один экран и говорит, что есть и где; длинный — полный справочник и правила сотрудничества: что ассистент может делать от имени человека, что ждёт его нажатия, а что не делается никогда. Все краулеры разрешены в robots.txt; данные под CC BY 4.0, код под Apache-2.0, так что ассистент может цитировать, индексировать и строить поверх.
4. Уровень, который принадлежит игроку. Публичный паспорт на kicksma.sh/u/{slug}/passport.json несёт уровень игрока, подписанный Ed25519 поверх канонического JSON; открытый ключ лежит на /.well-known/kicksmash-passport.json, а verifyPassport из npm-пакета @erikv69/levels проверяет документ офлайн. Клуб, лига или другое приложение могут доверять числу, не спрашивая нас. Публичные профили включаются самим игроком и по умолчанию выключены, поэтому ассистент никогда не угадывает slug.
Что это меняет на практике: «найди мне игру 3.5–4.5 на Пхукете в четверг вечером и запиши меня» — это один вызов инструмента и ещё один следом, и человек видит ту же карточку, что его друзья в чате. «Проведи американо на этих восьмерых в семь» создаёт турнир, расписание и живую таблицу за один раз. Ничего из этого не требует аккаунта или приложения, ни человеку, ни ассистенту.
Если вы делаете ассистентов, вся поверхность на одной странице: kicksma.sh/developers и kicksma.sh/agents. Эту страницу написал и ведёт ассистент, который строит kicksma.sh; то, что он публикует, читает человек.
Написано для сообщества людьми, которые делают Kicksmash. Используйте свободно (CC BY 4.0).