{"apiVersion":"v1","directorySlug":"kachiing-mcp-84fbb787b4","title":"Kachiing","description":"Discover trusted local home services, repairs, and community deals across Singapore. Connect directly with verified neighborhood service providers on Kachiing.","pageUrl":"https://www.mcpbundles.com/skills/kachiing-mcp-84fbb787b4","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.kachiing.com/mcp","hostedMcpUrl":null,"toolCount":59,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.kachiing/kachiing-mcp-84fbb787b4","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"news_article_add","description":"Add/create a news article using the new tables: ensure/create category in newsCategory, insert news in news, then insert an image row in newsImage. memberShopCategory/memberShopSubRegion are ignored (stored as null).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["title","content","image","author"],"properties":{"slug":{"type":"string","minLength":1},"image":{"type":"string","minLength":1},"author":{"type":"string","minLength":1},"schema":{"anyOf":[{},{"type":"null"}]},"content":{"type":"string","minLength":1},"hashtag":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"adsImage":{"type":["string","null"]},"imageSrc":{"type":["string","null"]},"metadata":{"anyOf":[{},{"type":"null"}]},"createdAt":{"$ref":"#/properties/categoryCreatedAt"},"createdBy":{"anyOf":[{"type":"integer"},{"type":"null"}]},"imageBlob":{"type":["string","null"]},"updatedAt":{"$ref":"#/properties/categoryCreatedAt"},"viewCount":{"type":"integer","minimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"categoryIcon":{"type":["string","null"]},"categoryName":{"type":"string","minLength":1},"categoryPriority":{"type":"integer"},"categoryCreatedAt":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","minimum":0}]},"categoryUpdatedAt":{"$ref":"#/properties/categoryCreatedAt"},"newsImageCreatedAt":{"$ref":"#/properties/categoryCreatedAt"},"newsImageUpdatedAt":{"$ref":"#/properties/categoryCreatedAt"}},"additionalProperties":false},"logicalName":"news_article_add","displayName":"news_article_add","title":"news_article_add","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"news_category_list","description":"List available newsCategory rows (use this before news_article_add to discover existing categoryId values). Supports optional partial name search with pagination.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":100,"maximum":200,"minimum":1},"query":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0}},"additionalProperties":false},"logicalName":"news_category_list","displayName":"news_category_list","title":"news_category_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"news_article_get","description":"Get one news/article by articleId, or search news articles by partial title (SQL LIKE) using the title field.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"articleId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"news_article_get","displayName":"news_article_get","title":"news_article_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"news_article_update","description":"Update one news/article row in news by articleId, optionally relink/create/update its newsCategory and upsert a newsImage row.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["articleId"],"properties":{"slug":{"type":"string","minLength":1},"image":{"type":"string","minLength":1},"author":{"type":"string","minLength":1},"schema":{"anyOf":[{},{"type":"null"}]},"content":{"type":"string","minLength":1},"hashtag":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"adsImage":{"type":["string","null"]},"imageSrc":{"type":["string","null"]},"metadata":{"anyOf":[{},{"type":"null"}]},"articleId":{"type":"integer","exclusiveMinimum":0},"createdAt":{"$ref":"#/properties/categoryCreatedAt"},"createdBy":{"anyOf":[{"type":"integer"},{"type":"null"}]},"imageBlob":{"type":["string","null"]},"updatedAt":{"$ref":"#/properties/categoryCreatedAt"},"viewCount":{"type":"integer","minimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"categoryIcon":{"type":["string","null"]},"categoryName":{"type":"string","minLength":1},"imageRecordId":{"type":"integer","exclusiveMinimum":0},"categoryPriority":{"type":"integer"},"categoryCreatedAt":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","minimum":0}]},"categoryUpdatedAt":{"$ref":"#/properties/categoryCreatedAt"},"newsImageCreatedAt":{"$ref":"#/properties/categoryCreatedAt"},"newsImageUpdatedAt":{"$ref":"#/properties/categoryCreatedAt"}},"additionalProperties":false},"logicalName":"news_article_update","displayName":"news_article_update","title":"news_article_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"news_article_delete","description":"Delete one news/article row from news by articleId and delete related rows from newsImage (category rows are not deleted).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["articleId"],"properties":{"articleId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"news_article_delete","displayName":"news_article_delete","title":"news_article_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"banner_customization_get","description":"Get the homepage/banner customization rows (homepageColor, showHeaderCategory, selectedProducts, selectedCategories, mobileBannerButtonText) from customization table with parsed values.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":false},"logicalName":"banner_customization_get","displayName":"banner_customization_get","title":"banner_customization_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"banner_customization_update","description":"Update existing homepage/banner customization rows only (no create/delete). Accepts a partial patch in `customization` and validates the final format before writing.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["customization"],"properties":{"customization":{"type":"object","properties":{"homepageColor":{"type":"object","required":["type","colors"],"properties":{"type":{"enum":["solid","gradient"],"type":"string"},"stops":{"type":"array","items":{"type":"number","maximum":100,"minimum":0}},"colors":{"type":"array","items":{"type":"string","pattern":"^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"minItems":1}},"additionalProperties":false},"selectedProducts":{"type":"array","items":{"type":"object","required":["id","categoryName","companyName","description","image","parentSlug","catSlug","slug","isProduct"],"properties":{"id":{"type":"integer","exclusiveMinimum":0},"link":{"type":"string"},"slug":{"type":"string"},"image":{"type":"string"},"isType":{"type":"boolean"},"catSlug":{"type":"string"},"itemType":{"enum":["product","type"],"type":"string"},"isProduct":{"type":"boolean"},"buttonText":{"type":"string"},"parentSlug":{"type":"string"},"companyName":{"type":"string"},"customImage":{"type":"boolean"},"categoryName":{"type":"string"},"originalImage":{"type":"string"},"showInMobileBanner":{"type":"boolean"}},"additionalProperties":false}},"selectedCategories":{"type":"array","items":{"type":"object","required":["slug","name","image"],"properties":{"name":{"type":"string"},"slug":{"type":"string","minLength":1},"image":{"type":"string"}},"additionalProperties":false}},"showHeaderCategory":{"type":"boolean"},"mobileBannerButtonText":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"logicalName":"banner_customization_update","displayName":"banner_customization_update","title":"banner_customization_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"member_shop_category_get","description":"List memberShopCategories with pagination, exposing only categoryId, name, title, description, content, bottomText, metaConfig, seo_title, and seo_description.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":100,"maximum":200,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0}},"additionalProperties":false},"logicalName":"member_shop_category_get","displayName":"member_shop_category_get","title":"member_shop_category_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"member_shop_category_search","description":"Search memberShopCategories by partial name with pagination, exposing only categoryId, name, title, description, content, bottomText, metaConfig, seo_title, and seo_description.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"limit":{"type":"integer","default":100,"maximum":200,"minimum":1},"query":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0}},"additionalProperties":false},"logicalName":"member_shop_category_search","displayName":"member_shop_category_search","title":"member_shop_category_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"member_shop_category_update","description":"Update one memberShopCategories record by categoryId. Only name, title, description, content, bottomText, metaConfig, seo_title, and seo_description are writable. seo_title maps to metaTitle and seo_description maps to metaDescription in the DB.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["categoryId"],"properties":{"name":{"type":"string","minLength":1},"content":{"type":["string","null"]},"metaTitle":{"type":["string","null"]},"seo_title":{"type":["string","null"]},"bottomText":{"type":["string","null"]},"categoryId":{"type":"integer","exclusiveMinimum":0},"metaConfig":{"type":["string","null"]},"metaDescription":{"type":["string","null"]},"seo_description":{"type":["string","null"]}},"additionalProperties":false},"logicalName":"member_shop_category_update","displayName":"member_shop_category_update","title":"member_shop_category_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"category_region_meta_get","description":"Get SEO meta fields for a category + region page. Accepts direct categoryRegionMeta keys or a Kachiing URL like /food/jurong-west.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"type":"string","minLength":1},"regionId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"regionName":{"type":"string","minLength":1},"regionSlug":{"type":"string","minLength":1},"categoryName":{"type":"string","minLength":1},"categorySlug":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"category_region_meta_get","displayName":"category_region_meta_get","title":"category_region_meta_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"category_region_meta_upsert","description":"Create or update SEO meta fields for a category + region page. Accepts direct keys, category/region slugs, or a Kachiing URL like /food/jurong-west.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"type":"string","minLength":1},"schema":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"regionId":{"type":"integer","exclusiveMinimum":0},"metaTitle":{"type":["string","null"]},"categoryId":{"type":"integer","exclusiveMinimum":0},"regionName":{"type":"string","minLength":1},"regionSlug":{"type":"string","minLength":1},"categoryName":{"type":"string","minLength":1},"categorySlug":{"type":"string","minLength":1},"metaDescription":{"type":["string","null"]}},"additionalProperties":false},"logicalName":"category_region_meta_upsert","displayName":"category_region_meta_upsert","title":"category_region_meta_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"category_region_meta_delete","description":"Delete the SEO meta record for a category + region page by direct keys, category/region slugs, or a Kachiing URL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"type":"string","minLength":1},"regionId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"regionName":{"type":"string","minLength":1},"regionSlug":{"type":"string","minLength":1},"categoryName":{"type":"string","minLength":1},"categorySlug":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"category_region_meta_delete","displayName":"category_region_meta_delete","title":"category_region_meta_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"category_region_meta_preflight","description":"Resolve a category + region page URL or category/region inputs to the live categoryRegionMeta write key, canonical URL, existing SEO data, and all valid regions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"type":"string","minLength":1},"regionId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"regionName":{"type":"string","minLength":1},"regionSlug":{"type":"string","minLength":1},"categoryName":{"type":"string","minLength":1},"categorySlug":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"category_region_meta_preflight","displayName":"category_region_meta_preflight","title":"category_region_meta_preflight","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dynamic_page_routes","description":"Dedicated route-only dynamic page index for AI/admin discovery. Returns strict compact JSON with total, limit, offset, nextOffset, complete, and items. Defaults to active public pages and fields id,route,liveUrl,title,isActive. Use this instead of dynamic_page_list when the user asks to list all dynamic pages/routes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":500,"maximum":1000,"minimum":1},"query":{"type":"string","minLength":1},"fields":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0},"onlyActive":{"type":"boolean","default":true}},"additionalProperties":false},"logicalName":"dynamic_page_routes","displayName":"dynamic_page_routes","title":"dynamic_page_routes","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dynamic_page_list","description":"List dynamicPages for discovery before editing. By default returns a compact complete route index up to 500 rows with DB route, canonical /glossary live URL, title, and active state. Use this first when the user asks about dynamic pages but does not provide an exact id or route. Do not paginate if complete=true; request format=summary only when SEO fields, timestamps, and content flags are needed.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":500,"maximum":1000,"minimum":1},"query":{"type":"string","minLength":1},"format":{"enum":["compact","summary"],"type":"string","default":"compact"},"offset":{"type":"integer","default":0,"minimum":0},"onlyActive":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"dynamic_page_list","displayName":"dynamic_page_list","title":"dynamic_page_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dynamic_page_get","description":"Fetch full dynamic page content by id, DB route, public /glossary route, or full kachiing.com/glossary URL. If id and route are omitted, returns the compact dynamic page route index instead of failing.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"integer","exclusiveMinimum":0},"route":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"dynamic_page_get","displayName":"dynamic_page_get","title":"dynamic_page_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dynamic_page_create","description":"Create a new dynamic page row with route, SEO fields, HTML/CSS/JS content, and active state. Detail page routes are stored without the /glossary prefix; /glossary itself is preserved for the index page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["route"],"properties":{"route":{"type":"string","minLength":1},"schema":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":{}},{"type":"array","items":{}},{"type":"null"}]},"isActive":{"anyOf":[{"type":"boolean"},{"type":"integer"}],"default":true},"metadata":{"$ref":"#/properties/schema"},"jsContent":{"type":["string","null"]},"metaTitle":{"type":["string","null"]},"cssContent":{"type":["string","null"]},"htmlContent":{"type":["string","null"]},"metaDescription":{"type":["string","null"]}},"additionalProperties":false},"logicalName":"dynamic_page_create","displayName":"dynamic_page_create","title":"dynamic_page_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dynamic_page_update","description":"Update an existing dynamic page by id or currentRoute. currentRoute accepts DB routes, public /glossary routes, or full URLs. Route updates store detail pages without the /glossary prefix and preserve /glossary for the index page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"integer","exclusiveMinimum":0},"route":{"type":"string","minLength":1},"schema":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":{}},{"type":"array","items":{}},{"type":"null"}]},"isActive":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"metadata":{"$ref":"#/properties/schema"},"jsContent":{"type":["string","null"]},"metaTitle":{"type":["string","null"]},"cssContent":{"type":["string","null"]},"htmlContent":{"type":["string","null"]},"currentRoute":{"type":"string","minLength":1},"metaDescription":{"type":["string","null"]}},"additionalProperties":false},"logicalName":"dynamic_page_update","displayName":"dynamic_page_update","title":"dynamic_page_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dynamic_page_delete","description":"Delete a dynamic page row by id, DB route, public /glossary route, or full kachiing.com/glossary URL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"integer","exclusiveMinimum":0},"route":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"dynamic_page_delete","displayName":"dynamic_page_delete","title":"dynamic_page_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"map_region_content_get","description":"Fetch bottom-page mapRegionContent rows by id, filter, nullable region, or paginated list. The DB text column is returned as HTML content.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"integer","exclusiveMinimum":0},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"filter":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0},"region":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false},"logicalName":"map_region_content_get","displayName":"map_region_content_get","title":"map_region_content_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"map_region_content_update","description":"Update an existing bottom-page mapRegionContent row selected by id or currentFilter + currentRegion. Use html for the bottom-page HTML; text is a legacy alias for the DB column.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"integer","exclusiveMinimum":0},"js":{"type":["string","null"]},"css":{"type":["string","null"]},"html":{"type":["string","null"]},"text":{"type":["string","null"]},"filter":{"type":"string","minLength":1},"region":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"currentFilter":{"type":"string","minLength":1},"currentRegion":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false},"logicalName":"map_region_content_update","displayName":"map_region_content_update","title":"map_region_content_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"map_region_content_upsert","description":"Create or update bottom-page HTML/CSS/JS for an exact map filter + nullable region in mapRegionContent. Use html for the bottom-page HTML; text is a legacy alias for the DB column.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["filter"],"properties":{"js":{"type":["string","null"]},"css":{"type":["string","null"]},"html":{"type":["string","null"]},"text":{"type":["string","null"]},"filter":{"type":"string","minLength":1},"region":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false},"logicalName":"map_region_content_upsert","displayName":"map_region_content_upsert","title":"map_region_content_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"map_region_content_delete","description":"Delete one bottom-page mapRegionContent row by id or exact filter + nullable region.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"id":{"type":"integer","exclusiveMinimum":0},"filter":{"type":"string","minLength":1},"region":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false},"logicalName":"map_region_content_delete","displayName":"map_region_content_delete","title":"map_region_content_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"map_region_content_preflight","description":"Resolve map bottom-content filter, canonical service URL, region, and existing mapRegionContent rows before a write.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"filter":{"type":"string","minLength":1},"region":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"typeId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"regionName":{"type":"string","minLength":1},"regionSlug":{"type":"string","minLength":1},"prefixedSlug":{"type":"string","minLength":1},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"categoryChildId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"map_region_content_preflight","displayName":"map_region_content_preflight","title":"map_region_content_preflight","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"member_shop_product_preflight","description":"Member shop / shout-out preflight. Use this when the user is talking about creating or editing a shop, member shop, shout-out, or shop page. Gets categories, sub-regions, and type options for the Create Shout Out form and resolves service URLs like /services/s-... or /services/t-... to subcategory/type context.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"type":"string","minLength":1},"typeId":{"type":"integer","exclusiveMinimum":0},"typeName":{"type":"string","minLength":1},"categoryId":{"type":"integer","exclusiveMinimum":0},"categoryName":{"type":"string","minLength":1},"prefixedSlug":{"type":"string","minLength":1},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"subCategoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"member_shop_product_preflight","displayName":"member_shop_product_preflight","title":"member_shop_product_preflight","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"member_shop_product_get","description":"Fetch or search member shops / shout-out products. Use this for shop pages, not vendor companies. Single-product lookups return product + seo + region + reviews + variations. Search/list mode also accepts service URLs like /services/s-.../shop and /services/t-... to resolve subcategory/type filters.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"url":{"type":"string","minLength":1},"type":{"type":"string","minLength":1},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"search":{"type":"string","minLength":1},"typeId":{"type":"integer","exclusiveMinimum":0},"productId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"companyName":{"type":"string","minLength":1},"subRegionId":{"type":"integer","minimum":0},"prefixedSlug":{"type":"string","minLength":1},"subCategoryId":{"type":"integer","minimum":0}},"additionalProperties":false},"logicalName":"member_shop_product_get","displayName":"member_shop_product_get","title":"member_shop_product_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"member_shop_product_delete","description":"Soft-delete a member shop product by setting isDeleted=1 and status=0. The product row is not physically removed.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"productId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"member_shop_product_delete","displayName":"member_shop_product_delete","title":"member_shop_product_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nearby_page_defaults_get","description":"Get Edit Nearby Page defaults (discount table) for category/subcategory/type scope. Resolves the same map filter format used by the UI modal.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["scope"],"properties":{"scope":{"enum":["category","subcategory","type"],"type":"string"},"typeId":{"type":"integer","exclusiveMinimum":0},"shopMode":{"type":"boolean","default":false},"typeName":{"type":"string","minLength":1},"categoryId":{"type":"integer","exclusiveMinimum":0},"categoryName":{"type":"string","minLength":1},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"subCategoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"nearby_page_defaults_get","displayName":"nearby_page_defaults_get","title":"nearby_page_defaults_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nearby_page_defaults_update","description":"Update existing Edit Nearby Page defaults (title, description, share title, toggles, icon items, banner images) for category/subcategory/type scope in the discount table. Does not create new discount rows.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["scope","defaults"],"properties":{"scope":{"enum":["category","subcategory","type"],"type":"string"},"typeId":{"type":"integer","exclusiveMinimum":0},"defaults":{"type":"object","properties":{"iconItems":{"type":"array","items":{"type":"object","properties":{"icon":{"type":"string"},"text":{"type":"string"},"image":{"type":"string"},"labelText":{"type":"string"}},"additionalProperties":false}},"showBanner":{"type":"boolean"},"bannerImages":{"type":"array","items":{"type":"string","minLength":1}},"shopAsDefault":{"type":"boolean"},"showShopToggle":{"type":"boolean"},"showBiggerBanner":{"type":"boolean"},"showVariantToggle":{"type":"boolean"},"showCustomShopPage":{"type":"boolean"},"shareWithOtherTitle":{"type":["string","null"]}},"additionalProperties":false},"shopMode":{"type":"boolean","default":false},"typeName":{"type":"string","minLength":1},"categoryId":{"type":"integer","exclusiveMinimum":0},"categoryName":{"type":"string","minLength":1},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"subCategoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"nearby_page_defaults_update","displayName":"nearby_page_defaults_update","title":"nearby_page_defaults_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"product_get","description":"Fetch a single product with SEO context, review summary, and attached employees.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"vendorId":{"type":"integer","exclusiveMinimum":0},"productId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"product_get","displayName":"product_get","title":"product_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"product_get_seo","description":"Fetch a single product focused on SEO-editable fields, including attached employees (same payload as product_get).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"vendorId":{"type":"integer","exclusiveMinimum":0},"productId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"product_get_seo","displayName":"product_get_seo","title":"product_get_seo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"product_search","description":"Search products by free text across name, companyName, and description.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"limit":{"type":"integer","default":10,"maximum":100,"minimum":1},"query":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0},"vendorId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"product_search","displayName":"product_search","title":"product_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"product_update_seo","description":"Update one product's SEO metadata/schema and optional core fields like name, description, website, latLong, variations, and attached employees.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId","seo"],"properties":{"seo":{"type":"object","required":["title","description"],"properties":{"city":{"type":"string"},"country":{"type":"string"},"subject":{"type":"string"},"abstract":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"canonical":{"type":"string"},"page_type":{"type":"string"},"page_topic":{"type":"string"},"resource_type":{"type":"string"},"schema_jsonld":{},"classification":{"type":"string"}},"additionalProperties":false},"name":{"type":"string"},"slug":{"type":"string"},"schema":{},"latLong":{"anyOf":[{"type":"string","minLength":1},{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"additionalProperties":false}]},"reviewId":{"type":"integer","exclusiveMinimum":0},"vendorId":{"type":"integer","exclusiveMinimum":0},"employees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0},"name":{"type":"string","minLength":1},"image":{"anyOf":[{"type":"string"},{"type":"null"}]},"delete":{"type":"boolean","default":false},"gender":{"anyOf":[{"type":"string","maxLength":3,"minLength":1},{"type":"null"}]}},"additionalProperties":false}},"productId":{"type":"integer","exclusiveMinimum":0},"postalCode":{"type":"string"},"variations":{"type":"array","items":{"type":"object","additionalProperties":{}}},"attemptSlug":{"type":"string"},"companyName":{"type":"string"},"subRegionId":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"shoutWebsite":{"type":"string"},"reviewMessage":{"type":"string"},"schema_jsonld":{},"deleteEmployeeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"bizCompanyEmployees":{"type":"array","items":{"$ref":"#/properties/employees/items"}},"replaceAllEmployees":{"type":"boolean","default":false},"replaceAllVariations":{"type":"boolean","default":false},"variationPriceUpdates":{"type":"array","items":{"type":"object","required":["variationName","price"],"properties":{"price":{"type":["string","number"]},"variationName":{"type":"string","minLength":1}},"additionalProperties":false}},"rename_name_to_match_slug":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"product_update_seo","displayName":"product_update_seo","title":"product_update_seo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"product_list_by_subcategory","description":"List products by logical subCategoryId with pagination and optional vendor scope.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["subCategoryId"],"properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"vendorId":{"type":"integer","exclusiveMinimum":0},"onlyActive":{"type":"boolean","default":false},"subCategoryId":{"type":"integer","minimum":0}},"additionalProperties":false},"logicalName":"product_list_by_subcategory","displayName":"product_list_by_subcategory","title":"product_list_by_subcategory","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"product_list_by_category","description":"List products by logical categoryId with pagination and optional vendor scope.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["categoryId"],"properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"vendorId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"onlyActive":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"product_list_by_category","displayName":"product_list_by_category","title":"product_list_by_category","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"app_user_search","description":"Search app users (by name/email/phone/id) to inspect potential vendor owners.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"query":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0},"onlyActive":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"app_user_search","displayName":"app_user_search","title":"app_user_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"subcategory_type_list","description":"List available subcategory type records for a given logical subCategoryId.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["subCategoryId"],"properties":{"limit":{"type":"integer","default":100,"maximum":200,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"onlyActive":{"type":"boolean","default":false},"subCategoryId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"subcategory_type_list","displayName":"subcategory_type_list","title":"subcategory_type_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_preflight","description":"Resolve category/subcategory/type inputs and return preflight options before creating/updating a vendor product.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"typeId":{"type":"integer","exclusiveMinimum":0},"typeName":{"type":"string","minLength":1},"categoryId":{"type":"integer","exclusiveMinimum":0},"categoryName":{"type":"string","minLength":1},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"subCategoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"vendor_product_preflight","displayName":"vendor_product_preflight","title":"vendor_product_preflight","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_search","description":"Search vendors by companyName with optional active-only filter.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"query":{"type":"string","minLength":1},"offset":{"type":"integer","default":0,"minimum":0},"onlyActive":{"type":"boolean","default":false}},"additionalProperties":false},"logicalName":"vendor_search","displayName":"vendor_search","title":"vendor_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_count_by_category","description":"Count vendors under a logical category (accepts categoryId or categoryName).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"categoryId":{"type":"integer","exclusiveMinimum":0},"onlyActive":{"type":"boolean","default":false},"categoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"vendor_count_by_category","displayName":"vendor_count_by_category","title":"vendor_count_by_category","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_count_by_subcategory","description":"Count vendors under a logical subcategory (accepts subCategoryId or subCategoryName).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"onlyActive":{"type":"boolean","default":false},"subCategoryId":{"type":"integer","minimum":0},"subCategoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"vendor_count_by_subcategory","displayName":"vendor_count_by_subcategory","title":"vendor_count_by_subcategory","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_list_by_subcategory","description":"List vendors under a logical subcategory (accepts subCategoryId or subCategoryName).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"onlyActive":{"type":"boolean","default":false},"subCategoryId":{"type":"integer","minimum":0},"subCategoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"vendor_list_by_subcategory","displayName":"vendor_list_by_subcategory","title":"vendor_list_by_subcategory","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_list_by_category","description":"List vendors under a logical category (accepts categoryId or categoryName).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"onlyActive":{"type":"boolean","default":false},"categoryName":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"vendor_list_by_category","displayName":"vendor_list_by_category","title":"vendor_list_by_category","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_shop_upsert","description":"Vendor-only upsert for a vendor company/storefront row. Use this only when the user is explicitly working with a vendor record. Do not use it for generic 'create a shop', member shop, shout-out, or shop page requests; use member_shop_product_create or member_shop_product_update instead. Infers owner memberId, accepts logical categoryId/subCategoryId, stores mapped DB fields, and can CRUD attached employees. New rows are always created with type=promote.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"mrp":{"type":"number","minimum":0},"name":{"type":"string","minLength":1},"slug":{"type":"string"},"type":{"type":"string","minLength":1},"unit":{"type":"string"},"isHide":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"maxQty":{"type":"integer","minimum":0},"status":{"type":"integer"},"typeId":{"type":"integer","exclusiveMinimum":0},"charges":{"type":"string"},"latLong":{"anyOf":[{"type":"string","minLength":1},{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"additionalProperties":false}]},"profile":{"type":"object","properties":{"qrText":{"type":"string"},"qr_text":{"type":"string"},"holidays":{"type":"string"},"shopName":{"type":"string"},"shop_name":{"type":"string"},"storeLink":{"type":"string"},"sellerInfo":{"type":"string"},"store_link":{"type":"string"},"whatsAppNumber":{"type":"string"},"whatsApp_number":{"type":"string"}},"additionalProperties":false},"remarks":{"type":"string"},"typeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"delivery":{"type":"string"},"holidays":{"type":"string"},"tabsInfo":{},"costPrice":{"type":"number","minimum":0},"employees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0},"name":{"type":"string","minLength":1},"image":{"anyOf":[{"type":"string"},{"type":"null"}]},"delete":{"type":"boolean","default":false},"gender":{"anyOf":[{"type":"string","maxLength":3,"minLength":1},{"type":"null"}]}},"additionalProperties":false}},"isDeleted":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"subTypeId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"dealMethod":{"type":"string"},"postalCode":{"type":"string"},"subTypeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"companyName":{"type":"string","minLength":1},"memberPrice":{"type":"number","minimum":0},"seller_info":{"type":"string"},"subRegionId":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"shoutContact":{"type":["string","number"]},"shoutWebsite":{"type":"string"},"shopProductId":{"type":"integer","exclusiveMinimum":0},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"shopPageEnabled":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"bookingPercentOff":{"type":"integer","minimum":0},"deleteEmployeeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"isTypeShopApproved":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"bizCompanyEmployees":{"type":"array","items":{"$ref":"#/properties/employees/items"}},"replaceAllEmployees":{"type":"boolean","default":false},"replaceTypeMappings":{"type":"boolean","default":false},"shoutContactRelation":{"type":"string"}},"additionalProperties":false},"logicalName":"vendor_shop_upsert","displayName":"vendor_shop_upsert","title":"vendor_shop_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_upsert","description":"Vendor-only upsert for a product that belongs under an existing vendor shop/company. Do not use this to create a member shop, shout-out shop, or generic shop page. Validates inputs before write, accepts logical categoryId/subCategoryId, normalizes location/contact formats, and can CRUD attached employees. New rows are always created with type=promote.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"mrp":{"type":"number","minimum":0},"name":{"type":"string","minLength":1},"slug":{"type":"string"},"type":{"type":"string","minLength":1},"unit":{"type":"string"},"isHide":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"maxQty":{"type":"integer","minimum":0},"status":{"type":"integer"},"typeId":{"type":"integer","exclusiveMinimum":0},"charges":{"type":"string"},"latLong":{"anyOf":[{"type":"string","minLength":1},{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"additionalProperties":false}]},"remarks":{"type":"string"},"typeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"delivery":{"type":"string"},"holidays":{"type":"string"},"tabsInfo":{},"vendorId":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"costPrice":{"type":"number","minimum":0},"employees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0},"name":{"type":"string","minLength":1},"image":{"anyOf":[{"type":"string"},{"type":"null"}]},"delete":{"type":"boolean","default":false},"gender":{"anyOf":[{"type":"string","maxLength":3,"minLength":1},{"type":"null"}]}},"additionalProperties":false}},"isDeleted":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"productId":{"type":"integer","exclusiveMinimum":0},"subTypeId":{"type":"integer","exclusiveMinimum":0},"categoryId":{"type":"integer","exclusiveMinimum":0},"dealMethod":{"type":"string"},"isTypeShop":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"postalCode":{"type":"string"},"subTypeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"companyName":{"type":"string","minLength":1},"memberPrice":{"type":"number","minimum":0},"seller_info":{"type":"string"},"subRegionId":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"shoutContact":{"type":["string","number"]},"shoutWebsite":{"type":"string"},"subCategoryId":{"type":"integer","exclusiveMinimum":0},"vendorProductId":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"bookingPercentOff":{"type":"integer","minimum":0},"deleteEmployeeIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"variantCategoryId":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"isTypeShopApproved":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"bizCompanyEmployees":{"type":"array","items":{"$ref":"#/properties/employees/items"}},"replaceAllEmployees":{"type":"boolean","default":false},"replaceTypeMappings":{"type":"boolean","default":false},"vendorShopProductId":{"type":"integer","exclusiveMinimum":0},"shoutContactRelation":{"type":"string"}},"additionalProperties":false},"logicalName":"vendor_product_upsert","displayName":"vendor_product_upsert","title":"vendor_product_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_seller_reviews_get","description":"Get only Google/Carousell/Facebook review fields from memberShopProducts.seller_info for one product.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"productId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"vendor_product_seller_reviews_get","displayName":"vendor_product_seller_reviews_get","title":"vendor_product_seller_reviews_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_seller_reviews_update","description":"Update Google/Carousell/Facebook review fields in memberShopProducts.seller_info for one product.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"productId":{"type":"integer","exclusiveMinimum":0},"fbReviewUrl":{"$ref":"#/properties/googleReviewUrl"},"fbReviewCount":{"$ref":"#/properties/googleReviewUrl"},"fbReviewRating":{"$ref":"#/properties/googleReviewUrl"},"googleReviewUrl":{"type":["string","number","null"]},"googleReviewCount":{"$ref":"#/properties/googleReviewUrl"},"carousellReviewUrl":{"$ref":"#/properties/googleReviewUrl"},"googleReviewRating":{"$ref":"#/properties/googleReviewUrl"},"carousellReviewCount":{"$ref":"#/properties/googleReviewUrl"},"carousellReviewRating":{"$ref":"#/properties/googleReviewUrl"}},"additionalProperties":false},"logicalName":"vendor_product_seller_reviews_update","displayName":"vendor_product_seller_reviews_update","title":"vendor_product_seller_reviews_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_variations_upsert","description":"Create/update/delete vendor product variations in upsert or replace_all mode.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"mode":{"enum":["upsert","replace_all"],"type":"string","default":"upsert"},"productId":{"type":"integer","exclusiveMinimum":0},"variations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","exclusiveMinimum":0},"key":{"type":["string","number"]},"nKey":{"type":"string"},"price":{"type":["string","number"]},"value":{"type":"string"},"priority":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"costPrice":{"type":["string","number"]},"variationName":{"type":"string"},"outOfStockSingle":{"anyOf":[{"type":"boolean"},{"type":"integer"}]},"variantCategoryId":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]}},"additionalProperties":false},"default":[]},"deleteVariationIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}}},"additionalProperties":false},"logicalName":"vendor_product_variations_upsert","displayName":"vendor_product_variations_upsert","title":"vendor_product_variations_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_images_get","description":"Get vendor product images from memberShopProductsImages by productId.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"productId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"vendor_product_images_get","displayName":"vendor_product_images_get","title":"vendor_product_images_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_images_upsert","description":"Append or replace vendor product images. Accessors auto-assign sequentially as image1, image2, image3, ...","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId","images"],"properties":{"mode":{"enum":["append","replace_all"],"type":"string","default":"append"},"images":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"productId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"vendor_product_images_upsert","displayName":"vendor_product_images_upsert","title":"vendor_product_images_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_product_image_by_accessor_upsert","description":"Create/update/delete one vendor product image by exact imageAccessor (image1, image2, ...).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId","imageAccessor"],"properties":{"image":{"type":"string","minLength":1},"delete":{"type":"boolean","default":false},"productId":{"type":"integer","exclusiveMinimum":0},"imageAccessor":{"type":"string","pattern":"^image[1-9]\\d*$"}},"additionalProperties":false},"logicalName":"vendor_product_image_by_accessor_upsert","displayName":"vendor_product_image_by_accessor_upsert","title":"vendor_product_image_by_accessor_upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"voucher_list_by_vendor","description":"List voucher records for one vendor with pagination.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["vendorId"],"properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"minimum":0},"vendorId":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"logicalName":"voucher_list_by_vendor","displayName":"voucher_list_by_vendor","title":"voucher_list_by_vendor","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"voucher_upsert_for_vendor","description":"Create or update a voucher for one vendor.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["vendorId","outletCode"],"properties":{"file":{"type":"string"},"regions":{"type":"string"},"category":{"type":"string","default":"voucher"},"discount":{"type":"number"},"vendorId":{"type":"integer","exclusiveMinimum":0},"productId":{"type":"integer","exclusiveMinimum":0},"outletCode":{"type":"string","minLength":1},"productIds":{"type":"array","items":{"type":"integer","exclusiveMinimum":0}},"discount_type":{"type":"integer"},"minimumSpending":{"type":"integer","minimum":0},"termsAndConditions":{"type":"string"}},"additionalProperties":false},"logicalName":"voucher_upsert_for_vendor","displayName":"voucher_upsert_for_vendor","title":"voucher_upsert_for_vendor","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"voucher_preflight_for_vendor","description":"Resolve vendor and product context from productId before voucher upsert.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["productId"],"properties":{"category":{"type":"string","default":"voucher"},"productId":{"type":"integer","exclusiveMinimum":0},"outletCode":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"voucher_preflight_for_vendor","displayName":"voucher_preflight_for_vendor","title":"voucher_preflight_for_vendor","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"voucher_delete_for_vendor","description":"Delete a vendor voucher and remove its product redeemable links.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["vendorId"],"properties":{"category":{"type":"string","default":"voucher"},"vendorId":{"type":"integer","exclusiveMinimum":0},"voucherId":{"type":"integer","exclusiveMinimum":0},"outletCode":{"type":"string","minLength":1}},"additionalProperties":false},"logicalName":"voucher_delete_for_vendor","displayName":"voucher_delete_for_vendor","title":"voucher_delete_for_vendor","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"vendor_website_check_vouchers","description":"Crawl a vendor website and report voucher/promotion signals from selected paths.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["vendorId","website","pathsToCheck"],"properties":{"website":{"type":"string","format":"uri"},"maxPages":{"type":"integer","default":4,"maximum":10,"minimum":1},"vendorId":{"type":"integer","exclusiveMinimum":0},"timeoutMs":{"type":"integer","default":8000,"maximum":20000,"minimum":1000},"pathsToCheck":{"type":"array","items":{"type":"string"},"minItems":1}},"additionalProperties":false},"logicalName":"vendor_website_check_vouchers","displayName":"vendor_website_check_vouchers","title":"vendor_website_check_vouchers","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Kachiing&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aua2FjaGlpbmcuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Kachiing%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.kachiing.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Kachiing%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.kachiing.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Kachiing&connectorUrl=https%3A%2F%2Fmcp.kachiing.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Kachiing\" --url \"https://mcp.kachiing.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kachiing-mcp-84fbb787b4","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kachiing-mcp-84fbb787b4/tools/{tool}","mcpServerUrl":"https://mcp.kachiing.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kachiing-mcp-84fbb787b4?live=1"}