Skip to main content
Glama
parthhimself0

Arham Jewellers MCP Server

Arham Jewellers MCP Server

MCP (Model Context Protocol) server for the Arham Jewellers customer AI assistant. Exposes tools for searching products, browsing categories, checking gold rates, tracking orders, placing orders, and getting store info.

Prerequisites

  • Node.js 18+ (uses built-in fetch)

  • A running Arham Jewellers backend API

Related MCP server: Shiprocket MCP Integration

Setup

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Edit .env with your API_BASE_URL

# Build
npm run build

Configuration

Create a .env file — only the API base URL is needed (token is passed per request):

API_BASE_URL=https://arham-jewellers-backend.onrender.com

Running

npm start

Get a Token

# Admin login (phone must include +91 prefix)
LOGIN_PHONE=+919879879870 LOGIN_PASSWORD=Admin@1234 npm run get-token

# User login
LOGIN_PHONE=+919879879870 LOGIN_PASSWORD=yourpass npm run get-token

Available Tools (11)

All tools require a token parameter (JWT) passed by the MCP client with each request.

Tool

Description

search_products

Search products by name, karat, or category

get_product_details

Get full details of a specific product

get_product_by_barcode

Find a product by barcode number

get_categories

Get the hierarchical category tree (Level 1=Karat, 2=Collection, 3=Style)

get_category_products

List products in a Level 3 category

get_current_gold_rate

Get today's gold rate per gram

get_gold_rate_history

Get historical gold rates

get_user_orders

Get order history

get_order_details

Get details of a specific order

place_order

Place an order (requires user confirmation)

get_store_info

Get store info (About, Contact, Terms, etc.)

Important Notes

  • Category levels: Only Level 3 (Style) category IDs return products. Use get_categories(level=3) to find valid IDs.

  • Order placement: place_order uses a two-step confirm flow — the AI must ask the user before setting confirm=true.

  • Gold rate: The /api/v1/gold-rate/current endpoint may not be available on all backend versions.

Connect to MCP Clients

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "arham-jewellers": {
      "command": "node",
      "args": [
        "--env-file=/absolute/path/to/arham-mcp-server/.env",
        "/absolute/path/to/arham-mcp-server/build/index.js"
      ]
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "arham-jewellers": {
      "command": "node",
      "args": [
        "--env-file=/absolute/path/to/arham-mcp-server/.env",
        "/absolute/path/to/arham-mcp-server/build/index.js"
      ]
    }
  }
}

Project Structure

src/
├── index.ts          # Entry point (MCP server + STDIO transport)
├── config.ts         # Environment variable loader
├── api-client.ts     # HTTP client for backend API (token passed per call)
├── types.ts          # TypeScript interfaces
└── tools/
    ├── index.ts      # Tool registry
    ├── products.ts   # search_products, get_product_details, get_product_by_barcode
    ├── categories.ts # get_categories, get_category_products
    ├── gold-rate.ts  # get_current_gold_rate, get_gold_rate_history
    ├── orders.ts     # get_user_orders, get_order_details, place_order
    └── store.ts      # get_store_info

Available Tools

10 tools
get_categoriesA

Browse categories step by step. Call with no params to see Karat options (Level 1). Pass a parent_id to see its children (Level 2=Collection or Level 3=Style). Only Level 3 IDs work with get_category_products. Ask the user what they are looking for (karat, collection, style) before drilling down.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_idNoParent category ID to get children. Omit to get Level 1 (Karat) options.
levelNoFilter by level: 1=Karat, 2=Collection, 3=Style

TDQS

A4.7/5.0
Behavior4/5

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

Despite no annotations, the description discloses the step-by-step browsing behavior and constraints (only Level 3 IDs are product-compatible). It also gives user interaction advice, which is helpful. Absence of read-only hint is a minor gap but overall good 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?

