Roistat MCP Server
README.md
# Roistat MCP Server
MCP (Model Context Protocol) сервер для интеграции с платформой маркетинговой аналитики **Roistat**. Позволяет AI-агентам (Claude, GPT и др.) напрямую работать с данными Roistat: анализировать статистику, управлять лидами, отслеживать звонки и каналы.
---
## Возможности
### 📊 Аналитика
| Инструмент | Описание |
|---|---|
| `roistat_get_statistics` | Маркетинговая статистика: визиты, лиды, ROI, CPL по каналам/кампаниям |
| `roistat_get_report` | Гибкий отчёт с группировкой по дням/неделям/месяцам |
### 🎯 Лиды и заявки
| Инструмент | Описание |
|---|---|
| `roistat_list_leads` | Список лидов с фильтрацией по дате, статусу |
| `roistat_get_lead` | Детальная информация о конкретном лиде |
| `roistat_update_lead` | Обновление статуса, выручки, полей лида |
| `roistat_create_lead` | Создание нового лида (оффлайн-конверсии) |
### 📞 Коллтрекинг
| Инструмент | Описание |
|---|---|
| `roistat_list_calls` | История звонков с фильтрацией |
| `roistat_get_call` | Детали звонка: источник, запись, длительность |
| `roistat_list_phones` | Список подменных номеров |
### 📡 Рекламные каналы
| Инструмент | Описание |
|---|---|
| `roistat_list_channels` | Все маркетинговые каналы проекта |
| `roistat_get_channel_costs` | Расходы по каналам за период |
| `roistat_set_channel_costs` | Ручная загрузка расходов (оффлайн-каналы) |
### ⚙️ Проект
| Инструмент | Описание |
|---|---|
| `roistat_get_project_info` | Информация о проекте, настройки, интеграции |
| `roistat_list_events` | Конверсионные события |
| `roistat_send_event` | Ручная отправка события конверсии |
| `roistat_get_billing` | Тариф, баланс, статистика использования |
| `roistat_get_mediaplan` | Медиаплан: план vs факт по каналам |
---
## Установка
### Требования
- Node.js 18+
- npm или yarn
- Аккаунт Roistat с API-доступом
### Шаги
```bash
git clone <repo-url>
cd roistat-mcp-server
npm install
npm run build
```
### Переменные окружения
```bash
# Обязательные
ROISTAT_API_KEY=ваш_api_ключ # Профиль → API-ключ
ROISTAT_PROJECT_ID=12345 # Номер проекта (из URL или настроек)
# Опциональные
TRANSPORT=stdio # или "http" для удалённого сервера
PORT=3000 # только при TRANSPORT=http
```
**Где найти API ключ:**
Roistat → Настройки → API-ключ → Скопировать
---
## Запуск
### stdio (локально, для Claude Desktop / Claude Code)
```bash
ROISTAT_API_KEY=xxx ROISTAT_PROJECT_ID=12345 node dist/index.js
```
### HTTP (удалённое развёртывание, VPS/Docker)
```bash
TRANSPORT=http PORT=3000 ROISTAT_API_KEY=xxx ROISTAT_PROJECT_ID=12345 node dist/index.js
```
---
## Конфигурация Claude Desktop
Добавьте в `claude_desktop_config.json`:
```json
{
"mcpServers": {
"roistat": {
"command": "node",
"args": ["/path/to/roistat-mcp-server/dist/index.js"],
"env": {
"ROISTAT_API_KEY": "ваш_api_ключ",
"ROISTAT_PROJECT_ID": "12345"
}
}
}
}
```
## Конфигурация для HTTP (OpenClaw / удалённый MCP)
```json
{
"mcpServers": {
"roistat": {
"url": "http://your-vps-ip:3000/mcp",
"type": "streamable-http"
}
}
}
```
---
## Docker-деплой (для Hostinger VPS)
```dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist/ ./dist/
EXPOSE 3000
ENV TRANSPORT=http
CMD ["node", "dist/index.js"]
```
```bash
docker build -t roistat-mcp .
docker run -d -p 3000:3000 \
-e ROISTAT_API_KEY=xxx \
-e ROISTAT_PROJECT_ID=12345 \
roistat-mcp
```
---
## Примеры запросов к Claude
После подключения MCP спрашивайте Claude:
- *"Покажи ROI по каналам за последние 30 дней"*
- *"Сколько лидов пришло из Яндекс.Директ в марте?"*
- *"Найди все непринятые звонки за вчера и создай по ним задачи"*
- *"Загрузи расходы по оффлайн-каналу 500 рублей за сегодня"*
- *"Сравни CPL апреля с мартом по всем каналам"*
- *"Обнови статус лида #12345 на 'Оплачен', выручка 15000 руб"*
---
## Структура проекта
```
roistat-mcp-server/
├── src/
│ ├── index.ts # Точка входа, инициализация сервера
│ ├── services/
│ │ └── roistat-client.ts # HTTP-клиент для Roistat API
│ └── tools/
│ ├── analytics.ts # Статистика и отчёты
│ ├── leads.ts # Лиды и заявки
│ ├── calltracking.ts # Коллтрекинг
│ ├── channels.ts # Каналы и расходы
│ └── project.ts # Проект, события, биллинг
├── dist/ # Скомпилированные файлы
├── package.json
└── tsconfig.json
```
---
## Лицензия
MIT