About tarigrisurgical-mcp-server
tarigrisurgical-mcp-server exposes Tarigri Surgical’s wholesale instrument catalog to AI assistants. It supports product lookup, quote estimates, and user-controlled inquiry drafts without placing orders or sending messages.
Key features
- 01Search products by text, category, price, or best sellers
- 02Retrieve SKU details and quantity pricing
- 03List catalog categories and product counts
- 04Estimate quotes with volume tiers and MOQ checks
- 05Draft inquiry text with email and WhatsApp links
Use cases
- 01Find surgical instruments matching catalog criteria
- 02Check pricing for a planned quantity
- 03Prepare a quotation inquiry for manual sending
MCP support
An MCP server exposing catalog resources, a product prompt, and six tools for product search, details, quotes, company information, and inquiry drafting. It supports stdio and stateless Streamable HTTP.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.tarigrisurgical.com/mcpclaude mcp add --transport http qmmughal-tarigrisurgical https://mcp.tarigrisurgical.com/mcp{"mcpServers":{"qmmughal-tarigrisurgical":{"type":"http","url":"https://mcp.tarigrisurgical.com/mcp"}}}Open in Cursor{"servers":{"qmmughal-tarigrisurgical":{"type":"http","url":"https://mcp.tarigrisurgical.com/mcp"}}}Open in VS Code{"mcpServers":{"qmmughal-tarigrisurgical":{"type":"http","url":"https://mcp.tarigrisurgical.com/mcp"}}}{"mcpServers":{"qmmughal-tarigrisurgical":{"serverUrl":"https://mcp.tarigrisurgical.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMETarigri Surgical MCP Server
A Model Context Protocol server for tarigrisurgical.com, a Sialkot (Pakistan) manufacturer of stainless steel surgical, dental, orthopedic and ENT instruments. It lets AI assistants search the wholesale catalog, price quantities and prepare an order request.
Built from qmmughal/mcp-server-template, upgraded to the high-level McpServer API (SDK 1.32).
Standards coverage
| Area | Status |
|---|---|
| Transports | stdio (local, npx/node) and Streamable HTTP (remote, stateless, POST /mcp, deployable on Vercel) |
| Protocol | Negotiated by the official TypeScript SDK (2025-06-18 and earlier) |
| Tools | 6 tools, each with title, JSON-Schema input, outputSchema + structuredContent, and annotations (readOnlyHint, destructiveHint: false, idempotentHint, openWorldHint) |
| Errors | Tool failures return isError: true results (not protocol errors); bad arguments are rejected by schema validation |
| Resources | Static tarigri://catalog, listable template tarigri://product/{sku} with argument completion |
| Prompts | source_instruments with typed arguments |
| Server info | name, title, version, websiteUrl, and model-facing instructions |
| Safety | Read-only; nothing is ordered or sent. stdout is reserved for JSON-RPC, logs go to stderr |
| Testing | 24 tests, including protocol-level tests through a real MCP Client; verified with the official MCP Inspector over both stdio and HTTP |
| Not implemented | Authentication (public catalog data), sessions/SSE streams (stateless by design), sampling/elicitation (not needed) |
Tools
| Tool | Purpose |
|---|---|
search_products | Filter by text, category, max price, best sellers |
get_product | Full details for a SKU (price, MOQ, 50+/100+ tiers, material, size, URL) |
list_categories | The 8 categories with product counts |
estimate_quote | Indicative total for SKU + quantity lines; applies volume tiers, flags quantities below MOQ |
get_company_info | Contact details, hours, buyer FAQ |
draft_inquiry | Drafts the quotation request as text plus mailto: and WhatsApp links for the user to send themselves |
All prices are factory-direct wholesale USD, FOB Sialkot; shipping is quoted separately by Tarigri.
How it works
The site is a client-rendered SPA with no API, but it publishes its catalog as /data.js. The server fetches it, validates it with Zod, converts PKR prices to USD using the site's own rate, and caches it in memory (default 15 min, stale copy served if a refresh fails).
Run locally
npm install
npm run build # dist/index.js (single bundled executable with shebang)
npm test
npm run inspect # opens the official MCP Inspector against the build
| Variable | Default | Meaning |
|---|---|---|
TARIGRI_SITE_ORIGIN | https://tarigrisurgical.com | Site serving /data.js |
CATALOG_CACHE_TTL_SECONDS | 900 | Catalog cache lifetime |
LOG_LEVEL | info | Logs go to stderr only |
LOG_PRETTY | false | Pretty logs when running from source with tsx (not the bundle) |
Deploy to Vercel (remote server)
The repo is Vercel-ready: api/mcp.ts is the function, /mcp is rewritten to it, and public/index.html is a landing page with copy-paste configs.
- Vercel dashboard → Add New → Project → import
qmmughal/tarigrisurgical-mcp-server(or runnpx vercel login && npx vercel --prod). - Keep the defaults (
vercel.jsonsets the framework and output directory). No env vars are required. - Optional: add a domain such as
mcp.tarigrisurgical.comunder Project → Domains.
Your endpoint is then https://<your-domain>/mcp. The endpoint is public and unauthenticated by design (it only exposes the public catalog). Add Vercel's WAF/rate limiting if you expect heavy traffic.
Connect from AI tools
Replace <URL> with your Vercel endpoint (https://…/mcp). Until the package is published to npm, use the local node form with the absolute path to dist/index.js instead of npx.
Claude Code
claude mcp add --transport http tarigri-surgical <URL>
# or local: claude mcp add tarigri-surgical -- node /abs/path/dist/index.js
Claude Desktop: Settings → Connectors → Add custom connector with <URL>, or claude_desktop_config.json:
{ "mcpServers": { "tarigri-surgical": { "command": "node", "args": ["/abs/path/dist/index.js"] } } }
Cursor (.cursor/mcp.json)
{ "mcpServers": { "tarigri-surgical": { "url": "<URL>" } } }
VS Code / GitHub Copilot (.vscode/mcp.json)
{ "servers": { "tarigri-surgical": { "type": "http", "url": "<URL>" } } }
Windsurf (~/.codeium/windsurf/mcp_config.json)
{ "mcpServers": { "tarigri-surgical": { "serverUrl": "<URL>" } } }
Gemini CLI (~/.gemini/settings.json)
{ "mcpServers": { "tarigri-surgical": { "httpUrl": "<URL>" } } }
Codex CLI (~/.codex/config.toml)
[mcp_servers.tarigri-surgical]
command = "node"
args = ["/abs/path/dist/index.js"]
Any client that only supports stdio: npx -y mcp-remote <URL>.
Notes
data.jsis evaluated in an emptynode:vmcontext with a timeout, then schema-validated.vmis not a security sandbox, so only pointTARIGRI_SITE_ORIGINat a site you trust.- Product images on the site are illustrative; CE/ISO certificate numbers are not published, only "available on request". The server never claims more.
- If the site changes the shape of
data.js, validation fails with a clear error rather than returning bad data.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.