yourept-mcp
by Skamatoz
README.md
# yourept-mcp
MCP-сервер к CRM **YOUREPT**. Подключается к Claude, Cursor, Codex и другим
клиентам MCP и даёт агенту доступ к данным админки — заявкам, ученикам,
преподавателям, урокам, платежам, выплатам и финансовым отчётам.
Вопросы, ради которых он существует:
> «Сколько заработали в этом месяце и сколько ушло на выплаты?»
> «Какие заявки просрочены и у кого из менеджеров?»
> «Покажи учеников, у которых не было уроков две недели»
> «Какие преподаватели не подписали сделку в Рокет Ворк»
То есть то, ради чего в интерфейсе пришлось бы открыть три раздела и свести
цифры руками.
---
## Установка
### 1. Получите ключ
В админке: **Настройки → API-ключи → Создать ключ**. Ключ показывается
**один раз** — скопируйте сразу. Потеряли — выпустите новый, старый отзовите.
Ключ работает от имени того сотрудника, который его выпустил, и с его правами:
разделы, закрытые для человека, закрыты и для агента. Ключ «только для чтения»
(по умолчанию) физически не может ничего изменить в CRM.
### 2. Пропишите сервер в своей программе
Отдельно ставить ничего не нужно — `npx` скачает пакет сам.
> Пакет ставится прямо с GitHub. После публикации в npm вместо
> `github:Skamatoz/yourept-mcp` можно будет писать просто `yourept-mcp`.
**Claude Desktop** — Настройки → Developer → Edit Config:
```json
{
"mcpServers": {
"yourept": {
"command": "npx",
"args": ["-y", "github:Skamatoz/yourept-mcp"],
"env": {
"YOUREPT_API_URL": "https://api-admin.yourept.ru",
"YOUREPT_API_KEY": "yrp_live_ваш_ключ"
}
}
}
}
```
**Claude Code:**
```bash
claude mcp add yourept \
--env YOUREPT_API_URL=https://api-admin.yourept.ru \
--env YOUREPT_API_KEY=yrp_live_ваш_ключ \
-- npx -y github:Skamatoz/yourept-mcp
```
**Cursor** — файл `~/.cursor/mcp.json`, формат тот же, что у Claude Desktop.
**Codex** — файл `~/.codex/config.toml`:
```toml
[mcp_servers.yourept]
command = "npx"
args = ["-y", "github:Skamatoz/yourept-mcp"]
[mcp_servers.yourept.env]
YOUREPT_API_URL = "https://api-admin.yourept.ru"
YOUREPT_API_KEY = "yrp_live_ваш_ключ"
```
После правки конфига программу нужно перезапустить.
---
## Что умеет
| Инструмент | О чём |
|---|---|
| `search` | поиск по всей CRM: люди, заявки, платежи, выплаты |
| `list_leads`, `get_lead` | заявки, в том числе проблемные группы |
| `list_students`, `get_student` | ученики и их контракты |
| `list_teachers`, `get_teacher` | преподаватели, ставки, статус самозанятого |
| `list_lessons` | уроки за период, включая неотмеченные |
| `list_enrollments` | контракты, ставки, остатки на балансе |
| `list_tasks` | задачи сотрудников и проверки контроля качества |
| `list_trial_scores` | ИИ-оценки пробных уроков |
| `list_payments` | приход денег от родителей |
| `list_payouts` | выплаты преподавателям и этапы сделок Рокет Ворк |
| `finance_report` | P&L, движение денег, когорты |
| `dashboard` | сводки: финансы, воронка, удержание, юнит-экономика |
| `alerts` | что требует внимания прямо сейчас |
| `whoami` | от чьего имени работает ключ и какие разделы доступны |
Суммы отдаются в рублях, время — московское.
---
## Если что-то не работает
**«Ключ недействителен»** — ключ отозван, истёк или скопирован с потерей
символов. Проверьте его в админке и при необходимости выпустите новый.
**«Недостаточно прав»** — у сотрудника, на которого выписан ключ, нет доступа
к этому разделу. Спросите у агента `whoami`: он покажет, какие разделы открыты.
**«Ключ выдан только на чтение»** — ожидаемо: ключ по умолчанию ничего не меняет.
**«Админка не ответила»** — проверьте `YOUREPT_API_URL`. Адрес нужен тот, по
которому работает API (обычно начинается с `api-`), а не адрес самого сайта
админки.
**Сервер не появился в списке** — почти всегда незакрытая скобка или лишняя
запятая в конфиге. В админке на экране выпуска ключа есть готовый сниппет
для копирования целиком.
---
## Безопасность
- В базе хранится только хэш ключа — восстановить ключ из неё нельзя.
- Ключ наследует права своего сотрудника и не может их превысить.
- Ключом нельзя управлять ключами: выписать себе новый доступ через API не выйдет.
- Отзыв действует мгновенно.
- Персональные данные, которых нет в интерфейсе (расшифровки пробных уроков),
через этот сервер недоступны.
При увольнении сотрудника отзывайте его ключи вместе с учётной записью.
---
## Разработка
```bash
pnpm install
pnpm build # tsc → dist/
```
Проверить сервер, не подключая к клиенту:
```bash
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| YOUREPT_API_URL=http://localhost:4001 YOUREPT_API_KEY=ключ node dist/index.js
```
Диагностика идёт в stderr — в stdout только протокол, туда писать нельзя.
TDQS
A3.6/5.0
Scored across 17 tools
Disambiguation4/5
工具大多针对不同实体(线索、学生、教师、课程、支付等),search明确用于按名称/电话查找ID,与列表工具区分。但list_leads与alerts、list_lessons与list_trial_scores存在部分重叠,描述提供了指引,故为4分。
Naming Consistency4/5
大部分工具遵循list_X或get_X的整洁模式(11个工具),但search、whoami、finance_report、dashboard和alerts不符合,混合了动词和名词。虽然存在异常,但整体模式明显且可预测,所以为4分。
Tool Count5/5
17个工具覆盖了多个实体(线索、学生、教师、课程、合同、任务、付款、支出)以及搜索、报告、仪表板和警报,每个都有明确用途,没有明显冗余,工具数量对于该领域的复杂性是恰当的。
Completeness3/5
提供了主要实体的列表和获取工具(线索、学生、教师),但课程、合同、任务和付款只有列表,没有单独的获取工具。此外,没有创建、更新或删除操作,表明这是一个只读服务器,但对于查询目的,缺少get_lesson、get_enrollment、get_task等会限制深度访问,因此为3分。
Maintenance
ActivityMaintained
ResponsivenessNo issues