kalicart-global
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"kalicart-global": {
"url": "https://dashboard.kalicart.com/mcp-public"
}
}
}원격 엔드포인트
https://dashboard.kalicart.com/mcp-publicstreamable-httphttps://global.kalicart.com/mcp-publicstreamable-http할 수 있는 일
도구 목록
도구 (5)
🟢global_search(q, leaf, brand, gender, color, ...)
Use this when a user wants to find or compare product candidates across participating WooCommerce merchants. Search with q and/or a canonical category leaf; results contain snapshot price and stock, match evidence, provenance, and merchant Bridge handoff links. Do not use this as final price, variant, stock, checkout, or payment authority; verify the selected offer through its handoff.
입력 스키마
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Free-text product query. Each term must match as a whole word in the native merchant catalog text (name, short description, description) or in the canonical category path, so English category terms reach catalogs written in other languages: q=\"mattress\" returns products under home.bedroom.mattress even when their text is Italian. There is no server-side translation of product text; for language-neutral retrieval by category use leaf and the canonical filters."
},
"leaf": {
"type": "string",
"description": "Canonical category node. Accepts a terminal leaf (e.g. beverages.alcohol.sparkling_prosecco) or any parent node (e.g. jewellery, home.bedroom): a parent matches the node and its whole subtree, so you can widen or narrow the search by moving up or down the tree. Use list_categories to browse the tree."
},
"brand": {
"type": "string",
"description": "Brand facet filter (normalized, e.g. \"nike\")"
},
"gender": {
"type": "string",
"enum": [
"female",
"male",
"unisex"
],
"description": "Canonical gender facet. Filtering is discovery-tolerant: untagged and unisex products can remain candidates, so verify the chosen product. Allowed values: female, male, unisex."
},
"color": {
"type": "string",
"description": "Bridge color family (e.g. \"blue\"). Common aliases are resolved to a family available in the active index. A family match does not guarantee an exact shade; read filter_semantics.color and verify the chosen product via handoff.bridge_product_url."
},
"in_stock": {
"type": "boolean",
"description": "true filters product-level stock in the indexed snapshot. Does not verify a selected variant or a booking slot."
},
"min_price": {
"type": "number",
"minimum": 0,
"description": "Lower bound in major currency units (for example 50 means EUR 50 for EUR offers). Matches overlapping variant price ranges in each offer currency; no FX conversion. Verify the chosen variant."
},
"max_price": {
"type": "number",
"minimum": 0,
"description": "Upper bound in major currency units (for example 1550 means EUR 1,550 for EUR offers). A matching range may include variants above this bound; verify the chosen variant. Per-offer currency, no FX conversion."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"description": "Max offers to return (1-25, default 10). No pagination; raise to get more in one call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"federated": {
"type": "boolean"
},
"scope": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
],
"additionalProperties": true
},
"coverage": {
"type": "object",
"properties": {
"returned": {
"type": "integer",
"minimum": 0
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0
},
"total_known": {
"type": "boolean"
},
"more_results_possible": {
"type": "boolean"
}
},
"required": [
"returned",
"limit",
"total_known",
"more_results_possible"
],
"additionalProperties": true
},
"result_count": {
"type": "integer",
"minimum": 0
},
"applied_filters": {
"type": "object",
"additionalProperties": {}
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"p2209_id": {
"type": "string"
},
"merchant_domain": {
"type": "string"
},
"name": {
"type": "string"
},
"price": {},
"availability_status": {
"type": [
"string",
"null"
]
},
"category_leaf": {
"type": [
"string",
"null"
]
},
"provenance": {},
"handoff": {}
},
"required": [
"p2209_id",
"merchant_domain",
"name"
],
"additionalProperties": true
}
},
"error": {
"type": "string"
},
"guidance_code": {
"type": "string"
}
},
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢lookup_merchant(domain)
Use this when the user already knows a merchant domain and needs to check whether it publishes a KaliCart Bridge catalog, its latest observed access state, or its federation consent. This tool only reads the Global registry and never probes or modifies the merchant. Do not use it to discover products; use global_search instead.
입력 스키마
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 4,
"description": "Merchant domain, e.g. shop.example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"registered": {
"type": "boolean"
},
"domain": {
"type": "string"
},
"bridge_detected": {
"type": "boolean"
},
"bridge_version": {
"type": [
"string",
"null"
]
},
"merchant_discovery_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"consent": {},
"federation_status": {
"type": "string"
},
"bridge_access": {
"type": "string"
},
"observed_at": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
},
"probe": {
"type": "string"
}
},
"required": [
"registered",
"domain"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_product(p2209_id)
Use this after global_search when the selected candidate needs indexed details that are not already on its search card. The p2209_id must come from global_search. This remains a snapshot, not live merchant verification; follow the returned handoff before confirming variant, price, or stock. Skip this call when the search card already answers the question.
입력 스키마
{
"type": "object",
"properties": {
"p2209_id": {
"type": "string",
"minLength": 1,
"description": "KaliCart product ID (e.g. prod_duinshop-it_432395)"
}
},
"required": [
"p2209_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"p2209_id": {
"type": "string"
},
"error": {
"type": "string"
},
"scope": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
],
"additionalProperties": true
},
"name": {
"type": "string"
},
"category": {
"type": [
"string",
"null"
]
},
"merchant_id": {
"type": "string"
},
"storefront_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"product_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"price": {},
"availability": {},
"attributes": {},
"variants": {},
"provenance": {},
"handoff": {},
"updated_at": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
}
},
"required": [
"p2209_id"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_merchants(limit)
Use this to inspect which WooCommerce merchants currently participate in the searchable KaliCart Global catalog and how much catalog coverage each contributes. It returns stable merchant identifiers, domains, storefront URLs, product counts, and sync time. Do not use it to find products; use global_search instead.
입력 스키마
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Max merchants to return (default 20, max 50), ordered by product count descending. No pagination"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"merchants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"merchant_id": {
"type": "string"
},
"merchant_domain": {
"type": [
"string",
"null"
]
},
"storefront_url": {
"type": "string",
"format": "uri"
},
"platform": {
"type": "string"
},
"product_count": {
"type": "integer",
"minimum": 0
},
"last_sync": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "date-time"
}
]
},
{
"type": "null"
}
]
}
},
"required": [
"merchant_id",
"merchant_domain",
"platform",
"product_count",
"last_sync"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": 0
},
"returned_count": {
"type": "integer",
"minimum": 0
},
"truncated": {
"type": "boolean"
}
},
"required": [
"merchants",
"total",
"returned_count",
"truncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_categories(parent)
Use this to discover the canonical category paths currently represented in KaliCart Global before calling global_search with leaf. An optional parent returns that node and its full subtree. This lists category vocabulary and counts; it does not return products.
입력 스키마
{
"type": "object",
"properties": {
"parent": {
"type": "string",
"description": "Optional canonical node to restrict results to that node and its subtree (for example apparel or home.bedroom)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"leaf": {
"type": "string"
},
"product_count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"leaf",
"product_count"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": 0
},
"returned_count": {
"type": "integer",
"minimum": 0
},
"truncated": {
"type": "boolean"
},
"complete_via": {
"type": "string",
"format": "uri"
},
"next_step": {
"type": "string"
},
"filtered_by": {
"type": [
"string",
"null"
]
}
},
"required": [
"categories",
"total",
"returned_count",
"truncated",
"filtered_by"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거