Skip to main content
Glama
itmsi

Motorsights Quotation MCP Server

by itmsi

MCP Server — Motorsights Quotation API

MCP (Model Context Protocol) server yang membungkus REST API dev-api-quotation.motorsights.com menjadi tools yang bisa dipanggil Claude: Customer, Sales, Bank Account, Manage Quotation, Term Content, Componen Products, dan Accessories (30 tools total).

1. Instalasi

Butuh Node.js 18+. Di server kamu:

cd mcp-quotation-server
npm install
cp .env.example .env

Edit .env:

API_BASE_URL=https://dev-api-quotation.motorsights.com/api/quotation
API_TOKEN=<JWT token kamu>

⚠️ API_TOKEN di sini statis. Kalau token JWT kamu expired secara berkala, lihat bagian "Token expired" di bawah untuk opsi lanjutan.

Related MCP server: MCP4Acumatica

2. Build & jalankan

npm run build
npm start

Kalau berhasil, akan muncul log mcp-quotation-server berjalan lewat stdio. di stderr. Server ini berkomunikasi lewat stdio, jadi tidak akan langsung terlihat "aktif" seperti web server biasa — dia menunggu diajak bicara oleh MCP client (Claude Desktop, Claude Code, dsb).

3. Menghubungkan ke Claude

Claude Desktop / Claude Code (via SSH ke server kamu, atau server = local)

Tambahkan ke config MCP (claude_desktop_config.json atau setara):

{
  "mcpServers": {
    "quotation": {
      "command": "node",
      "args": ["/path/absolut/ke/mcp-quotation-server/dist/index.js"],
      "env": {
        "API_BASE_URL": "https://dev-api-quotation.motorsights.com/api/quotation",
        "API_TOKEN": "isi_token_jwt_kamu"
      }
    }
  }
}

Karena server ini kamu jalankan di mesin terpisah, ada 2 opsi:

Opsi A — stdio + SSH (paling simpel, tidak perlu buka port baru)

Claude Desktop/Code men-spawn proses node dist/index.js lewat SSH ke server kamu:

{
  "mcpServers": {
    "quotation": {
      "command": "ssh",
      "args": [
        "user@server-kamu",
        "cd /path/ke/mcp-quotation-server && node dist/index.js"
      ]
    }
  }
}

Env var (API_BASE_URL, API_TOKEN) taruh di .env di server, bukan di config Claude, karena proses jalan di sana.

Opsi B — HTTP/SSE (bisa diakses dari network, tanpa SSH)

Ini opsi yang barusan ditambahkan: src/httpServer.ts menjalankan MCP server yang sama lewat Streamable HTTP transport (Express), jadi Claude cukup connect ke URL, tidak perlu spawn proses lokal.

npm run build
npm run start:http
# -> mcp-quotation-server (HTTP) listening on port 3333

Isi .env untuk mode ini:

MCP_HTTP_PORT=9533
MCP_HTTP_TOKEN=<generate token acak yang kuat, misal: openssl rand -hex 32>

MCP_HTTP_TOKEN ini beda dari API_TOKEN backend — ini kunci untuk membatasi siapa saja yang boleh menghubungi MCP server kamu lewat network. Kalau kosong, endpoint terbuka tanpa autentikasi (jangan dibiarkan begini kalau server bisa diakses dari internet).

Reverse proxy (nginx) + HTTPS — wajib kalau expose ke internet:

server {
    listen 443 ssl;
    server_name mcp-quotation.domain-kamu.com;

    ssl_certificate     /etc/letsencrypt/live/domain-kamu.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain-kamu.com/privkey.pem;

    location /mcp {
        proxy_pass http://127.0.0.1:3333;
        proxy_http_version 1.1;
        proxy_set_header Connection '';
        proxy_buffering off;      # penting untuk streaming response
        proxy_read_timeout 3600s;
        proxy_set_header Host $host;
    }
}

Jalankan permanen dengan systemd (/etc/systemd/system/mcp-quotation.service):

[Unit]
Description=MCP Quotation Server (HTTP)
After=network.target

[Service]
Type=simple
WorkingDirectory=/path/ke/mcp-quotation-server
EnvironmentFile=/path/ke/mcp-quotation-server/.env
ExecStart=/usr/bin/node dist/httpServer.js
Restart=on-failure
User=www-data

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now mcp-quotation

Konfigurasi di Claude (custom/remote MCP connector) — tinggal masukkan:

  • URL: https://mcp-quotation.domain-kamu.com/mcp

  • Header: Authorization: Bearer <MCP_HTTP_TOKEN>

Langkah persis di UI Claude untuk menambahkan remote MCP connector bisa berubah — cek docs.claude.com / support.claude.com untuk panduan terbaru kalau langkahnya beda dari yang kamu lihat di app.

Health check: GET https://mcp-quotation.domain-kamu.com/health (tidak butuh auth, cuma info jumlah session aktif — cocok untuk uptime monitoring).

Test cepat pakai MCP Inspector (rekomendasi sebelum connect ke Claude)

npx @modelcontextprotocol/inspector node dist/index.js

Ini buka UI browser lokal buat coba tiap tool satu-satu, lihat request/response mentahnya, sebelum dipakai beneran di Claude.

4. Struktur project

src/
├── index.ts              # entry point stdio (untuk Claude Desktop/Code lokal atau SSH)
├── httpServer.ts          # entry point HTTP/SSE (untuk akses remote via network)
├── mcpServer.ts             # factory MCP Server: daftar tools & handler call-tool (dipakai stdio & HTTP)
├── executor.ts                # generic HTTP executor: JSON body / multipart / file upload
├── httpClient.ts                # axios instance + Bearer auth otomatis + error formatting
├── config.ts                      # baca .env
├── types.ts                         # ToolDef & JsonSchema types
└── tools/
    ├── index.ts                    # registry semua tools (KURASI DI SINI)
    ├── customerSalesBank.ts        # Customer, Sales, Bank Account
    ├── manageQuotation.ts          # Manage Quotation (core, paling kompleks)
    ├── termContent.ts              # Term & Condition content
    ├── componenProduct.ts          # Componen Products (+ upload gambar & CSV import)
    └── accessory.ts                # Accessories (+ CSV import)

5. Daftar tools (30)

Resource

Tools

Customer

list_customers, get_customer

Sales

list_sales_employees, get_sales_employee

Bank Account

list_bank_accounts, get_bank_account

Manage Quotation

list_quotations, get_quotation, get_quotation_for_pdf, create_quotation, update_quotation, delete_quotation, restore_quotation, duplicate_quotation

Term Content

list_term_contents, get_term_content, create_term_content, update_term_content, delete_term_content

Componen Products

list_componen_products, get_componen_product, create_componen_product, update_componen_product, delete_componen_product, import_componen_products_csv

