Skip to main content
Glama

Server Details

Japanese car genealogy with sources: generations, developers, and sales figures. Read-only.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a completely distinct purpose: search finds vehicles, get_vehicle retrieves series/generation details, get_sales_figures provides sales data, and get_vehicle_relationships handles connections between generations. There is no overlap or ambiguity in their responsibilities.

Naming Consistency5/5

All tool names follow the consistent verb_noun pattern: get_sales_figures, get_vehicle, get_vehicle_relationships, search_vehicles. The pattern is uniform and predictable, making it easy to infer functionality from names.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose of providing car series data, sales figures, and relationships. Each tool covers a distinct area without redundancy, and the count is neither too thin nor excessive.

Completeness5/5

The tool surface covers the core domain comprehensively: search to find vehicles, retrieval of series/generation details, sales data access, and relationship queries. For a read-only car genealogy server, there are no obvious missing operations or dead ends.

Available Tools

6 tools
check_part_fitmentCheck aftermarket part fitment
Read-onlyIdempotent
Inspect

Use this when the user asks whether an aftermarket part (wheel, coilover, muffler, brake pad, intake and so on) fits a specific car generation, or which parts are confirmed to fit it. Pass the model_id of that generation from search_vehicles. Returns {model, url, total, parts, next_offset}. parts lists only the products that a published fitment table, such as the maker's own, names as fit or conditional for this generation; products not tied to any vehicle and fitment guessed from bolt pattern or size are never included, and a size is left out at any position where the table notes it sticks out of the fender or needs bodywork. Each part has name, manufacturer, part_number, part_key, description, official_url and variants: the sizes or versions that fit, each with specification, status (fit or conditional), conditions (for conditional, the notes of the fitment table as written, such as positions, tires, production period or remarks; tell the user about them), list_price_yen (the maker's list price in yen, tax included, for one unit as the maker sells it, and the unit differs by part: one wheel for wheels, so a car takes four; the whole car's kit for suspension such as coilovers; one axle, left and right, for brake calipers and brake pads; for other parts the item as the maker lists it; null when not listed), wheel dimensions when the part is a wheel, and other attributes. url is this generation's page on car-gene.com to show the user; it is null when the generation has no confirmed fitment. The response has no seller prices and no purchase links. Narrow with part_key and query. Parts are cut to fit the response size; when next_offset is not null, call again with offset set to it. An empty parts list means nothing matched among the confirmed fitments; the part may not be researched yet for this generation, so never say it does not fit. Do not use this for the history, specs or developers of a car (use get_vehicle), or to find a garage that installs parts.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoPart number, product name or maker name, such as TE37, RAYS or a part number. Width, case and hyphens are normalized away; words separated by spaces must all match. Omit to list everything confirmed.
offsetNoWhere to start in the list; pass next_offset from the previous response. Omit to start from the beginning.
model_idYesGeneration (model) id, a UUID from search_vehicles (matched_models, or models of get_vehicle). A series id is not accepted: fitment is per generation.
part_keyNoOnly parts of this kind. For example wheel (ホイール), suspension (車高調・サスペンション), muffler (マフラー), brake (ブレーキパッド), brake_caliper (ブレーキキャリパー), intake (エアクリーナー・吸気), rear_spoiler (リアスポイラー). Omit for all kinds.
get_sales_figuresGet sales figuresA
Read-onlyIdempotent
Inspect

