TrustRails MCP Server
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., "@TrustRails MCP ServerFind me a gaming laptop under £1000"
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.
TrustRails MCP Server
Search UK electronics products - compare prices, find deals, and discover products across multiple retailers.
Built for the Model Context Protocol (MCP) - works with Claude Desktop, Claude Code, and other MCP-compatible AI assistants.
Quick Start
No installation needed — just add TrustRails to your Claude config.
Configuration
For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"trustrails": {
"command": "npx",
"args": ["-y", "@trustrails/mcp-server"],
"env": {
"TRUSTRAILS_API_KEY": "mcp-public-2026"
}
}
}
}For Claude Code (~/.config/claude/config.json):
{
"mcpServers": {
"trustrails": {
"command": "npx",
"args": ["-y", "@trustrails/mcp-server"],
"env": {
"TRUSTRAILS_API_KEY": "mcp-public-2026"
}
}
}
}That's it! Restart Claude and start searching.
Related MCP server: shopping-radar
What You Can Do
Natural Language Product Search
Just ask Claude naturally — it will decompose your request into the right query and filters:
"Find me a gaming laptop under £1000"
"I need Sony noise cancelling headphones"
"What HP laptops are available between £500-£700?"
"Show me Anker chargers"Claude will search across multiple UK retailers and show you:
Real-time prices & availability
Direct purchase links
Then call
get_productfor full specs when you need details
Available Tools
search_products
Search 26,000+ UK electronics products. Returns summary data (title, price, availability, category). For full technical specs, use get_product.
Parameters:
query(string) - Refinement terms after brand and category are extracted: model lines, series, variants, technology descriptors, or model numbers (e.g., "neo", "ultra", "oled", "WH-1000XM5"). Omit entirely if brand + category alone describe what's needed. Never put brand names, product family names, or prices here — use filters.min_price(number, optional) - Minimum price in GBPmax_price(number, optional) - Maximum price in GBPbrand(string, optional) - Filter by brand, exact match (e.g., "Sony", "HP", "Apple")category(string, optional) - Filter by category: Laptops, Desktops, Tablets, Phones, TVs, Monitors, Headphones, Speakers, Cameras, Keyboards, Mice, Printers, Networking, Storage, Gaming, Wearables, Drones, Audio, Cables & Chargers.lite(boolean, optional) - Return trimmed product objects (reduces payload by ~80%). Always use for LLM integrations.limit(number, optional) - Maximum products to return (default 50, max 100)sort(string, optional) - Sort order:relevance(default),price_asc(cheapest first),price_desc(most expensive first). Useprice_ascwhen comparing prices.
Returns: Up to 50 products with summary data. With lite: true, returns only essential fields (id, title, brand, price, availability, image_url, purchase_url).
get_product
Get full details for a single product. Returns complete technical specifications including specs.description (full prose spec text with processor, RAM, storage, display, ports, etc.), stock level, delivery time, and all retailer offers with per-retailer pricing. Use after search_products for detailed comparison or recommendations.
Parameters:
product_id(string) - The product ID from search results
Returns: Complete product with full specs (including specs.description), pricing across all retailers, and provenance information
Supported Retailers
Search across 26,000+ electronics products from major UK retailers including AO, with new retailers added regularly.
Example Usage
Budget shopping:
"Find gaming laptops under £800"
→ category='Laptops', query='gaming', max_price=800, sort='price_asc', lite=trueBrand search:
"I need Sony headphones under £200"
→ brand='Sony', category='Headphones', max_price=200, sort='price_asc', lite=trueCategory browsing:
"Show me cheap monitors"
→ category='Monitors', max_price=200, lite=trueDetailed specs:
"Tell me the full specs of this laptop"
→ get_product(product_id) — returns full technical specificationsPrice range:
"Apple products between £500 and £1000"
→ brand='Apple', min_price=500, max_price=1000, lite=trueRate Limits
50 requests per hour per IP address
Rate limit info included in response headers
Limits reset every hour
Environment Variables
TRUSTRAILS_API_KEY- API key (usemcp-public-2026for shared public access)TRUSTRAILS_BASE_URL- API endpoint (optional, defaults tohttps://trustrails.app)
Why TrustRails?
✅ Real-time data - Product feeds updated twice daily
✅ Multiple retailers - Compare prices in one search
✅ Stock information - See what's actually available to buy
✅ Direct purchase links - Click through to buy immediately
✅ Zero setup - Works out of the box with shared public key
✅ UK-focused - Optimized for UK electronics shopping
Troubleshooting
"Command not found" or server not starting
Make sure Node.js is installed and
npxis available:npx --versionTry running manually:
npx -y @trustrails/mcp-serverUsing nvm? Claude Desktop doesn't inherit your shell PATH. Use the full path to node instead:
{ "command": "/Users/YOUR_USERNAME/.nvm/versions/node/vX.X.X/bin/node", "args": ["/Users/YOUR_USERNAME/.nvm/versions/node/vX.X.X/lib/node_modules/@trustrails/mcp-server/dist/index.js"] }First run
npm install -g @trustrails/mcp-server, then find your node path withwhich node.
"Rate limit exceeded"
Wait an hour for limits to reset
Check
X-RateLimit-Resetheader for exact reset time50 requests/hour is plenty for normal usage
"No results found"
Try broader search terms (e.g., "laptop" instead of specific model)
Check spelling of brand names
Try searching without filters first
Development
Local Setup
# Clone the repo
git clone https://github.com/james-webdev/trustrails-mcp-server
cd trustrails-mcp-server
# Install dependencies
npm install
# Run locally
npm run devTesting
# Run the MCP inspector to test tools
npx @modelcontextprotocol/inspector npm run devSupport & Links
Website: trustrails.app
Issues: GitHub Issues
MCP Registry: modelcontextprotocol.io/servers
License
MIT © TrustRails
About MCP
This server implements the Model Context Protocol, a standard for connecting AI assistants to external tools and data sources. Learn more about building MCP servers at modelcontextprotocol.io.
Available Tools
2 toolsget_productA
Get full details for a single product by ID. Returns complete technical specifications including specs.description (full prose spec text with processor, RAM, storage, display, ports etc), pricing, stock level, delivery time, and all retailer offers with per-retailer pricing. Accepts both canonical product IDs and original retailer offer IDs. Use this after search_products to get detailed specs for comparison or recommendations. Always call this when a user needs precise product attributes, compatibility info, side-by-side comparisons, or price comparison across retailers.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The unique product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It reveals input flexibility (accepts both canonical and retailer IDs), return content (technical specs, pricing, offers), and no side effects. Could be slightly improved by noting response structure or limitations, but overall sufficient for a read-only tool.
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?
Concise at three sentences, front-loaded with main purpose. The enumerated return types are helpful but could be tightened. No wasted 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?
Given the tool's simplicity (one parameter, no output schema), the description fully covers purpose, usage, input variants, and output content. No gaps remain for effective tool selection and invocation.
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 schema describes product_id as 'The unique product ID'. The description adds critical detail: 'Accepts both canonical product IDs and original retailer offer IDs', which significantly clarifies acceptable inputs beyond 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 the tool's function: 'Get full details for a single product by ID'. It enumerates the types of data returned (specs, pricing, stock, offers) and distinguishes from sibling search_products by indicating it is used for detailed retrieval after search.
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 provides usage context: 'Use this after search_products to get detailed specs for comparison or recommendations' and 'Always call this when a user needs precise product attributes'. This gives clear guidance on when and why to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsA
Search 26,000+ deduplicated UK electronics products across multiple retailers with price comparison. Returns summary data: title, brand, price, availability, category, purchase link, and offer_count. When offer_count > 1, the product is available from multiple retailers — call get_product to see all offers. Specs are minimal — for full technical specifications, call get_product with the product ID. Covers: Laptops, Desktops, Phones, Tablets, Headphones, Monitors, TVs, Cameras, Keyboards, Mice, Speakers, Gaming, Wearables, Printers, Networking, Storage, Audio, Drones, Cables & Chargers. All prices in GBP. IMPORTANT RULES: 1) Decompose the user's request: extract brand → brand filter, category → category filter, price → price filters. What remains is the query. Example: 'Sony headphones under £200' → brand='Sony', category='Headphones', max_price=200, query omitted. Example: 'MacBook Neo' → brand='Apple', category='Laptops', query='neo'. Example: 'Samsung QLED TV' → brand='Samsung', category='TVs', query='qled'. Example: 'Sony WH-1000XM5' → brand='Sony', category='Headphones', query='WH-1000XM5'. 2) DO NOT put brand names, product family names, full product name strings, or prices in the query — use filters. DO put differentiating identifiers: model lines, series, variants, technology descriptors, and model numbers (e.g. 'neo', 'ultra', 'oled', 'qled', 'WH-1000XM5', 's25 ultra'). Any product family name uniquely associated with a brand (e.g. MacBook→Apple, Galaxy→Samsung, ThinkPad→Lenovo) is already implied by brand+category — never put it in query. BAD: query='macbook neo' → GOOD: brand='Apple', category='Laptops', query='neo'. 3) If brand + category alone fully describe what the user wants, omit the query entirely — fewer query words gives cleaner results. 4) Always set lite=true to reduce payload size. 5) If 0 results, try a shorter/broader query or drop filters. 6) Use get_product for full specs — do not rely on search results for detailed attributes. AI USAGE PROTOCOL: For simple browsing, search with lite=true is sufficient. For spec-based queries (wattage, ports, RAM, screen size, weight, etc.), ALWAYS search first, then call get_product on the top 3-5 results and validate constraints against the full specs before recommending. Do not assume technical specs from titles alone. If specs are missing, state that explicitly. STOCK AVAILABILITY: When a product is availability: out_of_stock, do not recommend it as a purchase. Instead mention it as a notable alternative — especially if it offers a meaningful price advantage — and suggest the user check back. Example: 'This model is £X cheaper at [retailer] but currently out of stock — worth checking back if you're not in a rush.' Never silently omit out-of-stock results; surface them transparently.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Refinement terms after brand and category are extracted. Use for model lines, series names, variants, or model numbers (e.g. 'neo', 'ultra', 'oled', 'qled', 'WH-1000XM5'). DO NOT include brand names, product family names, or prices — use filters. Omit entirely if brand + category fully describe what the user wants. | |
| min_price | No | Minimum price in GBP. Use this instead of putting prices in the query. | |
| max_price | No | Maximum price in GBP. Use this instead of putting prices in the query. | |
| brand | No | Filter by brand name (exact match, case-insensitive). Use this instead of putting brand names in the query. Examples: Apple, Samsung, Sony, HP, Dell, Lenovo, Anker, Bose, LG | |
| category | No | Filter by product category. Use ONLY these exact values: Laptops, Desktops, Tablets, Phones, TVs, Monitors, Headphones, Speakers, Cameras, Keyboards, Mice, Printers, Networking, Storage, Gaming, Wearables, Drones, Audio, Cables & Chargers. NOTE: 'Smartphones' is not valid — use 'Phones'. 'Televisions' is not valid — use 'TVs'. For TVs, use query: 'smart TV' — it returns far more results than 'TV' alone. Avoid query: 'television'. | |
| lite | No | Return trimmed product objects with only essential fields (id, title, brand, price, availability, image_url, purchase_url). Always set to true unless the user specifically needs full product objects. | |
| limit | No | Maximum number of products to return (default 50, max 100) | |
| sort | No | Sort order: 'relevance' (default), 'price_asc' (cheapest first), 'price_desc' (most expensive first). Use 'price_asc' when comparing prices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully compensates by detailing that the tool returns summary data, that offer_count>1 indicates multiple retailers, that specs are minimal, and how out-of-stock items should be surfaced. It also notes all prices are in GBP.
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 well-structured with sections (important rules, AI usage protocol, stock availability) and front-loaded with the main purpose. However, it is somewhat verbose and contains some repetition in the query rules.
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 absence of an output schema, the description adequately explains the return fields (title, brand, price, availability, etc.) and covers all parameters, usage guidelines, edge cases like zero results and out-of-stock items. It is thorough for a search tool.
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?
Even though schema coverage is 100%, the description adds significant value by explaining the decomposition logic for query, brand, and category parameters, listing valid category values, and specifying when to omit the query. It goes beyond the schema 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's main function: 'Search 26,000+ deduplicated UK electronics products across multiple retailers with price comparison.' It lists covered categories and distinguishes itself from sibling tool get_product by noting that this tool provides summary data while get_product offers full specs.
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 explicit guidance on when to use this tool versus get_product, how to decompose user requests into filters and query, when to omit the query, and important rules like setting lite=true. It also addresses zero-result handling and AI usage protocol.
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. Dates show when Glama detected each change.
2 tool updates
v1.0.22- First observed
get_product - First observed
search_products
TDQS
The two tools have clearly distinct purposes: search_products performs broad searches with summary data, while get_product retrieves full details for a single product. There is no overlap, and the descriptions explicitly guide when to use each.
Both tool names follow a consistent verb_noun pattern (search_products, get_product) using snake_case, which is predictable and clear.
With only 2 tools, the server is on the low end for a product search domain. While the tools are essential and well-designed, the small set feels thin compared to typical expectations of at least 3-5 tools for search, details, and possibly categories or comparison.
The server covers core search and detail retrieval workflows. Minor gaps include lack of an explicit category listing or multi-product comparison tool, but the descriptions provide guidance for workarounds (calling get_product on multiple results).
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
Compare products, prices and current offers across UK retailers to find the best deal.
Search products, compare prices and discover deals across 6 European markets with your AI assistant.
AI shopping comparison — search 50M+ products, compare prices, find deals
Shopping search across 100M+ products, with every retailer's offer and live price in one place.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables searching and comparing products across Pakistani e-commerce platforms Daraz, Telemart, and iShopping, filtering by price and ratings.-
- FlicenseNot gradedqualityBmaintenanceEnables Claude to search and analyze product listings from multiple French marketplaces, evaluating price, delivery, and distance to a reference point to find the best value.-

idealo MCP Serverofficial
AlicenseNot gradedqualityFmaintenanceEnables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).15MIT- FlicenseNot gradedqualityBmaintenanceEnables AI agents to search and compare live UK product prices from marketplaces like eBay and Amazon, returning normalised JSON with direct buy links.-
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/james-webdev/trustrails-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server