Skip to main content
Glama
Dizko-Labs

Dizko Events MCP

Official
by Dizko-Labs

Dizko Events CLI и MCP

Быстрый старт

Рекомендуется: добавьте хостируемый коннектор. Он работает на наших серверах, поэтому никогда не получает доступ к вашему компьютеру (никаких пугающих предупреждений о локальной установке), не требует установки и авторизации:

https://mcp.dizko.app/mcp

Вставьте это в Настройки → Коннекторы → Добавить пользовательский коннектор вашего клиента (claude.ai, Claude Desktop, режим разработчика ChatGPT, Cursor). Пошаговые инструкции для каждого клиента: https://mcp.dizko.app/install

Для Claude Code:

claude mcp add --transport http dizko-events https://mcp.dizko.app/mcp

Продвинутый уровень: запустите сервер локально (только если вы не можете использовать хостируемый коннектор, например, бесплатный план Claude или клиент, который поддерживает только локальные серверы). Локальный сервер работает от вашего имени, поэтому Claude Desktop предупреждает, что он «может получить доступ ко всему на вашем компьютере». Это присуще любому локальному MCP-расширению, а не тому, что этот пакет запрашивает лишнее. Хостируемый коннектор выше позволяет этого избежать.

npx -y dizko-events install claude-desktop   # writes the local config
# or the raw stdio snippet for any client:
{ "command": "npx", "args": ["-y", "dizko-events", "mcp"] }

Однокликовый пакет для Claude Desktop: npm run build:mcpb создаёт dist/dizko-events-<version>.mcpb.

Агентные фреймворки (Hermes, OpenClaw, LangGraph, OpenAI Agents SDK, пользовательские циклы)

Агенты на фреймворках не имеют интерфейса «Коннекторы», поэтому они интегрируются программно. Четыре пути, начиная с самого простого:

  1. Удалённый MCP через HTTP: укажите MCP-клиенту фреймворка на хостируемую конечную точку https://mcp.dizko.app/mcp (streamable-http, без авторизации). Работает с официальными MCP SDK, OpenAI Agents SDK, адаптерами MCP для LangGraph/LangChain, Pydantic AI и т.д.

  2. stdio MCP: запустите npx -y dizko-events mcp как подпроцесс и общайтесь по MCP через stdio.

  3. Чистый HTTP JSON-RPC: библиотека MCP не нужна; отправляйте POST на /mcp:

    curl -s https://mcp.dizko.app/mcp \
      -H 'content-type: application/json' \
      -H 'accept: application/json, text/event-stream' \
      -H 'mcp-method: tools/call' \
      -H 'mcp-name: search_events' \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_events","arguments":{"city":"los angeles","when":"this week"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'

    Блок _meta — это то, что делает запрос запросом 2026-07-28: ревизия не имеет состояния, поэтому нет рукопожатия initialize и нет сессии — каждый запрос несёт собственную версию протокола и возможности клиента. Вызовите server/discover, чтобы узнать, какие ревизии поддерживает конечная точка. Клиенты на 2025-11-25 и более ранних версиях продолжают работать без изменений; опустите _meta, и сервер ответит им через путь эпохи 2025 года.

  4. Встраиваемая библиотека: встраивайте инструменты напрямую (без слоя MCP). Пакет предоставляет стабильный API:

    import { tools, callTool, searchEvents } from "dizko-events";
    // Hand `tools` (JSON Schemas) to your model as function definitions, then:
    const result = await callTool("search_events", { city: "berlin", when: "weekend" });

Автономная покупка билетов (точка интеграции Hermes / OpenClaw)

По умолчанию инструменты для билетов возвращают передачу на оформление заказа (ссылку). Чтобы включить ограниченную автономную покупку, укажите адаптер ticketPurchaseProvider. Его можно внедрить только при встраивании пакета или самостоятельном хостинге сервера — хостируемая конечная точка работает в нашем процессе и не может принять ваш платёжный адаптер.

import { createHttpMcpServer, callTool } from "dizko-events";

const hermesAdapter = {
  canPurchase: (event, summary) => true,
  purchase: async ({ quote, confirmation_text, delivery_email, add_to_calendar }) => {
    // ... perform the bounded purchase, return { status, order_id, receipt_url }
  }
};

// Self-host with the adapter wired in:
createHttpMcpServer({ ticketPurchaseProvider: hermesAdapter }).listen(8787);

// ...or call tools in-process with it:
await callTool("purchase_ticket_order", input, { ticketPurchaseProvider: hermesAdapter });

