Справочник инструментов
Эта страница документирует пять MCP-инструментов коннектора Kurslog. Все инструменты только для чтения (readOnlyHint: true). Ответы — JSON, хорошо укладываются в лимит MCP 25 000 токенов.
Общие аргументы
| Аргумент | Тип | Описание |
|---|---|---|
locale | "uk" | "ru" | "en" | Язык ответа. По умолчанию uk. |
from_currency | строка ≤ 40 симв. | Slug исходной валюты (напр. usdt-trc20). |
to_currency | строка ≤ 40 симв. | Slug целевой валюты (напр. monobank-uah, cash-uah). |
city | строка ≤ 50 симв. | Опциональный slug города (напр. kyiv) для наличных направлений. |
list_currencies
Назначение: получить валютные коды для других инструментов.
Cache TTL: 3600 с.
Аргументы:
{
"locale": "ru",
"only_with_rates": true, // по умолч. true
"limit": 200 // 1..300, по умолч. 200
}
Пример ответа (сокращено):
{
"count": 200,
"locale": "ru",
"currencies": [
{"code": "usdt-trc20", "name": "USDT TRC20", "asset": "USDT",
"popularity": 1, "tags": ["USDT"], "has_rates": true},
{"code": "bitcoin", "name": "Bitcoin", "asset": "BTC",
"popularity": 2, "tags": ["Crypto"], "has_rates": true}
]
}
find_best_rate
Назначение: топ-3 лучших предложений для пары, опционально с городом.
Cache TTL: 60 с.
Аргументы:
{
"from_currency": "usdt-trc20",
"to_currency": "cash-uah",
"city": "kyiv", // опц.
"locale": "ru"
}
Пример ответа:
{
"direction": {"from": "usdt-trc20", "to": "cash-uah", "city": "kyiv"},
"best_offers": [
{
"exchanger_name": "Dvizh",
"exchanger_slug": "dvizh",
"exchanger_rating": 5.0,
"trust_status": "Diamond",
"rate_in": 1,
"rate_out": 44.13,
"reserves": 170916400.39,
"min_amount": 566.45,
"max_amount": 2000000,
"kurslog_link": "https://kurslog.com/usdt-trc20-to-cash-uah-in-kyiv"
}
// ... до 3 элементов
],
"disclaimer": "Rates may be stale up to 5 minutes..."
}
Пустой результат: если нет обменников (неверная пара, несуществующий город) — возвращается структурированный success с results: [] и поясняющим message, а не исключение.
compare_exchangers
Назначение: расширенный список (до 20) с trust score, резервами, ссылками на профиль.
Cache TTL: 60 с.
Аргументы:
{
"from_currency": "bitcoin",
"to_currency": "monobank-uah",
"limit": 10, // 1..20, по умолч. 10
"city": null, // опц.
"locale": "ru"
}
Тот же формат ответа, что и у find_best_rate, но массив exchangers до limit элементов, каждый обогащён trust_score (число) и profile_link.
get_exchanger_profile
Назначение: профиль одного обменника — trust, контакты, дата основания.
Cache TTL: 600 с.
Аргументы:
{
"exchanger_slug": "digichanger",
"locale": "ru"
}
Пример ответа:
{
"name": "Digichanger",
"slug": "digichanger",
"status": "active",
"founding_date": "2023-05-19",
"website": "https://www.digichanger.pro",
"trust": {
"label": "Diamond",
"name": "diamond",
"explanation": "Отзывы: 3338 в 4 мониторингах. На рынке: 3 года.",
"domain_age_years": 3.01
},
"kurslog_profile": "https://kurslog.com/exchanger/digichanger"
}
find_cities_for_direction
Назначение: украинские (и соседние) города, где наличное направление сейчас активно.
Cache TTL: 3600 с.
Аргументы:
{
"from_currency": "usdt-trc20",
"to_currency": "cash-eur",
"limit": 15, // 1..30, по умолч. 15
"locale": "ru"
}
Пример ответа (сокращено):
{
"direction": {"from": "usdt-trc20", "to": "cash-eur"},
"count": 15,
"cities": [
{"city": "Киев", "slug": "kyiv", "exchanger_count": 16,
"best_rate": 0.0234, "kurslog_link": "https://kurslog.com/usdt-trc20-to-cash-eur-in-kyiv"}
// ...
]
}
Обработка ошибок
Каждый инструмент следует конвенции MCP. Неудачные запросы или неизвестные slug-и не поднимают MCP isError: true. Вместо этого возвращается структурированный пустой результат с полем message на человеческом языке. Это позволяет Claude дать полезный ответ вместо stack trace.
Rate limits
На уровне nginx действует лимит 60 req/min/IP. Вместе с per-tool кешированием при обычном использовании Claude вы никогда в него не упрётесь. Если всё же упрётесь — получите 429 от HTTP-слоя.