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.

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.