@meterapp/car-image-sdk 1.22.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -190,12 +190,13 @@ await client.getImage({
190
190
  | `width`, `height` | px, delivered up to 1024 | One dimension keeps the aspect ratio. Both together give exactly `width`×`height` (see `fit`). Nothing is upscaled past 1024, and a larger size is clamped by the server, not refused: a box keeps its shape (1920×1080 comes back 1024×576) and `ImageResult.width`/`height` report what was served. |
191
191
  | `fit` | `contain` (default) · `cover` · `inside` | Only matters with both dimensions. `contain` returns exactly the box with the whole car and transparent (or `background`) padding; `cover` fills the box and centre-crops; `inside` keeps the car within the box and may return a smaller image — the old behaviour. |
192
192
  | `background` | `transparent` (default) · a CSS color name (`white`, `whitesmoke`) · hex as `rrggbb`, `#rrggbb`, `rgb` or `#rgb` | A solid background flattens PNG and WebP too. `jpg` cannot be transparent and defaults to white. |
193
+ | `framing` | `consistent` (default), `tight`, `balanced` | A preset in place of `trim`/`padding`: `tight` is `trim: true, padding: 0` (the car fills the box), `balanced` is `trim: true, padding: 6` (even catalog margins), `consistent` keeps the camera scale all eight views of a vehicle share (galleries, spinners, 3D previews). Same image, cache entry and credit as the spelled-out form; never together with `trim` or `padding`. |
193
194
  | `trim` | `true` | Crops to the car's alpha bounds before sizing so it fills the box instead of floating in the square source frame. Recommended for non-square layouts. |
194
195
  | `padding` | 0–50 | Margin around a trimmed car, as a percentage of its longer side. Only with `trim`. |
195
196
  | `shadow` | `true` | A soft, neutral ground shadow under the car, drawn from its own cut-out at delivery: semi-transparent on a transparent image, grey on a `background`. Same 1 credit; car images only, not `getMakeLogo`. |
196
197
  | `format` | `png` (default) · `webp` · `jpg` · `auto` | `auto` picks WebP for clients whose `Accept` header lists it and PNG otherwise (`Vary: Accept`); a signed URL created with `auto` negotiates on every load. |
197
198
 
198
- The same parameters apply to `getImageUrl` and to every entry of `createImageUrls`; the returned `vehicle` echoes `vehicle_id`, `color`, `fit`, `background`, `trim`, `padding` and `shadow` back. `assertImageParams` (and therefore every call) rejects a `padding` without `trim`, a dimension that is not a whole number of pixels from 1, a color that is neither a preset, a CSS color name nor a hex, and a request that names neither a vehicle id nor all of make, model and year, before anything is sent. A size above 1024 is sent as given, for the server to clamp.
199
+ The same parameters apply to `getImageUrl` and to every entry of `createImageUrls`; the returned `vehicle` echoes `vehicle_id`, `color`, `fit`, `background`, `trim`, `padding` and `shadow` back. `assertImageParams` (and therefore every call) rejects a `padding` without `trim`, a `framing` beside `trim` or `padding`, a dimension that is not a whole number of pixels from 1, a color that is neither a preset, a CSS color name nor a hex, and a request that names neither a vehicle id nor all of make, model and year, before anything is sent. A size above 1024 is sent as given, for the server to clamp.
199
200
 
200
201
  The SDK always sends the documented query names. Code that writes or forwards image URLs itself can read `IMAGE_QUERY_ALIASES`: every name an image URL may carry, each with the other names the server reads it under (`angle` for `view`, `paint` or `hex` for `color`, `bg` for `background`, `width` for `w`). Beyond those, the server ignores only tracking tags and cache busters (`utm_*`, `gclid`, `ref`, `v`, `t`, `_`…, named in `X-Ignored-Parameters`); any other name is a free `400` whose problem names it in `parameter` and lists the names the endpoint reads in `allowed`.
201
202
 
package/dist/index.d.ts CHANGED
@@ -4,5 +4,5 @@ export { assertImageParams, assertVehicleSelector, colorParam, imageRequestBody,
4
4
  export { RETRYABLE_STATUSES, backoffDelayMs, parseRetryAfter, retryDelayMs } from "./retry.js";
5
5
  export * from "./types.js";
6
6
  export { SDK_VERSION } from "./version.js";
7
- export type { CheckoutLinkInput, BillingLinkResponse, HelpResponse, PricingResponse } from "./support.js";
7
+ export type { CheckoutLinkInput, BillingLinkResponse, HelpResponse, PricingAddOn, PricingPlan, PricingResponse } from "./support.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACzH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClI,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/F,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACzH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClI,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/F,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -14,7 +14,7 @@ import { type Format, type RequestFormat } from "../types.js";
14
14
  export declare const MCP_SERVER_INFO: {
15
15
  readonly name: "car-image-api";
16
16
  readonly title: "Car Image API";
17
- readonly version: "1.22.0";
17
+ readonly version: "1.24.0";
18
18
  readonly websiteUrl: "https://carimage.dev";
19
19
  };
20
20
  /**
@@ -120,6 +120,11 @@ export declare const imageInputSchema: z.ZodObject<{
120
120
  inside: "inside";
121
121
  }>>;
122
122
  background: z.ZodOptional<z.ZodString>;
123
+ framing: z.ZodOptional<z.ZodEnum<{
124
+ balanced: "balanced";
125
+ consistent: "consistent";
126
+ tight: "tight";
127
+ }>>;
123
128
  trim: z.ZodOptional<z.ZodBoolean>;
124
129
  padding: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
125
130
  shadow: z.ZodOptional<z.ZodBoolean>;
@@ -197,6 +202,11 @@ export declare const MCP_TOOL_SCHEMAS: {
197
202
  inside: "inside";
198
203
  }>>;
199
204
  background: z.ZodOptional<z.ZodString>;
205
+ framing: z.ZodOptional<z.ZodEnum<{
206
+ balanced: "balanced";
207
+ consistent: "consistent";
208
+ tight: "tight";
209
+ }>>;
200
210
  trim: z.ZodOptional<z.ZodBoolean>;
201
211
  padding: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
202
212
  shadow: z.ZodOptional<z.ZodBoolean>;
@@ -263,6 +273,11 @@ export declare const MCP_TOOL_SCHEMAS: {
263
273
  inside: "inside";
264
274
  }>>;
265
275
  background: z.ZodOptional<z.ZodString>;
276
+ framing: z.ZodOptional<z.ZodEnum<{
277
+ balanced: "balanced";
278
+ consistent: "consistent";
279
+ tight: "tight";
280
+ }>>;
266
281
  trim: z.ZodOptional<z.ZodBoolean>;
267
282
  padding: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
268
283
  shadow: z.ZodOptional<z.ZodBoolean>;
@@ -738,27 +753,68 @@ export declare const MCP_TOOL_OUTPUT_SCHEMAS: {
738
753
  }, z.core.$loose>;
739
754
  readonly get_pricing: z.ZodObject<{
740
755
  data: z.ZodObject<{
756
+ product: z.ZodLiteral<"car-image">;
757
+ updated_at: z.ZodString;
741
758
  currency: z.ZodLiteral<"usd">;
742
759
  credits_per_image: z.ZodNumber;
743
760
  credits_per_model: z.ZodNumber;
744
761
  credits_per_dollar: z.ZodNumber;
745
762
  free_signup_credits: z.ZodNumber;
746
763
  plans: z.ZodArray<z.ZodObject<{
747
- code: z.ZodString;
764
+ id: z.ZodEnum<{
765
+ business: "business";
766
+ enterprise: "enterprise";
767
+ free: "free";
768
+ pro: "pro";
769
+ }>;
748
770
  name: z.ZodString;
771
+ price: z.ZodObject<{
772
+ monthly: z.ZodNullable<z.ZodNumber>;
773
+ yearly: z.ZodNullable<z.ZodNumber>;
774
+ }, z.core.$strip>;
775
+ included: z.ZodObject<{
776
+ credits_per_month: z.ZodNumber;
777
+ credits_once: z.ZodNumber;
778
+ }, z.core.$strip>;
779
+ limits: z.ZodObject<{
780
+ distinct_vehicles_per_month: z.ZodNullable<z.ZodNumber>;
781
+ requests_per_minute_per_key: z.ZodNumber;
782
+ requests_per_minute_per_account: z.ZodNumber;
783
+ api_keys: z.ZodNumber;
784
+ }, z.core.$strip>;
785
+ features: z.ZodArray<z.ZodString>;
786
+ overage: z.ZodNullable<z.ZodString>;
787
+ trial: z.ZodNull;
788
+ checkout_url: z.ZodString;
789
+ checkout_url_yearly: z.ZodNullable<z.ZodString>;
790
+ code: z.ZodString;
749
791
  monthly_cents: z.ZodNullable<z.ZodNumber>;
750
792
  yearly_cents: z.ZodNullable<z.ZodNumber>;
751
793
  included_credits: z.ZodNumber;
752
794
  license: z.ZodString;
753
795
  vehicles_per_month: z.ZodNullable<z.ZodNumber>;
754
796
  rate_limit_per_minute: z.ZodNumber;
755
- }, z.core.$strip>>;
797
+ }, z.core.$loose>>;
798
+ add_ons: z.ZodArray<z.ZodObject<{
799
+ id: z.ZodString;
800
+ price: z.ZodNumber;
801
+ credits: z.ZodNumber;
802
+ expires: z.ZodBoolean;
803
+ checkout_url: z.ZodString;
804
+ }, z.core.$loose>>;
805
+ free_tier: z.ZodObject<{
806
+ credits_once: z.ZodNumber;
807
+ card_required: z.ZodBoolean;
808
+ signup_url: z.ZodString;
809
+ }, z.core.$loose>;
810
+ how_to_buy: z.ZodRecord<z.ZodString, z.ZodUnknown>;
811
+ docs: z.ZodString;
756
812
  packs: z.ZodArray<z.ZodObject<{
757
813
  credits: z.ZodNumber;
758
814
  cents: z.ZodNumber;
759
- }, z.core.$strip>>;
815
+ }, z.core.$loose>>;
760
816
  notes: z.ZodArray<z.ZodString>;
761
- }, z.core.$strip>;
817
+ }, z.core.$loose>;
762
818
  request_id: z.ZodString;
763
819
  }, z.core.$loose>;
764
820
  readonly search_help: z.ZodObject<{
@@ -1522,6 +1578,13 @@ export interface AccountSummaryInput {
1522
1578
  credits_per_image?: number;
1523
1579
  credits_per_dollar?: number;
1524
1580
  } | null;
1581
+ /** Usage against the plan's caps; absent on servers before 2026-10-17. */
1582
+ limits_usage?: {
1583
+ distinct_vehicles_this_month: {
1584
+ used: number;
1585
+ limit: number | null;
1586
+ };
1587
+ } | null;
1525
1588
  }
1526
1589
  /** The one-line summary both servers put above an account: the balance in dollars, the plan, and a stop when it runs low. */
1527
1590
  export declare function accountSummary(data: AccountSummaryInput): string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
package/dist/mcp/index.js CHANGED
@@ -12,7 +12,7 @@ import { checkoutLinkSchema, helpQuerySchema, billingLinkResultSchema, helpResul
12
12
  */
13
13
  import * as z from "zod";
14
14
  import { isColor } from "../params.js";
15
- import { CATALOG, CHECK_STATUSES, COLORS, CREDITS_PER_3D_MODEL, CREDITS_PER_DOLLAR, CREDITS_PER_IMAGE, DEFAULT_BASE_URL, FITS, FORMATS, FREE_CREDITS, IDEMPOTENCY_KEY_PATTERN, MAX_CHECK_VEHICLES, MAX_DIMENSION, MAX_PADDING_PERCENT, MIN_YEAR, MODEL_3D_FILE_KINDS, REFERRAL_SOURCES, REQUEST_FORMATS, REQUEST_KINDS, REQUEST_SORTS, REQUEST_STATUSES, SIZES, VEHICLE_ID_PATTERN, VIEWS, } from "../types.js";
15
+ import { CATALOG, CHECK_STATUSES, COLORS, CREDITS_PER_3D_MODEL, CREDITS_PER_DOLLAR, CREDITS_PER_IMAGE, DEFAULT_BASE_URL, FITS, FORMATS, FRAMINGS, FREE_CREDITS, IDEMPOTENCY_KEY_PATTERN, MAX_CHECK_VEHICLES, MAX_DIMENSION, MAX_PADDING_PERCENT, MIN_YEAR, MODEL_3D_FILE_KINDS, REFERRAL_SOURCES, REQUEST_FORMATS, REQUEST_KINDS, REQUEST_SORTS, REQUEST_STATUSES, SIZES, VEHICLE_ID_PATTERN, VIEWS, } from "../types.js";
16
16
  import { SDK_VERSION } from "../version.js";
17
17
  /** The 3D price as agents read it: "100 credits ($1.00)". */
18
18
  const MODEL_3D_PRICE = `${CREDITS_PER_3D_MODEL.toLocaleString("en-US")} credits ($${(CREDITS_PER_3D_MODEL / CREDITS_PER_DOLLAR).toFixed(2)})`;
@@ -148,7 +148,7 @@ For an image in chat, call create_car_image_urls once with vehicle: "veh_…", v
148
148
 
149
149
  If lookup confidence is low or the year differs from the request, ask before spending credits. If no match, ${HEAD_MISSING}; never silently substitute a car.
150
150
 
151
- Costs: ${CREDITS_PER_IMAGE} credit per image or signed URL; lookups are free. Confirm the count and cost before a batch the human did not size. ${toolsetHas(toolset, "create_3d_model") ? HEAD_3D : ""}On (402) stop and ask the human; never purchase credits autonomously and never change a plan.`;
151
+ Costs: ${CREDITS_PER_IMAGE} credit per image or signed URL; lookups are free. Confirm the count and cost before a batch the human did not size. ${toolsetHas(toolset, "create_3d_model") ? HEAD_3D : ""}On (402) stop and give the human its checkout_url and price; buy credits or change a plan only when the human asks or a spending mandate they set covers it.`;
152
152
  }
153
153
  /** The tools that never cost a credit, named in the Plans paragraph for the toolset that has them. */
154
154
  const FREE_TOOLS = ["search_vehicles", "resolve_vehicle", "decode_vin", "check_vehicles", "list_image_options", "get_account", "get_3d_model", "publish_3d_model", "describe_api"];
@@ -163,7 +163,7 @@ const REFERENCE_BLOCKS = [
163
163
  { needs: ["get_make_logo"], text: `Make logos: get_make_logo returns a catalog make logo inline for 1 credit per successful call, cached or generated. It accepts make and image transforms, with no vehicle selector, view or paint color. There is no signed logo URL: use car-image logo or client.getMakeLogo to download for a site. Inspect generated logos before use. Logos are third-party trademarks for referential display only; no license is granted and they sit outside every VehiclesDB indemnity. See ${DEFAULT_BASE_URL}/terms?ref=mcp#logos.` },
164
164
  { needs: [], text: `Security: never place the API key in URLs, HTML, logs, screenshots or client-side code. Signed delivery URLs are the only thing that should ever reach a browser.` },
165
165
  { needs: [], text: `Batches: before expanding views or colors, look each distinct vehicle up once; check_vehicles takes a whole list (up to ${MAX_MCP_CHECK_VEHICLES} per call) and answers each as match, suggestion, miss or invalid. On a vehicle 404, skip that vehicle across every view and color until its input or the catalog changes; never automatically substitute a suggestion. Image validation errors expose parameter and retryable: false.` },
166
- { needs: [], text: `Money: on an insufficient-credits error (HTTP 402) the human buys credits at ${DEFAULT_BASE_URL}/dashboard?ref=mcp#billing or with \`car-image billing\`. A 402 with code plan_vehicle_limit means the request named more new distinct vehicles than the plan's monthly cap allows: tell the human the plan and the cap and stop; never subscribe to, change or cancel a plan autonomously. On a rate limit (HTTP 429) wait the number of seconds in retry_after before trying again; with code account_generation_cap the account has used its plan's share of today's render budget, cached images keep serving and new renders resume at reset_at (midnight UTC).` },
166
+ { needs: [], text: `Money: on an insufficient-credits error (HTTP 402) the human buys credits at ${DEFAULT_BASE_URL}/dashboard?ref=mcp#billing or with \`car-image billing\`. A 402 with code plan_vehicle_limit means the request named more new distinct vehicles than the plan's monthly cap allows: tell the human the plan and the cap and stop. Every 402 carries checkout_url (Stripe Checkout for the pack or plan that fixes it, after the human signs in; nothing is charged until they pay) and pricing: hand the link over with the price. Subscribe, change or cancel a plan, or buy credits, only when the human asks or a spending mandate they set covers the amount. On a rate limit (HTTP 429) wait the number of seconds in retry_after before trying again; with code account_generation_cap the account has used its plan's share of today's render budget, cached images keep serving and new renders resume at reset_at (midnight UTC).` },
167
167
  { needs: ["search_help", "get_pricing", "create_checkout_link", "get_billing_link"], text: `Product support: use search_help for source-linked answers, terms, licensing, privacy and Enterprise questions. Search each distinct question separately and cite sources; never invent missing context or account-specific promises. Do not send full customer emails, personal data or secrets. Queries are privately recorded to improve articles. Use get_pricing for live prices. When the human asks to purchase, create_checkout_link prepares a link without charging; get_billing_link opens settings. The human completes any payment or account change in the browser. Never claim a link means payment succeeded.` },
168
168
  ];
169
169
  /** The server instructions for a toolset: the head every host shows, then the reference paragraphs whose tools the toolset has. */
@@ -249,6 +249,10 @@ export const imageInputSchema = z
249
249
  .max(24)
250
250
  .optional()
251
251
  .describe('Solid background: a hex color such as "#f4f4f4" or a CSS color name such as "white" or "whitesmoke". Omit for transparent (jpg is white).'),
252
+ framing: z
253
+ .enum(FRAMINGS)
254
+ .optional()
255
+ .describe("Composition preset, instead of trim/padding (never with them): consistent (default) keeps the camera scale every view of the vehicle shares, for galleries and spinners; tight = trim with no margin, the car fills the box; balanced = trim with a 6% margin, for catalog grids and listings."),
252
256
  trim: z.boolean().optional().describe("Crop to the car's own bounds before sizing, so it fills the box instead of floating in the square source frame."),
253
257
  padding: z.coerce
254
258
  .number()
@@ -1013,8 +1017,9 @@ export function accountSummary(data) {
1013
1017
  const perDollar = data.pricing?.credits_per_dollar ?? CREDITS_PER_DOLLAR;
1014
1018
  const perImage = data.pricing?.credits_per_image ?? CREDITS_PER_IMAGE;
1015
1019
  const vehicles = data.plan?.limits.vehicles_per_month ?? null;
1020
+ const used = data.limits_usage?.distinct_vehicles_this_month.used;
1016
1021
  const plan = data.plan
1017
- ? ` on the ${data.plan.name} plan${vehicles === null ? "" : `, up to ${vehicles.toLocaleString("en-US")} distinct vehicles a month`}`
1022
+ ? ` on the ${data.plan.name} plan${vehicles === null ? "" : used === undefined ? `, up to ${vehicles.toLocaleString("en-US")} distinct vehicles a month` : `, ${used.toLocaleString("en-US")} of ${vehicles.toLocaleString("en-US")} distinct vehicles used this month`}`
1018
1023
  : "";
1019
1024
  const low = data.credits < LOW_BALANCE_CREDITS ? " Balance is low: ask the human before rendering more." : "";
1020
1025
  return `${data.credits.toLocaleString("en-US")} credits ≈ $${(data.credits / perDollar).toFixed(2)} (${perImage} credit${perImage === 1 ? "" : "s"} per image)${plan}.${low}`;
@@ -1090,7 +1095,7 @@ export function imageUrlsSummary(result) {
1090
1095
  export const MCP_TOOLS = {
1091
1096
  get_pricing: {
1092
1097
  name: "get_pricing", title: "Get current pricing",
1093
- description: "Free. Current monthly and yearly plans, credit allowances, vehicle limits, credit packs and live 3D model cost. No account data or purchase. Use before explaining costs or choosing a plan.",
1098
+ description: "Free, no account needed. The pricing document: every plan's monthly and yearly price, included credits, limits per tier and features, the credit packs (add_ons), the free tier and live 3D model cost. Every plan and pack has a checkout_url that works before signup (sign-in, then Stripe Checkout; nothing is charged until the human pays): hand it to the human with the price. Use before explaining costs or choosing a plan.",
1094
1099
  inputSchema: MCP_TOOL_SCHEMAS.get_pricing, outputSchema: MCP_TOOL_OUTPUT_SCHEMAS.get_pricing,
1095
1100
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
1096
1101
  },
@@ -1102,7 +1107,7 @@ export const MCP_TOOLS = {
1102
1107
  },
1103
1108
  create_checkout_link: {
1104
1109
  name: "create_checkout_link", title: "Create a checkout link",
1105
- description: "Free. On the human's request, prepare a credit-pack or Pro/Business subscription purchase link for their own account. Exactly one of credits or plan. Never charges a card or switches a plan. A human completes payment in the browser. Connected apps and keys without billing:write receive the signed-in dashboard; existing subscriptions and agreements also use the dashboard. Return the URL and message; never claim payment succeeded.",
1110
+ description: "Free. On the human's request, prepare a credit-pack or Pro/Business subscription purchase link for their own account. Exactly one of credits or plan. Never charges a card or switches a plan. A human completes payment in the browser. Connected apps and keys without billing:write receive a checkout link that signs the human in first; existing subscriptions and agreements use the dashboard. Without an account at all, use get_pricing's checkout_url. Return the URL and message; never claim payment succeeded.",
1106
1111
  inputSchema: MCP_TOOL_SCHEMAS.create_checkout_link, outputSchema: MCP_TOOL_OUTPUT_SCHEMAS.create_checkout_link,
1107
1112
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
1108
1113
  },
@@ -1131,7 +1136,7 @@ export const MCP_TOOLS = {
1131
1136
  create_car_image_urls: {
1132
1137
  name: "create_car_image_urls",
1133
1138
  title: "Create signed car image URLs",
1134
- description: "Show vehicle images in chat: create 1-50 signed URLs with ready-to-display Markdown. Paste each returned markdown directly into the final reply, outside code fences. For chat use ttl_seconds 604800, max_uses 0 and renewal off unless requested. Reuse unexpired URLs; do not call get_car_image first or mint twice for one image. If inline display is unsupported, link the same URL instead. Browsers, emails and documents can also load these key-free URLs directly (<img src>). Each URL costs 1 credit at creation; redemptions within the TTL are free and publicly cacheable. Each image names its vehicle like get_car_image: look each distinct vehicle up once (resolve_vehicle, search_vehicles or decode_vin, all free) and pass its id as vehicle, or send make, model and year in catalog spelling. Each takes any paint color (a preset or a hex) and the same sizing options (width, height, fit, background, trim, padding, shadow); format auto makes the URL serve webp or png per viewer. For email, CMS pages or documents that outlive a TTL, set renew: true with ttl_seconds 604800: the URL keeps serving past expiry at one more credit per opened week, for up to renew_days. Pass idempotency_key when the call might be repeated: a retry with the same key and arguments replays the first result instead of billing again. Returns id, url, markdown, expires_at, max_uses, renews_until and the normalized vehicle for each image. Prefer this over get_car_image for chat replies, HTML, Markdown, documents and websites. State expiry briefly.",
1139
+ description: "Show vehicle images in chat: create 1-50 signed URLs with ready-to-display Markdown. Paste each returned markdown directly into the final reply, outside code fences. For chat use ttl_seconds 604800, max_uses 0 and renewal off unless requested. Reuse unexpired URLs; do not call get_car_image first or mint twice for one image. If inline display is unsupported, link the same URL instead. Browsers, emails and documents can also load these key-free URLs directly (<img src>). Each URL costs 1 credit at creation; redemptions within the TTL are free and publicly cacheable. Each image names its vehicle like get_car_image: look each distinct vehicle up once (resolve_vehicle, search_vehicles or decode_vin, all free) and pass its id as vehicle, or send make, model and year in catalog spelling. Each takes any paint color (a preset or a hex) and the same sizing options (width, height, fit, background, framing, trim, padding, shadow); format auto makes the URL serve webp or png per viewer. For email, CMS pages or documents that outlive a TTL, set renew: true with ttl_seconds 604800: the URL keeps serving past expiry at one more credit per opened week, for up to renew_days. Pass idempotency_key when the call might be repeated: a retry with the same key and arguments replays the first result instead of billing again. Returns id, url, markdown, expires_at, max_uses, renews_until and the normalized vehicle for each image. Prefer this over get_car_image for chat replies, HTML, Markdown, documents and websites. State expiry briefly.",
1135
1140
  inputSchema: MCP_TOOL_SCHEMAS.create_car_image_urls,
1136
1141
  outputSchema: MCP_TOOL_OUTPUT_SCHEMAS.create_car_image_urls,
1137
1142
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
@@ -1163,7 +1168,7 @@ export const MCP_TOOLS = {
1163
1168
  get_account: {
1164
1169
  name: "get_account",
1165
1170
  title: "Get account and credits",
1166
- description: "Free. Show the caller's remaining credits (and the dollar equivalent), auto-reload status, whether a payment method is on file, recent usage and the key's scopes. Check this before large batches; if credits are insufficient, ask a human to top up rather than buying credits yourself.",
1171
+ description: "Free. Show the caller's remaining credits (and the dollar equivalent), the plan in force and when it renews, usage against every plan limit this month (limits_usage: distinct vehicles, keys, request rates), what the next plan adds with its checkout link (next_plan), auto-reload status, whether a payment method is on file and the key's scopes. Check this before large batches; if credits are insufficient, give the human a checkout link with the price rather than buying credits yourself, unless they asked you to or a spending mandate they set covers it.",
1167
1172
  inputSchema: MCP_TOOL_SCHEMAS.get_account,
1168
1173
  outputSchema: MCP_TOOL_OUTPUT_SCHEMAS.get_account,
1169
1174
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
@@ -1299,9 +1304,9 @@ export const API_REFERENCE = [
1299
1304
  cli: "car-image logo --make Toyota --width 256 --out toyota-logo.png",
1300
1305
  returns: "Image bytes with X-Credits-Charged, X-Credits-Remaining, X-Image-Source, X-Image-Width, X-Image-Height, ETag and X-Request-Id. Failed delivery refunds the credit. No signed URL or 304 mode.",
1301
1306
  },
1302
- { method: "GET", path: "/api/v1/pricing", summary: "Current plans, allowances, credit packs and live 3D cost.", auth: "public", credits: "free", sdk: "client.pricing()", cli: "car-image pricing" },
1307
+ { method: "GET", path: "/api/v1/pricing", summary: "The pricing document: plans (price, included credits, limits, features, checkout_url), add-on credit packs, free tier, live 3D cost and how to buy.", auth: "public", credits: "free", notes: "Every checkout_url works before signup: sign-in, then Stripe Checkout; nothing is charged until the human pays.", sdk: "client.pricing()", cli: "car-image pricing [--json]" },
1303
1308
  { method: "POST", path: "/api/v1/help", summary: "Source-linked product help and private query recording.", auth: "bearer", credits: "free (account:read)", params: ["query (2-1000 characters, no secrets or personal information)", "report_gap (optional boolean: flag missing context)"], notes: "Related articles are not an answer to every clause. Cite relevant sources; escalate unknowns to support. Queries are recorded privately.", sdk: "client.searchHelp(question, {reportGap: true})", cli: "car-image support question --report-gap" },
1304
- { method: "POST", path: "/api/v1/billing/link", summary: "Link-only checkout or billing settings; never charges or switches a plan.", auth: "bearer", credits: "free (account:read; owner billing:write for Stripe links)", params: ["credits OR plan + optional interval; {} for settings"], notes: "Connected apps and existing subscriptions use the signed-in dashboard. A human completes payment in the browser.", sdk: "client.createCheckoutLink({credits: 500}) / client.getBillingLink()", cli: "car-image billing --credits 500 --no-browser" },
1309
+ { method: "POST", path: "/api/v1/billing/link", summary: "Link-only checkout or billing settings; never charges or switches a plan.", auth: "bearer", credits: "free (account:read; owner billing:write for Stripe links)", params: ["credits OR plan + optional interval; {} for settings"], notes: "Connected apps and keys without billing:write get a checkout link that signs the human in first; existing subscriptions use the signed-in dashboard. A human completes payment in the browser.", sdk: "client.createCheckoutLink({credits: 500}) / client.getBillingLink()", cli: "car-image upgrade --credits 500 --no-browser (works before sign-in)" },
1305
1310
  {
1306
1311
  method: "GET",
1307
1312
  path: "/api/v1/images/car",
@@ -1319,14 +1324,15 @@ export const API_REFERENCE = [
1319
1324
  `w, h (1-${MAX_DIMENSION} px; both -> the output is exactly w x h)`,
1320
1325
  `fit (${FITS.join("|")}; default contain; only matters with both w and h)`,
1321
1326
  "background (transparent default; white|black|hex such as f4f4f4; jpg defaults to white)",
1327
+ `framing (${FRAMINGS.join("|")}; a preset, never with trim or padding: tight = trim=1, balanced = trim=1&padding=6, consistent = neither, the default)`,
1322
1328
  `trim (1 crops to the car's alpha bounds before sizing), padding (0-${MAX_PADDING_PERCENT} percent, only with trim)`,
1323
1329
  "shadow (1 adds a soft ground shadow under the car, from its cut-out; same credit)",
1324
1330
  `format (${FORMATS.join("|")}|auto; default png; auto negotiates webp/png from Accept)`,
1325
1331
  ],
1326
1332
  returns: "image bytes; headers X-Credits-Charged, X-Credits-Remaining, X-Image-Source (cache|generated), X-Image-Width, X-Image-Height, ETag, X-Request-Id (Vary: Accept with format=auto). With Accept: application/json: {data:{url,expires_at,vehicle:{vehicle_id,make,model,year,view,color,…},width,height,format}, billing:{credits_charged,credits_remaining}, request_id}",
1327
1333
  errors: ["400 invalid params (also vehicle together with make/model/year)", "401 missing/invalid key", "402 insufficient credits (balance, required_credits)", "404 vehicle not in catalog or unknown vehicle id", "429 rate limited (Retry-After)", "502 render failed (refunded)"],
1328
- notes: "Do not purchase credits automatically on 402; ask the human. Respect Retry-After on 429.",
1329
- sdk: "client.getImage({ make, model, year, view, color, size, width, height, fit, background, trim, padding, shadow, format }) / client.getImage({ vehicle: 'veh_…', color: '#1a2b3c' }) / client.getImageUrl(...)",
1334
+ notes: "On 402 hand the human checkout_url with the price; buy only when they ask or a spending mandate they set covers it. Respect Retry-After on 429.",
1335
+ sdk: "client.getImage({ make, model, year, view, color, size, width, height, fit, background, framing, trim, padding, shadow, format }) / client.getImage({ vehicle: 'veh_…', color: '#1a2b3c' }) / client.getImageUrl(...)",
1330
1336
  cli: "car-image get --make Porsche --model 911 --year 2024 --view side --color red --out car.png · car-image get --vehicle veh_395yw8tn73ff8 --color 1a2b3c",
1331
1337
  },
1332
1338
  {
@@ -1335,7 +1341,7 @@ export const API_REFERENCE = [
1335
1341
  summary: "Create 1-50 signed delivery URLs for browsers (no key needed to load them).",
1336
1342
  auth: "bearer",
1337
1343
  credits: "1 per URL, charged at creation; redemptions are free",
1338
- params: ["images: [{make, model, year | vehicle, view?, color? (preset or hex), size?, width?, height?, fit?, background?, trim?, padding?, shadow?, format?}] (or a single image object)", "ttl_seconds (60-604800; default 3600)", "max_uses (0-1000; 0 = unlimited; default 0)", "renew (auto-renew past the TTL at 1 credit per opened window; requires max_uses 0)", "renew_days (1-365; default 365)", "header Idempotency-Key (optional; a retry with the same key and body replays the first response instead of billing again)"],
1344
+ params: ["images: [{make, model, year | vehicle, view?, color? (preset or hex), size?, width?, height?, fit?, background?, framing?, trim?, padding?, shadow?, format?}] (or a single image object)", "ttl_seconds (60-604800; default 3600)", "max_uses (0-1000; 0 = unlimited; default 0)", "renew (auto-renew past the TTL at 1 credit per opened window; requires max_uses 0)", "renew_days (1-365; default 365)", "header Idempotency-Key (optional; a retry with the same key and body replays the first response instead of billing again)"],
1339
1345
  returns: "201 {data:[{id,url,expires_at,max_uses,renews_until,vehicle:{vehicle_id,…}}], billing:{charged_on:'creation',credits_charged,credits_remaining,credits_per_url,renewal?}, request_id}; a replay carries Idempotent-Replayed: true",
1340
1346
  errors: ["400 invalid body or batch > 50", "401", "402", "404 vehicle not in catalog", "409 same Idempotency-Key still in flight", "422 same Idempotency-Key with a different body", "429"],
1341
1347
  sdk: "client.createImageUrls([{ make, model, year, ...sizing }, { vehicle: 'veh_…' }], { ttlSeconds, maxUses, renew, renewDays, idempotencyKey })",
@@ -1356,7 +1362,7 @@ export const API_REFERENCE = [
1356
1362
  summary: "Views, colors, sizes, formats, pricing and catalog coverage.",
1357
1363
  auth: "public",
1358
1364
  credits: "free",
1359
- returns: "{data:{views:[{id,label,yaw_degrees,description,aliases}], colors:[{name,hex}], paint:{parameter,custom,example}, sizes:{presets,max,source}, fits, default_fit, backgrounds, trim, formats, pricing:{credits_per_image,credits_per_dollar,free_credits}, catalog:{makes,models,years,sources}, vehicle_ids:{description,example,lookup,parameter}}}",
1365
+ returns: "{data:{views:[{id,label,yaw_degrees,description,aliases}], colors:[{name,hex}], paint:{parameter,custom,example}, sizes:{presets,max,source}, fits, default_fit, framings, default_framing, backgrounds, trim, formats, pricing:{credits_per_image,credits_per_dollar,free_credits}, catalog:{makes,models,years,sources}, vehicle_ids:{description,example,lookup,parameter}}}",
1360
1366
  sdk: "client.options()",
1361
1367
  cli: "car-image options",
1362
1368
  },
@@ -1492,12 +1498,12 @@ export const API_REFERENCE = [
1492
1498
  {
1493
1499
  method: "GET",
1494
1500
  path: "/api/v1/account",
1495
- summary: "Credits, auto-reload, payment method, 30-day usage, key scopes.",
1501
+ summary: "Credits, plan and renewal, usage against every plan limit, the next plan with its checkout link, auto-reload, payment method, 30-day usage, key scopes.",
1496
1502
  auth: "bearer",
1497
1503
  credits: "free",
1498
- returns: "{data:{credits, auto_reload, has_payment_method, pricing, usage_30d:{requests,images,cache_hit_rate}, key:{prefix,scopes}}, links, request_id}",
1504
+ returns: "{data:{credits, auto_reload, has_payment_method, plan, pricing, usage_30d:{requests,images,cache_hit_rate}, limits_usage:{period, distinct_vehicles_this_month:{used,limit,remaining}, api_keys:{used,limit,remaining}, requests_per_minute_per_key, requests_per_minute_per_account}, renews_at, next_plan:{id,name,price,adds,checkout_url}, key:{prefix,scopes}}, links, request_id}",
1499
1505
  sdk: "client.account()",
1500
- cli: "car-image whoami",
1506
+ cli: "car-image whoami (alias: account)",
1501
1507
  },
1502
1508
  {
1503
1509
  method: "POST",
@@ -1619,7 +1625,7 @@ export function nextStepFor(status) {
1619
1625
  case 401:
1620
1626
  return "The API key is missing or invalid. Set CAR_IMAGE_API_KEY (or run `car-image login`); never paste keys into prompts.";
1621
1627
  case 402:
1622
- return `Insufficient credits. Stop and ask a human to buy credits at ${DEFAULT_BASE_URL}/dashboard?ref=mcp#billing (or run \`car-image billing\`). Do not purchase credits autonomously.`;
1628
+ return `Insufficient credits. Stop and give the human checkout_url with its price (or ${DEFAULT_BASE_URL}/dashboard?ref=mcp#billing, or \`car-image upgrade --credits 500\`); they pay in Stripe Checkout. Buy credits only when the human asks or a spending mandate they set covers it.`;
1623
1629
  case 403:
1624
1630
  return "This key lacks the required scope. Ask the human to create a key with the right scopes in the dashboard.";
1625
1631
  case 404: