Skip to main content
Glama

mcPER

日本語 | English

Fiat / Lancia / Alfa Romeo / Abarth の純正部品カタログである ePER の v84 に登録された内容を AI に調べてもらうための MCP サーバーです。Claude Desktop、Claude Code、Cursor、VS Code(GitHub Copilot)などの MCP に対応したアプリから使うことができます。

例えば、VIN(車台番号)を伝えて「この車のリアのショックアブソーバーの部品番号は?」と頼むことで、AI に次の作業を依頼できます。

  • VIN から、車の仕様(グレード、製造日、エンジン、オプション)を割り出す

  • その仕様に合う部品だけを選ぶ。年式や仕様ごとの細かい切り替えも、ePER と同じルールで判定する

  • 部品番号が新しい番号に置き換わっている場合は、その変遷を辿る

  • 部品図を表示し、該当する部品の番号を赤枠で囲んで場所を示す

ePER の画面を開いて図を探す手間がなくなります。

非公式のツールです。 mcPER は Stellantis(Fiat Chrysler Automobiles)とは関係がなく、承認や支援も受けていません。Fiat、Lancia、Alfa Romeo、Abarth、ePER は各社の商標です。このリポジトリには ePER のデータは含まれていません。データを生成するには、ePER v84 をインストールした Windows PC が必要です。

必要なもの

  • MCP に対応したアプリ(このページでは Claude Desktop を例に説明します)

  • Node.js 22.13 以上

  • データを準備するとき: ePER v84 をインストールした Windows PC

データを一度作ってしまえば、ePER は不要です。データのディレクトリをコピーすることで、ePER を入れていない PC や Mac でも使えます。

Related MCP server: Vincario MCP Server

準備

1. データを生成する

ePER のある Windows で一度だけ実施する必要があります。

このディレクトリでコマンドプロンプトなどを開き、次を実行します。

npm install
npm run build-data

数分で data/pack ディレクトリが生成されます。ディレクトリの中身は部品カタログ、VIN データ、部品図で、約 5GB です。説明文は日本語と英語だけを入れています。

ePER を既定以外の場所にインストールしている場合は、EPER_DIR でインストール先を指定します。

2. Claude Desktop に登録する

Claude Desktop の設定ファイルに次を追加します。

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mcper": {
      "command": "node",
      "args": ["--no-warnings", "C:\\path\\to\\mcPER\\src\\index.js"]
    }
  }
}

args の2つ目には、このディレクトリの src\index.js の場所を書きます(Mac なら /path/to/mcPER/src/index.js の形)。Claude Desktop が node を見つけられない場合は、command に node のフルパス(例: C:\\Program Files\\nodejs\\node.exe、/opt/homebrew/bin/node)を書いてください。

保存したら、Claude Desktop を完全に終了してから起動し直します。ウィンドウを閉じるだけでは足りないので、タスクトレイのアイコンから「Quit」を選んでください。チャット欄のツール一覧に「mcper」が出ていれば準備完了です。

ほかのアプリに登録する

どのアプリでも、登録する中身は同じです。起動コマンドは node、引数は --no-warnings と src/index.js の場所の2つです。

  • Claude Code: 次のコマンドで登録できます。

    claude mcp add mcper -- node --no-warnings /path/to/mcPER/src/index.js
  • Cursor、VS Code など: 各アプリの MCP 設定ファイルに、上の Claude Desktop の例と同じ command と args を書きこみます。

部品図を表示する機能は、アプリがツールの結果に入った画像を表示できる場合だけ使用できます。

ほかの PC や Mac などで使う

  1. Node.js を入れる(Mac なら brew install node など)

  2. このディレクトリをコピーして npm install を実行する

  3. data/pack も、外付けディスクなどでコピーする

  4. 上と同じように、使うアプリに登録する

data/pack をこのディレクトリの外に置いた場合は、設定に "env": { "MCPER_DATA_DIR": "/path/to/pack" } のように場所を書き足してください。

使い方

登録したアプリで、普通に話しかけます。

  • 「VIN ZFA19800004275255 の車の情報を教えて」

  • 「この車のフロントブレーキパッドの部品番号と、その変遷を調べて。図で場所も見せて」

  • 「バルケッタのリアサスペンションの部品図を見せて」

  • 「部品番号 4449309 は何に置き換わった?」

初めてツールを使うときは、アプリが実行してよいかを確認されます。

