Личный кабинет

Главная → Документация → MCP-сервер для проверки автомобилей

MCP-сервер для проверки автомобилей

MCP-сервер AvtoVinCod подключает проверку автомобилей к ИИ-ассистентам и агентам: Claude, Cursor, VS Code и другим клиентам с поддержкой Model Context Protocol. Ассистент сам вызывает нужные проверки по VIN, госномеру или номеру кузова и разбирает ответ.

Адрес https://api.avtovincod.ru/mcpТранспорт Streamable HTTPАвторизация API-токенИнструментов 34

Зачем это нужно

Обычная интеграция API выглядит так: программист читает документацию каждого метода, пишет вызовы, разбирает JSON и собирает из ответов отчёт. С MCP эту работу делает ИИ-ассистент. Вы подключаете один адрес, а ассистент сам понимает, какие проверки нужны под вопрос, вызывает их, сводит ответы и объясняет результат обычным языком.

Как это используют

Бот для выкупа и трейд-ина

Менеджер отправляет боту VIN или госномер и через минуту получает сводку: можно выкупать или есть риски.

"Проверь Т000ТТ00 перед выкупом"

Модерация объявлений

Ассистент модератора находит VIN по госномеру из объявления и сверяет марку, год, ограничения и розыск.

"Совпадает ли объявление с данными ГИБДД?"

Лизинг и страхование

Список VIN из таблицы ассистент проходит по одному и возвращает таблицу: залог, ОСАГО, ДТП, статус регистрации.

"Проверь эти 30 VIN на залог и собери таблицу"

Автопарк и логистика

Ежедневная сводка по парку: неоплаченные штрафы по СТС, сроки пропусков на МКАД, разрешения КТГ.

"У каких машин кончается пропуск на этой неделе?"

Разработчикам

В Cursor или Claude Code ассистент видит схемы всех методов и пишет интеграцию на живых ответах. Тестовые значения бесплатны.

"Напиши функцию проверки залога для нашей CRM"

Руководителю

Свой коннектор в Claude: разовые проверки и вопросы по балансу без кабинета и без программиста.

"Сколько осталось на балансе?"

Как выглядит разговор

Пример на тестовом VIN: ответы-образцы приходят бесплатно, на реальном номере ассистент получит данные из реестров.

Клиент сдаёт в трейд-ин LADA Vesta, VIN X7TEST00000000001. Проверь перед выкупом: залог, ограничения, ДТП и пробег.
вызвано: restrictions_wantedpledge_checkaccidents_archivemileage_inspections
Выкупать без снятия обременений нельзя: есть залог и запрет на регистрацию.
  • Залог действует с 12.04.2023, залогодержатель - банк.
  • Запрет на регистрационные действия от судебного пристава, исполнительное производство от 01.09.2026. Розыска нет.
  • Одно ДТП: 15.03.2024, столкновение, Москва.
  • Пробег по техосмотрам: 31 000 км в мае 2023, 64 000 км в мае 2025, скручивания не видно.
  • Владельцы: юрлицо с 2021 по 2023, сейчас физлицо.
Списано: 0 ₽ (тестовый VIN). На реальном номере 4 проверки по тарифу.

Как это работает

Подключение

Claude Code

claude mcp add --transport http avtovincod https://api.avtovincod.ru/mcp \
  --header "Authorization: Bearer ВАШ_ТОКЕН"

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "avtovincod": {
      "url": "https://api.avtovincod.ru/mcp",
      "headers": { "Authorization": "Bearer ВАШ_ТОКЕН" }
    }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "avtovincod": {
      "type": "http",
      "url": "https://api.avtovincod.ru/mcp",
      "headers": { "Authorization": "Bearer ВАШ_ТОКЕН" }
    }
  }
}

Claude (веб и приложение): свой коннектор

Если ваш тариф Claude позволяет добавлять свои коннекторы, откройте в настройках раздел Connectors, нажмите Add custom connector и вставьте адрес с токеном:

https://api.avtovincod.ru/mcp?token=ВАШ_ТОКЕН

Токен в адресе нужен клиентам, в которых нельзя задать заголовок. Такой адрес - это ключ к вашему балансу: не публикуйте его. Для отдельного ассистента удобно завести отдельный токен с белым списком IP и лимитом запросов в кабинете.

Любой клиент или свой агент

Сервер принимает JSON-RPC 2.0 запросом POST https://api.avtovincod.ru/mcp с заголовком Authorization: Bearer ТОКЕН, отвечает application/json, без сессий. Методы: initialize, tools/list, tools/call, ping.

curl -s https://api.avtovincod.ru/mcp \
  -H "Authorization: Bearer $AVC_TOKEN" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"pledge_check","arguments":{"vin":"X7TEST00000000001"}}}'

Инструменты