Three sentences, each adding distinct value: purpose, hierarchy explanation, and usage guidance. No filler. Front-loaded with the core action 'Browse categories step by step.'

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 navigational tool with no output schema, the description covers the full workflow: how to start, how to drill down, and what IDs to use with the sibling tool. Complete for agent decision-making.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds hierarchical context beyond the schema: it explains the meaning of parent_id and level in terms of Karat/Collection/Style levels, and how they relate to the sibling tool. This adds significant value.

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 'Browse categories step by step' and explains the hierarchical structure (Level 1=Karat, Level 2=Collection, Level 3=Style). It distinguishes from sibling tool get_category_products by noting that only Level 3 IDs work with that tool.

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?

Provides explicit when-to-use guidance: call with no params for Level 1, pass parent_id for children. It also tells when not to use this tool for getting products (only Level 3 works) and advises asking the user for their goal (karat, collection, style).

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

get_category_productsA

Get products in a category. IMPORTANT: category_id MUST be a Level 3 (Style) ID. Use get_categories with parent_id to drill down to Level 3 first. Level 1 and Level 2 IDs will return 0 products.

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idYesA Level 3 (Style) category ID
pageNoPage number (default 1)
limitNoMax results (default 20)

TDQS

A4.1/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. Discloses critical constraint about category levels and behavior (returns 0 for wrong levels). However, lacks details on error handling or behavior for invalid IDs.

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?

Three sentences are direct and front-loaded with core purpose. Warning is essential. Slight wordiness in 'IMPORTANT' capitalization but overall efficient.

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, so description should explain return values. It does not mention what the response contains (e.g., array of products, pagination metadata). Also no description of pagination behavior beyond input schema defaults.

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%: all parameters have descriptions. Description reinforces the category_id constraint already in the schema, but does not add new meaning beyond structured data.

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 'Get products in a category' and distinguishes from siblings like get_categories (retrieves categories) and get_product_details (single product). The constraint on Level 3 IDs makes the purpose specific.

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?

Explicitly instructs to use get_categories with parent_id first to get a Level 3 ID, and warns that Level 1 or 2 IDs return 0 products. This provides clear when-to-use and what to avoid.

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

get_current_gold_rateA

Get the current gold rate per gram. Returns the latest rate set by the store.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It states 'Get' and 'Returns', implying a read-only operation, but it does not mention any potential side effects, caching behavior, update frequency, or data source. The transparency is minimal and lacks depth.

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, consisting of two sentences that front-load the purpose. Every word contributes to clarity with no redundancy or unnecessary detail.

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 the absence of parameters and output schema, the description provides sufficient context for a simple retrieval tool. It clarifies what the tool returns (latest rate per gram). However, it could be more complete by specifying the currency or unit explicitly.

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 tool has zero parameters, so the description need not add parameter information. The baseline score of 4 is appropriate, as the description succinctly conveys the purpose without needing to elaborate on parameters.

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 'Get', the resource 'current gold rate per gram', and specifies that it returns the latest rate set by the store. It effectively distinguishes itself from the sibling tool 'get_gold_rate_history' by focusing on current versus historical data.

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 retrieving the current gold rate, but it does not explicitly state when to use this tool versus alternatives like 'get_gold_rate_history'. No conditions or exclusions are provided, leaving the agent to infer context.

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

get_gold_rate_historyB

Get historical gold rates. Returns a list of past rate entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default 1)
limitNoNumber of entries per page (default 10)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only states it returns a list. It does not disclose pagination behavior, sorting, date range, or any side effects. This is insufficient for a mutation-less query tool.

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

Conciseness4/5

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

The description is two short sentences with no extraneous information. It is efficient but could benefit from slightly more detail without becoming 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?