知っておいてほしいこと

  • データは 2014 年時点のものです。 それ以降の部品番号の置き換えは含まれていません。

  • 在庫や注文できるかどうかは分かりません。 2014 年当時の在庫情報は今は役に立たないので、あえて出していません。注文できるかは販売店で確かめてください。

  • ePER の日本語の部品名は短い表記です(例: ブレーキパッド → 「パッド・セット」)。見つからないときは、AI が英語などで探し直します。

  • 価格は扱っていません。

困ったとき

  • ツール一覧に mcper が表示されない: 設定ファイルのパスと JSON の書き方を確認し、アプリを完全に終了してから起動し直してください。Claude Desktop の場合、エラーの内容は %APPDATA%\Claude\logs\mcp-server-mcper.log(Mac は ~/Library/Logs/Claude/)に表示されます

  • 「database not found」と出る: npm run build-data を実行していないか、data/pack の場所が異なります

  • 動作を確かめたい: npm test と npm run check-eper を実行すると、ePER の表示結果と一致するかを検証できます

ライセンス

プログラムのコードは MIT License です。データの読み方と適合判定のロジックは openPER(MIT License、Copyright (c) 2023 Christopher Reynolds)から移植しているため、その著作権表示も LICENSE に含めています。

このライセンスはプログラムだけに適用されます。ePER のデータ(data/pack の中身を含む)には適用されず、その著作権は Fiat 側にあります。


mcPER (English)

日本語 | English

mcPER is an MCP server that lets an AI look up the contents of ePER v84, the genuine parts catalogue for Fiat / Lancia / Alfa Romeo / Abarth. It works with any MCP-compatible app, such as Claude Desktop, Claude Code, Cursor and VS Code (GitHub Copilot).

For example, give the AI a VIN and ask "What is the part number of the rear shock absorber for this car?". It can then:

  • Work out the vehicle's specification (version, build date, engine, options) from the VIN

  • Pick only the parts that fit that specification, applying the same rules as ePER, including cut-overs by build date and specification

  • Follow the supersession history when a part number has been replaced by a newer one

  • Show the parts drawing with the reference numbers of the relevant parts framed in red

No more opening ePER and hunting through drawings.

This is an unofficial tool. mcPER is not affiliated with, endorsed by or supported by Stellantis (Fiat Chrysler Automobiles). Fiat, Lancia, Alfa Romeo, Abarth and ePER are trademarks of their respective owners. This repository does not contain any ePER data. Generating the data requires a Windows PC with ePER v84 installed.

Requirements

  • An MCP-compatible app (this page uses Claude Desktop as the example)

  • Node.js 22.13 or later

  • For preparing the data only: a Windows PC with ePER v84 installed

Once the data has been generated, ePER is no longer needed. Copy the data directory and mcPER also works on PCs and Macs without ePER.

Setup

1. Generate the data

This needs to be done once, on the Windows PC with ePER.

Open a command prompt in this directory and run:

npm install
npm run build-data

After a few minutes the data/pack directory is created. It contains the parts catalogue, the VIN data and the parts drawings, about 5 GB in total. Descriptions are included in Japanese and English only.

If ePER is installed somewhere other than the default location, set EPER_DIR to the installation directory.

2. Register with Claude Desktop

Add the following to the Claude Desktop configuration file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mcper": {
      "command": "node",
      "args": ["--no-warnings", "C:\\path\\to\\mcPER\\src\\index.js"]
    }
  }
}

The second item in args is the path to src\index.js in this directory (on a Mac, something like /path/to/mcPER/src/index.js). If Claude Desktop cannot find node, put the full path to node in command (e.g. C:\\Program Files\\nodejs\\node.exe or /opt/homebrew/bin/node).

After saving, quit Claude Desktop completely and start it again. Closing the window is not enough: choose "Quit" from the tray icon. When "mcper" appears in the chat's tool list, you are ready.

Registering with other apps

The registration is the same in every app: the command is node, and the two arguments are --no-warnings and the path to src/index.js.

  • Claude Code: register with this command:

    claude mcp add mcper -- node --no-warnings /path/to/mcPER/src/index.js
  • Cursor, VS Code, etc.: write the same command and args as in the Claude Desktop example into the app's MCP configuration file.

Drawings can only be shown if the app can display images included in tool results.

Using it on another PC or a Mac

  1. Install Node.js (on a Mac, e.g. brew install node)

  2. Copy this directory and run npm install

  3. Copy data/pack as well, e.g. with an external drive

  4. Register it with your app as described above

If you put data/pack outside this directory, add its location to the configuration, e.g. "env": { "MCPER_DATA_DIR": "/path/to/pack" }.

Usage