ИнструментЧто делает
registration_historyИстория регистрации
registration_history_archiveИстория регистрации (архив)
restrictions_wantedОграничения и розыск
vin_by_plateVIN по госномеру
plate_by_vinГосномер по VIN
plate_historyИстория госномеров
vehicle_briefКраткие данные ТС
vin_decodeРасшифровка VIN
engine_numberНомер двигателя
model_pros_consПлюсы и минусы модели
taxi_checkПроверка такси
pledge_checkРеестр залогов
fines_checkШтрафы ГИБДД
epts_checkЭлектронный ПТС
mileage_inspectionsТехосмотр и пробег
osago_checkПолисы ОСАГО
osago_historyИстория полисов ОСАГО
car_photosФотографии автомобиля
carsharing_checkПроверка каршеринга
service_historyСервисная история
leasing_checkПроверка лизинга
accidents_archiveИстория ДТП (архив)
accidents_gibddДТП по базе ГИБДД
customs_checkРастаможка
sale_adsОбъявления о продаже
recalls_checkОтзывные кампании
market_priceРыночная оценка
court_casesСудебные дела
disabled_registryРеестр инвалидов
truck_passПропуска на МКАД
rnis_checkПроверка ТС в РНИС
ktg_permitРазрешение КТГ
enforcement_lookupИсполнительные производства
europrotocol_accidentsДТП по европротоколу
hidden_damage_checkСкрытые ДТП и повреждения
vin_precheckНаличие данных по VIN: в каких отчётах есть записи, ответ сразу
carfax_reportCARFAX: история авто из США и Канады, асинхронно: vin - заказ, task - опрос
autocheck_reportAutoCheck: оценка и история авто из США и Канады, асинхронно
usa_auction_photosVinHistory: фото авто с аукционов США, асинхронно
auction_lotsАукционные лоты США и Кореи: цены и фото, асинхронно
belarus_historyИстория авто в Беларуси, асинхронно
vag_equipment_pdfКомплектация VAG по ETKA (PDF), асинхронно
balanceБаланс

У каждого инструмента описаны параметры (vin, plate, body и другие) и тестовые значения: ассистент подставит их сам, если попросить "проверь на тестовых данных".

Пример: Telegram-бот для менеджеров

Бот принимает сообщение, отдаёт его модели вместе со списком инструментов AvtoVinCod, модель сама выбирает проверки, бот выполняет их через MCP-сервер и присылает ответ в чат. Подходит любая модель с вызовом функций через OpenAI-совместимый API. Нужен только Python и пакет requests.

  1. В кабинете заведите для бота отдельный токен и задайте ему лимит запросов: бот тратит деньги с баланса.
  2. Создайте бота у @BotFather и узнайте id своих сотрудников: боту можно писать только им (ALLOWED_IDS).
  3. Возьмите адрес и ключ API модели с вызовом функций (function calling).
  4. Запустите скрипт на сервере или в облаке; проверьте на тестовом VIN X7TEST00000000001, это бесплатно.
pip install requests
export AVC_TOKEN=токен_AvtoVinCod  TG_TOKEN=токен_бота  ALLOWED_IDS=123456789,987654321
export LLM_URL=https://адрес-api-модели/v1  LLM_KEY=ключ_модели  LLM_MODEL=название_модели
python3 avc_bot.py
# Telegram-бот: проверка авто через MCP-сервер AvtoVinCod и любую модель с вызовом функций
# (OpenAI-совместимый API). Нужен только пакет requests: pip install requests
import json, os, requests

AVC_TOKEN = os.environ["AVC_TOKEN"]            # токен AvtoVinCod (лучше отдельный, с лимитами)
TG_TOKEN  = os.environ["TG_TOKEN"]             # токен бота от @BotFather
LLM_URL   = os.environ["LLM_URL"]              # адрес OpenAI-совместимого API модели, до /chat/completions
LLM_KEY   = os.environ["LLM_KEY"]
LLM_MODEL = os.environ["LLM_MODEL"]
ALLOWED   = {int(x) for x in os.environ["ALLOWED_IDS"].split(",")}   # кому можно писать боту
MCP_URL   = os.environ.get("MCP_URL", "https://api.avtovincod.ru/mcp")
TG        = os.environ.get("TG_API", "https://api.telegram.org") + "/bot" + TG_TOKEN

SYSTEM = ("Ты помощник менеджера по проверке автомобилей. Проверки делай только инструментами AvtoVinCod, "
          "данные не придумывай. Каждая проверка платная: вызывай только то, что нужно для вопроса. "
          "Ответ: сначала вывод одной строкой (можно брать или есть риски), потом факты по пунктам. "
          "В конце напиши, сколько списано всего (сумма charged из блоков billing).")


def mcp(method, params=None):
    r = requests.post(MCP_URL, timeout=150, json={"jsonrpc": "2.0", "id": 1, "method": method, "params": params or {}},
                      headers={"Authorization": "Bearer " + AVC_TOKEN})
    return r.json()["result"]


