Skip to content
AutomotiveMCP
Spec§7RFC / v0.1

Reference Material

Non-normative examples: a conformant server manifest and a representative tool schema, to anchor the prose in concrete shapes.


7.1 Example discovery response

Base MCP as of the 2026-07-28 revision is stateless: there is no initialize / initialized handshake and no Mcp-Session-Id. A client instead calls the server/discover RPC and carries a protocolVersion per request. A conformant AutomotiveMCP server advertises this profile through the Extensions framework that revision formalized: it declares the io.automotivemcp/profile extension in its discovery response, naming the profile version, the domains it supports, and the conformance level per domain. This example is illustrative and non-normative.

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2026-07-28",
    "serverInfo": {
      "name": "Example DMS MCP Adapter",
      "vendor": "example-dms",
      "version": "1.4.0"
    },
    "capabilities": {
      "tools": { "listChanged": true },
      "resources": { "subscribe": true, "listChanged": true }
    },
    "extensions": {
      "io.automotivemcp/profile": {
        "specVersion": "0.1",
        "domains": {
          "inventory": { "level": 2 },
          "leads":     { "level": 3 },
          "service":   { "level": 2 },
          "deals":     { "level": 1 },
          "signals":   { "level": 1 },
          "consent":   { "level": 2 }
        }
      }
    }
  }
}

The authorization profile in §6 rides on base MCP's OAuth 2.1 layer; scopes follow the amcp:<domain>:<read|write> pattern (for example amcp:inventory:read, amcp:consent:write). Because discovery is per-request and cacheable, a server MAY return ttlMs and cacheScope on list results so agents cache tool and resource listings rather than re-fetching them; Conformance §2.5 describes how this profile uses that native caching for freshness rather than defining a parallel mechanism.

7.2 Example tool schema

A representative tool definition. Inputs and outputs are JSON Schema; the error contract follows Core Concepts §3.4.

{
  "name": "service.book_appointment",
  "description": "Book a service appointment for a customer vehicle.",
  "input_schema": {
    "type": "object",
    "required": ["vehicle_id", "start", "service_codes"],
    "properties": {
      "vehicle_id": { "type": "string" },
      "start": { "type": "string", "format": "date-time" },
      "service_codes": { "type": "array", "items": { "type": "string" } },
      "advisor_id": { "type": "string" }
    }
  },
  "output_schema": {
    "type": "object",
    "required": ["appointment_id", "status"],
    "properties": {
      "appointment_id": { "type": "string" },
      "status": { "type": "string", "enum": ["booked", "waitlisted"] },
      "start": { "type": "string", "format": "date-time" }
    }
  }
}

7.3 Example resource

{
  "id": "veh_8Kd02p",
  "type": "vehicle",
  "vin": "1HGCM82633A004352",
  "condition": "used",
  "year": 2021,
  "make": "Toyota",
  "model": "RAV4",
  "trim": "XLE",
  "mileage": { "value": 38120, "unit": "mi" },
  "price": { "amount": 2899900, "currency": "USD" },
  "status": "available"
}

7.4 Reference implementation

A reference server and a conformance test suite are planned to accompany ratification, so that "conformant" is something a vendor can prove, not just claim. Releases are announced on the Updates page as the council publishes them.

Something wrong, missing, or impossible to implement in §7?Propose a change →Opens an email with this section and version already filled in. No account needed, and you keep your copyright.