ksp-mcp
This server lets you search and explore products on KSP (Israel's electronics retailer) and retrieve detailed product data, all via KSP's internal JSON API.
Search products by free-text (Hebrew or English) or by filter facets, with pagination or one-call all-pages mode.
Discover available filter facets (brand, size, resolution, etc.) with live product counts to narrow searches precisely.
Get full product details by ID or URL: price, sale/discount pricing, stock, and size/config variations.
Optionally include specifications, images, branch availability, delivery/pickup options, similar products, or the entire raw API payload.
Download all product images to local temp files and return their file paths for viewing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ksp-mcpSearch for Sony WH-1000XM5 headphones"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ksp-cli
CLI for searching and inspecting products sold by KSP Israel. Search the live catalog, refine results with KSP's current filters, and inspect pricing, availability, specifications, variations, recommendations, and images without an account or API key.
Install
Recommended: Install israel-shopping from the agent plugin marketplace.
Run directly:
npx -y -p git+https://github.com/TiranSpierer/ksp-cli.git ksp-cli --helpksp-cli search "OLED 65"
ksp-cli search "טלוויזיה" --list-filters
ksp-cli search --filter 3158..134 --filter 3158..3387
ksp-cli search --filter 3158..134 --all-pages
ksp-cli search "laptop" --page 2 --detailsSearch results contain KSP's list_price. Use product offer or product info for the exact active sale price.
--list-filters saves the complete live filter tree to <os-temp>/ksp-cli/searches/<hash>/filters.yml and prints a compact group index and path. Filter IDs are contextual: apply a category, list filters again, and then choose refinements.
Single-page searches label KSP's aggregate range as reported_list_price_range; --all-pages computes list_price_range from the unique products fetched and reports incomplete pagination honestly.
ksp-cli product info 403899
ksp-cli product info 403899 --include-images
ksp-cli product offer 403899
ksp-cli product similar 403899product infoprints compact identity, effective price, availability, and generated file paths.product offerprints effective price and availability and saves full commercial details.product similarprints recommendation counts and saves the complete KSP recommendation lists.Product arguments accept either a KSP UIN or full product URL.
product info creates a bundle under <os-temp>/ksp-cli/<uin>/:
product.yml Product identity, description, and variations
offer.yml List/sale/Eilat prices, payments, branch stock, and delivery
specifications.md Structured specifications supplied by KSP
marketing.md KSP/importer presentation with additional product details
raw.json Complete untouched response from KSP's product API
images/ Product images, created with --include-imagesproduct similar additionally creates recommendations.yml in the same directory.
Commands print compact YAML. Product HTML is converted to readable Markdown, and large data is saved to local files so agents can inspect only what they need.
Search/filter counts and ranges retain explicit names such as reported_count and reported_list_price_range when KSP supplies values that the CLI cannot independently verify.
Node.js 20+
No KSP account or API key
Available Tools
4 toolsget_filtersget_filtersARead-only
Discover KSP's filter facets for a search term or category — filter groups (brand, size, resolution, features, energy, …) with each option's id and live product count. Feed chosen option ids to search_products' filters.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Free-text term to discover filters for (e.g. 'טלוויזיה', 'מקרר', 'laptop'). Use `query` or `filters`. | |
| filters | No | Existing facet id(s) to refine within and see remaining options (e.g. ['3158'] for TVs, or ['3158..3388'] for 75" TVs). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by explaining it returns live product counts and that it is a discovery tool. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core function, and the second sentence provides a clear actionable outcome. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential information: what the tool returns and how it integrates with the sibling tool. With no output schema, the description gives a good picture of the output structure. It could be slightly more explicit about the output list, but it is sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for 'query' and 'filters'. The tool description adds minimal new parameter-specific meaning beyond the overall purpose; it mentions 'search term or category' but the schema already explains the alternatives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Discover' and the resource 'KSP's filter facets for a search term or category'. It specifies the output (filter groups with option ids and live product counts) and distinguishes itself from the sibling tool 'search_products' by framing it as a preparatory step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to feed the chosen option ids to 'search_products', indicating when to use this tool (before searching). It does not explicitly state when not to use, but the context of sibling tools makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productget_productARead-only
Get full details for one KSP product by UIN or URL: price, active promo/discount pricing (bms), stock, and variations. Specs, branch stock, images, delivery, and similar items are opt-in flags; include_raw dumps the entire untouched payload.
| Name | Required | Description | Default |
|---|---|---|---|
| uin | Yes | Product UIN (e.g. '407256') or a full ksp.co.il/web/item/<uin> URL. | |
| include_raw | No | Return the entire raw KSP API payload untouched (no field selection or reshaping). When true, all other flags are ignored. | |
| include_specs | No | Include the full specification table (converted to Markdown). | |
| include_images | No | Include product image URLs. | |
| include_similar | No | Include similar and complementary products. | |
| include_branches | No | Include per-store stock availability. | |
| include_delivery | No | Include all delivery/pickup options with prices and ETAs. | |
| include_variations | No | List every variation/config with its UIN + price. Off by default; a summary is always shown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with a read operation. Description adds critical behavior: include_raw dumps entire untouched payload and overrides all flags. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and default data, second enumerates opt-in flags with a concise rule for include_raw. No wasted words, front-loaded with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no output schema, and no nested objects, the description covers default outputs, opt-in flags, and the include_raw override. Does not explain return format or error conditions, but given context, it's largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters have schema descriptions (100% coverage). Description adds value by explaining what each opt-in flag includes (e.g., 'converted to Markdown' for specs, 'with prices and ETAs' for delivery) and notes that variations summary is always shown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Get full details for one KSP product by UIN or URL' and lists the data fields. It differentiates from siblings: get_product is for single product details, while search_products is for search, get_product_images for images only, and get_filters for filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains default returns (price, promo, stock, variations) and opt-in flags. It implicitly guides when to use this tool (single product lookup) vs siblings, but lacks explicit 'use this when' or 'not for' statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_imagesget_product_imagesARead-only
Download all images for a KSP product (by UIN or URL) to the OS temp directory and return their local file paths. Open the paths to view the images.
| Name | Required | Description | Default |
|---|---|---|---|
| uin | Yes | Product UIN (e.g. '402265') or a full ksp.co.il/web/item/<uin> URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, but the description adds crucial behavioral context: the tool writes images to the OS temp directory and returns local file paths. This side effect is transparently disclosed, which goes beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and outcome. Every sentence adds value; no filler. Perfectly concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description sufficiently covers what it does and what it returns. It does not mention error handling or limitations, but for a straightforward download tool it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the 'uin' parameter with 100% coverage, including an example and the option for a URL. The description does not add any additional parameter semantics beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('download all images') and the resource (KSP product by UIN or URL), and it distinguishes from sibling tools which deal with filters, product info, or search. The verb 'download' is specific and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need product images locally) and provides context like saving to temp directory and returning paths. However, it does not explicitly state when not to use it or name alternatives, but sibling differentiation is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productssearch_productsARead-only
Search products on KSP (ksp.co.il), Israel's electronics retailer. Free-text query, or filters (facet ids from get_filters) for precise category filtering. Supports Hebrew and English.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Result page (12 products per page). Ignored when all_pages is true. | |
| query | No | Search term, Hebrew or English (e.g. 'lg oled 65', 'אוזניות'). Provide `query` or `filters`. | |
| filters | No | Facet ids from get_filters (e.g. ['3158..137','3158..3388'] = Samsung 75" TVs). Combined AND across groups, OR within a group. Use instead of/with query. | |
| all_pages | No | Fetch every page in one call (up to 50 pages). Best with filters; output may be large. Ignores page. | |
| include_details | No | Add per-product description, thumbnail URL, and payment info (more tokens). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, so the agent knows it's safe. The description adds behavioral details like language support, 'all_pages' behavior (up to 50 pages), and that include_details adds more tokens. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded: first sentence gives purpose and scope, second explains input parameters, third adds language support. Every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers search behavior, parameter usage, and edge cases (all_pages). It doesn't describe the return format, but for a search tool this is acceptable as the agent can infer from common patterns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds value by explaining the relationship between query and filters, how filters combine (AND across groups, OR within), pagination (12 per page), and the effect of all_pages. This goes beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches products on KSP, an Israeli electronics retailer, and distinguishes it from sibling tools like get_filters, get_product, and get_product_images by focusing on general search functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that free-text query or filters (from get_filters) can be used, and supports Hebrew and English. It doesn't explicitly state when not to use or alternative tools, but the guidance is clear enough for common use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: discovering filter facets, searching products, fetching product details, and downloading images. No overlapping functionality.
All tool names follow a consistent verb_noun pattern using snake_case (get_filters, search_products, get_product, get_product_images), making them predictable.
Four tools is appropriate for a product browsing server, covering search, filtering, details, and images. Could potentially include category listing, but not necessary.
The set covers the main workflows: discovering filters, searching, retrieving full product details, and downloading images. Minor gap: no tool for listing categories or top-level departments.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Public MCP server for discovering open jobs. Search, filter, and get application links.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Related MCP Servers
- MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)3MIT
- AlicenseBqualityDmaintenanceAn MCP server that retrieves product data from the DummyJSON API, supporting filtering by various parameters like ID, title, category, brand, price and rating.116ISC
- FlicenseNot gradedqualityDmaintenanceMCP server for VkusVill grocery store, enabling product search, details retrieval, and cart link creation.3
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TiranSpierer/ksp-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server