Just talk to the app you registered it with:

  • "Tell me about the car with VIN ZFA19800004275255"

  • "Find the part number of the front brake pads for this car and its supersession history. Show me where it is on the drawing."

  • "Show me the rear suspension drawing for the Barchetta"

  • "What replaced part number 4449309?"

The first time a tool is used, the app asks for permission to run it.

Good to know

  • The data is from 2014. Supersessions after that are not included.

  • Availability is unknown. The 2014 stock information is of no use today, so it is deliberately left out. Check with a dealer whether a part can be ordered.

  • Japanese part names in ePER are terse (e.g. brake pads → "パッド・セット"). If nothing is found, the AI retries in English or with other words.

  • Prices are not covered.

Troubleshooting

  • mcper does not appear in the tool list: check the path in the configuration file and the JSON syntax, then quit the app completely and start it again. For Claude Desktop, errors are logged to %APPDATA%\Claude\logs\mcp-server-mcper.log (on a Mac, ~/Library/Logs/Claude/)

  • "database not found": npm run build-data has not been run, or data/pack is in a different location

  • Checking that it works: run npm test and npm run check-eper to verify the results against what ePER displays

License

The program code is under the MIT License. The data access and fitment logic is ported from openPER (MIT License, Copyright (c) 2023 Christopher Reynolds), so its copyright notice is included in LICENSE as well.

This license applies to the program only. It does not apply to ePER data (including the contents of data/pack), which is copyrighted by Fiat.

Available Tools

14 tools
decode_vinB

Decode a VIN using ePER chassis data: model, MVS version, catalogue(s), build date, engine number, organization number, colours and factory options (CARATT).

NameRequiredDescriptionDefault
vinYes17-character VIN
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
include_optionsNoDescribe each option code (default true)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries full disclosure burden: it does name what data comes back (model, MVS version, build date, engine number, colours, CARATT options), which is genuinely useful. It says nothing about failure behavior for unknown/invalid VINs, whether results hit an external ePER service (latency, rate limits), or read-only/reversibility traits.

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?

A single front-loaded sentence with the action and scope first and the return fields following. No filler, nothing repeated from structured fields.

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

Completeness3/5

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

With no output schema and no annotations, the list of returned fields is a meaningful compensation, but the definition still leaves an agent without error handling guidance, any indication of external-service dependency, or whether partial results are possible (e.g., VIN unknown in some catalogues).

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

Parameters3/5

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

Schema coverage is 100% and each parameter (vin, lang, include_options) is documented in the schema, so baseline 3 applies. The mention of 'factory options (CARATT)' loosely maps to include_options but adds no syntax or defaulting detail beyond the schema.

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

Purpose4/5

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

States a specific verb (Decode) plus resource (VIN) and names the data source (ePER chassis data), then enumerates the payload. No sibling in the list does VIN decoding, so no differentiation is needed, though the enumeration reads more like a field list than a purpose statement.

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

Usage Guidelines2/5

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

There is no when-to-use / when-not-to-use guidance, no prerequisite conditions (e.g., that a 17-char VIN is required, or that it queries ePER chassis data specifically), and no pointer to any alternative tool for parts lookup if the VIN is not found. Usage is only implied by the verb.

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

get_assembly_imageB

Show the exploded view (cliché) of an assembly part, e.g. a brake caliper with its pads and seals (parts with has_components or inside_assembly). Component reference numbers can be framed in red.

NameRequiredDescriptionDefault
viewNoView index when the assembly has several (default 0)
part_numberYesAssembly part number
highlight_refsNoReference numbers to frame in red
highlight_partsNoPart numbers whose reference numbers are framed in red

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It explains the visual output and red framing behavior, but it does not cover return format, permissions, handling of multiple views, failure cases, or what happens when no exploded view exists.

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 two efficient sentences, front-loading the primary action and then adding usage examples and highlighting behavior. The parenthetical qualifiers are compact, though slightly informal.

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

Completeness3/5

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

The schema is fully documented and the description sufficiently identifies the operation, but with no annotations and no output schema, it should do more to explain what the tool returns and how it relates to get_drawing_image. The core invocation is clear, but context is incomplete for an image-producing tool.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description mentions reference numbers being framed in red, which relates to the highlight parameters, but adds no syntax or behavioral detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb-resource pair: show an exploded view of an assembly part. The brake caliper example and the has_components/inside_assembly condition make the intended resource clearer, though it does not explicitly distinguish this from the sibling get_drawing_image tool.

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

Usage Guidelines3/5

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

The description implies the tool is for assembly parts with components or parts inside assemblies, giving some usage context. However, it lacks explicit when-not guidance and does not name get_drawing_image or other siblings as alternatives.

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

