Skip to main content
Glama

Diamonds Expert

Продолжить выбор, проверку цены или сертификата

knowledge_next_step
Read-onlyIdempotent

Use for choose (stone selection), offer (seller price review), certificate (report and stone-matching checklist), or value (appraisal of an owned stone). Returns the next question, current summary, steps and relevant expert handoff. choose/offer/value cover natural round diamonds; certificate gathers user-reported document checks without accessing a lab database or inspecting the stone and has no Rapaport calculation. Pass only user-provided or confirmed values; suggestions are not choices, deferred questions remain unresolved. Carry state in the conversation, not on this server. Other origins or shapes on the three diamond-selection routes return scope_review. FL is preserved and never substituted with IF. Use estimate_rapaport only when calculation.ready is true; preserve its table date and approximation notes. No requests are sent.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "route_id": "<route_id>"
    },
    "name": "knowledge_next_step"
  }
}

Input Schema

NameRequiredDescriptionDefault
stateNo
route_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changed
    • changedInput schema / properties / route_id / enum
      Previous value: -[
      -  "choose",
      -  "offer",
      -  "value"
      -]New value: +[
      +  "choose",
      +  "offer",
      +  "value",
      +  "certificate"
      +]
    • changedInput schema / properties / state / properties / deferred / items / enum
      Previous value: -[
      -  "origin",
      -  "shape",
      -  "lab",
      -  "jewelry",
      -  "metal",
      -  "color",
      -  "clarity",
      -  "cut",
      -  "symmetry",
      -  "polish",
      -  "carat",
      -  "fluorescence",
      -  "budget",
      -  "budget_currency",
      -  "budget_scope",
      -  "destination",
      -  "offer_price",
      -  "offer_currency",
      -  "valuation_goal"
      -]New value: +[
      +  "origin",
      +  "shape",
      +  "lab",
      +  "jewelry",
      +  "metal",
      +  "color",
      +  "clarity",
      +  "cut",
      +  "symmetry",
      +  "polish",
      +  "carat",
      +  "fluorescence",
      +  "budget",
      +  "budget_currency",
      +  "budget_scope",
      +  "destination",
      +  "offer_price",
      +  "offer_currency",
      +  "valuation_goal",
      +  "offer_scope",
      +  "included_costs",
      +  "certificate_lab",
      +  "report_number",
      +  "report_lookup",
      +  "inscription_check",
      +  "physical_match"
      +]
    • changedInput schema / properties / state / properties / deferred / maxItems
      Previous value: -19New value: +26
    • addedInput schema / properties / state / properties / reasons / properties / certificate_lab
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / reasons / properties / included_costs
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / reasons / properties / inscription_check
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / reasons / properties / offer_scope
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / reasons / properties / physical_match
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / reasons / properties / report_lookup
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / reasons / properties / report_number
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / certificate_lab
      Added value: +{
      +  "description": "Лаборатория в документе",
      +  "enum": [
      +    "GIA",
      +    "HRD Antwerp",
      +    "IGI",
      +    "other",
      +    "unknown",
      +    "none"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / included_costs
      Added value: +{
      +  "description": "Дополнительные расходы",
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / inscription_check
      Added value: +{
      +  "description": "Надпись на камне",
      +  "enum": [
      +    "not_checked",
      +    "matches",
      +    "mismatch",
      +    "not_recorded"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / offer_scope
      Added value: +{
      +  "description": "Что входит в цену",
      +  "enum": [
      +    "stone",
      +    "jewelry",
      +    "total",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / physical_match
      Added value: +{
      +  "description": "Сверка самого камня",
      +  "enum": [
      +    "not_checked",
      +    "specialist_checked",
      +    "mismatch"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / report_lookup
      Added value: +{
      +  "description": "Проверка в базе лаборатории",
      +  "enum": [
      +    "not_checked",
      +    "found",
      +    "mismatch",
      +    "not_found"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / state / properties / values / properties / report_number
      Added value: +{
      +  "description": "Номер отчёта",
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Added

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description still adds real behavioral context beyond them: state lives in the conversation rather than on the server, no requests are sent, the certificate route never queries a lab database, and 'FL' is preserved rather than substituted with 'IF'.

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

Conciseness3/5

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

It is compact, and the route definitions come first, but it is delivered as a single run-on block of telegraphic clauses ('FL is preserved and never substituted with IF.'). Some content is redundant, e.g. the certificate route's 'without accessing a lab database' restated by the closing 'No requests are sent.'

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 stateful, nested-schema tool with no output schema, the description covers the return shape, state ownership, scope boundaries, and the handoff to estimate_rapaport. It does not say how to reset or overwrite an existing state, what happens when route_id conflicts with the carried state, or how it relates to siblings knowledge_search and knowledge_topic.

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 top-level schema has no descriptions (0% coverage), so the description must carry the load. It defines what each route_id enum value means and instructs that state holds only confirmed values with deferred fields tracking unanswered questions, which is exactly the semantics an agent needs. It does not explain the nested reasons/values duplication or how state should be shaped on the first call, leaving some gaps.

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 enumerates the four routes with a concrete gloss for each (choose = stone selection, offer = seller price review, certificate = report and stone-matching checklist, value = appraisal of an owned stone) and states the return payload: next question, current summary, steps, and expert handoff. Combined with the route list, an agent can tell what this tool does and how it differs from calculate/query siblings.

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

Usage Guidelines5/5

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

It gives explicit routing rules: use estimate_rapaport only when calculation.ready is true, pass only user-provided or confirmed values (suggestions are not choices), deferred questions stay unresolved, and unrelated origins/shapes get scope_review on the three selection routes. The certificate route's exclusions (no lab database, no stone inspection, no Rapaport calculation) tell the agent when to pick a different tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources