Skip to main content
Glama
akshayadeodiaspark

tekweld-ecommerce-mcp

tekweld-ecommerce-mcp

MCP server that wraps the Tekweld ecommerce test API (https://ecommercetest.tekweld.com/api/v1).

Tools

  • get_mega_menu — raw payload from GET /home/get_mega_menu (nested category/collection tree).

  • list_menu_items — same data, flattened into a simple list with a readable path (e.g. Men > Shirts > Casual), link, login-required flag, and whether it has sub-items.

  • call_ecommerce_api — generic passthrough for any other endpoint under the same base URL. Pass path, method, and optional query / body / headers.

Related MCP server: Procore MCP Server

Setup

cd tekweld-ecommerce-mcp
npm install
npm run build

This produces build/index.js, a stdio MCP server.

Run standalone (for testing)

npm start

It will print tekweld-ecommerce-mcp server running on stdio to stderr and wait for MCP JSON-RPC messages on stdin.

Connect to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "tekweld-ecommerce": {
      "command": "node",
      "args": ["/absolute/path/to/tekweld-ecommerce-mcp/build/index.js"]
    }
  }
}

Restart Claude Desktop, then ask it to use the get_mega_menu or list_menu_items tool.

Connect to Claude Code

claude mcp add tekweld-ecommerce -- node /absolute/path/to/tekweld-ecommerce-mcp/build/index.js

Run claude mcp list afterward to confirm it registered, then start a new claude session (existing sessions won't pick it up) and check /mcp.

Deploying as a remote server (for Cowork / claude.ai custom connectors)

Cowork and claude.ai can only reach remote MCP servers (a public HTTPS URL) — they cannot see a local stdio server on your machine, even one registered in claude_desktop_config.json. To use these tools from Cowork or claude.ai, deploy the HTTP entrypoint (src/http.ts / build/http.js) somewhere public. Render's free tier works well for this:

  1. Push this folder to a GitHub repo (Render deploys from a repo, not a local folder).

  2. On render.com, New → Blueprint, point it at your repo. It will read render.yaml in this folder and configure everything automatically (build command, start command, health check).

    • Alternatively, without the blueprint: New → Web Service → connect repo → Build Command npm install && npm run build → Start Command npm run start:http.

  3. Deploy. Render gives you a URL like https://tekweld-ecommerce-mcp.onrender.com.

  4. Confirm it's up: curl https://<your-app>.onrender.com/health should return {"status":"ok",...}.

  5. In Claude, go to Customize > Connectors (claude.ai) → "+" → "Add custom connector" → enter https://<your-app>.onrender.com/mcp as the server URL.

  6. Enable it for a conversation via the "+" button → Connectors, then ask Claude to use get_mega_menu or list_menu_items.

Note: Render's free tier spins the service down after ~15 minutes of inactivity. The first request after a gap will be slow (30-60s) while it wakes back up — that's normal, not a bug.

Run the HTTP server locally (optional, for testing before deploy)

npm run build
npm run start:http

This starts an Express server on $PORT (defaults to 3000) with:

  • POST /mcp — the MCP Streamable HTTP endpoint (stateless mode)

  • GET /health — health check

Extending

The API has more endpoints under /home/..., /product/..., etc. Rather than hardcoding each one, use call_ecommerce_api to hit them directly, or add a new server.registerTool(...) block in src/tools.ts (shared by both the stdio and HTTP entrypoints) following the pattern used for get_mega_menu.

If the API later requires an auth token, pass it via the headers argument of call_ecommerce_api, or add an Authorization header default in fetchJson() in src/tools.ts.

Available Tools

3 tools
call_ecommerce_apiCall any Tekweld ecommerce API endpointA

Generic passthrough tool for calling other endpoints under https://ecommercetest.tekweld.com/api/v1. Use this to reach endpoints not covered by a dedicated tool. Provide a path relative to the base URL (e.g. '/home/get_banners'), an HTTP method, and optional query params / JSON body / headers.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON body to send (for POST/PUT/PATCH requests)
pathYesPath relative to the base URL, e.g. '/home/get_mega_menu' or '/product/list'
queryNoQuery string parameters to append to the URL
methodNoHTTP method to useGET
headersNoExtra headers to send, e.g. an Authorization token

TDQS

A4.3/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 discloses that the tool acts as a generic HTTP passthrough and lists the parameters that control behavior. However, it does not mention error handling, rate limits, authentication requirements (though headers allow auth token), or the response format. This is adequate but lacks full transparency on potential risks or failure modes.

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, each adding essential information without redundancy. The first sentence states the purpose, the second gives usage instructions. Every word earns its place, and the most important information is front-loaded.

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 does not explain what the response will contain (e.g., JSON). It also lacks information on authentication or error handling. However, since it is a generic passthrough, the response format is inherently variable. The description is adequate but could be more complete by noting that responses are JSON and that errors may be returned.

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 description coverage is 100%, so the baseline is 3. The description adds value by contextualizing parameters: it gives the base URL, shows a relative path example, and explains that query/body/headers are optional. This goes beyond the individual schema descriptions by tying them together into a usage context.

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 is a generic passthrough tool for calling endpoints under a specific base URL, intended for endpoints not covered by dedicated tools. It specifies the verb 'call' and resource 'any Tekweld ecommerce API endpoint', distinguishing it from siblings like get_mega_menu and list_menu_items which cover specific endpoints.

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

Usage Guidelines5/5

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

The description explicitly says 'Use this to reach endpoints not covered by a dedicated tool', providing clear when-to-use guidance and implicit when-not-to-use (when a dedicated tool exists). It also explains what to provide (path, method, query, body, headers), giving comprehensive usage instructions.

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

get_mega_menuGet mega menuA

Fetches the raw mega menu payload from the Tekweld ecommerce test API (GET /home/get_mega_menu). Returns the full nested collections tree as-is.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 notes the tool is read-only (GET) and returns data as-is, but omits details about potential errors, rate limits, or data volume. The behavioral coverage is 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.

Conciseness5/5

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

Two sentences, no filler. The first sentence immediately states the action and endpoint. Every word adds value, and the structure is front-loaded.

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 provides the essential operation and return shape, but lacks guidance on when to prefer this over sibling tools like list_menu_items. Without an output schema, it could better describe the nesting structure or use cases.

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 0 parameters with 100% coverage. The description does not need to add parameter information but also does not explicitly confirm the absence of parameters. Baseline 3 applies due to high 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 verb 'Fetches' and the resource 'mega menu payload' from a specific API endpoint. It also specifies the result is 'the full nested collections tree as-is', distinguishing it from sibling tools like list_menu_items which likely return filtered 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 when the raw, unfiltered mega menu payload is needed, but does not explicitly contrast with siblings (call_ecommerce_api, list_menu_items) or provide when-not-to-use guidance. No alternatives or exclusions are stated.

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

list_menu_itemsList mega menu items (flattened)A

Fetches the mega menu and returns a flattened, human-readable list of every menu item with its hierarchy path (e.g. 'Men > Shirts > Casual'), link, and whether it requires login or has sub-items. Easier to scan than the raw tree.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full behavioral burden. It uses 'Fetches' indicating a read operation, but does not explicitly state it is non-destructive, nor does it mention authentication needs, rate limits, or potential side effects. The description adds some value by describing the output format but lacks comprehensive 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?

The description is concise with two sentences, front-loaded with the main purpose. Every sentence adds value without repetition 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 no parameters and no output schema, the description explains the output structure sufficiently (flattened, human-readable, fields). However, it does not mention whether the list is complete or limited, or if there is any ordering. Overall, it is adequate for a simple list retrieval tool.

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

Parameters4/5

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

The input schema has no parameters, so schema description coverage is 100%. The description adds meaning by explaining what the returned list contains (hierarchy path, link, login requirement, sub-items), which is helpful for understanding the tool's output. With zero parameters, a baseline of 4 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 fetches the mega menu and returns a flattened list with hierarchy path, link, login requirement, and sub-items. It distinguishes itself from the raw tree by stating it's easier to scan, implying a sibling tool get_mega_menu for raw tree.

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 (when a human-readable flattened list is needed) versus the raw tree (get_mega_menu) by saying 'Easier to scan than the raw tree.' This provides clear context, though it doesn't explicitly mention the sibling tool name 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.

Tool Schema Changelog

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

  1. 3 tool updatesv1.0.0
    • First observedcall_ecommerce_api
    • First observedget_mega_menu
    • First observedlist_menu_items

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation4/5

The three tools are clearly distinct: `get_mega_menu` and `list_menu_items` serve different presentation needs for menu data, while `call_ecommerce_api` is a generic fallback. No overlapping functionality, though the two menu tools share a domain.

Naming Consistency4/5

All tool names follow a consistent `verb_noun` pattern using snake_case. However, `call_ecommerce_api` is less specific than the menu-focused names, causing a slight deviation in specificity.

Tool Count3/5

With only 3 tools, the server feels thin for a general ecommerce API, but the inclusion of a generic passthrough mitigates the need for many dedicated tools. Still, it is borderline small.

Completeness2/5

The server provides dedicated tools only for the menu domain, lacking tools for products, cart, checkout, etc. The generic `call_ecommerce_api` fills some gaps but leaves the surface feeling incomplete for typical ecommerce workflows.

Maintenance

ActivityStale
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