get_drawing_imageA

Show the exploded-view drawing of a parts table (same keys as get_table_parts). The reference numbers of the given parts are framed in red so the user can see where they are.

NameRequiredDescriptionDefault
groupYes
sgs_codeYes
subgroupYes
varianteNoDrawing variant; default the first
catalogueYesCatalogue code (CAT_COD), e.g. "PK". Get it from decode_vin or list_catalogues.
highlight_refsNoReference numbers to frame in red
highlight_partsNoPart numbers whose reference numbers are framed in red

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the important behavioral trait: the return is a rendered drawing in which matching reference numbers are framed in red, which is non-obvious visual behavior. It omits any mention of error cases (e.g., missing variant) or whether all parts are shown when no highlight is requested.

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?

Two sentences, front-loaded with the core action, and the second sentence explains the user-facing value of the highlighting rather than restating parameters. Efficient, with only minor redundancy between the two sentences about red framing.

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

Completeness3/5

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

For a 7-parameter, 4-required tool with no annotations and no output schema, the definition covers the essentials (key source, draw action, highlight effect) but not the hierarchical semantics of catalogue/group/subgroup/sgs_code or what the image contains when no highlights are given. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 57%, so roughly half the parameters are documented in the schema. The description adds real meaning for highlight_refs/highlight_parts (they cause parts to be framed in red) and validates the key set against get_table_parts, but says nothing about group/subgroup/sgs_code hierarchy or variant selection beyond what the schema already states.

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

Purpose4/5

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

States a specific verb and resource ('Show the exploded-view drawing of a parts table') and ties the key structure to get_table_parts, which lets an agent map inputs immediately. It doesn't explicitly contrast with the similar sibling get_assembly_image, so sibling differentiation is partial.

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

Usage Guidelines3/5

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

'Same keys as get_table_parts' implies the workflow (look up a parts table, then request its drawing), but there is no explicit statement of when to choose this over get_assembly_image or what happens if no highlight parameters are supplied. Usage is inferable rather than stated.

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

get_modificationA

Describe a modification code (from a MODIF field such as "D2105") and its cut-over points (build date, chassis, engine, organization number).

NameRequiredDescriptionDefault
codeYesModification number without the D/C prefix
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
catalogueYesCatalogue code (CAT_COD), e.g. "PK". Get it from decode_vin or list_catalogues.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the shape of the returned content (cut-over points: build date, chassis, engine, organization number), which compensates for the absent output schema, and "Describe" implies a read-only lookup. However, it says nothing about error behavior for unknown codes, whether one or many records come back, or locale fallback behavior.

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?

One sentence, front-loaded with the action and resource, with the explaining details (example code, return fields) parenthesized rather than padded into extra clauses. Nothing here is wasted.

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

Completeness4/5

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

For a simple three-parameter lookup with a fully documented schema and no output schema, the description covers the essential contract: what it looks up and what comes back. The remaining gaps (unknown-code behavior, cardinality of results) are minor for a reference lookup tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters, including the D/C-prefix rules and language fallback. The description adds only the contextual detail that the code originates in a MODIF field, which is mildly helpful but not required to call correctly. Baseline 3 applies.

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

Purpose4/5

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

The description pairs a specific verb ("Describe") with a specific resource (a modification code from a MODIF field) and lists the exact content returned (build date, chassis, engine, organization number). It also grounds the input with a concrete example ("D2105"), making the tool unambiguous. It doesn't explicitly contrast with siblings, but none of the listed siblings overlap in domain.

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

Usage Guidelines3/5

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

Usage is only implied: the agent infers it should call this when it has a MODIF code in hand. There is no statement of when not to use it, no prerequisite call sequence, and no mention of what happens with an unknown/invalid code. The pointer to decode_vin/list_catalogues for the catalogue param is in the schema, not the description.

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

get_partB

Get details of a part number: description, family, unit, weight, counts of supersessions, and the components if it is an assembly.

NameRequiredDescriptionDefault
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
part_numberYes

TDQS

B3/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden; it does disclose the returned fields and a conditional behavior (components only when the part is an assembly), which is real value. It says nothing about behavior when the part number is unknown, whether lookups are cached, or result size, which is a notable gap for an unannotated, output-schema-less tool.

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?

One front-loaded sentence that spends its words listing actual return fields rather than filler. It is close to ideal length, though the field list could be grouped or the part-number expectation appended without bloat.

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

Completeness3/5

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

With no output schema and no annotations, the description does a fair job of describing the response shape, but omits what an agent needs to call it confidently: accepted part-number format and not-found behavior. Adequate but with clear gaps for a two-parameter lookup tool.

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

