Skip to main content
Glama
harshapranithreddy

EventOps MCP Server

EventOps: MCP-сервер + ИИ-CLI для организации мероприятий

EventOps превращает годы беспорядочных выгрузок продажи билетов в данные, с которыми ИИ-инструмент действительно может работать. Он открывает данные о событиях и членстве MQIS (экспорты Humanitix) любому клиенту Model Context Protocol (Claude Desktop, Claude Code, Cursor) как набор детерминированных инструментов, а также предоставляет небольшой ИИ-CLI, который поверх этих же инструментов пишет операционные отчёты и письма с учётом согласия пользователей.

Я создал его, чтобы дать своим ИИ-инструментам контекст проекта, а не общие ответы. В этом вся суть: ИИ может вызвать get_event_metrics("Saazish") и получить точную цифру, а не гадать.

Принцип разработки: детерминированные инструменты, ИИ — для описания

Каждое число берётся из pandas, а не из языковой модели. Инструменты MCP и CLI оба обращаются к одному объекту EventData (data_loader.py), который выполняет подсчёт. ИИ лишь решает, какой инструмент вызвать и как сформулировать результат. Он не может выдумать цифру выручки, потому что никогда не вычисляет её. Это самое важное свойство проекта.

Related MCP server: Presso MCP Server

Что это даёт (реальные цифры с моих собственных мероприятий)

В 8 наборах данных: 3 690 заказов, 4 690 действительных билетов, ~2 770 уникальных людей и около A$61.4k выручки для MQIS (за вычетом платформенных комиссий; ~A$62.1k валовой продажи билетов). 238 человек посетили 2 и более различных мероприятия, из них 69 также имели членство.

В исходных данных есть три денежных столбца, и это не одно и то же: Ticket sales (валовая номинальная стоимость), Paid (сколько заплатил покупатель, включая сборы Humanitix) и Your earnings (сколько MQIS фактически получила). EventOps показывает Your earnings как «выручку MQIS», поэтому ключевая цифра честная.

Инструменты, доступные через MCP (server.py)

Инструмент

Что возвращает

list_events

Все наборы данных с их ключом и названием

get_event_metrics(event_name)

Заказы, билеты, чистая и валовая выручка, разбивка по платным/бесплатным/возвращённым, онлайн- и ручной каналы

get_sales_curve(event_name)

Продажи по времени, плюс % билетов, проданных за последние 48 часов / 7 дней

lookup_attendee(query)

Полная история одного человека по всем файлам, по email или по имени

find_loyal_members(min_events=2)

Постоянные посетители мероприятий и сколько из них являются членами

build_marketing_segment(target)

Список контактов с учётом согласия (только opt-in = Yes)

portfolio_summary

Итоговые суммы по всему

ИИ-CLI (cli.py)

python cli.py summary
python cli.py report      --event "Saazish"
python cli.py compare     --e1 "Raaz" --e2 "Saazish"
python cli.py draft-email --type promo --target non-members --event "Gulaal"
python cli.py attendee    --query "someone@example.com"

Добавьте --raw к любой команде, чтобы вывести лежащие в основе JSON-факты, а не текст, написанный ИИ. Это хороший способ убедиться в точности инструментов: вывод ИИ лишь пересказывает цифры из --raw.

Команда draft-email включает только тех людей, у которых Marketing opt-in равно Yes, поэтому черновик не создаётся для тех, кто не дал согласие.

Setup

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# 1. Sample data (safe, synthetic) so it runs out of the box:
python gen_sample_data.py

# 2. Or use real data: drop your Humanitix CSV exports into ./data/
#    (that folder is git-ignored and never committed)

# 3. For the CLI, set your key:
cp .env.example .env   # then edit, or just:
export ANTHROPIC_API_KEY=sk-ant-...

Если ./data пуст, EventOps автоматически переключается на ./sample_data, поэтому свежий клон работает сразу.

Подключение MCP-сервера к клиенту

Claude Desktop / Claude Code (claude_desktop_config.json):

{
  "mcpServers": {
    "eventops": {
      "command": "python",
      "args": ["/absolute/path/to/event-ops-mcp/server.py"]
    }
  }
}

Cursor (.cursor/mcp.json): то же самое. Перезапустите клиент, а затем задавайте вопросы вроде: «Using eventops, compare Raaz and Saazish» или «Кто наши самые постоянные посетители?» — и он вызовет инструменты.

Конфиденциальность данных

Реальные выгрузки содержат личные данные (имена, email-адреса, телефоны). Они находятся в ./data/, который игнорируется git. В коммит попадает только синтетические данные из ./sample_data/. Не коммитьте реальные данные посетителей.

Файлы

event-ops-mcp/
├── data/                # real Humanitix CSVs (git-ignored, you provide)
├── sample_data/         # synthetic CSVs, safe to commit
├── data_loader.py       # cleaning + all deterministic analytics
├── server.py            # FastMCP server exposing the tools
├── cli.py               # AI-enabled CLI (Anthropic API)
├── gen_sample_data.py   # builds the synthetic dataset
├── requirements.txt
├── .env.example
└── .gitignore

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects e-commerce and marketing data sources like Shopify, GA4, Google Ads, and Meta Ads to AI assistants, enabling natural language queries about store performance, ad campaigns, and customer behavior.
    11 npm
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server for the Humanitix Public API that exposes nine tools to list events, fetch event details, list orders/tickets, check-in counts, and sales summaries.
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that exposes aggregated Shotgun event sales, net revenue, ticket quotas, and audience stats to AI assistants via natural language queries.
    MIT