purchase_ticket_order по-прежнему требует зафиксированную котировку от quote_ticket_order и явное письменное подтверждение перед вызовом адаптера. См. get_ticket_purchase_policy.


Этот пакет предоставляет агентам и людям доступ к живой базе событий Dizko:

  • dizko-events: CLI для быстрого поиска, ранжированных рекомендаций, планов на вечер, установки клиента и диагностики.

  • dizko-events mcp (алиас eventchat-events-mcp): stdio MCP-сервер для локальных клиентов разработчиков.

  • dizko-events serve (алиас eventchat-events-http): HTTP MCP-сервер для хостируемых коннекторов/приложений.

  • Агентные инструменты для работы с билетами: предложения билетов, зафиксированные котировки, письменные подтверждения, передача на оформление заказа и будущие адаптеры покупки Hermes/OpenClaw/Dizko.

Почему это лучше обычного чата

Обычный чат может описать вероятные события, но не знает достоверно текущий инвентарь. Этот инструмент даёт агенту:

  • Живые структурированные результаты из API /events компании Dizko.

  • Детерминированные фильтры по городу, дате, жанру, атмосфере, площадке, цене, посещаемости, району и артисту.

  • Объяснимое ранжирование, чтобы рекомендации содержали причины, а не непрозрачные догадки о вкусах.

  • Ссылки на билеты и ссылки на события Dizko для проверки.

  • Инструмент планирования, который возвращает основные варианты плюс запасные в компактном машиночитаемом виде.

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

  • Негативная обратная связь становится изученными сигналами избегания, поэтому будущие рекомендации могут уводить от нелюбимых жанров, атмосфер, типов событий или площадок.

  • Средства безопасности покупки билетов: агенты могут формировать котировки и подготавливать заказы билетов, но автономная покупка требует зафиксированной котировки, явного письменного подтверждения и интегрированного поставщика покупки.

Агент по-прежнему может писать разговорным языком, но его факты о событиях берутся из инструмента.

CLI

Запуск без установки:

npm exec --yes --package dizko-events -- dizko-events search --city "Los Angeles" --when week --limit 5
npm exec --yes --package dizko-events -- dizko-events recommend --city "New York" --when tonight --vibe underground,intimate --max-price 30

Или установите пакет для разработчиков раннего доступа:

npm install -g dizko-events
eventchat-events search --city berlin --when weekend --genres techno --limit 5

Из этого репозитория:

node ./bin/eventchat-events.js search --city berlin --when weekend --genres techno --limit 5
node ./bin/eventchat-events.js recommend --city new-york --when tonight --vibe underground,intimate --max-price 30
node ./bin/eventchat-events.js plan --city london --when weekend --event-types party --avoid mainstream
node ./bin/eventchat-events.js cities
node ./bin/eventchat-events.js doctor

doctor проверяет разрешение DNS, конечную точку здоровья API, хостируемую конечную точку MCP (health, metadata, tools/list) и один небольшой живой поиск, сообщая о первопричине любого сбоя. Запускайте его первым при любом сбое поиска.

Окружение (все поверхности — CLI, stdio MCP, хостируемый MCP, смоук-тест и монитор — разрешают конечные точки через один и тот же src/config.js):

DIZKO_API_BASE_URL=https://api.dizko.app
DIZKO_WEB_BASE_URL=https://www.dizko.app
DIZKO_MCP_URL=https://mcp.dizko.app/mcp
DIZKO_API_TIMEOUT_MS=8000
DIZKO_API_RETRIES=2                  # transient network/5xx failures retry with backoff + jitter
DIZKO_API_RETRY_BASE_DELAY_MS=250
EVENTCHAT_MCP_ALLOWED_ORIGINS=https://chatgpt.com,https://chat.openai.com,https://claude.ai

Временные сетевые сбои (EAI_AGAIN, ETIMEDOUT, ECONNRESET, ENOTFOUND, временные 5xx) автоматически повторяются и сообщаются как retryable: true с первопричиной, кодом, именем хоста и целевым URL, если они сохраняются.

MCP для локальных клиентов разработчиков

Запустите stdio MCP-сервер из npm:

npm exec --yes --package dizko-events -- eventchat-events-mcp

Или из этого репозитория:

node ./bin/eventchat-events-mcp.js

Пример конфигурации MCP-клиента:

{
  "mcpServers": {
    "eventchat-events": {
      "command": "node",
      "args": ["/absolute/path/to/dizko-mcp/bin/eventchat-events-mcp.js"],
      "env": {
        "DIZKO_API_BASE_URL": "https://api.dizko.app"
      }
    }
  }
}