Accessories

list_accessories, get_accessories_by_island, get_accessory, create_accessory, update_accessory, delete_accessory, import_accessories_csv

6. Kurasi lebih lanjut

Semua tool didaftarkan di src/tools/index.ts. Kalau kamu mau:

  • Nonaktifkan tool tertentu (misal delete_quotation supaya Claude tidak bisa hapus data): comment/filter dari array allTools.

  • Tambah validasi ekstra sebelum request dikirim: edit executor.ts.

  • Ubah/perjelas deskripsi tool: edit langsung di file tools terkait — ini penting supaya Claude milih tool yang tepat saat ada banyak pilihan mirip.

  • Batasi ke read-only (aman untuk mulai): filter allTools supaya cuma method GET dan endpoint */get yang masuk.

7. Catatan penting

  • File upload (create_componen_product, update_componen_product, import_componen_products_csv, import_accessories_csv) butuh path file lokal di mesin tempat MCP server ini berjalan — bukan path di komputer kamu atau URL. Kalau Claude jalan di mesin berbeda dari server API, file yang mau diupload harus sudah ada di server tempat MCP ini jalan.

  • Soft delete: sebagian besar delete_* adalah soft delete (is_delete flag), sesuai desain API-nya — bukan hapus permanen.

  • Token expired: kalau token JWT kamu punya masa berlaku pendek, opsi ke depan: tambahkan endpoint refresh-token di httpClient.ts yang otomatis re-fetch token sebelum expired, atau pakai axios interceptor yang retry sekali kalau dapat 401. Bilang saja kalau mau saya tambahkan.

8. Troubleshooting

  • Environment variable API_TOKEN wajib diisi → cek isi .env.

  • API error (HTTP 401) → token invalid/expired, generate ulang.

  • Parameter path wajib diisi: id → tool butuh argumen id (UUID) yang belum dikirim Claude; biasanya karena instruksi user kurang spesifik.

  • Cannot find module '@modelcontextprotocol/sdk' → jalankan npm install dulu sebelum npm run build.

Available Tools

32 tools
create_accessoryC

Buat accessory baru, opsional sekaligus set kuantitas per pulau.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessory_brandNo
accessory_regionNo
accessory_remarkNo
accessory_part_nameNo
accessory_descriptionNo
accessory_part_numberNo
accessory_specificationNo
accessories_island_detailNoDaftar kuantitas accessory per pulau/wilayah

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects, authorization needs, or idempotency behavior beyond the optional quantity feature.

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 a single, front-loaded sentence with no wasted words, but it may be too terse given the complexity of the tool.

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

Completeness1/5

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

With 8 parameters, no output schema, and no annotations, the description is far too brief to provide adequate context for an AI agent to use this tool correctly.

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 13%, and the description only mentions one parameter aspect (optional island quantity). It does not explain the meaning of other parameters like brand, region, remark, etc.

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 verb ('create') and resource ('accessory'), and mentions an optional feature ('set quantity per island'), distinguishing it from siblings like update, delete, and list tools.

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?

No explicit guidance on when to use this tool versus alternatives (e.g., when to create vs update), and no mention of prerequisites or exclusions.

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

create_componen_productC

Buat componen product baru. Untuk upload gambar, isi image_paths dengan path file lokal (di mesin tempat MCP server ini jalan).

ParametersJSON Schema
NameRequiredDescriptionDefault
engineNo
volumeNo
segmentNo
wheel_noNo
msi_modelNo
code_uniqueNo
horse_powerNo
image_pathsNoDaftar PATH FILE LOKAL gambar produk (bukan URL) di server tempat MCP ini berjalan, contoh ['/data/images/foto1.jpg']. Maksimal 50 file, kosongkan jika tidak upload gambar baru.
msi_productNo
company_nameNo
market_priceNo
product_typeNounit, non_unit, hardware, implementation, atau application
componen_typeNo1=OFF ROAD REGULAR, 2=ON ROAD REGULAR, 3=OFF ROAD IRREGULAR, 4=OFF ROAD REGULAR EV, 5=ON ROAD REGULAR EV
selling_price_star_1No
selling_price_star_2No
selling_price_star_3No
selling_price_star_4No
selling_price_star_5No
componen_product_nameNo
componen_product_unit_modelNo
componen_product_descriptionNo
componen_product_specificationsNoString JSON array spesifikasi, contoh: [{"componen_product_specification_label":"Horse Power","componen_product_specification_value":"200 HP"}]

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It explains the local file path requirement for image_paths, which is useful. However, it fails to disclose other behavioral traits such as whether the creation is immediate, what the response contains, any side effects, or authentication/rate limits. The description is insufficient for a 22-parameter mutation 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 extremely concise with two sentences, front-loading the core purpose and adding essential detail about image_paths. Every word earns its place; no filler.

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?

Given high complexity (22 parameters, no output schema), the description is far from complete. It does not explain required fields (though none are marked required, many like 'componen_product_name' are likely essential), return values, error conditions, or constraints. The description only covers a small fraction of the necessary context for an agent to use the tool correctly.

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 18%, and the description adds value only for the image_paths parameter (local file paths) and implicitly for componen_product_specifications (JSON array format). The other 18 parameters lack semantic explanation, leaving the agent to infer meaning from names alone. The description does not compensate for the low schema coverage.

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 'Buat componen product baru' clearly states the action and resource. It adds detail about image uploads using local paths. However, it does not differentiate from sibling 'create' tools like create_accessory, but the tool name itself provides specificity.

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 only implies usage when creating a component product. It provides no guidance on when to use this tool versus alternatives (e.g., import_componen_products_csv for bulk creation, or update_componen_product for modifications). No exclusions or prerequisites are mentioned.

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

create_quotationC

Buat manage quotation baru beserta item-itemnya.

