Agent Framework
THC Store India publishes a REST API, an MCP (Model Context Protocol) server, and a chat endpoint that any LLM — Claude, ChatGPT, Cursor, or your own agent — can call. MCP-aware clients (Claude Desktop, ChatGPT MCP Connectors) sign in via OAuth 2.0 (MCP 2025-06-18 spec) — no manual token paste. REST clients use a Personal Access Token. Anonymous read access works out of the box.
Model Context Protocol. Best for Claude Desktop, Cursor, and other MCP-aware clients.
https://mcp.thcstore.in/mcpA managed conversational front-door (PAT-gated). Good when you want THC Store to handle tool routing for you.
https://chat.thcstore.in/chatClaude Desktop and ChatGPT MCP Connectors auto-discover OAuth via the resource metadata endpoint on first connect. Your browser opens for sign-in and scope approval; the token is stored locally by the client (90-day lifetime). OAuth-issued tokens appear in Connected AI under the AI client's reported name (e.g. Claude Desktop, ChatGPT MCP Connector) — revoke there to force the client to re-authorize. PKCE S256 + dynamic client registration follow the MCP 2025-06-18 spec.
For ChatGPT Custom GPTs (free tier) or any REST integration, mint a PAT from Connected AI and use it as a Bearer token. Each PAT can be scoped to specific tools (e.g. cart:write, orders:read).
Anonymous (tier-0) reads — product search, blog, doctor list, pincode resolve — work with no PAT and are IP rate-limited.
curl -X POST https://agent-api.thcstore.in/v1/public/searchProducts \
-H 'Content-Type: application/json' \
-d '{"args":{"query":"ashwagandha","limit":3}}'curl -X POST https://agent-api.thcstore.in/v1/tools/addToCart \
-H 'Authorization: Bearer thc_pat_xxx' \
-H 'Content-Type: application/json' \
-d '{"args":{"productId":1,"quantity":1}}'{
"mcpServers": {
"thc-store": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.thcstore.in/mcp"]
}
}
}{
"mcpServers": {
"thc-store": {
"url": "https://mcp.thcstore.in/mcp"
}
}
}Settings → Connectors → Add MCP server → https://mcp.thcstore.in/mcpOpenAPI URL: https://agent-api.thcstore.in/.well-known/ai-plugin.json
Auth: API Key → Bearer → paste a PAT from /account/connected-aiLive from https://agent-api.thcstore.in/v1/openapi.json — refreshes hourly.
/v1/tools/getAddressesgetAddresses/v1/tools/getLoyaltyPointsgetLoyaltyPoints/v1/tools/getWalletBalancegetWalletBalance/v1/auth/session/{sessionId}/pollPoll an OAuth session for the redeemed PAT/v1/auth/session/startStart an OAuth session (auth-link / device-code)/v1/tools/public.checkStockpublic.checkStock/v1/tools/public.getBlogPostpublic.getBlogPost/v1/tools/public.getBrandProfilepublic.getBrandProfile/v1/tools/public.getCategoriespublic.getCategories/v1/tools/public.getDoctorProfilepublic.getDoctorProfile/v1/tools/public.getDosageGuidepublic.getDosageGuide/v1/tools/public.getProductpublic.getProduct/v1/tools/public.getProductClaimpublic.getProductClaim/v1/tools/public.getStateCitypublic.getStateCity/v1/tools/public.listBrandspublic.listBrands/v1/tools/public.listDoctorspublic.listDoctors/v1/tools/public.listServiceablePincodespublic.listServiceablePincodes/v1/tools/public.resolvePincodepublic.resolvePincode/v1/tools/public.searchBlogpublic.searchBlog/v1/tools/public.searchProductspublic.searchProducts/v1/tools/whoamiwhoami/v1/tools/getCartgetCart/v1/tools/getCartTotalsgetCartTotals/v1/tools/addToCartaddToCart/v1/tools/applyCouponapplyCoupon/v1/tools/clearCartclearCart/v1/tools/removeFromCartremoveFromCart/v1/tools/updateQuantityupdateQuantity/v1/tools/checkStockcheckStock/v1/tools/getCategoriesgetCategories/v1/tools/getProductgetProduct/v1/tools/getRxRequiredForgetRxRequiredFor/v1/tools/searchProductssearchProducts/v1/tools/getDoctorAvailabilitygetDoctorAvailability/v1/tools/getDoctorProfilegetDoctorProfile/v1/tools/joinAppointmentVideojoinAppointmentVideo/v1/tools/listDoctorslistDoctors/v1/tools/listMyAppointmentslistMyAppointments/v1/tools/confirmStagedConsultationconfirmStagedConsultation/v1/tools/stageConsultationstageConsultation/v1/tools/cancelAppointmentcancelAppointment/v1/tools/alerts.recentalerts.recent/v1/tools/ops.backup.statusops.backup.status/v1/tools/ops.brand.kycPendingops.brand.kycPending/v1/tools/ops.brand.ordersTodayops.brand.ordersToday/v1/tools/ops.brand.settlementsops.brand.settlements/v1/tools/ops.brand.topSkusops.brand.topSkus/v1/tools/ops.brand.warehousesops.brand.warehouses/v1/tools/cart.abandon-infocart.abandon-info/v1/tools/ops.cart.abandonedListops.cart.abandonedList/v1/tools/ops.cart.byIdops.cart.byId/v1/tools/ops.comms.telegramAdminStatusops.comms.telegramAdminStatus/v1/tools/ops.coupons.couponIssueops.coupons.couponIssue/v1/tools/ops.coupons.byIdops.coupons.byId/v1/tools/ops.coupons.statsops.coupons.stats/v1/tools/ops.cron.healthops.cron.health/v1/tools/ops.cron.pingops.cron.ping/v1/tools/ops.customers.addressesops.customers.addresses/v1/tools/ops.customers.byIdops.customers.byId/v1/tools/ops.customers.loyaltyops.customers.loyalty/v1/tools/ops.customers.rxops.customers.rx/v1/tools/ops.customers.walletops.customers.wallet/v1/tools/ops.consultations.noshowops.consultations.noshow/v1/tools/ops.doctor.appointmentsops.doctor.appointments/v1/tools/ops.doctor.slotsops.doctor.slots/v1/tools/ops.prescriptions.pendingops.prescriptions.pending/v1/tools/ops.email.testSendops.email.testSend/v1/tools/ops.finance.gstSummaryops.finance.gstSummary/v1/tools/ops.finance.hsnReportops.finance.hsnReport/v1/tools/ops.finance.invoiceByIdops.finance.invoiceById/v1/tools/ops.finance.revenueops.finance.revenue/v1/tools/ops.finance.settlementListops.finance.settlementList/v1/tools/ops.finance.tdsSummaryops.finance.tdsSummary/v1/tools/ops.finance.walletDriftCheckops.finance.walletDriftCheck/v1/tools/ops.inventory.lowStockops.inventory.lowStock/v1/tools/ops.product.byIdops.product.byId/v1/tools/ops.marketing.birthdayCouponStatsops.marketing.birthdayCouponStats/v1/tools/ops.marketing.campaignSummaryops.marketing.campaignSummary/v1/tools/ops.marketing.winbackAuditops.marketing.winbackAudit/v1/tools/ops.moderation.reviewApproveops.moderation.reviewApprove/v1/tools/ops.returns.pendingops.returns.pending/v1/tools/ops.reviews.pendingops.reviews.pending/v1/tools/ops.moderation.returnApproveops.moderation.returnApprove/v1/tools/ops.n8n.triggerops.n8n.trigger/v1/tools/ops.orders.orderCancelops.orders.orderCancel/v1/tools/ops.orders.byCustomerops.orders.byCustomer/v1/tools/ops.orders.byIdops.orders.byId/v1/tools/ops.orders.commissionops.orders.commission/v1/tools/orders.recentorders.recent/v1/tools/ops.orders.orderRefundops.orders.orderRefund/v1/tools/ops.pm2.logsops.pm2.logs/v1/tools/ops.pm2.restartops.pm2.restart/v1/tools/ops.pm2.statusops.pm2.status/v1/tools/ops.schema.parityops.schema.parity/v1/tools/ops.seo.blogIdeaops.seo.blogIdea/v1/tools/ops.seo.bounceCandidatesops.seo.bounceCandidates/v1/tools/ops.seo.canonicalAuditops.seo.canonicalAudit/v1/tools/ops.seo.keywordOppops.seo.keywordOpp/v1/tools/ops.seo.sitemapCheckops.seo.sitemapCheck/v1/tools/seo.gsc.summaryseo.gsc.summary/v1/tools/getOrdergetOrder/v1/tools/getOrderTrackinggetOrderTracking/v1/tools/listOrderslistOrders/v1/tools/cancelStagedOrdercancelStagedOrder/v1/tools/confirmStagedOrderconfirmStagedOrder/v1/tools/stageOrderstageOrder/v1/tools/listMyPrescriptionslistMyPrescriptions/v1/tools/linkPrescriptionToOrderlinkPrescriptionToOrder/v1/tools/requestPrescriptionUploadrequestPrescriptionUpload/v1/tools/submitPrescriptionsubmitPrescription/v1/tools/getPersonalizedRecommendationsgetPersonalizedRecommendations