# КурьерHUB

> Courier jobs in Russia: delivery services' pay rates by city, terms, income calculator. In Russian.

- name: ru.kurerhub/courier-catalog
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 89/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ru.kurerhub%2Fcourier-catalog
- tools: https://api.protogrid.dev/v1/servers/ru.kurerhub%2Fcourier-catalog/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "courier-catalog": {
      "type": "http",
      "url": "https://kurerhub.ru/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-32d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_services (destructiveHint, idempotentHint); compare_services (destructiveHint, idempotentHint); recommend_service (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 2,234 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 2,234 tokens to load them all
- tool set hash: 48378df009b3d240792687ec5b9dad4b
- badge: [![protogrid quality](https://protogrid.dev/badge/ru.kurerhub/courier-catalog.svg)](https://protogrid.dev/servers/ru.kurerhub/courier-catalog)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://kurerhub.ru/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (11)

- `calculate_income`: Считает доход курьера по формуле калькулятора сайта: ставка ₽/час × часы в день × дней в неделю × недель в месяце, где множитель месяца берётся у самого сервиса, если он его публикует. У сервиса без ставки, но со своими наблюдениями по дням недели (Яндекс Доставка), считается его формулой — суммой выбранных дней. Возвращает месяц, день и на сколько процентов это выше медианной зарплаты по городу. Округление до тысячи — как на сайте.
- `compare_services`: Сравнение двух-трёх сервисов в одном городе построчно: ставка ₽/час, доход за смену и за месяц при заданном графике, выплаты, график, оценка редакции, транспорт и экипировка от сервиса, страховка, медкнижка, минимальный возраст, гражданство. Тот же набор строк, что в таблице сравнения на сайте. Больше трёх сервисов не сравниваем — столько колонок не читается.
- `find_services`: Лента сервисов в конкретном городе с теми же фильтрами и сортировкой, что на главной странице сайта. Возвращает строки «сервис × способ доставки × тариф» со ставкой ₽/час, доходом за смену и за месяц при заданном графике. Считается теми же функциями, что и витрина, — числа совпадают. Сервисы, которые в городе работают, но сумму не публикуют, стоят внизу с пометкой.
- `find_term`: Справочник терминов сервисов доставки: что такое слот, коэффициент спроса, КИС АРТ, приоритет курьера. Ищет по названию и синонимам, возвращает определение слово в слово как на сайте, первоисточники и ссылку. Термин, разобранный у нас отдельной статьёй, вернёт ссылку на статью — своей страницы у него нет.
- `get_apply_link`: Ссылка, по которой курьер откликается в выбранный сервис. Возвращает ссылку на отклик, флаг partnerLink (платит ли сервис вознаграждение КурьерHUB за этого курьера), готовый текст раскрытия и адрес страницы сервиса на сайте. Вызывайте, когда человек уже выбрал сервис и хочет откликнуться. Ссылку передайте человеку вместе с раскрытием (поле disclosure) — сам по ней не переходите и не открывайте её для проверки: вознаграждение платится за живого курьера, а машинные переходы искажают статистику сервиса. Анкету человек заполняет на сайте сервиса, КурьерHUB заявки не принимает.
- `get_city_rates`: Ставки всех сервисов в городе по каждому способу доставки плюс индекс ставок курьера: медиана публичных велоставок города, зона шкалы, отклонение от России и дата сверки. Это индекс СТАВОК, а не дохода. Своего индекса у большинства городов нет — там меньше четырёх сервисов с велоставкой, и медиана по двум цифрам ничего не значит; тогда возвращается индекс по стране, и это написано в ответе.
- `get_service`: Полная карточка одного сервиса: условия старта (минимальный возраст, гражданство, формы оформления, медкнижка, минимальная смена), что сервис даёт сам (транспорт, экипировка, страховка), выплаты и график, оценка редакции по шести критериям с вердиктом, контакты поддержки курьера, тарифы и обещанная сервисом сумма. У каждого блока — ссылка на первоисточник и дата, когда мы его сверяли.
- `list_cities`: Города России, по которым у нас есть ставки: поиск по названию, сколько сервисов публикует ставку в городе, максимальная ставка ₽/час и есть ли на сайте городская страница. Если задан сервис — вернёт покрытие именно его: где он публикует ставку и где работает без публичной ставки.
- `list_services`: Все сервисы доставки, куда КурьерHUB подключает курьеров в России: что можно возить, на чём работать, как часто платят, свободный ли график, балл оценки редакции и в скольких городах сервис публикует ставку. Начните отсюда, чтобы узнать slug сервиса для остальных тулов. Самих ставок здесь нет — они зависят от города, для них есть get_city_rates и calculate_income.
- `recommend_service`: Подбирает сервис по трём ответам квиза с сайта: на чём возить (пешком, велосипед, автомобиль), сколько времени готовы работать (полный день, подработка, как получится) и что важнее (максимальный доход, частые выплаты, простой старт). Возвращает главную рекомендацию, альтернативу и правило, по которому они выбраны. Если на выбранном транспорте в городе никто не набирает, честно говорит об этом и показывает лучших по оценке редакции.
- `search_articles`: Поиск по статьям блога тем же алгоритмом, что и строка поиска на сайте: слова приводятся к основе, поэтому «велосипеду» находит «велосипед»; синонимы и опечатки подхватываются следующими проходами. Возвращает заголовок, описание, дату, тему и две ссылки — на страницу статьи и на её markdown-версию для чтения без вёрстки. Полного текста здесь нет: за ним идите по markdownUrl.