Given the moderate complexity (history query with optional pagination), the description is incomplete. It does not explain what the entries contain, the order of results, or any interpretation of rates. The lack of output schema and annotations exacerbates the gap.

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 already provides descriptions for both parameters (page and limit) with 100% coverage. The description adds no additional meaning beyond what the schema provides, earning a baseline score of 3.

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 'get', the resource 'historical gold rates', and the return type 'list of past rate entries'. It distinguishes itself from the sibling 'get_current_gold_rate' which returns current rates.

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 like get_current_gold_rate. No context on prerequisites or use cases is given.

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

get_order_detailsA

Get details of a specific order from the user's order history. Returns full order info including all items.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesThe order ID to look up

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It correctly indicates a read operation and describes the return value, but it does not mention authentication requirements, error handling, or whether it modifies state. This is adequate but lacks depth.

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 is front-loaded with the core purpose. Every word serves a purpose with no redundancy or fluff.

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 no output schema, the description adequately explains the return value as 'full order info including all items.' It does not mention error cases or edge conditions, but for a simple retrieval tool targeting a single entity, it is reasonably complete.

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

Parameters4/5

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

The input schema covers the single parameter 'order_id' with 100% description coverage. The description adds context by specifying 'from the user's order history,' which provides meaning beyond the schema. However, the parameter description itself is simple, so the added value is moderate.

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 details of a specific order from the user's order history, specifying it returns full order info including all items. It effectively distinguishes from siblings like get_user_orders (which lists orders) and get_product_details (different entity).

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 you have an order ID and need full details, but it does not explicitly state when to use this tool versus alternatives like get_user_orders, nor does it provide exclusions or prerequisites. The guidance is minimal.

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

get_product_by_barcodeA

Find a product by its barcode number. Useful when a customer scans or reads a barcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
barcodeYesThe barcode number to search for

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description fails to disclose critical behavioral traits such as error handling when barcode is not found, authentication requirements, or any side effects. This leaves the agent without essential context.

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

Conciseness5/5

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

The description is extremely concise, with two sentences that provide the purpose and a usage scenario 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?

Given the simplicity of the tool (single parameter, no output schema), the description is mostly adequate but omits what the return value is, leaving ambiguity about the data the agent will receive.

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 basic description of the barcode parameter. The tool description adds no additional nuance about the expected format or constraints, so it meets the baseline without adding extra value.

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 ('find') and the resource ('product by barcode number'), distinguishing it from sibling tools like get_product_details which likely require a product ID.

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

Usage Guidelines4/5

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

The description provides a clear use case ('when a customer scans or reads a barcode'), guiding the agent on appropriate usage, though it does not explicitly exclude alternative tools.

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

get_product_detailsA

Get detailed information about a specific product by its ID. Use this after search_products to get full details of a product.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesThe product ID

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided. Description only states it gets details, but does not disclose error behavior, authentication needs, or any side effects. For a read tool, basic safety is implied but not stated.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, second sentence provides usage guidance. No unnecessary 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?

Adequate for a simple retrieval tool, but could specify what 'detailed information' includes. No output schema means agents rely on description for return expectations.

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?

Input schema covers 100% of parameter descriptions, so description adds no extra meaning. Baseline 3 is appropriate; description does not elaborate 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?

Clearly states the verb 'get', resource 'product details', and identifier 'by its ID'. Additionally, distinguishes from search_products by advising to use after that tool.

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?

Provides clear context: 'Use this after search_products to get full details.' It tells when to use but does not explicitly mention when not to use or provide alternatives besides search_products.

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

get_store_infoC

Get store information like contact details, about us, terms, refund policy, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoWhich page to fetch. If omitted, returns all available pages.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It only states the tool 'Get store information' without mentioning authentication, rate limits, or behavior when 'page' is omitted. The schema's parameter description covers the omission behavior, but the main description does not.

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?

The description is a single sentence but uses 'etc.' which is vague and unnecessary. It could be more concise and precise.

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 simple tool with one optional parameter and no output schema, the description is incomplete. It does not explain what happens when 'page' is omitted (returns all pages) nor describe the return structure, leaving the agent without full 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?