Parameters2/5

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

Schema coverage is only 50%: 'lang' is documented in the schema with its ja default and English fallback, but 'part_number' has no schema description and the description never specifies format, normalization, or prefix expectations. The description adds no parameter meaning beyond restating that a part number is the input.

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

Purpose4/5

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

States a specific verb (get) and resource (details of a part number) and enumerates the payload: description, family, unit, weight, supersession counts, assembly components. It does not name or contrast with siblings like get_part_history or where_used, so the agent must infer the boundary.

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

Usage Guidelines2/5

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

Implies you must already have a part number, but gives no when-to-use conditions and no routing against near siblings such as get_part_history, where_used, or search_parts. Nothing tells the agent when this is the wrong choice.

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

get_part_historyB

Follow the supersession (replacement) chain of a part number in both directions: which numbers replaced it (with dates, quantity ratios and interchangeability) and which older numbers it replaced. current_parts lists the end(s) of the chain.

NameRequiredDescriptionDefault
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
max_depthNoMax steps each way (default 10)
part_numberYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the payload shape (dates, quantity ratios, interchangeability) and the bidirectional, depth-bounded traversal. It does not cover what happens with an unknown or non-superseded part number, whether chains can be cyclic, or what ordering the results come in.

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?

Two sentences, front-loaded with the core action, and every clause carries information (directions, attached metadata, endpoint tool). The phrase 'which numbers replaced it… and which older numbers it replaced' is slightly redundant but not wasteful.

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

Completeness3/5

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

For a three-parameter read tool with no annotations and no output schema, the description gives a decent sketch of the returned data and chain semantics. It still leaves out error behavior, whether the queried part appears in the results, and any indication of result size or depth effects.

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

Parameters3/5

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

Schema coverage is 67%: lang and max_depth are documented in the schema, but part_number has no schema description at all. The prose implies part_number identifies the chain to traverse but adds no format or validity guidance, and it does not elaborate on how max_depth interacts with the two-way walk beyond what the schema already says.

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

Purpose4/5

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

The description names a specific verb and resource ('Follow the supersession (replacement) chain of a part number') and makes the direction of traversal explicit (both newer replacements and older predecessors). It does not, however, contrast itself with nearby siblings such as get_part or where_used, so an agent must infer that this is the supersession tool rather than a fitment tool.

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

Usage Guidelines3/5

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

Usage is implied by the concept of a supersession chain, and the closing note tells the agent to use current_parts for chain endpoints. There is no explicit 'use this when…' statement, no exclusions, and no guidance on when get_part or where_used would be the better call.

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

get_table_partsB

Get the parts list of a table (drawing): reference number, part number, quantity, description, notes, option pattern and modifications. Pass vin to evaluate fitment for that vehicle.

NameRequiredDescriptionDefault
mvsNoSINCOM/MVS version code (e.g. "183.829.0.0") when no VIN is available; less precise than a VIN.
vinNo17-character VIN. When given, each item gets fits = yes/no/maybe for this vehicle.
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
driveNoForce left (L) or right (R) hand drive, like the ePER drive selector. Default: from the VIN, else left.
groupYes
sgs_codeYesSub-subgroup code from list_tables
subgroupYes
varianteNoDrawing variant; omit for all variants
catalogueYesCatalogue code (CAT_COD), e.g. "PK". Get it from decode_vin or list_catalogues.
only_fittingNoWith vin/mvs: drop parts with fits="no" (default false)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose the shape of the response (field list) which compensates for the absent output schema, and explains the fitment evaluation behavior, but says nothing about result size, pagination, error behavior for an invalid table, or whether the call is a pure read.

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?

Two tight sentences with the core purpose front-loaded and the field list second. The vin sentence is slightly redundant with schema text but is short enough not to be waste.

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

Completeness3/5

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

For a 10-parameter tool with no annotations and no output schema, the description covers what is returned and one fitment hint. It omits the discovery chain for catalogue/group/subgroup/sgs_code, the mvs-without-VIN path, and any guidance on variants or the only_fitting filter, leaving the agent to reconstruct workflow from the schema alone.

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

Parameters3/5

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

Schema description coverage is 80%, so the baseline is 3. The description's note about vin fitment duplicates the schema's own vin description, and it adds nothing about the mvs fallback, lang, drive, variante, or only_fitting parameters beyond what the schema already documents.

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

Purpose4/5

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

A specific verb and resource ('Get the parts list of a table (drawing)') plus an enumeration of the returned fields (reference number, part number, quantity, description, notes, option pattern, modifications). This clearly separates it from get_part (single part) and search_parts (query-based), though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

