MCP-сервер каталога
Тот же каталог событий, но для ИИ-агентов. Агент ищет конференции и митапы по городам и темам, а когда пользователю нужен календарь, отдаёт ссылку на бота, и оттуда приходит подписной ICS.
Адрес
https://confcal.rpa.icu/mcpТранспорт streamable HTTP, авторизации нет, всё только на чтение. Подойдёт любой клиент, который умеет MCP по HTTP.
Как подключить
Общий формат конфига, он одинаковый у большинства клиентов. Для Cursor это .cursor/mcp.json в проекте или тот же файл в домашнем каталоге, для десктопных клиентов - их файл настроек.
{
"mcpServers": {
"confcal": {
"type": "http",
"url": "https://confcal.rpa.icu/mcp"
}
}
}Claude Code добавляет сервер одной командой.
claude mcp add --transport http confcal https://confcal.rpa.icu/mcpПроверить руками, без клиента, можно обычным curl. В ответ придёт событие с версией протокола и идентификатором сессии в заголовке mcp-session-id.
curl -sN -X POST https://confcal.rpa.icu/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'Если агент пришёл сам
Всё, что нужно для подключения, лежит по фиксированным адресам, руками их прописывать не обязательно.
- llms.txt - короткая выжимка про сервис со ссылками на разделы каталога;
- llms-full.txt - то же самое подробно: аргументы инструментов, формат диплинка, справочники городов и тем целиком со счётчиками. Одним GET, без сессии MCP;
- карточка сервера - адрес, транспорт и версии протокола, черновик SEP-2127. Читается до рукопожатия;
- каталог домена - перечень карточек, с него начинается обнаружение по домену.
Спецификация карточек пока в черновике, поэтому её адреса могут поменяться. Адрес самого сервера при этом не меняется, на него можно опираться.
Инструменты
| Инструмент | Что делает | Аргументы |
|---|---|---|
list_cities | Города справочника со счётчиком будущих событий и числом онлайн-событий | limit, offset |
list_topics | Темы справочника со счётчиком будущих событий | limit, offset |
search_events | Поиск будущих событий. Несколько городов или тем объединяются по или | cities, topics, date_from, date_to, event_format, only_free, limit, offset |
calendar_link | Ссылка на Telegram-бота с готовым фильтром, по ней пользователь получает ICS | topics, cities, include_online |
Города и темы приходят из конечного справочника, поэтому перед поиском полезно вызвать list_cities и list_topics. Написание значения не важно, Москва, мск и moscow это одно и то же, а нераспознанное значение вернётся ошибкой со списком допустимых слагов. Ключевое слово online в списке городов добавляет события без привязки к городу.
Справочники отдаются страницами, до 100 элементов за раз, порядок стабильный. В ответе кроме items приходят total, limit, offset и has_more, по нему видно, надо ли идти за следующей страницей.
{
"name": "search_events",
"arguments": {
"cities": ["Москва", "спб"],
"topics": ["нейросети", "девопс"],
"date_from": "2026-09-01",
"only_free": true,
"limit": 10
}
}Как получается календарь
Подписку по-прежнему заводит только Telegram-бот, сервер в каталог ничего не пишет. Агент собирает фильтр и вызывает calendar_link, тот возвращает диплинк.
{
"telegram_url": "https://t.me/confcal_bot?start=moscow_spb_online__ai_devops",
"filter": {
"cities": ["moscow", "spb"],
"topics": ["ai", "devops"],
"include_online": true
},
"calendar_name": "Нейросети и ML и DevOps и SRE в Москве, в Санкт-Петербурге и онлайн"
}Дальше пользователь открывает ссылку в Telegram, бот показывает распознанный фильтр и по кнопке выдаёт ссылки ics, webcal и для Google Calendar. Календарь обновляется сам, новые события появляются в нём в течение суток.
Ограничения
- не чаще одного запроса в секунду с одного адреса, с небольшим запасом на рукопожатие сессии. Перебор возвращает 429 и заголовок Retry-After, стоит просто подождать указанное число секунд;
- payload диплинка ограничен 64 символами, это лимит Telegram, поэтому очень широкий фильтр
calendar_linkне кодирует, а просит сузить, вместо того чтобы молча его обрезать; - описания событий в выдаче обрезаны, полный текст лежит на странице события по ссылке из поля url;
- данные собираются автоматически из открытых источников и обновляются раз в сутки, поэтому свежесозданное событие может появиться не сразу.
Календарь можно получить и без агента, кнопками в боте, а посмотреть каталог глазами - на главной.
Календарь в Telegram Открыть каталог