ParametersJSON Schema
NameRequiredDescriptionDefault
starNoRating bintang, contoh '5'
statusNosubmit
companyNo
island_idNoID pulau/wilayah pengiriman
project_idNo
customer_idYesID customer (wajib)
employee_idYesID sales employee (wajib)
quotation_forNoNama customer/tujuan quotation
bank_account_idNo
term_content_idNoReferensi ke term_content (opsional, hanya acuan)
include_msf_pageNo
bank_account_nameNoNama pemilik rekening
bank_account_numberNo
manage_quotation_ppnNoNominal PPN
manage_quotation_dateYesTanggal quotation, format YYYY-MM-DD
bank_account_bank_nameNo
manage_quotation_itemsNoDaftar item/produk dalam quotation
manage_quotation_otherNoBiaya lain-lain
term_content_directoryNoKonten JSON term & condition yang akan disimpan (object atau string JSON), misal { title, items: [...] }
include_aftersales_pageNo
manage_quotation_francoNo
manage_quotation_lead_timeNo
manage_quotation_valid_dateYesTanggal berlaku sampai, format YYYY-MM-DD
manage_quotation_descriptionNo
manage_quotation_grand_totalNoTotal akhir
manage_quotation_delivery_feeNoBiaya kirim
manage_quotation_mutation_typeNoJenis mutasi
manage_quotation_shipping_termNo
manage_quotation_payment_nominalNoNominal pembayaran/DP
manage_quotation_mutation_nominalNo
manage_quotation_grand_total_beforeNoTotal sebelum mutasi
manage_quotation_payment_presentaseNoPersentase pembayaran/DP

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 must disclose behavioral traits. It only mentions creation but does not discuss side effects, authentication needs, rate limits, or what happens to existing data. The description is insufficient for a mutation tool with no annotations.

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 a single, concise sentence that is front-loaded with the primary action. However, given the tool's complexity (32 parameters, nested objects), a slightly more expanded description would be beneficial. It earns a 4 for efficiency but not perfection.

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?

Given the high complexity (32 params, nested objects, no output schema, no annotations), the description is too minimal. It does not explain return behavior, constraints, defaults, or the structure of items. The description is inadequate for complete understanding.

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 59%, meaning many parameters lack descriptions. The tool description does not add any parameter-level meaning beyond what the schema provides. For a tool with moderate coverage, the description should compensate but fails to do so.

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 action ('Buat' = create) and the resource ('manage quotation baru') along with its items ('beserta item-itemnya'). It distinguishes itself from sibling tools like update_quotation, delete_quotation, and other create_* tools by specifying the resource type and that items are included.

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 provides no guidance on when to use this tool versus alternatives, such as update_quotation for modifications or delete_quotation for removal. It lacks context on prerequisites, required conditions, or when not to use this tool.

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

create_term_contentC

Buat term content (syarat & ketentuan) baru.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_nameNo
term_content_titleNoJudul term content
term_content_directoryYesKonten JSON, misal { title, items: ['Pembayaran ...', 'Pengiriman ...'] } (bisa object atau string JSON)

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are present, and the description only states the action (create) without disclosing behavioral traits such as idempotency, side effects, permissions required, or whether duplicates are allowed. The description carries the full burden but provides essentially no behavioral info.

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 a single short sentence, very concise with no wasted words. However, it is somewhat under-specified given the tool's complexity, but it does not contain redundant information.

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 a nested object parameter and no output schema, yet the description does not explain return values, error handling, or the exact expected structure of the nested object beyond the schema. It is incomplete for the complexity level.

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% (2 of 3 parameters have descriptions). The description does not add any additional meaning beyond what is in the schema. According to the baseline rule, a score of 3 is appropriate since coverage is moderate and the description adds no extra value.

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 'Buat term content (syarat & ketentuan) baru' clearly states the action (create) and resource (term content), with an explanatory translation. It distinguishes from sibling create tools for other entities (e.g., create_accessory, create_quotation). However, it could be more explicit about the structure of term content.

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?

No guidance is provided on when to use this tool versus alternatives. While sibling tools are for different entities, there is no mention of prerequisites, alternatives, or when not to use this tool.

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

delete_accessoryB

Hapus (soft delete) satu accessory berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It mentions 'soft delete' which is important, but lacks details on effects, reversibility, permissions, or side effects.

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 short sentence, effectively front-loaded. Could be more structured, but concise and to the point.

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 1-parameter tool, description covers basic purpose and action. However, lacks completeness on behavior and usage context such as prerequisites or outcomes.

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 0%, yet description adds no new information about the 'id' parameter beyond what schema already provides. It does not clarify format, constraints, or usage.

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?

Description clearly states the action (soft delete) and the resource (accessory) based on ID. It distinguishes from siblings like create/update/get/list and other delete tools for different entities.

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?

No explicit when-to-use or when-not-to-use guidance. While the name and description imply its use for deleting an accessory, there is no comparison to alternatives or conditions.

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

delete_componen_productB

Hapus (soft delete) satu componen product berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior3/5

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

The description explicitly mentions 'soft delete', which is a behavioral trait beyond what annotations provide (none). However, it does not explain consequences like reversibility or side effects.

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 sentence with no extraneous words, efficiently conveying the core purpose.

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 one-parameter delete tool, the description covers the basic operation and notes soft deletion. However, it lacks details about post-deletion state or error handling, leaving some gaps.

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?

The description mentions 'ID' as the key parameter, but provides no additional meaning beyond what the input schema already specifies (type: string, format: uuid). Schema coverage is 0% and the description fails to compensate.

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 action 'Hapus (soft delete)' and the resource 'componen product' using the identifier 'ID'. It distinguishes this tool from sibling delete tools by specifying the exact resource type.

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?

No guidance is provided on when to use this tool versus alternatives, such as when to use other delete tools or any prerequisites for deletion.

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

delete_quotationA

Hapus (soft delete) satu manage quotation berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesManage Quotation UUID

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions 'soft delete', indicating the operation is reversible, but lacks details on side effects or required permissions.

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?

Single sentence that efficiently conveys purpose and method without unnecessary words.

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 tool with one parameter and no output schema, the description is fairly complete. It covers action, resource, deletion type, and parameter. Minor omission: no mention of restoration possibility, but sibling tool covers that.

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 describes the parameter as 'Manage Quotation UUID'. Description adds no extra semantic value beyond confirming the parameter is used for identification.

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?

Description clearly states the action (soft delete), resource (manage quotation), and method (by ID). It distinguishes from sibling delete tools by specifying the exact entity.

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?

No guidance on when to use this tool versus alternatives like hard delete or restore. No prerequisites or exclusions mentioned.

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

delete_term_contentB

Hapus (soft delete) satu term content berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.1/5.0
Behavior3/5

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

Discloses 'soft delete', indicating non-permanent deletion, but does not elaborate on implications such as restorability or permissions. Without annotations, description partially addresses behavioral 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?

Extremely concise single sentence front-loading the action and resource. No superfluous content.

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 tool, description covers basic action and parameter, but lacks details on return values, error handling, or side effects, which would be expected given absence of annotations and output schema.

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 0%, and description only restates that the parameter is the ID, adding no extra meaning beyond the schema's UUID format constraint.

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 clearly states the action (soft delete) and the resource (term content) with the required parameter (ID). However, it does not differentiate from other delete tools among siblings.

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?

No guidance on when to use this tool versus alternatives like hard delete or other delete tools. Lacks context on prerequisites or usage scenarios.

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

duplicate_quotationA

Duplikat manage quotation beserta semua item, accessory, dan spesifikasinya. Hasil duplikat berstatus draft dengan nomor quotation baru.

