ImportOS · Документація

MCP: Claude Desktop, ChatGPT, Cursor

Віддалений MCP-сервер ImportOS Data: інструменти, підключення до Claude Desktop, Cursor, Claude Code і ChatGPT, перевірка curl.

ImportOS Data має віддалений сервер Model Context Protocol для AI-агентів. Він розраховує вартість авто з аукціонів США «під ключ» в Україні, Польщі, Литві, Німеччині та Грузії, оцінює ринкову ціну, декодує VIN, шукає оголошення й віддає митні правила.

  • Адреса: https://api.importos.app/mcp (streamable HTTP, без сесій: одне повідомлення JSON-RPC на кожен POST). Чекає на власника Домен-заглушка до підтвердження власником.
  • Автентифікація: Authorization: Bearer rv_live_..., тобто той самий API-ключ, що й для REST. OAuth поки не реалізовано (див. нижче).
  • Результати інструментів збігаються з відповідями REST.

Інструменти

ІнструментДодаткові scopes (крім mcp)Що робить
calculate_landed_costread:pricingВартість авто «під ключ»: збори аукціону, доставка по США, море, порт, мито, ПДВ, акциз, сертифікація, реєстрація, послуги. Кожна стаття має пояснення, формулу й джерело
estimate_market_priceread:pricingp25 / медіана / p75 цін оголошень на ринках UA чи PL за 90 днів
decode_vinread:listingsДекодування VIN (NHTSA vPIC + WMI) і всі відомі лоти й оголошення з цим VIN, у тому числі продані
search_listingsread:listingsНормалізований пошук по десятках джерел: природна мова (q) або структуровані фільтри
get_customs_rulesread:pricingЧинні мито, ПДВ, акциз і параметри реєстрації з джерелами, датою набуття чинності та прапорцем verified

Інструменти, на які в ключа немає права, у списку не показуються. Всі п'ять лише читають (readOnlyHint: true).

Заплановані, але недоступні: create_lead (для агентів-продавців) і get_deal_status (для клієнтських асистентів). Їм потрібні сервіс угод і scope write:deals У розробці.

Опис кожного інструмента написаний для моделі: коли викликати, приклад входу й обмеження. Головні обмеження, які інструменти повторюють моделі:

  • Параметри з verified: false лише орієнтовні; у відповіді є warnings (наприклад rule_unverified, tariffs_typical) і confidence нижче 1. Передавайте їх користувачеві.
  • Ринкова ціна побудована на цінах оголошень, а не угод. sample_size: 0 означає «немає даних» (null, а не нуль).
  • Результати пошуку: ціни на момент отримання. Збійні чи заблоковані джерела потрапляють у errors, а виклик не падає.

Вхідні поля calculate_landed_cost

Увага: назви полів тут не збігаються з REST (POST /v1/landed-cost).

ПолеОпис
lot_price_usdставка на лот, USD, до зборів аукціону
auctioncopart, iaai, manheim, other (за замовчуванням copart)
vehicle.year, vehicle.fuelобов'язкові; паливо: petrol, diesel, hybrid, phev, ev, lpg, cng, hydrogen, other
vehicle.engine_ccоб'єм двигуна, см³; обов'язково для всіх, крім ev
vehicle.kwhбатарея, кВт·год; обов'язково для ev
vehicle.vin, vehicle.make, vehicle.model, vehicle.damage, vehicle.mileage_kmнеобов'язкові; VIN потрібен, щоб визначити походження США (0 % мита ЄС), damage додає оцінку ремонту
us_state, auction_yard, zipде стоїть авто (штат, назва майданчика на кшталт NJ - TRENTON чи ZIP)
destination_countryUA, PL, LT, GE, DE
destination_cityмісто доставки (для UA)
our_fee_usdваша комісія, USD (фіксована)
insurancenone, basic, full
target_currencyвалюта підсумку (ISO-4217), за замовчуванням USD
dateyyyy-mm-dd для курсів і версії правил, за замовчуванням сьогодні
localeuk, pl, en: мова пояснень статей