Пример конфигурации MCP-клиента с использованием npm:

{
  "mcpServers": {
    "dizko-events": {
      "command": "npm",
      "args": ["exec", "--yes", "--package", "dizko-events", "--", "eventchat-events-mcp"],
      "env": {
        "DIZKO_API_BASE_URL": "https://api.dizko.app"
      }
    }
  }
}

Инструменты:

  • get_preference_onboarding: возвращает вопросы, которые ассистент должен задать перед сохранением предпочтений.

  • create_event_preference_profile: создаёт непрозрачный профиль сохранённых предпочтений после согласия и возвращает идентификатор профиля и приватный секрет профиля, который ассистент может запомнить.

  • save_event_preferences: сохраняет предпочтения пользователя только после явного согласия и доступа к секрету профиля.

  • get_event_preferences: читает сохранённые и изученные предпочтения с доступом к секрету профиля.

  • delete_event_preferences: удаляет сохранённые предпочтения и обратную связь профиля с доступом к секрету профиля и явным подтверждением пользователя.

  • record_event_feedback: сохраняет сигналы после события (понравилось/не понравилось), оценки или заметки и обновляет изученные сигналы с доступом к секрету профиля. Заметки о музыке, публике, цене, времени или площадке могут стать изученными сигналами предпочтений или избегания. Пустая обратная связь отклоняется.

  • get_event_feedback_prompt: возвращает короткие уточняющие вопросы после события для конкретного события перед сохранением обратной связи.

  • get_event_search_followups: возвращает только отсутствующие вопросы текущего контекста перед поиском на сегодня/неделю/выходные.

  • search_events: живой структурированный поиск событий.

  • recommend_events: живой поиск плюс объяснимое ранжирование по вкусам.

  • recommend_events_for_user: живые рекомендации с использованием сохранённых предпочтений и изученной обратной связи с доступом к секрету профиля.

  • plan_night: компактный план с запасными вариантами.

  • get_daily_roundup: однодневный дайджест по городу: ранжированные лучшие выборы плюс разделы вечеринок, живой музыки, искусства, комедии, разговоров и еды. Создан для повторяющихся утренних брифингов; необязательный доступ к секрету профиля персонализирует ранжирование с учётом сохранённых, изученных и ежедневных предпочтений.

  • get_artist_events: предстоящие шоу, сгруппированные по артистам для указанных диджеев, исполнителей или комиков. С доступом к секрету профиля и без указания артистов отслеживает сохранённый список featuring профиля.

  • get_city_pulse: агрегированный показатель активности города на ближайшие дни: самые загруженные ночи, лучшие площадки, смешение жанров и главные события, каждая статистика с подсчётом подтверждений. Только публичный инвентарь.

  • get_event: поиск деталей по идентификатору события.

  • get_ticket_purchase_policy: объясняет текущие режимы покупки, жёсткие правила безопасности и требования к поставщику.

  • get_ticket_offers: возвращает варианты билетов на событие, включая URL оформления заказа и информацию о поддержке автономной покупки.

  • quote_ticket_order: создаёт зафиксированную котировку с количеством, максимальной суммой, типом билета, сроком действия и условиями остановки.

  • purchase_ticket_order: принимает явное письменное подтверждение и либо выполняет покупку через интегрированного поставщика, либо возвращает требуемую внешнюю передачу на оформление заказа.

Примечание об аннотациях: инструменты поиска и рекомендаций читают живые данные событий, а инструменты предпочтений записывают только приватную память коннектора, защищённую profile_id и profile_secret. Только purchase_ticket_order помечен как разрушительный/открытый мир, поскольку он является ограниченной точкой действия для покупки билетов или передачи на оформление заказа.

Примечание о билетах: purchase_ticket_order намеренно помечен как разрушительный и открытый мир, потому что это будущая граница действий для автономной покупки билетов. В сборке по умолчанию npm/хостируемой сборке сторонние ссылки на билеты возвращают requires_external_checkout; инструмент не просматривает страницы оформления заказа, не обходит CAPTCHA и не списывает средства с карт. Настоящая автономная покупка требует адаптера поставщика, такого как Hermes, OpenClaw, Dizko Checkout, партнёрского API продажи билетов или одобренного процесса делегированных платежей.

Примечание об авторизации: публичный хостируемый коннектор отправляет запросы как noauth для базового поиска событий. Инструменты сохранённых предпочтений, обратной связи, персонализированных рекомендаций, чтения, обновления и удаления по-прежнему требуют непрозрачный profile_id пользователя и приватный profile_secret. Описания инструментов включают securitySchemes: [{ "type": "noauth" }] и отражают это в _meta.securitySchemes для совместимости с ChatGPT.