ParametersJSON Schema
NameRequiredDescriptionDefault
manage_quotation_idYesManage Quotation UUID yang akan diduplikat

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses that the duplicate includes all items, accessories, and specifications, and that the result is a draft with a new number. No annotations exist, so the description carries the full burden; it adequately explains what happens during duplication.

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 clear sentences in Indonesian, front-loaded with the action and key details. No unnecessary words, but the language may slightly impact readability for non-Indonesian agents.

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?

Given a simple tool with one parameter and no output schema, the description covers the core functionality, copied elements, and result status. It does not mention error handling or invalid UUIDs, but is sufficient for a straightforward duplicate operation.

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% with a single parameter 'manage_quotation_id' described as the UUID to duplicate. The description does not add extra meaning beyond what the schema already provides. Baseline 3 is appropriate.

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 action ('Duplikat manage quotation'), the resources included (items, accessories, specifications), and the result (draft status with new number). It distinguishes from siblings like create_quotation by specifying it's a copy operation.

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 implies when to use this tool (to duplicate an existing quotation) but does not explicitly contrast with siblings (create, update, delete, restore). No when-not or alternative guidance is provided, but the purpose is clear.

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

get_accessories_by_islandA

Ambil semua accessory yang tersedia untuk satu pulau/wilayah tertentu (island_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
idislandYesIsland UUID

TDQS

A3.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 full burden for behavioral disclosure. It only states that it gets data, but does not mention side effects, permissions, rate limits, pagination, or any other behavioral traits. The description is insufficient for a read operation.

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 sentence that is front-loaded with the action and resource. Every word is necessary to convey the purpose, and there is no extraneous information.

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 description lacks information about the return format or structure, as there is no output schema. It only states 'all accessories available', which may be sufficient but does not clarify if there is pagination or how the results are presented. Given the tool's simplicity, the description is minimally adequate but incomplete.

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% with the 'idisland' parameter described as 'Island UUID'. The description adds the context of filtering by island/region, but this is already implied by the parameter name and schema description. The description adds minimal value beyond 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?

The description clearly states the tool retrieves all accessories for a specific island/region, using the verb 'ambil' (get) and specifying the resource 'accessory' and filter by island_id. This distinguishes it from sibling tools like 'get_accessory' (singular) and 'list_accessories' (unfiltered).

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 implies usage when you need accessories for a specific island, but does not explicitly state when not to use it or mention alternatives. The context is clear, but no exclusions or comparative guidance is provided.

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

get_accessoryB

Ambil detail satu accessory berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only says 'retrieve details' without mentioning read-only nature, side effects, or limitations. Minimal behavioral 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?

Single short sentence with no redundant information. Front-loaded and efficient for a simple retrieval tool.

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?

Adequate for a basic get-by-id operation. Lacks details about return values (no output schema) and does not differentiate from similar retrieval tools like get_accessories_by_island.

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?

Description adds 'berdasarkan ID' which matches the schema's id parameter. With 0% schema description coverage, the description provides basic context but no additional format or constraints beyond the schema field name.

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?

Description clearly states 'Ambil detail satu accessory' (retrieve details of one accessory) with ID parameter, distinguishing it from list or create tools.

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?

No guidance on when to use this tool vs siblings like get_accessories_by_island or list_accessories. Context of use is implied but not explicit.

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

get_bank_accountA

Ambil detail satu bank account berdasarkan ID (UUID).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBank Account UUID

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, but the description accurately indicates a read-only retrieval operation. No additional behavioral context is needed for this simple GET-like 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?

Single sentence, no redundant words, front-loaded with essential information.

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 simple retrieval tool with one parameter and no output schema, the description is sufficiently complete to understand its purpose and usage.

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%, and the description repeats the ID UUID parameter without adding new meaning beyond 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?

Description clearly states the verb (get) and resource (bank account details by UUID), and distinguishes from sibling tool list_bank_accounts which retrieves multiple accounts.

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?

Implicitly guides to use for single account retrieval by ID, contrasting with list_bank_accounts for multiple. No explicit exclusions or prerequisites, but context signals with sibling names provide clarity.

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

get_componen_productA

Ambil detail satu componen product berdasarkan ID (termasuk gambar & spesifikasi).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

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 full burden. It discloses that the response includes images and specifications, but does not mention error handling, authentication needs, or side effects. Adequate for a straightforward read operation.

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, focused sentence with no redundant information. Every word serves a purpose, making it highly efficient for an AI agent to parse.

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 'get by ID' tool with one parameter and no output schema, the description is nearly complete. It specifies the input (ID) and the output content (details, image, specifications), leaving little ambiguity. Minor omission: could mention that only one record is returned.

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 0%, so the description must compensate. It clarifies that the 'id' parameter is the product ID, but adds no format or validation details beyond the schema's UUID type. Minimally adequate.

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 action ('Ambil detail'), the resource ('componen product'), and the method ('berdasarkan ID'), including what is returned ('gambar & spesifikasi'). It effectively differentiates from sibling tools like 'get_accessory' by specifying the resource type.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., list_componen_products for multiple records or search tools). The agent must infer usage from the tool name alone.

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

get_customerA

Ambil detail satu customer berdasarkan ID (UUID).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer UUID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description must convey behavior. Only 'get details' is stated, with no mention of authorization, rate limits, or side effects. The read-only nature is implied but not explicit.

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 concise sentence that conveys the essential purpose without any superfluous words.

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?

No output schema exists, so the description should hint at return value; 'details' is generic. For a simple get tool, it is adequate but lacks specifics on what fields are returned.

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 the description repeats the schema ('based on ID (UUID)') without adding extra meaning. Baseline score is appropriate as no additional context is provided.

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 action ('get details'), resource ('customer'), and the identifier ('based on ID (UUID)'), making it specific and distinguished from list_customers or other get tools.

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?

No explicit when-to-use or when-not-to-use guidance. The description implies use for fetching a single customer by ID, but no alternatives or exclusions are mentioned.

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

get_quotationB

Ambil detail lengkap satu manage quotation (termasuk items) berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesManage Quotation UUID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It does not disclose authentication requirements, side effects, error handling, or data freshness. Only states it gets details.

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?

Single sentence with no fluff, front-loaded with purpose. Every word adds value.

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 get-by-ID tool with one parameter, description covers return scope including items. Missing output format or error behavior, but sufficient for basic retrieval.

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 already describes parameter as 'Manage Quotation UUID' with 100% coverage. Description adds 'by ID' but no extra semantic value beyond 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?

Description clearly states verb (ambil/detail), resource (manage quotation), scope (including items), and input (by ID). It distinguishes from siblings like list_quotations and get_quotation_for_pdf by specifying 'satu' and 'termasuk items'.

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?