Get the sales figures of a series. Without region_code it returns the overview {series_id, url, region_totals, lifetime, coverage, regions}; with region_code it returns that region year by year {series_id, url, region_code, region_totals, coverage, cells, figures, next_year_from}. region_totals sum years within one country only, so never add across countries or add a parent region to its children. lifetime rows are cumulative or per-generation totals that must not be added to the grid. With a model_id, region_totals and lifetime are those of that generation; otherwise region_totals are the series totals and lifetime is the whole series. coverage rows are the blanks that were checked and found empty, with the reason; a region with coverage rows and no figures was researched, not skipped. regions lists the region codes that have figures or checked blanks, with the first and last year; pass one of them as region_code, since any other code is an error. cells are the grid a figure may be summed into, one per series, country, calendar year and metric; a null units on a cell means the sources disagree, never zero sold. figures are the rows as published, each with units, the source's own wording, the period, source_url and a verbatim source_excerpt; match them to cells by region_code, year and metric. A model_id narrows figures to that generation, while cells stay series-wide because allocating a year to a generation needs the whole series. Years are cut to fit the response size, never splitting a year; when next_year_from is not null, call again with year_from set to it. An empty list means not researched yet, never zero.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idNoGeneration (model) id (a UUID from search_vehicles). Takes precedence over series_id when both are given.
series_idNoSeries id (a UUID from search_vehicles).
year_fromNoFirst calendar year to return for region_code; pass next_year_from from the previous response. Omit to start from the earliest year.
region_codeNoA region code from regions in the overview, such as JP (upper case, as listed). Omit to get the overview.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations indicating read-only, idempotent, and non-destructive behavior, the description goes far beyond this to clarify critical nuances: that region_totals must never be summed across countries or parents, that lifetime rows are cumulative and must not be added, that null units mean disagreement not zero, and that empty lists mean 'not researched yet' not zero. It also explains the semantics of coverage rows, preventing misinterpretation. This is exceptional behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is quite long, but every sentence carries necessary semantic weight—there is no fluff. The structure is front-loaded with the primary return format and then dives into specific nuances. It could be slightly more concise by grouping related concepts (e.g., all warnings about summing), but the density is justified given the complexity. It is structured logically, moving from output overview to parameter-specific details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description is remarkably complete. It explains all output fields, their semantics, pitfalls, and how to interact with the tool across multiple calls (pagination). It covers error conditions (invalid region_code), edge cases (null units, empty lists), and the interaction between parameters (model_id narrowing). Nothing an agent needs to correctly invoke and interpret results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for parameters, so the baseline is 3. The description adds significant value by explaining the relationship between parameters (e.g., model_id takes precedence over series_id, region_code must come from the regions list, year_from is used for pagination with next_year_from). It also clarifies that only one of series_id or model_id should be passed, which is not explicitly in the schema beyond the description field. However, it doesn't elaborate on the format of year_from beyond what's in the schema (e.g., is it inclusive?), so a small gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to get sales figures for a series, with two distinct modes (overview vs. region-specific) based on presence of region_code. It explicitly details the output structure for each mode, which distinguishes it from siblings like get_vehicle or search_vehicles, which are about vehicle metadata, not sales data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: when to omit region_code (overview) vs. include it, how to handle pagination via next_year_from, and emphasizes that only region codes from the regions list are valid, as others cause errors. It also implies when to use other tools by referencing search_vehicles for UUIDs, but does not explicitly say 'use X instead of this'—though the clear domain separation makes that implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vehicleGet a series with its generationsA
Read-onlyIdempotent
Inspect