Примечание о безопасности удаления: delete_event_preferences также требует confirm_delete: true, который следует отправлять только после того, как пользователь подтвердит, что хочет удалить предпочтения коннектора Dizko и историю обратной связи.

Примечание о хранении: сохранённые профили предпочтений автоматически удаляются по истечении настроенного окна бездействия, по умолчанию 730 дней, что соответствует опубликованной политике хранения в 24 месяца.

Хостируемый MCP для ChatGPT и Claude

Для обычных пользователей публикуйте хостируемую конечную точку MCP, а не просите их запускать локальную команду.

PORT=8787 node ./bin/eventchat-events-http.js

Конечные точки:

  • POST /mcp: JSON-RPC MCP конечная точка.

  • GET /health: проверка здоровья развёртывания.

  • GET /: базовые метаданные сервиса.

  • GET /privacy-policy.html: публичная политика конфиденциальности для сохранённых предпочтений, обратной связи, хранения и удаления.

  • GET /support.html: публичная страница поддержки, удаления и контактов по безопасности.

  • GET /terms.html: публичные условия коннектора и страница допустимого использования.

  • GET /user-guide.html: публичное руководство для обычных пользователей с подсказками, памятью предпочтений, обратной связью и поведением при удалении.

  • GET /.well-known/security.txt: контактные метаданные для сообщения об уязвимостях.

  • GET /logo-512.png: логотип коннектора 512px для метаданных при подаче заявки.

Текущая развёрнутая конечная точка:

https://mcp.dizko.app/mcp

Чтобы стать приложением/плагином ChatGPT:

  1. Разверните этот HTTP-сервер на публичном HTTPS-домене.

  2. Протестируйте его в режиме разработчика ChatGPT, создав коннектор с этим URL.

  3. Проверьте вызовы инструментов в вебе и на мобильных устройствах.

  4. Отправьте приложение через панель управления OpenAI с публичным URL MCP, URL политики конфиденциальности/поддержки, логотипом, скриншотами, тестовыми подсказками и описаниями инструментов.

Пользователи Claude могут добавить тот же публичный URL MCP в качестве пользовательского коннектора там, где их тариф/рабочее пространство поддерживает удалённый MCP.

См. plugin-submission.md и submission-fields.json для рабочего текста заявки. См. OPENAI_SUBMISSION_PACKET.md для финального пакета передачи в панель управления. См. SCREENSHOT_CHECKLIST.md для точных подсказок и имён файлов скриншотов в режиме разработчика ChatGPT. См. SUBMISSION_AUDIT.md для сопоставления требований и доказательств, а также оставшихся внешних этапов проверки. См. USER_GUIDE.md для подсказок обычных пользователей, поведения памяти предпочтений и ссылок на поддержку/конфиденциальность. См. DEPLOYMENT.md для шагов по Railway, Docker, пользовательскому домену и проверке. См. OPERATIONS.md для проверок здоровья, журналов, отката, обработки данных предпочтений и триггеров повторной подачи. См. golden-prompts.md для прямых, косвенных и негативных тестов подсказок для обнаружения коннекторов и маршрутизации инструментов. См. SECURITY.md для сообщения об уязвимостях и операционных мер защиты.

Живой смоук-тест:

npm run monitor:live
npm run smoke:live

monitor:live доступен только для чтения и подходит для проверок аптайма. smoke:live также выполняет создание и удаление временного профиля предпочтений.

Доказательства подачи:

npm run verify:submission
npm run verify:submission:write
npm run verify:submission:bundle
npm run verify:submission:fields
npm run submission:status
npm run review:demo
npm run preflight:submission

Команда bundle сохраняет submission-evidence/latest.json и submission-evidence/latest-summary.md для подготовки к проверке дашборда, не допуская попадания сгенерированных свидетельств в git. Свидетельства включают проверенную конечную точку, текущий идентификатор деплоя Railway, дайджест образа, проверки публичных страниц, метаданные инструментов, живой поиск и поток памяти предпочтений.

Команда fields проверяет submission-fields.json — стабильный артефакт копии дашборда — на соответствие последним живым свидетельствам, включая метаданные развертывания.

Команда preflight запускает локальные тесты, живое smoke-тестирование, генерацию живых свидетельств для подачи и проверку полей дашборда за один проход.

Команда status дает окончательное решение go/no-go для подачи в дашборд OpenAI, указывает конечную точку для подачи и отделяет нерешенный статус пользовательского домена от готовности размещенной конечной точки.

Команда review-demo записывает очищенную стенограмму submission-evidence/review-demo.md из живых вызовов MCP для подготовки промптов/ответов дашборда.

Утилита для обработки запросов на удаление:

npm run preferences:delete -- --profile-id upg_... --profile-secret ups_... --preferences-path /data/preferences.json

Это для запросов на удаление, обрабатываемых службой поддержки, когда пользователь не может вызвать delete_event_preferences через своего MCP-клиента.

Процесс персонализации:

  1. Пользователь просит персонализированную помощь с мероприятиями.

  2. Ассистент вызывает get_preference_onboarding и спрашивает, какие события, жанры, атмосферу, бюджет и места пользователь обычно предпочитает и чего избегает.

  3. Ассистент спрашивает, может ли Dizko сохранять эти предпочтения.

  4. Если да и профиля еще нет, ассистент вызывает create_event_preference_profile и конфиденциально запоминает возвращенные profile_id и profile_secret.

  5. Ответ о создании также содержит access_instructions — предназначенную для пользователя карточку доступа для клиентов, которые не могут сохранять состояние коннектора между сессиями.

  6. Если профиль уже существует, ассистент вызывает save_event_preferences с profile_id и profile_secret.

  7. Для поисков «сегодня вечером», «на неделю», «на выходные» ассистент вызывает get_event_search_followups, задает короткие вопросы о текущем контексте, а затем вызывает recommend_events_for_user.

  8. Предпочтения могут включать day_filters — правила по дням недели, например, техно по пятницам, но спокойно по воскресеньям. Поля-массивы дополняют общие предпочтения, а max_price/free/nightlife переопределяют их, но только в этот день недели: поиски по одному дню (сегодня вечером, завтра, конкретная дата) и ежедневные сводки автоматически применяют соответствующий день.

  9. Для ежедневного дайджеста («что происходит сегодня?» — запланированная утренняя сводка) ассистент вызывает get_daily_roundup с городом и учетными данными профиля и отображает главные подборки с последующими разделами категорий.

  10. После события ассистент вызывает get_event_feedback_prompt, спрашивает, пошел ли пользователь и понравилось ли ему, а затем вызывает record_event_feedback только после того, как пользователь сообщит «понравилось/не понравилось», оценку или заметки.

Процесс покупки билетов:

  1. Пользователь просит купить или забронировать билеты на мероприятие.

  2. Ассистент вызывает get_ticket_offers с идентификатором мероприятия.

  3. Ассистент объясняет, поддерживает ли предложение автономную покупку или только внешнее оформление.

  4. Ассистент вызывает quote_ticket_order с количеством, типом билета, максимальной суммой, валютой и ограничениями по возврату.

  5. Ассистент запрашивает явное письменное подтверждение, например: Yes, buy 2 ticket(s) for Ostbahnhof XL, max total USD240. Stop if price, date, venue, ticket type, quantity, or refund terms change.

  6. Ассистент вызывает purchase_ticket_order только после этого подтверждения.

  7. Если в предложении используется external_checkout, инструмент возвращает requires_external_checkout и URL для внешнего оформления. Ассистент не должен утверждать, что он купил билет.

  8. Если настроен Hermes, OpenClaw, Dizko Checkout или другой интегрированный провайдер, провайдер может выполнить ограниченную покупку и вернуть статус заказа/квитанции/доставки билетов.

Контракт адаптера провайдера:

{
  canPurchase(event, summary) {
    return true;
  },
  async purchase({ quote, confirmation_text, user_payment_profile_id, idempotency_key }) {
    return {
      purchased: true,
      status: "purchased",
      order_id: "...",
      receipt_url: "...",
      ticket_delivery_status: "pending_delivery",
      provider_response: {}
    };
  }
}

Примечания по распространению

Публичный пользовательский интерфейс ChatGPT — это размещенная конечная точка MCP плюс подача приложения в OpenAI. Пакет npm — это путь распространения для разработчиков: локальные агенты, MCP-клиенты в стиле Claude Desktop, конфигурации Cursor и Windsurf, а также технические тестировщики, которые могут запустить команду. Исходный код открыт для просмотра и отправки сообщений об ошибках. Он остается помеченным как UNLICENSED, поэтому публикация не предоставляет лицензию на повторное использование.

Перед публикацией новой версии npm:

npm test
npm pack --dry-run --json
npm publish --access public
-
license - not tested
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Cloud-hosted MCP server for durable AI memory

  • Hosted AgentLux MCP server for marketplace, identity, creator, services, and social flows.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dizko-Labs/dizko-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server