No guidance on when to use this tool versus alternatives like list_quotations or get_quotation_for_pdf. It only describes what it does without context for selection.

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

get_quotation_for_pdfB

Ambil data quotation yang diformat khusus untuk keperluan generate PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesManage Quotation UUID

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It only mentions formatting for PDF but does not disclose whether the operation is read-only, requires permissions, has side effects, or any limits.

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, compact sentence that efficiently conveys the tool's purpose without extraneous information.

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?

Given the lack of annotations and output schema, the description is too brief. It does not explain what 'formatted for PDF' means or how the output differs from other get operations, leaving agents with insufficient context.

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?

The input schema provides a description for the single parameter 'id' (Manage Quotation UUID) with 100% coverage, so the description adds no additional semantic value beyond 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?

The description clearly states the action ('Ambil') and resource ('quotation'), and specifies the special formatting for PDF generation, effectively distinguishing it from siblings like 'get_quotation' and 'list_quotations'.

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 use for PDF generation but does not explicitly indicate when to use this tool versus alternatives, nor does it provide exclusions or prerequisites.

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

get_sales_employeeA

Ambil detail satu sales employee berdasarkan ID (UUID).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEmployee UUID

TDQS

A3.5/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 for behavioral disclosure. The description only states the action without mentioning any behavioral traits such as required permissions, rate limits, response format, or side effects. For a read operation, this is minimal but acceptable; however, more transparency would be beneficial.

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 sentence that conveys everything needed concisely. No unnecessary words. The structure is efficient and front-loaded with the action and resource.

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?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is adequate but not complete. It does not specify what details are returned, which could be important for an agent. Without an output schema, the description should provide a hint about the response content.

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?

The input schema has 100% description coverage for the single parameter (id), which already specifies it is a UUID. The description redundantly repeats 'berdasarkan ID (UUID)', adding no new semantic information beyond the schema. Baseline 3 is appropriate.

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 explicitly states the tool retrieves details of a single sales employee by ID (UUID). It uses a specific verb ('Ambil' = Get) and resource ('detail satu sales employee'), and clearly distinguishes from the sibling 'list_sales_employees' which returns multiple records.

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?

No explicit guidance on when to use or not is provided. However, the tool's purpose (get single by ID) and the presence of sibling 'list_sales_employees' imply that this tool is for retrieving a specific employee when the ID is known. The lack of explicit instructions or alternatives reduces clarity.

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

get_term_contentB

Ambil detail satu term content berdasarkan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

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 burden. It does not disclose any behavioral traits like read-only nature, authorization requirements, error behavior, or rate limits. The description adds no value beyond the tool name.

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 a single, clear sentence with no wasted words. It is appropriately concise for a simple tool, though it could benefit from additional structured information about the return value or usage note.

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?

Given the simplicity of the tool (one parameter, no output schema), the description is minimally adequate. However, it does not explain what 'term content' is or what details are returned, leaving the agent without full context of the tool's 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 0%, requiring the description to compensate. However, it only states 'based on ID' without explaining what the ID represents, how to obtain it, or the expected format (e.g., exact UUID). The schema already shows the parameter type and format, so the description adds minimal meaning.

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 it retrieves details of a single term content by ID. The verb 'Ambil detail' and resource 'term content' are specific, and it naturally distinguishes from sibling tools like list_term_contents (listing vs single) and create/delete/update.

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?

No guidance is provided on when to use this tool vs alternatives, such as list_term_contents for multiple items or other retrieval tools. There is no mention of prerequisites (e.g., existing term content ID) or scenarios where this tool is not appropriate.

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

import_accessories_csvB

Import banyak accessory sekaligus dari file CSV lokal (maks 10MB), termasuk kuantitas per pulau (sumatera, kalimantan, sulawesi, maluku, otr). Header CSV wajib: msi_code, accessories_name, specification, brand, remarks, sumatera, kalimantan, sulawesi, maluku, otr.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPath file CSV lokal di mesin tempat MCP server ini jalan

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether existing records are overwritten, error handling, atomicity, or authentication requirements. Only file size and header format are mentioned.

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 sentence with essential details (file size, required headers) front-loaded. No redundancy or unnecessary words.

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?

Given no output schema, the description lacks information on what the tool returns after import (e.g., success count, errors). It also does not cover duplicate handling or validation behavior, making it insufficient for a bulk import operation.

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?

The single parameter 'file' has 100% schema description coverage already explaining it is a local CSV path. The tool description adds no further semantic value beyond the schema, so baseline score applies.

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 imports multiple accessories from a local CSV file, specifies file size limit (10MB), and lists required headers. It is distinct from siblings like import_componen_products_csv or create_accessory.

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 bulk import use case but does not explicitly state when to use this tool over alternatives like create_accessory for single item or list_accessories for viewing. No exclusion criteria or scenario guidance provided.

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

import_componen_products_csvA

Import banyak componen product sekaligus dari file CSV lokal (maks 10MB). Header CSV wajib: msi_code, truck_type, segment, segment_type, msi_model, unit_model, engine, horse_power, wheel_number, volume_cbm, market_price, gvw, wheelbase, engine_brand_model, max_torque, displacement, emission_standard, engine_guard, gearbox_transmission, fuel_tank, Tyre.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPath file CSV lokal di mesin tempat MCP server ini jalan

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavior. It includes file size and header requirements but omits critical details like what happens on success/failure, whether it overwrites, or if it's a mutation.

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 sentence with essential details, front-loaded with purpose, and no redundant information.

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?

Given the tool's complexity (bulk import with many columns) and no output schema, the description lacks information about return values, error handling, or idempotency, making it incomplete for an agent to assess effects.

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 schema describes the 'file' parameter, and the description adds significant value by listing required CSV headers and the size limit, which are not in 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?

The description specifies a clear verb ('import'), resource ('componen product'), and method ('from CSV file'), distinguishing it from siblings like import_accessories_csv and create_componen_product.

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 for bulk import with a file size limit and required headers, but does not explicitly state when to prefer this over create_componen_product or provide exclusions.

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

list_accessoriesB

Ambil daftar accessory dengan pagination, pencarian, dan sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
searchNo
sort_byNocreated_at
sort_orderNodesc

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It mentions basic read behavior (list with pagination/search/sort) but lacks details on response format, defaults, or any side effects. Adequate but not thorough.

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?

Single sentence covers main features efficiently, but could benefit from structured breakdown of parameters or output. Not verbose.

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?

No output schema, no annotations, and 0% schema coverage. Description does not explain response structure, pagination metadata, or any prerequisites. Given complexity (5 params), more context needed for complete understanding.

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 has 5 parameters with 0% description coverage. Description mentions pagination/search/sorting but does not explain individual parameter meanings, formats, or constraints (e.g., search fields, sort enum semantics). Adds minimal value over 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?