The only usage guidance is 'Pass vin to evaluate fitment for that vehicle', which explains one optional parameter rather than when to choose this tool over search_parts or get_part. Nothing states prerequisites (e.g. that sgs_code must come from list_tables) or what to do when no VIN is available.

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

list_cataloguesA

List catalogues (model ranges). Filter by sub-make (F=Fiat, T=Fiat Commercial, L=Lancia, R=Alfa Romeo, C=Abarth) and/or text in the description.

NameRequiredDescriptionDefault
makeNoSub-make code: F, T, L, R or C
queryNoText in catalogue/model name, e.g. "PUNTO"

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral load. 'List' plus optional filters makes the read-only, idempotent nature clear, but there is no statement about return volume, ordering, pagination, or whether an empty filter set returns everything — gaps that matter for a catalogue enumeration.

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?

A single compact sentence with the core action front-loaded and the filter semantics following. No filler; the parenthetical gloss and code legend both earn their place, though the phrase 'text in the description' is ambiguous (catalogue description vs. this tool's description).

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

Completeness3/5

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

There is no output schema, so the description is the only place the return shape could be characterized — yet it never says what a catalogue record contains (code, name, model years?) or how many typically come back. For a simple two-parameter lookup this is adequate but leaves the agent guessing about the response.

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 would be 3, but the description adds genuine value beyond the schema: it decodes the sub-make enum (F=Fiat, T=Fiat Commercial, L=Lancia, R=Alfa Romeo, C=Abarth), which the schema lists only as bare codes. It also reinforces that the two filters are combinable ('and/or').

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

Purpose4/5

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

The description states a specific verb and resource ('List catalogues') and immediately glosses the domain term as '(model ranges)', which an agent can't infer from the name alone. It does not explicitly differentiate itself from near-neighbour siblings like list_groups or list_subgroups, so it falls short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied: 'Filter by sub-make ... and/or text in the description' tells the agent the filters are optional and combinable, but says nothing about when to choose this tool over list_groups/list_subgroups or what happens when both filters are omitted (presumably a full listing, but that is inference).

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

list_groupsB

List the main groups of a catalogue (engine, brakes, body, ...).

NameRequiredDescriptionDefault
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
catalogueYesCatalogue code (CAT_COD), e.g. "PK". Get it from decode_vin or list_catalogues.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. While 'List' implies a read-only operation, the description does not state whether the result is paginated, requires specific permissions, or has any other behavioral constraints, leaving meaningful gaps for an unannotated tool.

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?

The description is a single efficient sentence with the core purpose front-loaded. The parenthetical examples add useful concreteness without any wasted wording.

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

Completeness3/5

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

For a simple two-parameter list tool with no output schema and no annotations, the description is minimally adequate: it states what is listed and gives examples. However, it omits return-shape context, pagination behavior, and differentiation from the closely related list_subgroups tool.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters are fully documented in the input schema, including the catalogue code and language fallback. The description adds only the examples of groups, not additional parameter semantics, so baseline 3 is appropriate.

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

Purpose4/5

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

The description gives a clear verb and resource: it lists the main groups of a catalogue, and parenthetical examples (engine, brakes, body) make the content concrete. It does not explicitly distinguish itself from the sibling tool list_subgroups, but the core operation is unambiguous.

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

Usage Guidelines2/5

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

The description states what the tool does but gives no guidance on when to use it versus alternatives such as list_subgroups, list_tables, or list_catalogues. There are no prerequisites, exclusions, or routing cues beyond the implicit meaning of 'main groups'.

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

list_languagesA

List languages available in the catalogue.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden, but the tool is a zero-parameter read-only lookup, so the risk surface is small. It does not state that no filtering/pagination exists or what the result set looks like, which would have been cheap and useful disclosure.

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?

One short sentence, front-loaded with the verb and resource, with zero filler. Nothing is padded or buried.

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

Completeness3/5

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

With no output schema and no annotations, the description leaves the return shape (language codes vs. human-readable names) and whether the list is static or catalogue-scoped implicit. For a trivial lookup this is tolerable, but it is not complete.

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 defines zero parameters, so there is nothing for the description to disambiguate — baseline 4 applies. Mentioning the 'catalogue' scope is a small bonus that clarifies which universe of languages is returned.

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

Purpose4/5

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

States a specific verb ('List') and resource ('languages') scoped to 'the catalogue', which is clear enough to distinguish it from list_catalogues, list_tables, and the other list_* siblings. It stops short of explicitly naming a sibling it is not, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

Use is only implied — an agent can infer this is the lookup to call when a language code/name is needed for other queries, but the description never says when to use it, what alternative to prefer, or any prerequisite. Adequate minimum with clear gaps.

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

list_subgroupsC

List the subgroups of a group in a catalogue.

NameRequiredDescriptionDefault
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
groupYes
catalogueYesCatalogue code (CAT_COD), e.g. "PK". Get it from decode_vin or list_catalogues.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about read-only safety, whether results are recursive or single-level, pagination, or what happens for a leaf group. Only the bare operation is disclosed.

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?

A single, front-loaded sentence with no filler. It is efficient, though the terseness borders on under-specification rather than crispness.

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

Completeness2/5

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

For a hierarchy-listing tool with no annotations and no output schema, the description should at least clarify nesting depth and result shape. As written, an agent cannot tell whether subgroups are returned flat or as a tree, or how to continue traversal.

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

Parameters3/5

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

Schema description coverage is 67%, so the schema already documents the catalogue and lang parameters reasonably well. The description adds no parameter meaning beyond that, and the required 'group' parameter has no description at all in either place.

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

Purpose4/5

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

The description states a specific verb and resource ('List the subgroups of a group in a catalogue'), so an agent knows exactly what the tool returns. However, it never distinguishes itself from the sibling list_groups or explains how the two relate in the hierarchy.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of when to prefer list_groups or list_tables, and no stated prerequisites such as needing a catalogue code first. The agent must infer the hierarchy traversal from the name alone.

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

list_tablesB

List the parts tables (drawings) of a subgroup, with their applicability. Pass vin to see which tables fit the vehicle.

NameRequiredDescriptionDefault
mvsNoSINCOM/MVS version code (e.g. "183.829.0.0") when no VIN is available; less precise than a VIN.
vinNo17-character VIN. When given, each item gets fits = yes/no/maybe for this vehicle.
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
driveNoForce left (L) or right (R) hand drive, like the ePER drive selector. Default: from the VIN, else left.
groupYes
subgroupYes
catalogueYesCatalogue code (CAT_COD), e.g. "PK". Get it from decode_vin or list_catalogues.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that results include applicability and that vin adds fit information, but it omits read-only confirmation, pagination, error behavior, and output shape.

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?

Two short sentences with no wasted words. The primary action is front-loaded, and the vin hint follows immediately.

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

Completeness2/5

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

The tool has 7 parameters, no annotations, and no output schema, yet the description does not explain the result structure or the hierarchy of catalogue/group/subgroup. It is minimally callable but leaves significant gaps for an agent to infer.

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

Parameters3/5

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

Schema description coverage is 71%, so the schema already documents most parameters well. The description only reiterates the vin behavior without adding syntax, constraints, or meaning for catalogue, group, and subgroup beyond what the schema shows.

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

Purpose4/5

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

States a specific verb and resource: list the parts tables (drawings) of a subgroup, with applicability. This clearly distinguishes it from get_table_parts, but does not explicitly contrast with list_subgroups or list_groups.

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

Usage Guidelines3/5

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

The description implies usage context by explaining that passing vin shows which tables fit the vehicle. However, it does not state when to use this tool versus list_subgroups, get_table_parts, or other siblings.

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

search_partsA

Search a catalogue for parts by description words (all words must match; Japanese or English) or by part number prefix. ePER Japanese names are terse katakana (e.g. "パッド セット" for brake pads, "フィルタ" for filters); if nothing matches, retry with a shorter word or English ("PADS", "OIL FILTER"), or browse groups. With vin the catalogue is taken from the VIN and results are sorted by fitment.

NameRequiredDescriptionDefault
mvsNoSINCOM/MVS version code (e.g. "183.829.0.0") when no VIN is available; less precise than a VIN.
vinNo17-character VIN. When given, each item gets fits = yes/no/maybe for this vehicle.
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
driveNoForce left (L) or right (R) hand drive, like the ePER drive selector. Default: from the VIN, else left.
groupNoRestrict to one main group (see list_groups)
limitNoMax results (default 50)
queryYes
catalogueNoCatalogue code; optional when vin is given

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: all words must match, Japanese/English handling, terse katakana naming pitfalls, fallback strategy, VIN-driven catalogue selection, and fitment sorting. It omits pagination/limit behavior and result size, but discloses the traits that most affect correct invocation.

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 core behavior and query modes are front-loaded, and the fallback advice is placed immediately after the primary matching rule. It is dense but contains little waste, though the katakana example could be tightened.

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

Completeness4/5

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

For an eight-parameter search tool with no annotations and no output schema, the description covers query semantics, language pitfalls, fallback behavior, VIN effects, and sorting. Missing pagination and limit semantics are minor given the high schema coverage.

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 already 88%, so the baseline is 3, but the description adds meaningful semantics for the two most important inputs: query matching rules and VIN-driven catalogue selection plus fitment sorting. Other parameters such as limit, group, drive, and lang are left to the schema.

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?

States a specific verb and resource (search a catalogue for parts) and names the two supported query modes: description words or part number prefix. It is clearly distinguishable from siblings like get_part, get_table_parts, and list_groups.

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?

Gives a concrete recovery path when nothing matches (shorter word, English, or browse groups), and explains that supplying a VIN changes catalogue resolution and result ordering. It does not explicitly contrast with get_table_parts or state hard exclusions, so it falls short of a full when/when-not routing guide.

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

where_usedC

List the catalogue tables where a part number is used, and assemblies/kits that contain it.

NameRequiredDescriptionDefault
langNoLanguage for descriptions: ISO code (ja, en, it, de, ...) or ePER code. Default ja; falls back to English.
limitNo
catalogueNo
part_numberYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'List' implies a read operation, but the description does not disclose permissions, pagination behavior, result ordering, or whether results are limited by default.

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?

A single efficient sentence that front-loads the core action and result. It has no wasted text, though it could be structured with a brief usage note.

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

Completeness2/5

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

For a four-parameter lookup tool with no annotations and no output schema, the description is too thin. It does not explain result shape, pagination, catalogue filtering, or language fallback behavior.

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

Parameters2/5

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

Schema description coverage is only 25%, and the description adds meaning only for part_number. The catalogue, limit, and lang parameters are undocumented in both schema and description, leaving important filtering and localization behavior unclear.

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

Purpose4/5

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

States a specific verb and resource: lists catalogue tables and assemblies/kits where a part number is used. It is clear what the tool returns, though it does not explicitly differentiate itself from siblings such as get_table_parts or get_part.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The purpose implies a reverse-lookup use case, but the agent must infer that without explicit routing.

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

Tool Schema Changelog

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

  1. 14 tool updatesv0.1.0
    • First observeddecode_vin
    • First observedget_assembly_image
    • First observedget_drawing_image
    • First observedget_modification
    • First observedget_part
    • First observedget_part_history
    • First observedget_table_parts
    • First observedlist_catalogues
    • First observedlist_groups
    • First observedlist_languages
    • First observedlist_subgroups
    • First observedlist_tables
    • First observedsearch_parts
    • First observedwhere_used

TDQS

A3.5/5.0

Scored across 14 tools

Disambiguation4/5

The tools mostly target clearly distinct operations: hierarchical browsing (groups, subgroups, tables), content retrieval (table parts, part details), search, VIN decoding, supersession history, where-used, and images. The only mild overlaps are get_part/get_part_history/where_used (related but different facets) and get_drawing_image/get_assembly_image (both render exploded views but for different entity types), which descriptions clarify well.

Naming Consistency4/5

Almost all tools follow a predictable snake_case verb_noun pattern (list_groups, get_table_parts, search_parts, decode_vin), with a few acceptable noun-centric variants like get_part_history and get_drawing_image. The outlier is where_used, which is a query phrase rather than a verb_noun name, but it remains readable and clear.

Tool Count5/5

At 14 tools, the set is well-scoped for a read-only parts catalogue: it covers browsing, search, VIN decoding, part relationships, and imagery without bloat. Each tool has a distinct role and no redundant near-duplicates pad the surface.

Completeness4/5

The surface covers the full read-only lifecycle: catalogue navigation, VIN-based fitment, part lookup, supersession history, where-used, modification codes, and exploded views. Minor gaps remain—there is no direct lookup by vehicle attributes (e.g., model/year) without a VIN, and no explicit operation to resolve a table reference number to a part outside get_table_parts—but these are workarounds rather than dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with instant, structured access to electronic component datasheets, pinouts, and electrical specifications without requiring PDF uploads. It enables seamless part searching, design validation, and side-by-side component comparisons across major hardware providers.
    14
    120 npm
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to decode VINs, check stolen vehicle databases, and retrieve market valuations through natural language.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with authoritative OEM automotive repair data including part numbers, torque specs, fluid capacities, and service procedures for vehicles 1982-2013 across 80+ makes, sourced from factory service manuals.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLMs to decode Vehicle Identification Numbers and look up vehicle makes, models, years, and specifications offline using a curated NHTSA vPIC database.
    8
    1
    MIT