Підключення

Спершу створіть API-ключ у Desk з правами mcp, read:pricing, read:listings (швидкий старт).

Claude Desktop

Claude Desktop підключає віддалені сервери зі статичним ключем через mcp-remote. Відкрийте Settings → Developer → Edit Config (Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "importos": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.importos.app/mcp",
        "--header",
        "Authorization:${IMPORTOS_AUTH}"
      ],
      "env": { "IMPORTOS_AUTH": "Bearer rv_live_YOUR_KEY" }
    }
  }
}

Форма Authorization:${...} без пробілу після двокрапки й зі значенням у env обходить відому помилку лапок на Windows. Повністю закрийте й знову запустіть Claude Desktop, потім запитайте, наприклад: «Скільки коштуватиме в Україні Toyota Camry 2018 2.5 з Copart NJ, ставка $8000?»

Claude Desktop викликає calculate_landed_cost
Claude Desktop викликає calculate_landed_cost · Скріншот-заглушка: замінюється реальним знімком

Cursor

Файл ~/.cursor/mcp.json (або .cursor/mcp.json у проєкті):

{
  "mcpServers": {
    "importos": {
      "url": "https://api.importos.app/mcp",
      "headers": { "Authorization": "Bearer rv_live_YOUR_KEY" }
    }
  }
}

Claude Code

claude mcp add --transport http importos https://api.importos.app/mcp --header "Authorization: Bearer rv_live_YOUR_KEY"

ChatGPT

OAuth ще не реалізовано

Користувацькі конектори ChatGPT (режим розробника, лише віддалені сервери) побудовані навколо OAuth: токен приходить з OAuth-потоку, а в діалозі конектора немає поля для довільних заголовків. Чи є варіант зі статичним ключем або bearer-токеном, залежить від плану та поточного релізу ChatGPT.

  • Якщо у вашому діалозі є поле bearer/API-ключ, вкажіть https://api.importos.app/mcp і свій ключ rv_live_....
  • Якщо ні, ChatGPT не зможе підключитися, доки ми не додамо OAuth 2.1 з динамічною реєстрацією клієнта Чекає на власника. Це в планах, але не зроблено, і ми не будемо стверджувати інакше.

Будь-який інший клієнт

Використовуйте транспорт Streamable HTTP, URL і заголовок Authorization. Швидка перевірка через curl:

curl -s https://api.importos.app/mcp \
  -H "Authorization: Bearer rv_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

або офіційний TypeScript-клієнт:

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({ name: 'my-agent', version: '1.0.0' });
await client.connect(
  new StreamableHTTPClientTransport(new URL('https://api.importos.app/mcp'), {
    requestInit: { headers: { Authorization: `Bearer ${process.env.IMPORTOS_API_KEY}` } },
  }),
);
const result = await client.callTool({
  name: 'calculate_landed_cost',
  arguments: {
    lot_price_usd: 8000,
    auction: 'copart',
    vehicle: { year: 2018, fuel: 'petrol', engine_cc: 2487 },
    us_state: 'NJ',
    destination_country: 'UA',
    our_fee_usd: 700,
  },
});
console.log(result.structuredContent);

Результат — JSON (structuredContent, дубльований у текстовому вмісті): items[], total, total_range, warnings[], assumptions[], rulesVersion, fx[], confidence.

Обмеження

  • Без сесій: немає серверного потоку; GET /mcp і DELETE /mcp повертають 405. Усі клієнти зі Streamable HTTP працюють.
  • Без OAuth: доступ за статичним ключем. OAuth 2.1 (потрібен конекторам ChatGPT) Чекає на власника.
  • Оцінки, а не пропозиції: неперевірені ставки позначаються, а не ховаються.
  • Реєстр MCP: маніфест mcp/server.json (формат MCP Registry) готовий, але публікація потребує підтвердження домену Чекає на власника.
  • Windows і Norton: фільтр мережі може псувати loopback-відповіді на /mcp, див. швидкий старт.

На цій сторінці