Главная → Документация → MCP-сервер для проверки автомобилей
MCP-сервер для проверки автомобилей
MCP-сервер AvtoVinCod подключает проверку автомобилей к ИИ-ассистентам и агентам: Claude, Cursor, VS Code и другим клиентам с поддержкой Model Context Protocol. Ассистент сам вызывает нужные проверки по VIN, госномеру или номеру кузова и разбирает ответ.
Зачем это нужно
Обычная интеграция API выглядит так: программист читает документацию каждого метода, пишет вызовы, разбирает JSON и собирает из ответов отчёт. С MCP эту работу делает ИИ-ассистент. Вы подключаете один адрес, а ассистент сам понимает, какие проверки нужны под вопрос, вызывает их, сводит ответы и объясняет результат обычным языком.
- Без кода. В Claude, Cursor или VS Code подключение занимает минуту, дальше проверки запрашиваются текстом: "проверь VIN на залог и ограничения".
- Несколько проверок за один вопрос. Ассистент сам решит, что для трейд-ина нужны залог, ограничения, ДТП и пробег, вызовет их подряд и сведёт в один вывод.
- Свой бот за вечер. Telegram-бот для менеджеров умещается в 65 строк на Python (пример ниже): список проверок он берёт с сервера сам, код под каждый метод писать не нужно.
- Расходы под контролем. Каждый вызов - обычный запрос к API по вашему тарифу, сумма видна в ответе (блок
billing) и в статистике кабинета.
Как это используют
Бот для выкупа и трейд-ина
Менеджер отправляет боту VIN или госномер и через минуту получает сводку: можно выкупать или есть риски.
"Проверь Т000ТТ00 перед выкупом"
Модерация объявлений
Ассистент модератора находит VIN по госномеру из объявления и сверяет марку, год, ограничения и розыск.
"Совпадает ли объявление с данными ГИБДД?"
Лизинг и страхование
Список VIN из таблицы ассистент проходит по одному и возвращает таблицу: залог, ОСАГО, ДТП, статус регистрации.
"Проверь эти 30 VIN на залог и собери таблицу"
Автопарк и логистика
Ежедневная сводка по парку: неоплаченные штрафы по СТС, сроки пропусков на МКАД, разрешения КТГ.
"У каких машин кончается пропуск на этой неделе?"
Разработчикам
В Cursor или Claude Code ассистент видит схемы всех методов и пишет интеграцию на живых ответах. Тестовые значения бесплатны.
"Напиши функцию проверки залога для нашей CRM"
Руководителю
Свой коннектор в Claude: разовые проверки и вопросы по балансу без кабинета и без программиста.
"Сколько осталось на балансе?"
Как выглядит разговор
Пример на тестовом VIN: ответы-образцы приходят бесплатно, на реальном номере ассистент получит данные из реестров.
- Залог действует с 12.04.2023, залогодержатель - банк.
- Запрет на регистрационные действия от судебного пристава, исполнительное производство от 01.09.2026. Розыска нет.
- Одно ДТП: 15.03.2024, столкновение, Москва.
- Пробег по техосмотрам: 31 000 км в мае 2023, 64 000 км в мае 2025, скручивания не видно.
- Владельцы: юрлицо с 2021 по 2023, сейчас физлицо.
Как это работает
- Каждый инструмент MCP соответствует методу API. Ассистент видит только методы, подключённые вашему токену.
- Вызов инструмента - обычный запрос к API с вашим токеном: те же цены, списания и правила тарификации, запросы видны в статистике кабинета. В результате инструмента есть блок
billing: сколько списано за вызов и какой остаток. - Тестовые значения (VIN X7TEST00000000001, госномер Т000ТТ00) работают и через MCP: ответ-образец бесплатно.
- Персональных данных владельцев нет ни в API, ни в MCP.
Подключение
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_plate | VIN по госномеру |
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_report | CARFAX: история авто из США и Канады, асинхронно: vin - заказ, task - опрос |
autocheck_report | AutoCheck: оценка и история авто из США и Канады, асинхронно |
usa_auction_photos | VinHistory: фото авто с аукционов США, асинхронно |
auction_lots | Аукционные лоты США и Кореи: цены и фото, асинхронно |
belarus_history | История авто в Беларуси, асинхронно |
vag_equipment_pdf | Комплектация VAG по ETKA (PDF), асинхронно |
balance | Баланс |
У каждого инструмента описаны параметры (vin, plate, body и другие) и тестовые значения: ассистент подставит их сам, если попросить "проверь на тестовых данных".
Пример: Telegram-бот для менеджеров
Бот принимает сообщение, отдаёт его модели вместе со списком инструментов AvtoVinCod, модель сама выбирает проверки, бот выполняет их через MCP-сервер и присылает ответ в чат. Подходит любая модель с вызовом функций через OpenAI-совместимый API. Нужен только Python и пакет requests.
- В кабинете заведите для бота отдельный токен и задайте ему лимит запросов: бот тратит деньги с баланса.
- Создайте бота у @BotFather и узнайте id своих сотрудников: боту можно писать только им (ALLOWED_IDS).
- Возьмите адрес и ключ API модели с вызовом функций (function calling).
- Запустите скрипт на сервере или в облаке; проверьте на тестовом 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 для токена бота не ставьте, ограничьте его лимитом запросов.
Что спросить у ассистента
- "Проверь VIN X7TEST00000000001 на залог, ограничения и ДТП и коротко перечисли риски."
- "Найди VIN по госномеру и покажи историю техосмотров и пробега."
- "Действует ли сегодня пропуск на МКАД у машины с номером ...?"
- "Сколько осталось на балансе?"
Частые вопросы
Что такое 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. Баланс общий, списания видны в статистике.
Проверить без программиста
В личном кабинете есть консоль проверки: введите номер и получите ответ в читаемом виде, без кода.