Get one series with the list of its generations (models) and the cited sources, and with a model_id also that generation in detail. Returns {series, maker, models, sources}, plus model when a model_id is given. Each entry in models has id, name, chassis_code, start_year, end_year (null = still on sale), description, source_url and its public page url; the list is always the whole series. model is the named generation with drivetrains, displacements (engine displacement in cc, one row per engine), and engineers (each with role_name, source_url citing the person's own career, and link_source_url citing that person's work on this very generation; a null link_source_url means not researched yet, so do not read source_url as evidence for this generation). sources are the cited references for the descriptions (url, title, publisher, accessed_on, and model_id: null for the series overview, otherwise the generation whose description it supports); a generation's own sources come only with its model_id. For the engineers or specs of several generations, call once per model_id. An empty drivetrains, displacements, engineers, or sources list means not researched yet, never none. Unknown ids are an error, not an empty result.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idNoGeneration (model) id (a UUID from search_vehicles). Takes precedence over series_id when both are given.
series_idNoSeries id (a UUID from search_vehicles).

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation as read-only, idempotent, and non-destructive, and the description adds substantial behavior beyond that: null end_year means still on sale, empty lists mean 'not researched yet' rather than absence, null link_source_url must not be treated as source evidence, unknown IDs are errors, and source ownership is generation-specific. This is exactly the kind of contextual behavior an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While long, the description is densely packed and every sentence carries essential semantics: return shape, null conventions, empty-list conventions, source scoping, and error behavior. The main purpose is front-loaded, and the supporting details are organized logically rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description fully covers return values, field meanings, edge-case conventions, and error handling. It also addresses multi-call behavior for several generations, leaving no critical gap for an agent deciding whether and how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents both series_id and model_id, including precedence. The description enhances parameter meaning by explaining how model_id changes the returned payload, how per-generation source lists only appear with model_id, and that repeated calls per model_id are needed for multi-generation specs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('Get one series') plus the optional detail path via model_id, and spells out the exact return shape {series, maker, models, sources}. This clearly distinguishes it from sibling tools like get_vehicle_relationships or get_sales_figures without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool, such as retrieving a series with generations or a single generation in detail, and explicitly advises calling once per model_id for engineers or specs of several generations. It does not explicitly compare against sibling tools, but the scoping is clear enough that an agent can infer the right context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vehicle_relationshipsGet relationships between generationsA
Read-onlyIdempotent
Inspect

Get the relationships between generations (succession, sibling, derivation, spiritual successor). A series_id returns the relations of the whole series; a model_id returns only the relations that have that generation at either end. Returns {series_id, url, total, relations, next_offset}, plus model_id when given: each relation has kind and kind_name, kind_directed, from_model and to_model (each with id, name, chassis_code, start_year, end_year, series_name and public page url), and where the source requires one, source_url with the verbatim source_excerpt; rationale is filled for spiritual successors. When kind_directed is false the two ends are interchangeable, so treat the relation as belonging to both generations. Relations are cut to fit the response size; when next_offset is not null, call again with offset set to it. An empty relations list means not researched yet, never that the car has no relatives.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoWhere to start in the list; pass next_offset from the previous response. Omit to start from the beginning.
model_idNoGeneration (model) id (a UUID from search_vehicles). Takes precedence over series_id when both are given.
series_idNoSeries id (a UUID from search_vehicles).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnly and idempotent annotations by explaining pagination behavior ('Relations are cut to fit the response size'), the meaning of next_offset, and the important semantic that an empty relations list means 'not researched yet' rather than 'no relatives'. It also details how kind_directed=false affects interpretation, which is genuinely useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence in the description earns its place: purpose, parameter scoping, return shape, directionality semantics, pagination, and empty-list meaning are all covered without redundant filler. The most important scoping information comes first, and complex details are packed efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because there is no output schema, the description carries the full burden of explaining the return value, and it does so thoroughly: field names, nested relation structure, source_url, rationale, directionality handling, pagination, and empty-list semantics. The operation is read-only and idempotent per annotations, so no additional safety caveats are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantics beyond the schema: it explains that series_id scopes to the whole series and model_id scopes to relations with that generation at either end. It reinforces the offset contract by telling the caller to pass next_offset from the previous response. This exceeds the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Get the relationships between generations' and enumerates relationship types (succession, sibling, derivation, spiritual successor). It clearly distinguishes the series-level versus model-level scope, and its domain is obviously different from the sibling tools (sales, vehicle details, search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for choosing between series_id and model_id: series_id returns relations for the whole series, while model_id returns only relations involving that generation. It does not explicitly name alternatives or exclusions relative to sibling tools, but the parameter-selection guidance is strong and the tool's purpose is distinct enough that this is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_shopsSearch car service shops in Japan
Read-onlyIdempotent
Inspect