Description clearly states the tool retrieves a list of accessories with pagination, search, and sorting. The verb 'Ambil' (retrieve) and resource 'daftar accessory' distinguish it from create, delete, update, and single-get siblings.

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?

No explicit guidance on when to use this tool versus alternatives like get_accessories_by_island or other list tools. Usage is implied but not elaborated.

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

list_bank_accountsA

Ambil daftar bank account dengan pagination, pencarian (nama/nomor/tipe rekening), dan sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoNomor halaman
limitNoJumlah item per halaman
searchNoCari berdasarkan nama, nomor, atau tipe rekening
sort_byNoKolom untuk sortingcreated_at
sort_orderNoUrutan sortingdesc

TDQS

A3.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses pagination, search, and sorting behaviors. For a read-only list, this is fairly transparent, though missing details like maximum limit or response format.

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?

Single sentence that is front-loaded with the core purpose. No unnecessary words. Efficiently conveys capabilities.

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 5 parameters and no output schema, the description covers pagination, search, and sorting but does not mention return fields or any constraints (e.g., max limit). Adequate but could be more complete.

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%, and parameters have descriptions. The description adds no extra meaning beyond the schema, simply mirroring the search fields. Baseline 3 is appropriate.

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 lists bank accounts with pagination, search (by name, number, type), and sorting. It distinguishes itself from siblings like 'get_bank_account' (single) and other list tools.

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?

No guidance on when to use this tool vs alternatives like other list tools. The description only states what it does, not when it's appropriate.

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

list_componen_productsB

Ambil daftar componen product (produk/unit) dengan pagination, pencarian, sorting, dan filter company_name/product_type.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
searchNo
sort_byNocreated_at
sort_orderNodesc
company_nameNoFilter nama perusahaan (boleh kosong)
product_typeNounit, non_unit, hardware, implementation, application

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so description carries full burden. It mentions pagination, search, sorting, and filters but does not disclose potential side effects, read-only nature, limits, or error behavior. Adequate for a simple list tool but could be more transparent.

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 a single sentence, front-loaded with the main purpose, and concise. It could be structured better (e.g., bullet points) but is not verbose.

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?

Given 7 parameters, no required fields, and no output schema, the description covers the main features but lacks details on response structure, pagination limits, or error handling. Moderately complete for a list operation.

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 only 29% (two parameters have descriptions). The description groups parameters into capabilities (pagination, search, sorting, filters) adding semantic context. However, it does not explain default values or detailed usage 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?

The description clearly states the action (list) and resource (componen products) and mentions key capabilities (pagination, search, sorting, filters). However, it does not differentiate from sibling list tools beyond resource name and filter specifics.

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?

No explicit guidance on when to use this tool versus alternatives like list_accessories or list_customers. The description only lists features without context for selection.

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

list_customersA

Ambil daftar customer dengan pagination, pencarian (nama/email/telepon), dan sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoNomor halaman
limitNoJumlah item per halaman
searchNoCari berdasarkan nama, email, atau telepon
sort_byNoKolom untuk sortingcreated_at
sort_orderNoUrutan sortingdesc

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It correctly indicates the tool returns a list with pagination, search, and sorting, but it does not disclose details such as default pagination limits, whether search is exact or fuzzy, or what the response structure includes (e.g., total counts).

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 sentence that efficiently conveys the core functionality. It is front-loaded and contains no superfluous information.

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?

Given the lack of an output schema, the description should ideally hint at the response structure (e.g., array of customer objects with pagination metadata). It also omits details about search behavior (partial match, case sensitivity) and error handling. Overall, it is adequate but leaves 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 100% with all parameters already having descriptions. The description adds no additional semantic value beyond summarizing the capabilities (pagination, search, sorting). Baseline score of 3 is appropriate.

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 with a specific verb ('Ambil daftar' = get list) and resource ('customer'), and distinguishes it from sibling list tools by naming 'customer'. It also mentions key capabilities: pagination, search, and sorting.

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 when a filtered, sorted list of customers is needed but does not provide explicit guidance on when to use this tool versus alternatives like 'get_customer' (single customer) or other list tools. No exclusions or prerequisites are stated.

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

list_quotationsB

Ambil daftar manage quotation dengan filter status (draft/submit/reject), island, customer, rentang tanggal, pencarian, dan pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
searchNoCari nomor quotation, customer_id, atau employee_id
statusNoKosongkan untuk semua status
sort_byNocreated_at
end_dateNoFilter created_at sampai, YYYY-MM-DD
island_idNoFilter berdasarkan island_id, kosongkan untuk semua
sort_orderNodesc
start_dateNoFilter created_at mulai, YYYY-MM-DD
customer_idNo
company_nameNo
quotation_forNo

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 full responsibility for behavioral disclosure. It mentions pagination but does not describe default behavior for pagination (page/limit), result ordering, whether total count is returned, or that it is a read-only operation. The description adds minimal behavioral context beyond what the input schema already indicates.

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 a single sentence that efficiently enumerates the core filter categories. It is concise and front-loaded, though it could benefit from clarifying the order or grouping of parameters.

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?

Given 12 parameters, no output schema, and no annotations, the description is insufficient. It does not explain pagination details, return structure, or how filters combine. Agents would need to infer behavior, which increases risk of misuse.

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 42%, leaving many parameters (customer_id, company_name, quotation_for, etc.) undocumented. The tool description only generically lists filter types without explaining each parameter's meaning or expected format, failing to compensate for the low schema coverage.

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 action 'Ambil daftar' (get list) and the resource 'manage quotation' with explicit filter options (status, island, customer, date range, search, pagination). It distinguishes from sibling tools like 'get_quotation' (single record) and 'create_quotation', making the tool's purpose unambiguous.

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 lists available filters but does not provide guidance on when to use this tool versus alternatives (e.g., 'get_quotation' for a single item). Usage context is implied by the tool name and filter options, but no explicit when-to-use or when-not-to-use advice is given.

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

list_sales_employeesA

Ambil daftar sales employee (dari gate_sso dblink) dengan pagination, pencarian, dan sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoNomor halaman
limitNoJumlah item per halaman
searchNoCari berdasarkan nama atau email
sort_byNoKolom untuk sortingcreated_at
sort_orderNoUrutan sortingdesc

TDQS

A3.7/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 full burden. It mentions the data source (gate_sso dblink) and capabilities (pagination, search, sorting), but does not explicitly state whether the operation is read-only or if it has side effects. For a list operation, this is acceptable but lacks full transparency.

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 sentence that immediately states the purpose and key capabilities (pagination, search, sorting). It is front-loaded and contains no superfluous information. Every word contributes value.

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 tool has 5 parameters with full schema coverage but no output schema. The description adds the data source context. For a list tool, this is adequate but could mention expected output fields or additional details about search behavior. It is not incomplete, but not richly complete.

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?