Schema coverage is 100% with parameter descriptions. The main description adds some value by listing specific page types, but it omits 'PRIVACY' and 'CITY_POLICY' from the enum set. Thus it provides partial context beyond the schema.

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

Purpose4/5

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

The description clearly states it retrieves store information such as contact, about, terms, and refund policy. It's specific to a verb-resource combination, but the use of 'etc.' adds vagueness and doesn't distinguish from sibling tools like get_categories or get_current_gold_rate.

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. The description only lists example content types without any context or comparison to sibling tools.

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

get_user_ordersB

Get order history for a user. Returns a paginated list of orders with their items and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default 1)
limitNoNumber of orders per page (default 10)

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 convey behavioral traits. It does not disclose authentication needs, read-only status, or any side effects. The vague 'for a user' omits context like whether the user is implicitly the authenticated one.

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

Conciseness5/5

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

Two-sentence description with no wasted words. Essential information is front-loaded and efficiently presented.

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 no output schema, the description mentions return structure (list of orders with items and status), but lacks details like ordering or filtering. Adequate for a simple list tool, but could be more informative.

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% for page and limit parameters, so the schema already explains their meaning. The description adds no additional parameter information, meeting baseline expectations.

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 'Get' and resource 'order history for a user', and specifies the return type as a paginated list with items and status. It effectively distinguishes from sibling tools like get_order_details.

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 (e.g., get_order_details) or prerequisites. The description does not clarify which user's orders are retrieved or how to specify the user.

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

place_orderA

Place an order for one or more products. IMPORTANT: Ask the user to confirm before placing an order. This action will create a real order in the system.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesList of products to order
confirmYesSet to true only after user explicitly confirms the order

TDQS

A3.9/5.0
Behavior3/5

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

The description states 'This action will create a real order in the system', indicating irreversibility, which is important for a mutation tool. With no annotations, this carries the burden, but it lacks details on side effects like charges or inventory changes.

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 two sentences, front-loaded with the purpose, and includes an important note in all caps. Every word serves a purpose without redundancy.

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 has no output schema, a description of the return value would be helpful but is missing. The description adequately covers the core function but lacks completeness about the aftermath of the order.

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% coverage with descriptions for both parameters. The description adds the phrase 'one or more products' which aligns with the items parameter, but does not provide additional meaning beyond what is 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 clearly states 'Place an order for one or more products', using a specific verb and resource. It distinguishes itself from sibling tools, which are all read-only queries, by indicating a write 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 explicitly instructs to 'Ask the user to confirm before placing an order', providing a clear usage guideline. However, it does not mention when not to use this tool or provide alternatives.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: browsing categories, retrieving products in a category, gold rates, orders, barcode lookup, product details, store info, user orders, and placing orders. No overlap between tools.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscore separators (e.g., get_categories, place_order). No mixing of conventions.

Tool Count5/5

10 tools are well-scoped for a jewelry store MCP server, covering browsing, ordering, and store information without being overly numerous or too few.

Completeness3/5

The tool set covers core operations (browse, get details, order), but notably lacks a search tool despite get_product_details referencing search_products. Missing update/delete for orders and customer support tools, leaving moderate gaps.

Maintenance

ActivityInactive
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
    B
    quality
    D
    maintenance
    Enables trading and portfolio management on Zerodha Kite Connect through natural language. Supports placing orders, viewing positions/holdings, accessing real-time market data, and managing GTT orders.
    24
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with Shiprocket shipping services to check courier rates and delivery times, create and manage orders, ship packages, track shipments, and schedule pickups through natural language commands.
    11
    29
  • A
    license
    C
    quality
    Not graded
    maintenance
    Enables interaction with Shopify store data via the GraphQL Admin API for managing products, customers, and orders. It allows users to search, retrieve, create, and update store records through natural language commands.
    9
    1,192

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/parthhimself0/arham-mcp-server'

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