# инструменты AvtoVinCod в формате function calling
TOOLS = [{"type": "function", "function": {"name": t["name"], "description": t["description"],
                                           "parameters": t["inputSchema"]}} for t in mcp("tools/list")["tools"]]


def ask(text):
    msgs = [{"role": "system", "content": SYSTEM}, {"role": "user", "content": text}]
    for _ in range(8):                                   # модель может вызвать несколько проверок подряд
        r = requests.post(LLM_URL + "/chat/completions", timeout=120, headers={"Authorization": "Bearer " + LLM_KEY},
                          json={"model": LLM_MODEL, "messages": msgs, "tools": TOOLS}).json()
        m = r["choices"][0]["message"]
        msgs.append(m)
        if not m.get("tool_calls"):
            return m.get("content") or "Пустой ответ модели"
        for c in m["tool_calls"]:                        # вызов проверки на сервере AvtoVinCod
            res = mcp("tools/call", {"name": c["function"]["name"], "arguments": json.loads(c["function"]["arguments"] or "{}")})
            msgs.append({"role": "tool", "tool_call_id": c["id"], "content": res["content"][0]["text"]})
    return "Слишком много шагов, уточните вопрос"


def main():
    offset = 0
    while True:
        for u in requests.get(TG + "/getUpdates", params={"offset": offset, "timeout": 50}, timeout=60).json()["result"]:
            offset = u["update_id"] + 1
            msg = u.get("message") or {}
            chat, text = msg.get("chat", {}).get("id"), msg.get("text")
            if not text or chat not in ALLOWED:
                continue
            requests.post(TG + "/sendChatAction", json={"chat_id": chat, "action": "typing"})
            try:
                answer = ask(text)
            except Exception as e:
                answer = "Ошибка: " + str(e)[:200]
            for i in range(0, len(answer), 4000):
                requests.post(TG + "/sendMessage", json={"chat_id": chat, "text": answer[i:i + 4000]})


if __name__ == "__main__":
    main()

Мы проверили этот код целиком: бот получает инструменты с сервера, модель вызывает две проверки, ответы приходят через MCP, сообщение уходит в чат, а сообщения от чужих id бот пропускает. Дальше его легко развивать: ответы кнопками, проверка по расписанию для автопарка, запись результатов в CRM.

Если вы используете Claude API

Claude умеет подключать MCP-сервер сам, на стороне Anthropic: цикл вызовов писать не нужно. Замените функцию ask на эту (пакет anthropic):

import anthropic
client = anthropic.Anthropic()          # ключ в переменной ANTHROPIC_API_KEY

def ask(text):
    r = client.beta.messages.create(
        model="claude-sonnet-5-5", max_tokens=2000, system=SYSTEM,
        messages=[{"role": "user", "content": text}],
        mcp_servers=[{"type": "url", "url": "https://api.avtovincod.ru/mcp",
                      "name": "avtovincod", "authorization_token": AVC_TOKEN}],
        tools=[{"type": "mcp_toolset", "mcp_server_name": "avtovincod"}],
        betas=["mcp-client-2025-11-20"])
    return "".join(b.text for b in r.content if b.type == "text")

В этом варианте к MCP-серверу обращаются серверы Anthropic, поэтому белый список IP для токена бота не ставьте, ограничьте его лимитом запросов.

Что спросить у ассистента

Частые вопросы

Что такое MCP-сервер AvtoVinCod?

Подключение API проверки автомобилей к ИИ-ассистентам по протоколу Model Context Protocol. Адрес https://api.avtovincod.ru/mcp, авторизация тем же API-токеном.

Сколько стоит работа через MCP?

Отдельной платы нет. Каждый вызов инструмента тарифицируется как обычный запрос к методу API по вашему тарифу, тестовые значения бесплатны.

Какие клиенты поддерживаются?

Любые с поддержкой удалённых MCP-серверов по HTTP: Claude Code, Claude (свой коннектор), Cursor, VS Code и собственные агенты.

Нужен ли программист, чтобы пользоваться MCP?

Нет. В Claude, Cursor или VS Code достаточно добавить адрес сервера и токен, дальше проверки запрашиваются обычным текстом. Программист нужен, если вы хотите своего бота или встроить ассистента в CRM: пример Telegram-бота на 65 строк есть на этой странице.

Можно ли сделать Telegram-бота на MCP-сервере?

Да. Бот передаёт сообщение модели с вызовом функций вместе со списком инструментов AvtoVinCod, модель выбирает проверки, бот выполняет их через MCP-сервер и отправляет ответ в чат. Для бота заведите отдельный токен с лимитом запросов и разрешите писать только своим сотрудникам.

Как ограничить расходы ассистента?

Заведите для ассистента отдельный токен в кабинете, задайте лимит запросов в минуту и белый список IP. Баланс общий, списания видны в статистике.

Проверить без программиста

В личном кабинете есть консоль проверки: введите номер и получите ответ в читаемом виде, без кода.

Открыть кабинет