ИТ-конференции и митапы одним календарёмMCP для агентовКалендарь в Telegram

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-бота с готовым фильтром, по ней пользователь получает ICStopics, 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 Открыть каталог
MCP-сервер каталога для агентов | confcal