Skip to main content
Glama

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

TIP

Recommended: Install israel-shopping from the agent plugin marketplace.

Run directly:

npx -y -p git+https://github.com/TiranSpierer/ksp-cli.git ksp-cli --help

ksp-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 --details

Search 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 403899
  • product info prints compact identity, effective price, availability, and generated file paths.

  • product offer prints effective price and availability and saves full commercial details.

  • product similar prints 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-images

product 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 tools
get_filtersget_filtersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFree-text term to discover filters for (e.g. 'טלוויזיה', 'מקרר', 'laptop'). Use `query` or `filters`.
filtersNoExisting facet id(s) to refine within and see remaining options (e.g. ['3158'] for TVs, or ['3158..3388'] for 75" TVs).

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_productA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uinYesProduct UIN (e.g. '407256') or a full ksp.co.il/web/item/<uin> URL.
include_rawNoReturn the entire raw KSP API payload untouched (no field selection or reshaping). When true, all other flags are ignored.
include_specsNoInclude the full specification table (converted to Markdown).
include_imagesNoInclude product image URLs.
include_similarNoInclude similar and complementary products.
include_branchesNoInclude per-store stock availability.
include_deliveryNoInclude all delivery/pickup options with prices and ETAs.
include_variationsNoList every variation/config with its UIN + price. Off by default; a summary is always shown.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_imagesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uinYesProduct UIN (e.g. '402265') or a full ksp.co.il/web/item/<uin> URL.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_productsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page (12 products per page). Ignored when all_pages is true.
queryNoSearch term, Hebrew or English (e.g. 'lg oled 65', 'אוזניות'). Provide `query` or `filters`.
filtersNoFacet 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_pagesNoFetch every page in one call (up to 50 pages). Best with filters; output may be large. Ignores page.
include_detailsNoAdd per-product description, thumbnail URL, and payment info (more tokens).

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: discovering filter facets, searching products, fetching product details, and downloading images. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (get_filters, search_products, get_product, get_product_images), making them predictable.

Tool Count4/5

Four tools is appropriate for a product browsing server, covering search, filtering, details, and images. Could potentially include category listing, but not necessary.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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