Use this when someone looks for a place in Japan to have a car service done, such as a vehicle inspection (shaken), a self-service or hand car wash, a coating, a wheel alignment, or fitting coilovers, near a city or a point. Do not use it for car history or parts; use the other skills. Returns only shops confirmed to offer the service, nearest first, within radius_km of the origin: {service: {code, name, conditions}, origin, radius_km, require, total, shops, next_offset}. Each shop has name, shop_type, address, distance_km, availability (available, or conditional when it depends on the car), price_min, price_max, price_note, confirmed (the conditions checked for this shop: a yes_no condition with available true or false, a number condition such as an inspection fee with value and unit) and the url of its public page, where the booking link and sources are. A condition missing from confirmed is not researched yet, never absent. service.conditions lists each condition with its type; pass yes_no codes in require to keep only shops confirmed to meet them. The order is distance only. Empty shops means nothing matched among the shops confirmed so far, not that no such shop exists; widen radius_km.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoA Japanese city, ward, town or village in Japanese, such as 藤沢, 藤沢市 or 横浜市港北区. Add the prefecture (東京都府中市) when a name exists in several prefectures.
offsetNoWhere to start in the list; pass next_offset from the previous response. Omit to start from the beginning.
requireNoyes_no condition codes from service.conditions of a previous response; only shops confirmed to meet all of them are returned.
latitudeNoOrigin latitude, when no area is given.
longitudeNoOrigin longitude, when no area is given.
radius_kmNoDistance from the origin, in km.
service_codeYesThe service: vehicle_inspection (shaken, 車検), self_car_wash (セルフ洗車), hand_car_wash (手洗い洗車), automatic_car_wash (機械洗車), coating (コーティング), wheel_alignment_4 (4輪アライメント), camber_adjustment, toe_adjustment, tire_replacement (タイヤ交換), suspension_install (車高調・サスペンション取付).
search_vehiclesSearch vehicles
Read-onlyIdempotent
Inspect

Find series by name, maker name, a generation's name, or a generation's chassis code. Series names match by normalized substring (width, case, kana), maker names by prefix, chassis codes by substring of the code as written (a slash-joined code is one string, not split). A generation matched by its name or chassis code is listed in matched_models. Returns {query, total, hits: [{series, maker, matched_models}], next_offset} where each series and model carries its public page url; pass the ids in the hits to the other skills. Hits are ranked and cut to fit the response size; when next_offset is not null, call again with offset set to it for the rest. Empty hits means nothing matched the query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSeries name, maker name, or chassis code. Width, case, hiragana/katakana, long vowel marks and hyphens are normalized away before matching.
offsetNoWhere to start in the list; pass next_offset from the previous response. Omit to start from the beginning.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addedsearch_shops
  2. 1 tool update
    • Addedcheck_part_fitment
  3. 3 tool updates
    • Changedget_sales_figures2 fields changed
      • addedInput schema / properties / region_code
        Added value: +{
        +  "description": "A region code from regions in the overview, such as JP (upper case, as listed). Omit to get the overview.",
        +  "type": "string"
        +}
      • addedInput schema / properties / year_from
        Added value: +{
        +  "description": "First calendar year to return for region_code; pass next_year_from from the previous response. Omit to start from the earliest year.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedget_vehicle_relationships1 field changed
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Where to start in the list; pass next_offset from the previous response. Omit to start from the beginning.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedsearch_vehicles1 field changed
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Where to start in the list; pass next_offset from the previous response. Omit to start from the beginning.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
  4. 4 tool updates
    • First observedget_sales_figures
    • First observedget_vehicle
    • First observedget_vehicle_relationships
    • First observedsearch_vehicles

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Structured financial data for ~3,800 Japanese listed companies from EDINET regulatory filings — financials, major shareholders, segments, executive compensation, and corporate history. Remote MCP over HTTPS with OAuth 2.0, free tier.
    13
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to access and compare Japanese public data from e-Stat, corporate registration, real estate, and invoice APIs, automatically converting codes into human-readable formats with sources and timestamps.
    14
    38 PyPI
    11
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources