rangeview-mcp
Provides read-only access to the Rangeview Sports product catalog via the WooCommerce Store API. Enables searching products with filters (category, caliber, brand, price, stock, sale), retrieving full product details, listing categories and filter attributes, and bulk availability checks. Optimized to minimize token usage and handle catalog quirks like test products and price-on-request items.
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., "@rangeview-mcpshow me 6.5 Creedmoor rifles under $2000"
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.
rangeview-mcp
MCP server for read-only access to the Rangeview Sports product catalog — ~5,600 products across firearms, ammunition, optics, reloading and accessories.
Backed by the store's public WooCommerce Store API. No credentials required. Read-only by design: nothing in this server can add to a cart, place an order, or write anything.
Install
git clone https://github.com/IamMichael23/rangeview-mcp.git
cd rangeview-mcp
npm install && npm run buildRelated MCP server: ikea-mcp
Use it with Codex
Add to ~/.codex/config.toml:
[mcp_servers.rangeview]
command = "node"
args = ["/absolute/path/to/rangeview-mcp/dist/index.js"]Use it with Claude Code
claude mcp add rangeview -- node /absolute/path/to/rangeview-mcp/dist/index.jsOr commit a .mcp.json in your project to share it with collaborators:
{
"mcpServers": {
"rangeview": {
"command": "node",
"args": ["/absolute/path/to/rangeview-mcp/dist/index.js"]
}
}
}Tools
Tool | Purpose |
| Free-text + category, caliber, brand, price, stock and sale filters |
| Full detail for one product by id, slug, or SKU |
| Walk the 376-category tree |
| Discover the 83 filterable attributes and their valid values |
| Bulk price/stock lookup for up to 20 items |
"What bolt-action rifles in 6.5 Creedmoor do they have in stock under $2000?"
"Is SKU 20260728001 still available?"
"What calibers do they carry the most of?"Two problems this server exists to solve
Anything that just proxies the Store API straight through will get both of these wrong.
1. A raw product is ~1,300 tokens, and 81% of it is dead weight
Measured against a live product:
Field | Share of payload | Needed in a search result? |
| 44.1% | No — detail view only |
| 15.8% | No — one URL at most |
| 7.4% | Never |
| 6.3% | Never — this server is read-only |
| 2.6% | No — raw cents is enough |
| 5.1% | Never |
So results come back in two shapes: a compact projection for search (~340 bytes / ~85 tokens) and a full shape only from get_product, with the description HTML-stripped and truncated. That is a ~15x reduction, and it is the difference between 50 results fitting in context and blowing it out. Every response also carries total_matches, page and total_pages so a model paginates deliberately instead of asking for everything.
2. Attribute filters take term IDs, and this catalog's terms are dirty
The Store API filters on term_id, never on names. And one cartridge is spelled many ways:
.223 | .223 Rem | 223 Rem | 223 Remington | .223 Rem/5.56 NATO | 5.56×45mm NATOInch marks arrive as two different entities for the same value — 6.5 Creedmoor/20” and 6.5 Creedmoor/20″.
Picking the single best-matching term returns 126 products for .223. ORing the whole family returns 138. So resolution deliberately fans out — you pass caliber: "223" and the server expands it to every term in the family and joins the IDs, which the Store API treats as OR. The response reports the expansion in notes.
The matching rule that makes this safe is a domain distinction: in cartridge naming a slash means "chambers both" (.223 Rem/5.56 NATO) while a hyphen means "wildcat built on that parent case" — a different cartridge that will not chamber. So 6mm-223, .17-223 and 7mm-223 Ingram are correctly excluded from a .223 search even though all three contain the string "223".
Catalog hygiene
Two quirks of the live store are handled by default, because both produce confidently wrong answers otherwise:
15 internal
Shipping test product #Nrows are live at $0.01. Without filtering, "what's the cheapest item?" returns a QA artifact. They are hidden by default; passinclude_test_products: trueto see them. (The cheapest genuine item is a $0.49 pack of earplugs.)$0.00means "call for price", not free. Special orders such as a Beretta 693 shotgun list at zero. These are reported asprice_on_request: truewith anullprice, so a model never announces a $2,775 shotgun is free.
Also worth knowing: only ~34% of the catalog (1,923 of 5,602) is in stock. Pass in_stock_only: true for buyable items.
Configuration
All optional:
Variable | Default | Purpose |
|
| Point at another WooCommerce store |
|
| Per-request timeout |
|
| Retries on 429/5xx with backoff |
|
| Category/attribute cache lifetime |
|
| Description truncation in |
Tests
npm test # all 35
npm run test:unit # 22, offline
npm run test:integration # 13, hits the live APISet RANGEVIEW_SKIP_INTEGRATION=1 to skip the network tests.
Notes
This reads a public, unauthenticated endpoint that the store already serves to every browser, and it is rate-limit-friendly (single-page queries, cached taxonomy, backoff on 429). It is not affiliated with or endorsed by Rangeview Sports. Product data, availability and pricing belong to them and change without notice — confirm anything that matters on the site itself.
MIT licensed.
Available Tools
5 toolscheck_availabilityCheck price and stockA
Bulk price/stock lookup for up to 20 products by id, SKU, or name. Use when tracking specific items rather than browsing.
| Name | Required | Description | Default |
|---|---|---|---|
| identifiers | Yes | Product ids, SKUs, or names (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a read operation (lookup) and limits to 20 items, but does not disclose error handling, response format, or authentication requirements. This is adequate for a simple lookup but lacks depth.
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 with no extraneous words. It efficiently conveys the function and usage guidance, earning its place 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?
No output schema exists, so the description omits return value details. For a bulk lookup, mentioning what the response contains (e.g., mapping of identifiers to price/stock) would improve completeness. Still, the description is largely sufficient for simple usage.
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?
Schema coverage is 100%, and the parameter description is clear. The tool description adds no additional semantic information beyond what is already in the schema, 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 specifies a clear verb ('lookup') and resource ('price/stock for up to 20 products'), with explicit identifiers (id, SKU, or name). It distinguishes from siblings like search_products and get_product by focusing on bulk lookup of specific items.
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 includes guidance 'Use when tracking specific items rather than browsing', providing clear context on when to use this tool. It indirectly contrasts with browsing tools, but does not explicitly mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productGet product detailA
Full detail for one product by id, slug, or SKU: description, attributes (caliber, barrel length, action…), brand, stock, rating and image.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Numeric product id | |
| sku | No | Store SKU | |
| slug | No | URL slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the return fields but does not mention behavior on missing products, authorization, or side effects. For a read-only tool, this is adequate but could be improved.
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?
Single sentence that is front-loaded with the main purpose, followed by a list of return fields. 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?
With no output schema, the description lists the returned information (description, attributes, brand, stock, rating, image). It lacks mention of error handling or that only one identifier should be provided, but covers the essentials.
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?
Schema coverage is 100%, but the description adds value by explaining that id, slug, or SKU are alternative identifiers for the product, which is not explicit in the schema.
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 it provides full detail for a product by id, slug, or SKU, listing specific fields. It distinguishes from sibling tools like search_products which return lists.
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?
It specifies how to identify the product (by id, slug, or SKU), implying the agent should use exactly one. While it doesn't explicitly state when not to use this tool, the context of sibling tools makes it clear this is for single product detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesBrowse categoriesA
Browse the 376-category tree. No arguments lists top-level categories (Firearms, Ammo, Optics…); pass parent to descend or search to find one anywhere.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max categories to return (default 40) | |
| parent | No | Parent category name, slug, or id | |
| search | No | Find categories by name fragment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the number of categories (376), tree structure, and argument effects. Missing details like read-only nature, auth needs, or pagination, but covers core behavior adequately.
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 concise sentences. First sentence sets scope (376-category tree), second explains argument usage. No redundancy, front-loaded with key info. Every word earns its place.
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?
No output schema exists, but description doesn't explain return format. However, for a category browser, the return is likely intuitive. Given the tool's simplicity and good annotations coverage (though absent), it is complete enough for typical use.
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?
Schema coverage is 100%, so baseline is 3. The description adds value beyond schema by explaining parent 'descends' and search 'finds one anywhere', and mentions default limit of 40 (schema also says default 40). This context aids agent in understanding parameter purpose.
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 browses a category tree and specifies behavior with no arguments (top-level) vs parent or search arguments. It distinguishes from sibling tools like search_products which target products, not categories.
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 how to use the tool: no arguments for top-level, parent to descend, search to find. It implicitly covers when to use it (for categories) but lacks explicit exclusions or alternatives. However, sibling tools provide enough context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filter_valuesList filter valuesA
Discover filterable attributes and their valid values. No arguments lists all 83 attributes (Caliber, Action, Barrel Length…); pass attribute to list its values with product counts. Use this to ground a filter before searching.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max values to return (default 40) | |
| search | No | Filter values by name fragment | |
| attribute | No | Attribute name, e.g. 'Caliber' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the output includes 'product counts' when passing an attribute, which adds behavioral detail beyond a simple list. However, it doesn't mention rate limits, authentication requirements, or error behavior.
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 long, front-loading the purpose and then detailing behavior. Every sentence earns its place with no fluff.
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 3 optional parameters and no output schema, the description adequately explains both modes of operation and mentions product counts in the output. It doesn't cover pagination or sorting, but given the tool's discovery nature, it is reasonably 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?
Schema coverage is 100%, with each parameter described. The description adds value by explaining the dual-mode behavior (no args vs. with attribute) and the inclusion of product counts, which is not evident from the schema alone. The enumeration of example attributes ('Caliber, Action, Barrel Length…') provides context.
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 'Discover filterable attributes and their valid values', specifying both the verb (discover) and resource (filterable attributes/values). It distinguishes itself from sibling tools like search_products and get_product by focusing on the filtering infrastructure.
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 provides clear usage context: 'Use this to ground a filter before searching'. It explains the behavior with no arguments (list all attributes) and with an attribute argument (list values with product counts). It doesn't explicitly state when not to use it, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch productsA
Search the Rangeview Sports catalog (~5,600 products). Combine free-text with category, caliber, brand, price range, stock and sale filters. Caliber and brand accept everyday spellings ('223', '6.5 Creedmoor') and are expanded to every matching catalog term. Returns compact records; call get_product for full detail. Note only ~34% of the catalog is in stock — pass in_stock_only for buyable items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based | |
| sort | No | Default: relevance with a query, popularity without | |
| brand | No | Brand name, e.g. 'Tikka', 'Sig Sauer' | |
| limit | No | Results per page (1-50, default 10) | |
| query | No | Free-text search, e.g. 'Tikka T3x' or 'red dot' | |
| caliber | No | Caliber, e.g. '223', '6.5 Creedmoor', '12 gauge' | |
| category | No | Category name, slug, or id. Use list_categories to browse. | |
| max_price | No | Maximum price in CAD dollars | |
| min_price | No | Minimum price in CAD dollars | |
| attributes | No | Other attribute filters, e.g. {"Action":"Bolt Action"}. See list_filter_values. | |
| on_sale_only | No | Only items on sale | |
| in_stock_only | No | Only currently in-stock items | |
| include_test_products | No | Include internal $0.01 test rows, hidden by default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: spelling expansion for caliber and brand, compact record return, stock percentage, and hidden test products. This provides full transparency beyond what the schema offers.
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?
Four sentences, no wasted words, front-loaded purpose, logical flow from main function to details to a practical note about stock. Ideal conciseness.
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 13 parameters, no output schema, and nested objects, the description covers scope, filtering capability, special behaviors, stock context, and directs to sibling tools for more detail. Everything an agent needs to know is present.
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?
Schema coverage is 100%, but description adds value by explaining that caliber and brand accept everyday spellings and are expanded to matching catalog terms, which is not in the schema. Baseline 3, extra context raises to 4.
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 it searches the Rangeview Sports catalog (~5,600 products), combines free-text with multiple filters, and distinguishes from siblings by mentioning get_product for full detail and list_categories for browsing categories.
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?
Explicitly tells when to use this tool vs alternatives: 'Returns compact records; call get_product for full detail' and suggests using in_stock_only for buyable items due to low stock percentage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
check_availability - First observed
get_product - First observed
list_categories - First observed
list_filter_values - First observed
search_products
TDQS
Scored across 5 tools
Each tool targets a distinct function: searching, getting details, browsing categories, discovering filter values, and bulk checking availability. No overlap exists, and the descriptions clearly differentiate their use cases.
All tool names follow a consistent verb_noun pattern in snake_case (search_products, get_product, list_categories, list_filter_values, check_availability). The verbs are descriptive and the nouns clearly indicate the resource.
With 5 tools, the server covers the essential operations for a product catalog (search, detail, category navigation, filter discovery, stock check) without being overly sparse or excessive. Each tool serves a clear purpose.
The tool set covers the full workflow for browsing and evaluating products: exploring categories and filters, searching with filters, getting full details, and checking availability. No obvious gaps exist for a read-only catalog.
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
Remote MCP server for product discovery catalog and retrieving product details.
Read-only MCP server for searching Japan government procurement bid information from the KKJ portal.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Search MCP servers, MCP clients and AI agents, and retrieve listing details. Free, read-only access.
21
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceMCP server for looking up product information by UPC, EAN, GTIN barcodes and PLU produce codes.-
- AlicenseAqualityCmaintenanceRead-only MCP server for IKEA product search and in-store stock lookup.9101MIT
- FlicenseNot gradedqualityCmaintenanceConsumer-side MCP server for Webless storefront operations, enabling catalog browsing, product search, and order lookup via tools.-
- AlicenseNot gradedqualityFmaintenanceMCP server for the BuyWhere product catalog. Lets Claude Desktop, Cursor, Windsurf, and other MCP-compatible agents search and retrieve products without writing any HTTP code.71MIT