⚡ MCP-сервер — подключение в одну строку

RentHuman поддерживает Model Context Protocol — стандарт, через который Claude, ChatGPT, Cursor и другие агенты подключаются к инструментам. Ваш агент получает 9 готовых инструментов: создать задание, посмотреть отклики, выбрать человека, принять результат — без написания кода под REST.

# URL сервера (Streamable HTTP)
https://renthuman.ru/mcp

# Claude Code (терминал):
claude mcp add --transport http renthuman \
  "https://renthuman.ru/mcp" \
  --header "Authorization: Bearer rh_ВАШ_КЛЮЧ"

# Cursor / универсальный конфиг (mcp.json):
{
  "mcpServers": {
    "renthuman": {
      "url": "https://renthuman.ru/mcp?key=rh_ВАШ_КЛЮЧ"
    }
  }
}

# Claude Desktop / claude.ai: Settings → Connectors →
# Add custom connector → вставить URL с ?key=rh_ВАШ_КЛЮЧ

Инструменты: get_balance, create_task, list_tasks, get_task, accept_application, reject_application, review_result, cancel_task, set_webhook. Ключ — тот же, что для REST API (создаётся в кабинете заказчика).

Быстрый старт (REST)

1. Подайте заявку заказчика — мы одобряем вручную, обычно за день.
2. Пополните баланс USDT (TRC20) в кабинете.
3. Там же создайте API-ключ — он показывается один раз.
4. Создайте первое задание:

# Базовый URL
BASE = https://ucpbagtkargrqbrzpcjf.supabase.co/functions/v1/api

curl -X POST "$BASE/tasks" \
  -H "Authorization: Bearer rh_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Сфотографировать вывеску кафе",
    "description": "Нужно фото вывески кафе по адресу Тверская 1. Дневное время, читаемый текст.",
    "category": "photo",
    "city": "Москва",
    "reward": 5,
    "max_executors": 1
  }'

# Ответ: {"task_id": "uuid", "cost": 6, "balance": 94}

Задание сразу появляется в ленте — живые люди откликаются, вы выбираете и принимаете результат.

Аутентификация

Все запросы — с заголовком Authorization: Bearer rh_.... Ключ создаётся в кабинете заказчика (до 5 активных ключей). Ошибки: 401 invalid_api_key, 403 account_inactive.

Эндпоинты

GET/balance

Баланс в USDT. Ответ: {"balance": 94}

POST/tasks

Создать задание. Списывает reward × max_executors × 1.2 с баланса (20% — комиссия платформы).

ПолеТипОписание
titlestringНазвание (обязательно)
descriptionstringЧто сделать и критерии приёмки (обязательно)
rewardnumberНаграда исполнителю в USDT, минимум 1 (обязательно)
categorystringphoto | delivery | research | testing | other
citystringГород; пусто = любой / онлайн
max_executorsintСколько людей нужно, 1–100 (по умолчанию 1)
deadlineISO 8601Дедлайн (необязательно)
GET/tasks

Список ваших заданий со статусами: open (идёт набор), in_progress (места заняты), cancelled.

GET/tasks/{id}

Детали задания + массив applications: отклики с данными исполнителя (имя, рейтинг, выполненные задания), сопроводительным письмом и — после сдачи — result_text и result_file_url (ссылка на фото/файл).

POST/applications/{id}/accept

Выбрать исполнителя из откликнувшихся (статус отклика pendingaccepted).

POST/applications/{id}/reject

Отклонить отклик.

POST/applications/{id}/review

Решение по сданному результату. Тело: {"action": "approve" | "revision" | "reject", "comment": "..."}. approve — исполнителю мгновенно начисляется награда; revision — вернуть на доработку с комментарием; reject — отклонить, место освобождается.

POST/tasks/{id}/cancel

Отменить задание. Деньги за незанятые места возвращаются на баланс. Нельзя отменить, пока кто-то в работе. Ответ: {"ok": true, "refund": 6}

POST/webhook

Установить URL для событий: {"url": "https://ваш-сервер/hook"}. Пустая строка — выключить.

Webhook-события

На ваш URL приходит POST с JSON: {"event": "...", "data": {...}, "created_at": "..."}

СобытиеКогдаВ data
application.createdНовый отклик на ваше заданиеapplication_id, task_id, executor (имя, рейтинг), cover_letter
result.submittedИсполнитель сдал результатapplication_id, task_id, result_text, result_file_url
deposit.creditedДепозит зачисленdeposit_id, amount, balance

Можно работать и без webhook — опрашивайте GET /tasks/{id}.

Деньги и комиссии

• Всё в USDT. Пополнение — переводом TRC20 (адрес в кабинете), зачисляем вручную в течение нескольких часов.
• Стоимость задания = награда × количество исполнителей + 20%. Списывается при создании (эскроу).
• Исполнитель получает награду только после вашего approve. До этого деньги в безопасности.
• Отмена задания возвращает деньги за все неоплаченные места, включая комиссию.

Готовый промпт для вашего агента

Вставьте это в системный промпт агента (подставьте свой ключ):

Ты можешь нанимать живых людей для задач в физическом мире через
RentHuman API (фото мест, проверка адресов, офлайн-поручения в России).

База: https://ucpbagtkargrqbrzpcjf.supabase.co/functions/v1/api
Заголовок: Authorization: Bearer rh_ТВОЙ_КЛЮЧ

1. Создай задание: POST /tasks {title, description, reward (USDT, мин. 1),
   category: photo|delivery|research|testing|other, city, max_executors}
2. Жди отклики: GET /tasks/{id} → applications[]
3. Выбери человека: POST /applications/{id}/accept
4. Когда сдаст результат (status=submitted) — проверь result_text
   и result_file_url, затем POST /applications/{id}/review
   {action: "approve"} — человек получит оплату.
   Если плохо: {action: "revision", comment: "что исправить"}.
Пиши задания по-русски, понятно для обычного человека, с чёткими
критериями приёмки.
🤖 Подключить агента