@trustrails/mcp-server 1.0.20 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -18
- package/dist/index.js +12 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,21 +11,18 @@ Built for the [Model Context Protocol (MCP)](https://modelcontextprotocol.io) -
|
|
|
11
11
|
|
|
12
12
|
## Quick Start
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
npm install -g @trustrails/mcp-server
|
|
18
|
-
```
|
|
14
|
+
No installation needed — just add TrustRails to your Claude config.
|
|
19
15
|
|
|
20
16
|
### Configuration
|
|
21
17
|
|
|
22
|
-
**For Claude
|
|
18
|
+
**For Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
23
19
|
|
|
24
20
|
```json
|
|
25
21
|
{
|
|
26
22
|
"mcpServers": {
|
|
27
23
|
"trustrails": {
|
|
28
|
-
"command": "
|
|
24
|
+
"command": "npx",
|
|
25
|
+
"args": ["-y", "@trustrails/mcp-server"],
|
|
29
26
|
"env": {
|
|
30
27
|
"TRUSTRAILS_API_KEY": "mcp-public-2026"
|
|
31
28
|
}
|
|
@@ -34,13 +31,14 @@ npm install -g @trustrails/mcp-server
|
|
|
34
31
|
}
|
|
35
32
|
```
|
|
36
33
|
|
|
37
|
-
**For Claude
|
|
34
|
+
**For Claude Code** (`~/.config/claude/config.json`):
|
|
38
35
|
|
|
39
36
|
```json
|
|
40
37
|
{
|
|
41
38
|
"mcpServers": {
|
|
42
39
|
"trustrails": {
|
|
43
|
-
"command": "
|
|
40
|
+
"command": "npx",
|
|
41
|
+
"args": ["-y", "@trustrails/mcp-server"],
|
|
44
42
|
"env": {
|
|
45
43
|
"TRUSTRAILS_API_KEY": "mcp-public-2026"
|
|
46
44
|
}
|
|
@@ -80,7 +78,7 @@ Claude will search across multiple UK retailers and show you:
|
|
|
80
78
|
Search 26,000+ UK electronics products. Returns summary data (title, price, availability, category). For full technical specs, use `get_product`.
|
|
81
79
|
|
|
82
80
|
**Parameters:**
|
|
83
|
-
- `query` (string) -
|
|
81
|
+
- `query` (string) - Refinement terms after brand and category are extracted: model lines, series names, variants, or model numbers (e.g., "neo", "ultra", "oled", "WH-1000XM5"). Omit entirely if brand + category alone describe what's needed. Never put brand names or prices here — use filters.
|
|
84
82
|
- `min_price` (number, optional) - Minimum price in GBP
|
|
85
83
|
- `max_price` (number, optional) - Maximum price in GBP
|
|
86
84
|
- `brand` (string, optional) - Filter by brand, exact match (e.g., "Sony", "HP", "Apple")
|
|
@@ -113,19 +111,19 @@ Search across **26,000+ electronics products** from major UK retailers including
|
|
|
113
111
|
**Budget shopping:**
|
|
114
112
|
```
|
|
115
113
|
"Find gaming laptops under £800"
|
|
116
|
-
→
|
|
114
|
+
→ category='Laptops', query='gaming', max_price=800, sort='price_asc', lite=true
|
|
117
115
|
```
|
|
118
116
|
|
|
119
117
|
**Brand search:**
|
|
120
118
|
```
|
|
121
119
|
"I need Sony headphones under £200"
|
|
122
|
-
→
|
|
120
|
+
→ brand='Sony', category='Headphones', max_price=200, sort='price_asc', lite=true
|
|
123
121
|
```
|
|
124
122
|
|
|
125
123
|
**Category browsing:**
|
|
126
124
|
```
|
|
127
125
|
"Show me cheap monitors"
|
|
128
|
-
→
|
|
126
|
+
→ category='Monitors', max_price=200, lite=true
|
|
129
127
|
```
|
|
130
128
|
|
|
131
129
|
**Detailed specs:**
|
|
@@ -144,7 +142,7 @@ Search across **26,000+ electronics products** from major UK retailers including
|
|
|
144
142
|
|
|
145
143
|
## Rate Limits
|
|
146
144
|
|
|
147
|
-
- **
|
|
145
|
+
- **50 requests per hour** per IP address
|
|
148
146
|
- Rate limit info included in response headers
|
|
149
147
|
- Limits reset every hour
|
|
150
148
|
|
|
@@ -170,14 +168,22 @@ Search across **26,000+ electronics products** from major UK retailers including
|
|
|
170
168
|
|
|
171
169
|
## Troubleshooting
|
|
172
170
|
|
|
173
|
-
**"Command not found
|
|
174
|
-
- Make sure
|
|
175
|
-
-
|
|
171
|
+
**"Command not found" or server not starting**
|
|
172
|
+
- Make sure Node.js is installed and `npx` is available: `npx --version`
|
|
173
|
+
- Try running manually: `npx -y @trustrails/mcp-server`
|
|
174
|
+
- **Using nvm?** Claude Desktop doesn't inherit your shell PATH. Use the full path to node instead:
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"command": "/Users/YOUR_USERNAME/.nvm/versions/node/vX.X.X/bin/node",
|
|
178
|
+
"args": ["/Users/YOUR_USERNAME/.nvm/versions/node/vX.X.X/lib/node_modules/@trustrails/mcp-server/dist/index.js"]
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
First run `npm install -g @trustrails/mcp-server`, then find your node path with `which node`.
|
|
176
182
|
|
|
177
183
|
**"Rate limit exceeded"**
|
|
178
184
|
- Wait an hour for limits to reset
|
|
179
185
|
- Check `X-RateLimit-Reset` header for exact reset time
|
|
180
|
-
-
|
|
186
|
+
- 50 requests/hour is plenty for normal usage
|
|
181
187
|
|
|
182
188
|
**"No results found"**
|
|
183
189
|
- Try broader search terms (e.g., "laptop" instead of specific model)
|
package/dist/index.js
CHANGED
|
@@ -86,9 +86,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
86
86
|
"Wearables, Printers, Networking, Storage, Audio, Drones, Cables & Chargers. " +
|
|
87
87
|
"All prices in GBP. " +
|
|
88
88
|
"IMPORTANT RULES: " +
|
|
89
|
-
"1) Decompose the user's request
|
|
90
|
-
"
|
|
91
|
-
"
|
|
89
|
+
"1) Decompose the user's request: extract brand → brand filter, category → category filter, price → price filters. What remains is the query. " +
|
|
90
|
+
" Example: 'Sony headphones under £200' → brand='Sony', category='Headphones', max_price=200, query omitted. " +
|
|
91
|
+
" Example: 'MacBook Neo' → brand='Apple', category='Laptops', query='neo'. " +
|
|
92
|
+
" Example: 'Samsung QLED TV' → brand='Samsung', category='TVs', query='qled'. " +
|
|
93
|
+
" Example: 'Sony WH-1000XM5' → brand='Sony', category='Headphones', query='WH-1000XM5'. " +
|
|
94
|
+
"2) DO NOT put brand names or prices in the query — use filters. DO put model lines, series names, and variants in the query (e.g. 'neo', 'ultra', 'slim', 'oled', 'qled', model numbers). " +
|
|
95
|
+
"3) If brand + category alone fully describe what the user wants, omit the query entirely — fewer query words gives cleaner results. " +
|
|
92
96
|
"4) Always set lite=true to reduce payload size. " +
|
|
93
97
|
"5) If 0 results, try a shorter/broader query or drop filters. " +
|
|
94
98
|
"6) Use get_product for full specs — do not rely on search results for detailed attributes. " +
|
|
@@ -102,10 +106,9 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
102
106
|
properties: {
|
|
103
107
|
query: {
|
|
104
108
|
type: "string",
|
|
105
|
-
description: "
|
|
106
|
-
"DO NOT include brand names
|
|
107
|
-
"
|
|
108
|
-
"Bad: 'Samsung Galaxy S25 Ultra', 'USB-C charger 65W', 'laptop under 500'.",
|
|
109
|
+
description: "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'). " +
|
|
110
|
+
"DO NOT include brand names or prices — use filters. " +
|
|
111
|
+
"Omit entirely if brand + category fully describe what the user wants.",
|
|
109
112
|
},
|
|
110
113
|
min_price: {
|
|
111
114
|
type: "number",
|
|
@@ -127,7 +130,8 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
127
130
|
"Laptops, Desktops, Tablets, Phones, TVs, Monitors, " +
|
|
128
131
|
"Headphones, Speakers, Cameras, Keyboards, Mice, Printers, Networking, " +
|
|
129
132
|
"Storage, Gaming, Wearables, Drones, Audio, Cables & Chargers. " +
|
|
130
|
-
"NOTE: 'Smartphones' is not valid — use 'Phones'. 'Televisions' is not valid — use 'TVs'."
|
|
133
|
+
"NOTE: 'Smartphones' is not valid — use 'Phones'. 'Televisions' is not valid — use 'TVs'. " +
|
|
134
|
+
"For TVs, use query: 'smart TV' — it returns far more results than 'TV' alone. Avoid query: 'television'.",
|
|
131
135
|
},
|
|
132
136
|
lite: {
|
|
133
137
|
type: "boolean",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|