The input schema covers 100% of parameters with descriptions, so the schema already provides meaning. The description does not add any additional explanation beyond what the schema contains. Baseline score of 3 is appropriate.

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 retrieves a list of sales employees from a specific source (gate_sso dblink) with pagination, search, and sorting. It uses a specific verb ('Ambil daftar') and resource ('sales employee'), and distinguishes itself from sibling list/get tools by mentioning these features.

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 listing sales employees with pagination/search/sorting, but provides no explicit guidance on when to use it versus alternatives, nor any exclusions or prerequisites. The usage context is inferred but not explicitly stated.

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

list_term_contentsC

Ambil daftar term content (syarat & ketentuan) dengan pagination, pencarian, dan filter nama perusahaan.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
searchNoCari berdasarkan title atau path
sort_byNocreated_at
sort_orderNodesc
company_nameNo

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 must fully disclose behavior. It mentions pagination, search, and filtering capabilities but does not explicitly state read-only nature, potential side effects, or response format. The behavioral disclosure is minimal.

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 sentence that is front-loaded with the key purpose. No wasted words; every element (pagination, search, filter) is necessary and clearly stated.

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 tool with 6 optional parameters, no output schema, and no annotations, the description is insufficient. It covers only three functionalities (pagination, search, company name filter) but omits sorting details and what the output contains, leaving significant gaps for an agent.

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 low (17%), so the description should compensate. It adds meaning for pagination (page/limit implied), search, and company_name but omits sort_by and sort_order. The search parameter is described vaguely, while company_name gets clear context. Moderate value added.

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 clearly states the tool retrieves a list of term contents with pagination, search, and company name filter. The verb 'Ambil' (get) and resource 'term content' are specific, but it does not differentiate from sibling list tools beyond the resource name.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., other list tools). There is no explicit context, prerequisites, or exclusions, leaving the agent to infer usage from the purpose alone.

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

restore_quotationB

Kembalikan (restore) manage quotation yang sebelumnya sudah di-soft-delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesManage Quotation UUID

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 burden. It only states it restores soft-deleted quotations, but does not disclose side effects, permissions, idempotency, or what happens if the quotation is already active.

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 a single, concise sentence that front-loads the action. No redundant words, though the language is Indonesian.

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 tool with one parameter and no output schema, the description is minimal but adequate. It lacks details about post-restore state, error conditions, or whether the operation is reversible.

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?

The schema covers 100% of parameters with a clear description for 'id'. The tool description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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 explicitly states the action (restore) and the resource (manage quotation that was soft-deleted), with a specific verb and resource. It clearly distinguishes from siblings like delete_quotation.

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?

No guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or reference sibling tools.

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

update_accessoryD

Update accessory yang sudah ada.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
accessory_brandNo
accessory_regionNo
accessory_remarkNo
accessory_part_nameNo
accessory_descriptionNo
accessory_part_numberNo
accessory_specificationNo
accessories_island_detailNoDaftar kuantitas accessory per pulau/wilayah

TDQS

D1.8/5.0
Behavior1/5

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

No annotations exist, and the description does not disclose any behavioral traits such as idempotency, side effects, required permissions, or error handling (e.g., what happens if the accessory ID does not exist). The description adds zero behavioral context beyond the word 'update'.

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

Conciseness2/5

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

The description is extremely short (one sentence), which is concise but at the expense of completeness. Important details about parameters, usage, and behavior are omitted, making it under-specified rather than effectively concise.

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

Completeness1/5

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

Given the tool's complexity (9 parameters, no annotations, no output schema) and the many sibling tools, the description is entirely inadequate. It does not explain return values, side effects, or how updates behave. The description is not complete enough for an AI agent to use the tool correctly.

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

Parameters1/5

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

Schema description coverage is only 11%, leaving 8 of 9 parameters undocumented. The description does not explain or provide meaning for any parameter (e.g., accessory_brand, accessory_region). It fails to add value beyond the sparse schema.

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

Purpose3/5

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

The description states 'Update accessory yang sudah ada' which identifies the verb (update) and resource (accessory). However, it does not specify what fields or aspects of the accessory can be updated, nor does it distinguish this tool from similar sibling tools like update_componen_product. It is minimally clear but lacks specificity.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., create_accessory, get_accessory, delete_accessory). There is no mention of prerequisites, when not to use it, or relationships to other tools. The description offers no usage direction.

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

update_componen_productC

Update componen product yang sudah ada. Gambar baru (image_paths) akan ditambahkan ke gambar yang sudah ada, tidak menggantikannya. Untuk menghapus gambar lama, gunakan tool hapus gambar terpisah jika tersedia, atau update lewat dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
engineNo
volumeNo
segmentNo
wheel_noNo
msi_modelNo
code_uniqueNo
horse_powerNo
image_pathsNoDaftar PATH FILE LOKAL gambar produk (bukan URL) di server tempat MCP ini berjalan, contoh ['/data/images/foto1.jpg']. Maksimal 50 file, kosongkan jika tidak upload gambar baru.
msi_productNo
company_nameNo
market_priceNo
product_typeNounit, non_unit, hardware, implementation, atau application
componen_typeNo1=OFF ROAD REGULAR, 2=ON ROAD REGULAR, 3=OFF ROAD IRREGULAR, 4=OFF ROAD REGULAR EV, 5=ON ROAD REGULAR EV
selling_price_star_1No
selling_price_star_2No
selling_price_star_3No
selling_price_star_4No
selling_price_star_5No
componen_product_nameNo
componen_product_unit_modelNo
componen_product_descriptionNo
componen_product_specificationsNoString JSON array spesifikasi, contoh: [{"componen_product_specification_label":"Horse Power","componen_product_specification_value":"200 HP"}]

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must disclose all behavioral traits. It only covers the additive behavior of image paths. It does not state whether other fields are overwritten or merged, what permissions are needed, or if updates are reversible. The nature of 'update' implies mutation but no safety or destructive warnings are given.

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 efficiently cover the purpose and a key behavioral note. No filler or repetition. Could be improved with bullet points for clarity but overall concise and front-loaded.

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?

Given the tool's complexity (23 parameters, no output schema), the description is insufficient. It omits return values, error conditions, required field handling, and behavior for non-image fields. The description only addresses image behavior, leaving substantial gaps for an agent to use the tool correctly.

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 17%, leaving most parameters undocumented. The description adds value only for image_paths (additive behavior). For the 19 other parameters, no additional meaning is provided beyond the schema, which itself is sparse. The description fails to compensate for low coverage.

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 clearly states the verb 'Update' and the resource 'componen product', establishing the core action. It also clarifies that image_paths are added rather than replaced. However, it does not explicitly distinguish this tool from sibling update tools like update_accessory or update_quotation beyond the resource name.

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?

