> ## Documentation Index
> Fetch the complete documentation index at: https://lmn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Inventory assistant (MCP)

> Let your team search live LMN inventory from an AI assistant: "Kia, 2026, under ₩40M, find me" — read-only, with your own API key.

## Search LMN inventory from your AI assistant

Connect an AI assistant (Claude, Codex, Cursor or another tool that speaks [MCP](https://modelcontextprotocol.io)) to the LMN inventory server, and your staff can ask for cars in plain language:

> *"Find me a 2026 Kia under ₩40M listing price."*
> *"Open #3 and show the damage report."*
> *"Is VIN KNAE551… still available?"*

The assistant calls LMN's live inventory on your behalf — the same auction and dealer (Encar) listings, prices and availability your integration sees through `GET /v1/vehicles` — and answers with real cars, prices and LMN links.

| | |
| - | - |
| **MCP address (production)** | `https://api.lmnauto.com/v1/mcp` |
| **MCP address (sandbox)** | `https://sandbox-api.lmnauto.com/v1/mcp` |
| **Authentication** | Your LMN API key, sent as the `x-api-key` request header |
| **Access** | Read-only |

<Note>
  This is different from the [documentation connector](/ai-builders) (`https://lmn.mintlify.app/mcp`). The documentation connector reads these docs and needs no key. The inventory server reads **live inventory** and needs your API key.
</Note>

## What it can and cannot do

The server offers four read-only tools:

| Tool | What it does |
| - | - |
| `search_vehicles` | Searches auction and dealer cars by make, model, year, budget, fuel, body type and mileage. Returns up to 20 cars per call, with a continuation for more. |
| `get_vehicle` | Opens one car: specs, damage and inspection summary, price breakdown, auction date and order cutoff, photos, LMN link. |
| `lookup_vehicle` | Finds one car by VIN or Korean license plate. |
| `list_makes_models` | Lists the make, model and dealer sub-model names LMN accepts, so the assistant can correct spelling. |

It **cannot** place orders, bid, request inspections, change your account or read your orders. Results are a live snapshot — confirm availability before promising a car to a customer.

A few rules the assistant follows (and tells your staff):

* **Budgets need a basis.** "Listing price" is the seller's price; "estimated landed cost" adds LMN fees and freight. If someone asks for "under ₩40M" without saying which, the assistant asks. Budgets can be in KRW, USD or EUR.
* **Dealer cars need a make.** Without a make, only auction cars are searched, and the assistant says so.
* **How each car is bought.** Dealer cars (and unsold auction cars) are buy-now; upcoming auction cars are bought by bidding through your LMN account.

## Choose a key

The server uses an ordinary LMN API key — there is no separate key type. Which key you use is your choice:

* **Sandbox key** (`lmn_stg_*`, `sandbox-api.lmnauto.com`) — the easiest way to try it. Leave its IP allowlist empty if you will use Claude Desktop or claude.ai.
* **Production key** (`lmn_prd_*`, `api.lmnauto.com`) — for real use. **Create a separate key for the assistant** in the [console](https://console.lmnauto.com/console/keys) and give it a recognizable label, so you can revoke it on its own.

<Warning>
  **The key has full API access.** Like every LMN key today, a key you put in an assistant's connector settings can also call every other partner endpoint — orders included — if someone copies it out of those settings. The inventory server itself only exposes the read tools above. Use a dedicated key, keep connector settings to people who should have it, and revoke the key from the console if it leaks.
</Warning>

<Warning>
  **IP allowlists.** A key with an IP allowlist only works from the listed addresses (see [Authentication](/authentication#ip-allowlist)). Claude Desktop and claude.ai connectors call from Anthropic's servers, not your office, so an allowlisted key is rejected there (`403 ip_not_allowed`). Start with a sandbox key. For production through these clients, create a dedicated production key in the console with the IP allowlist left empty — only if you accept the risk above. Tools that run on your own machine (Claude Code, Codex CLI, Cursor) call from your network, so an allowlisted key that includes your office IP works.
</Warning>

### Your key stays out of the conversation

The key lives in the connector or configuration settings, and the client sends it as a request header. The assistant never sees it, never needs it in a prompt, and the server never returns it. **Never paste your key into a chat.**

## Connect your tool

Replace the address with the sandbox one while you try it out. Each example reads the key from settings or an environment variable named `LMN_API_KEY` — none of them put it in a prompt.

| Your tool | Status |
| - | - |
| Claude Code | Supported |
| Codex CLI | Supported |
| Cursor | Supported |
| Claude Desktop / claude.ai | Supported where custom connectors offer **Request headers** (being rolled out) |
| ChatGPT | **Not yet supported** — ChatGPT connectors require OAuth sign-in, which this server does not offer yet |
| Other tools | Works if the tool can add a remote MCP server **and** send a custom request header |

<Tabs>
  <Tab title="Claude Desktop / claude.ai">
    1. **Settings → Connectors → Add custom connector.**
    2. Name: `LMN inventory`. URL: `https://api.lmnauto.com/v1/mcp`.
    3. Authentication: **No sign-in**, then under **Request headers** add `x-api-key` with your key as the value.
    4. Save, then enable the connector in a new chat.

    If your connector settings do not show **Request headers**, your organization does not have the option yet; use one of the other tools for now.
  </Tab>

  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http lmn-inventory https://api.lmnauto.com/v1/mcp \
      --header "x-api-key: $LMN_API_KEY"
    ```

    The key is stored in your local Claude Code configuration. Run `/mcp` in Claude Code to check the connection.
  </Tab>

  <Tab title="Codex CLI">
    In `~/.codex/config.toml`:

    ```toml theme={null}
    [mcp_servers.lmn_inventory]
    url = "https://api.lmnauto.com/v1/mcp"
    env_http_headers = { "x-api-key" = "LMN_API_KEY" }
    ```

    Codex reads the header value from the `LMN_API_KEY` environment variable, so the key never sits in the file.
  </Tab>

  <Tab title="Cursor">
    In `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project — keep it out of version control):

    ```json theme={null}
    {
      "mcpServers": {
        "lmn-inventory": {
          "url": "https://api.lmnauto.com/v1/mcp",
          "headers": { "x-api-key": "${env:LMN_API_KEY}" }
        }
      }
    }
    ```
  </Tab>
</Tabs>

Then ask: *"Using LMN inventory, find me three 2024 or newer Hyundai Palisades with a landed cost under \$45,000."*

## Trial budget

Only **tool calls** count against your key's budget: each `search_vehicles`, `get_vehicle`, `lookup_vehicle` or `list_makes_models` call is one API call. Connecting, and the assistant listing the available tools, are free. A search that reads several pages of listings still counts as one call.

When a sandbox trial key's budget is used up, tool calls return a `rate_limited` error that the assistant reports to you; it does not clear on its own. Request production access from the console.

## If something doesn't work

| Symptom | Likely cause |
| - | - |
| The tool says authentication failed (`401`) | Missing or wrong `x-api-key` header, or a sandbox key used on the production address (or the reverse) |
| `403 ip_not_allowed` | The key has an IP allowlist and the client calls from elsewhere — see [IP allowlists](#choose-a-key) |
| "Dealer listings need a make" | Expected: tell the assistant which make |
| `rate_limited` | The key's trial budget is used up |
| No cars found | Widen year, budget or model — or ask the assistant to check the spelling with `list_makes_models` |

For anything else, email `partners@lmnauto.com` with the time of the request, the environment and what you asked — **never your API key**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.