Provides specific guidance on image handling: new images are added and deletion requires a separate tool. However, it lacks when-to-use context compared to alternatives like dashboard updates, and no prerequisites or exclusions are mentioned.

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

update_quotationC

Update manage quotation yang sudah ada (termasuk replace daftar item-nya).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesManage Quotation UUID
starNoRating bintang, contoh '5'
statusNosubmit
companyNo
island_idNoID pulau/wilayah pengiriman
project_idNo
customer_idNoID customer (wajib)
employee_idNoID sales employee (wajib)
quotation_forNoNama customer/tujuan quotation
bank_account_idNo
term_content_idNoReferensi ke term_content (opsional, hanya acuan)
include_msf_pageNo
bank_account_nameNoNama pemilik rekening
bank_account_numberNo
manage_quotation_ppnNoNominal PPN
manage_quotation_dateNoTanggal quotation, format YYYY-MM-DD
bank_account_bank_nameNo
manage_quotation_itemsNoDaftar item/produk dalam quotation
manage_quotation_otherNoBiaya lain-lain
term_content_directoryNoKonten JSON term & condition yang akan disimpan (object atau string JSON), misal { title, items: [...] }
include_aftersales_pageNo
manage_quotation_francoNo
manage_quotation_lead_timeNo
manage_quotation_valid_dateNoTanggal berlaku sampai, format YYYY-MM-DD
manage_quotation_descriptionNo
manage_quotation_grand_totalNoTotal akhir
manage_quotation_delivery_feeNoBiaya kirim
manage_quotation_mutation_typeNoJenis mutasi
manage_quotation_shipping_termNo
manage_quotation_payment_nominalNoNominal pembayaran/DP
manage_quotation_mutation_nominalNo
manage_quotation_grand_total_beforeNoTotal sebelum mutasi
manage_quotation_payment_presentaseNoPersentase pembayaran/DP

TDQS

C2.9/5.0
Behavior2/5

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

The description discloses that items are replaced entirely, which is a key behavioral trait. However, no other behaviors are mentioned (e.g., partial updates, validation, permissions, side effects). With no annotations provided, the description carries the full burden and falls short.

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 a single sentence that quickly conveys the purpose, including the key nuance about item replacement. It is front-loaded and efficient, though slightly more structure could help readability.

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 tool with 33 parameters, nested objects, and no output schema, the description is too minimal. It does not explain the overall workflow, interaction with other tools, or how inputs relate. The mention of item replacement is critical but insufficient.

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 61%, so the schema already documents many parameters. The description adds no additional parameter-level meaning, such as which fields are required or how items replacement works. It provides a baseline but no extra value.

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 clearly states the tool updates an existing quotation and specifically mentions replacing its item list. This distinguishes it from siblings like create_quotation or delete_quotation. However, the term 'manage quotation' is internal jargon and could be simplified.

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?

No explicit guidance on when to use this tool versus alternatives like create_quotation or duplicate_quotation. The description implies it is for editing existing quotations but does not mention prerequisites, limitations, or when not to use it.

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

update_term_contentC

Update term content yang sudah ada.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
company_nameNo
term_content_titleNo
term_content_directoryNo

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any behavioral traits. It does not mention side effects, authorization needs, persistence, or what happens to existing data. For an update operation, this is a significant omission.

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

Conciseness2/5

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

The description is extremely concise (one sentence), but it is under-specified and does not cover necessary information. While brevity is valued, it sacrifices completeness to the point of being unhelpful.

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

Completeness1/5

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

Given zero schema coverage, no output schema, no annotations, and a complex nested parameter (term_content_directory), the description is severely incomplete. It does not explain the tool's behavior, return values, or constraints on the parameters.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about parameters. The schema provides names and types but no explanations. The description does not clarify the meaning of term_content_directory, required fields beyond id, or expected values.

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 'Update term content yang sudah ada.' which clearly indicates the verb (update) and resource (term content). It distinguishes from siblings like create_term_content and delete_term_content by specifying the action. However, it lacks specifics on what aspects can be updated, which would enhance clarity.

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?

No guidance on when to use this tool versus alternatives like create_term_content or delete_term_content. There are no prerequisites, exclusions, or context hints. The agent is left to infer usage from the tool name and description alone.

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. Dates show when Glama detected each change.

  1. 32 tool updatesv1.0.0
    • First observedcreate_accessory
    • First observedcreate_componen_product
    • First observedcreate_quotation
    • First observedcreate_term_content
    • First observeddelete_accessory
    • First observeddelete_componen_product
    • First observeddelete_quotation
    • First observeddelete_term_content
    • First observedduplicate_quotation
    • First observedget_accessories_by_island
    • First observedget_accessory
    • First observedget_bank_account
    • First observedget_componen_product
    • First observedget_customer
    • First observedget_quotation
    • First observedget_quotation_for_pdf
    • First observedget_sales_employee
    • First observedget_term_content
    • First observedimport_accessories_csv
    • First observedimport_componen_products_csv
    • First observedlist_accessories
    • First observedlist_bank_accounts
    • First observedlist_componen_products
    • First observedlist_customers
    • First observedlist_quotations
    • First observedlist_sales_employees
    • First observedlist_term_contents
    • First observedrestore_quotation
    • First observedupdate_accessory
    • First observedupdate_componen_product
    • First observedupdate_quotation
    • First observedupdate_term_content

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct resource and action (quotation, accessory, component product, term content, bank account, customer, sales employee). Even similar tools like get_quotation and get_quotation_for_pdf have clearly differentiated purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_accessory, list_quotations). No mixing of casing styles or irregular verbs.

Tool Count4/5

32 tools is relatively high, but the scope covers multiple sub-domains (quotations, accessories, component products, customers, etc.) with CRUD and additional operations like import, duplicate, and restore. The count is justified by the breadth.

Completeness4/5

Core quotation workflow is well-covered (create, read, update, delete, duplicate, restore, list, PDF export). However, for customers, bank accounts, and sales employees, only get/list operations exist, and there is no dedicated tool for deleting images from component products.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables Claude to interact with Acumatica ERP through a remote MCP server with per-user OAuth, role-based access, and 44 tools for querying and managing ERP data.
    17
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes a curated subset of the Officegest API v2 (22 CRUD tools) for managing clients, sales, and stock to AI clients like Claude Code and Claude Desktop.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables turning any personal-assistant REST backend into Claude-ready tools via a single MCP server, providing 38 tools for communications, finance, health, and more.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itmsi/mcp-quotation-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server