trustrails について
trustrailsは、英国の複数小売店から電子製品を検索するMCPサーバーです。価格、在庫状況、構造化された仕様を比較でき、選んだ製品について小売店ごとの詳細な販売情報も取得できます。
主な機能
- 01英国小売店を横断した電子製品検索
- 02ブランド、カテゴリ、価格、仕様での絞り込み
- 03価格と在庫状況の比較
- 04小売店の販売情報と製品詳細の取得
活用シーン
- 01予算と仕様を指定してノートPCを検索
- 02小売店間でヘッドホンの価格を比較
- 03候補製品の在庫と販売情報を確認
MCP 対応
互換クライアントに製品検索と製品詳細のツールを提供します。設定には環境変数 TRUSTRAILS_API_KEY を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lite | boolean | いいえ | 必須フィールド(id、title、brand、price、currency、availability、image_url、purchase_url、offer_count、attributes(既知の各仕様を {status, value} で表し、sources は含めない)、および制約がある場合は constraint_status)のみを含む、簡略化された商品オブジェクトを返します。常に true に設定してください。attributes は引き続き含まれます。ean、category、provenance、またはすべての sources が不要な場合に限り、false を使用してください。 |
| sort | string | いいえ | 並び順:'relevance'(デフォルト)、'price_asc'(在庫ありを優先し、その後価格の安い順)、'price_desc'(在庫ありを優先し、その後価格の高い順)。 |
| brand | string | いいえ | ブランド名で絞り込みます(完全一致、大文字と小文字を区別しません)。例:Apple、Samsung、Sony、HP、Dell、Lenovo、Anker、Bose、LG |
| limit | number | いいえ | 返す商品の最大数(デフォルトは 50、最大 100) |
| query | string | いいえ | 絞り込み語句のみを指定します——モデルライン、シリーズ、バリエーション、モデル番号(例:'neo'、'ultra'、'oled'、'WH-1000XM5'、's25 ultra')。カテゴリ名は指定しないでください:誤った例 query='tablet'、query='smartwatch'、query='laptop'。代わりにカテゴリフィルターを設定してください。ブランド名も指定しないでください:誤った例 query='Sony'。代わりにブランドフィルターを設定してください。価格も指定しないでください。カテゴリまたはブランドを閲覧する場合は、このパラメーターを完全に省略してください——「タブレットを表示」なら category='Tablets'、query は指定しません。 |
| category | string | いいえ | 商品カテゴリで絞り込みます。次の正確な値のみを使用してください:Laptops、Desktops、Tablets、Phones、TVs、Monitors、Headphones、Speakers、Cameras、Keyboards、Mice、Printers、Networking、Storage、Gaming、Wearables、Drones、Audio、Cables & Chargers。注:'Smartphones' は無効です。'Phones' を使用してください。'Televisions' は無効です。'TVs' を使用してください。 |
| max_price | number | いいえ | GBP での上限料金。 |
| min_price | number | いいえ | 最低価格(GBP)。 |
| constraints | object | いいえ | 製品ごとに attributes に基づいて照合する厳密な仕様要件です。形式は {name: {op: number}} で、op は eq、gte、lte のいずれかです。範囲は {gte, lte} です。すべての演算子で、ストレージ容量は 3% 以内、画面サイズは 0.5 インチ以内で一致とみなします。整数の画面サイズ N は eq と lte では N+1 まで含みます(gte は変更なし)。その他の仕様の照合例:gte 1024 は 1TB ドライブを許容し、eq 22 は 21.5" 画面、eq 13 は 13.6" 画面、lte 15 は 15.6" 画面を許容します。例:{"memory_gb": {"gte": 24}, "storage_gb": {"gte": 1000}, "screen_in": {"eq": 15}}。名前と単位:memory_gb(RAM、GB)、storage_gb(GB、1TB = 1000)、screen_in(インチ)、resolution_p(垂直ピクセル数:4K = 2160、QHD = 1440、Full HD = 1080)、refresh_hz(Hz)、power_w(W)、wifi_gen(Wi-Fi 世代:6、6E = 6.5、7)。クエリ内の仕様は、何の仕様かが明示されている場合('24GB RAM'、'1TB'、'144Hz'、'55"')に限り適用され、画面サイズを除いて「少なくとも」を意味します(画面サイズはそのサイズ)。単独の '24GB' は検索語のままです。明示的な制約が優先されます。単独の '16GB' または '65W' は gte として扱います。ユーザーが正確にその値と指定した場合のみ eq を使用し、画面サイズでは常に eq を使用してください。 |
| constraints.power_w | object | いいえ | |
| constraints.power_w.eq | number | いいえ | |
| constraints.power_w.gte | number | いいえ | |
| constraints.power_w.lte | number | いいえ | |
| constraints.wifi_gen | object | いいえ | |
| constraints.wifi_gen.eq | number | いいえ | |
| constraints.wifi_gen.gte | number | いいえ | |
| constraints.wifi_gen.lte | number | いいえ | |
| constraints.memory_gb | object | いいえ | |
| constraints.memory_gb.eq | number | いいえ | |
| constraints.memory_gb.gte | number | いいえ | |
| constraints.memory_gb.lte | number | いいえ | |
| constraints.screen_in | object | いいえ | |
| constraints.screen_in.eq | number | いいえ | |
| constraints.screen_in.gte | number | いいえ | |
| constraints.screen_in.lte | number | いいえ | |
| constraints.refresh_hz | object | いいえ | |
| constraints.refresh_hz.eq | number | いいえ | |
| constraints.refresh_hz.gte | number | いいえ | |
| constraints.refresh_hz.lte | number | いいえ | |
| constraints.storage_gb | object | いいえ | |
| constraints.storage_gb.eq | number | いいえ | |
| constraints.storage_gb.gte | number | いいえ | |
| constraints.storage_gb.lte | number | いいえ | |
| constraints.resolution_p | object | いいえ | |
| constraints.resolution_p.eq | number | いいえ | |
| constraints.resolution_p.gte | number | いいえ | |
| constraints.resolution_p.lte | number | いいえ |
詳細
TrustRails MCP サーバー
英国の電子機器製品を検索 — 複数の小売店で価格を比較し、お得な商品を見つけ、製品を検索できます。
Model Context Protocol(MCP) 向けに構築されており、Claude Desktop、Claude Code、その他の MCP 対応 AI アシスタントで動作します。
クイックスタート
インストールは不要です。Claude の設定に TrustRails を追加するだけです。
設定
Claude Desktop の場合(macOS の場合は ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"trustrails": {
"command": "npx",
"args": ["-y", "@trustrails/mcp-server"],
"env": {
"TRUSTRAILS_API_KEY": "mcp-public-2026"
}
}
}
}
Claude Code の場合(~/.config/claude/config.json):
{
"mcpServers": {
"trustrails": {
"command": "npx",
"args": ["-y", "@trustrails/mcp-server"],
"env": {
"TRUSTRAILS_API_KEY": "mcp-public-2026"
}
}
}
}
これで完了です!Claude を再起動して検索を始めましょう。
できること
自然言語による製品検索
Claude に自然な言葉で尋ねるだけで、適切なクエリとフィルターに分解します。
"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 は複数の英国の小売店を検索し、次の情報を表示します。
- リアルタイムの価格と在庫状況
- 購入リンク(trustrails.app/go/ はアフィリエイトリンクを経由して小売店にリダイレクトします)
- 判明している構造化仕様(
attributes)すべて。検索結果だけで製品を比較できます - 最終候補の1〜3件について、必要な場合に限り
get_productを呼び出します。検索結果にない小売店の商品説明、または各小売店の販売情報と購入リンクを取得できます(検索結果には最安の在庫あり商品の最良オファーのpurchase_urlのみが含まれます)
利用可能なツール
search_products
7つの小売店にわたる英国の電子機器製品26,000件以上を、価格を比較しながら検索します。価格は GBP で表示されます。ツールの説明では、アシスタントにリクエストをまずフィルターに分けるよう伝えています。ブランド、カテゴリ、価格はそれぞれ専用の引数に指定し、RAM、ストレージ、画面サイズ、解像度、リフレッシュレート、ワット数、Wi-Fi 世代は constraints に指定します。残った内容だけを query に指定します。
パラメーター:
query(文字列、任意)- 絞り込み語のみ:モデルのライン、シリーズ、バリエーション、型番(例:'neo'、'ultra'、'oled'、'WH-1000XM5'、's25 ultra')。カテゴリ名は指定しないでください(不適切な例:query='tablet'、query='smartwatch'、query='laptop'。代わりにカテゴリフィルターを設定します)。ブランド名も指定しないでください(不適切な例:query='Sony'。代わりにブランドフィルターを設定します)。価格も指定しないでください。カテゴリまたはブランドを参照する場合は省略してください。「タブレットを見せて」なら category='Tablets' とし、query は指定しません。query の語は、カテゴリ名を表す語(Networking での 'router')と、商品を検索するときは無視され、順位付けのみに使われる単独の数値や仕様('4070'、'16GB')を除き、商品タイトルに含まれている必要があります。型番は接頭辞と一緒に指定し('4070' ではなく 'RTX 4070')、各タイトルに含まれているか確認してください。gaming、cheap、best など、用途を表す語は含めないでください。min_price(数値、任意)- 最低価格(GBP)。max_price(数値、任意)- 最高価格(GBP)。brand(文字列、任意)- ブランド名で絞り込みます(完全一致、大文字と小文字は区別しません)。例:Apple、Samsung、Sony、HP、Dell、Lenovo、Anker、Bose、LGcategory(文字列、任意)- 商品カテゴリで絞り込みます。次の完全一致する値のみ使用してください:Laptops、Desktops、Tablets、Phones、TVs、Monitors、Headphones、Speakers、Cameras、Keyboards、Mice、Printers、Networking、Storage、Gaming、Wearables、Drones、Audio、Cables & Chargers。'Smartphones' は無効です('Phones' を使用してください)。'Televisions' も無効です('TVs' を使用してください)。ゲーミングヘッドセットは category='Headphones'、query='gaming headset' としてください。Gaming カテゴリには、ゲーム機、コントローラー、アクセサリーのみが含まれます。constraints(オブジェクト、任意)- 商品ごとにattributesと照合する、必須の仕様条件です。形式は{name: {op: number}}で、op にはeq、gte、lteを指定します。範囲は{gte, lte}です。すべての演算子で、ストレージは3%以内、画面サイズは0.5インチ以内の差を許容します。整数の画面サイズ N は、eqとlteでは最大 N+1 までを含みます(gteは変更なし)。その他の仕様は正確に照合されます。例:gte 1024は1TBドライブに一致し、eq 22は21.5インチ画面に、eq 13は13.6インチ画面に、lte 15は15.6インチ画面に一致します。例:{"memory_gb": {"gte": 24}, "storage_gb": {"gte": 1000}, "screen_in": {"eq": 15}}。名前と単位:memory_gb(RAM、GB)、storage_gb(GB、1TB = 1000)、screen_in(インチ)、resolution_p(縦方向のピクセル数:4K = 2160、QHD = 1440、Full HD = 1080)、refresh_hz(Hz)、power_w(W)、wifi_gen(Wi-Fi 世代:6、6E = 6.5、7)。queryに記載した仕様は、それが何を指すのか明記されている場合('24GB RAM'、'1TB'、'144Hz'、'55"')に限り、最低値として扱われます。ただし、画面サイズは指定したサイズを意味します。単独の '24GB' は引き続き検索語として扱われます。明示的な constraints がある場合は、そちらが優先されます。constraints を使う場合は、必ずcategory(判明している場合はブランドも)を設定してください。仕様のみの検索は拒否されます。また、不正なリクエスト(不明な名前や演算子、負の値、gteがlteを上回るなど、条件を満たせる商品がない組み合わせ)も拒否され、エラーには有効な値が一覧表示されます。仕様条件の構造化を参照してください。lite(真偽値、任意)- 必須フィールドのみを含む簡潔な商品オブジェクトを返します(id、title、brand、price、currency、availability、image_url、purchase_url、offer_count、attributes(判明しているすべての仕様を {status, value} として含み、sources は含めない)、および constraints がある場合は constraint_status)。常に true に設定してください。これを true にしても attributes は含まれます。ean、category、provenance、またはすべての sources を一度に取得する場合に限り、false を使用してください。limit(数値、任意)- 返す商品の最大数(デフォルトは50、最大100)sort(文字列、任意)- 並べ替え順:'relevance'(デフォルト)、'price_asc'(在庫ありを先に、その後、価格の安い順)、'price_desc'(在庫ありを先に、その後、価格の高い順)。constraints がある場合、一致する商品が引き続き先に表示されます。 返却値:productsとtotal。各商品のattributesには、判明しているすべての仕様が含まれます(商品にattributesキーがない場合、次の7つの仕様はいずれも不明です。ユーザーがそのうちの1つについて尋ねた場合にのみ、その旨を伝えてください)。confirmedまたはinferredの仕様は値を伝えてください。注意書きが必要なのは、conflicting(販売店間で不一致)または名前がない(不明)場合のみです。制約を指定した場合、各商品には名前ごとにconstraint_statusが含まれます(matched:販売店の商品名に、条件を満たす値が記載されています。unverified:条件を満たすか不明なため、一致したものとして扱ってはいけません)。totalはすべての制約に一致する商品の数、unverified_totalはほかのフィルターを通過した未確認商品の数、excluded_by_constraintsは記載された値が条件を満たさない商品です。candidates_truncated: trueは、選択した並べ替え順で最初の2,000件の候補を確認し、それ以上の候補があることを意味します。ブランドやカテゴリを追加するか、検索条件を絞り込んで再検索してください。availabilityはin_stock、low_stock、out_of_stock、またはunknown(販売店から在庫状況が示されていない)です。purchase_urlとpriceがある場合、商品で最も条件のよいオファー(在庫ありを優先し、次に最安値)に基づきます。offer_countが1を超える場合、最終候補の1~3商品についてget_productを呼び出し、販売店を比較してください。節約額を主張する前に、offers[].title(get_productから取得)を確認してください。同じモデル名が記載されている必要があります。異なる場合は、節約額を主張しないでください。商品をおすすめする前に、商品名がユーザーの求める商品タイプであること(ケーブル、アクセサリー、アダプターではないこと)を確認してください。
get_product
IDを指定して、単一商品の詳細を取得します。構造化された attributes(構造化仕様を参照)、specs.description(販売店独自の説明文。プロセッサー、GPU、ポート、重量、バッテリー、および attributes でカバーされない機能について記載)、価格、在庫状況、配送時間、各販売店の価格を含むすべての販売店オファーを返します(offers[].stock は販売店が数量を提示している場合のみ単位数を示し、それ以外は null です)。正規の商品IDと元の販売店オファーIDの両方を受け付けます。search_products の後、最終候補の1~3商品についてのみ使用し、検索結果ではわからない情報が必要な場合に限ってください。具体的には、説明文にしか記載されていない詳細(記載がない場合は、ユーザーにその詳細は掲載されていないと伝えてください)、または各販売店のオファーと購入リンクすべてです(検索結果には、最良のオファー、つまり在庫がある商品の中で最安値の purchase_url のみが含まれます)。検索結果には、仕様を比較するための attributes がすでに含まれています。offer_count が1の商品は、ユーザーが説明文にしかない詳細を求めていない限り、呼び出しは不要です。
パラメーター:
product_id(文字列)- 検索結果に含まれる一意の商品ID
返却値: 構造化された attributes、specs(販売店の specs.description を含む)、在庫ありを優先し次に安い順に並べた offers、および出典情報を含む完全な商品情報
構造化された仕様
検索結果と get_product は attributes を返します。これは、カタログのインポート時に販売店の商品タイトルから読み取った構造化仕様(RAM、ストレージ、画面サイズ、解像度、リフレッシュレート、電力、Wi-Fi 世代)です。それぞれに status があり、どこにも記載されていない仕様は存在しないものとして扱われます(不明)。attributes キーがない商品では、これら7つの仕様はすべて不明です(ユーザーがそのうちのいずれかについて尋ねた場合にのみ伝えてください)。各呼び出しで返される内容は次のとおりです。
| 呼び出し | 返される内容 |
|---|---|
search_products(lite=true を指定。エージェントは常に指定してください) | id、title、brand、price、currency、availability、image_url、purchase_url、offer_count、既知のすべての属性({status, value}、値が競合する場合は {status, values}。ソース情報なし)、および制約がある場合は constraint_status |
search_products(lite を指定しない場合) | lite のフィールドに加え、ean、category、product_type、provenance、および sources を含むすべての属性 |
get_product | specs.description、寸法、offers、delivery_time を含むすべての情報 |
名称と単位は constraints と同じです。confirmed と inferred の値はそのまま伝えてください。注意書きが必要なのは、conflicting の場合か、名称が見つからない場合だけです。ステータスは次のとおりです。
confirmed:2つ以上の販売店が同じ値を記載しています。inferred:1つの販売店の商品タイトルにその値が記載されています。conflicting:販売店によって記載値が異なります。どれか1つの値を選ぶことはせず、販売店名とともに各値を列挙します。同じ販売店が2つの値のもとに表示されることもあります(offers[].titleを確認してください)。
specs.description は販売店による文章です。別の構成を説明していたり、最大値(「最大32GB」など)を示していたりする場合があるため、属性の値を上書きしたり補完したりすることはありません。attributes に仕様がない場合、その仕様は不明です。
RAM を記載しているのは JoyBuy のみ(12GB)で、ストレージについては2つの販売店の記載が食い違っている Galaxy S26 Ultra の例を示します。
{
"memory_gb": { "status": "inferred", "value": 12,
"sources": [{ "retailer": "JoyBuy", "field": "title" }] },
"storage_gb": { "status": "conflicting", "values": [
{ "value": 256, "sources": [{ "retailer": "Laptops Direct", "field": "title" }] },
{ "value": 512, "sources": [{ "retailer": "JoyBuy", "field": "title" }] } ] }
}
制約付きの検索では、適用された制約、excluded_by_constraints、unverified_total、および各商品の constraint_status が返されます。constraint_status は matched(販売店の商品タイトルに、制約を満たす値が記載されている)または unverified(制約を満たすことが確認できない。決して一致として扱わず、未確認であることをユーザーに伝えてください。attributes[name] を確認してください。conflicting は販売店間で記載が食い違っていることを意味し、値がない場合は不明です)です。記載値が制約を満たさない商品は除外されます。lite の結果には、既知のすべての仕様について status と値が含まれますが、sources は含まれません。そのため、64GB のノートパソコンと16GB のノートパソコンを区別でき、記載の食い違いと不明も見分けられます。
- 許容範囲: すべての演算子で、ストレージは3%以内(1TB = 1000~1024GB)、画面サイズは0.5インチ以内です。販売店はサイズを切り下げて丸めるため、整数の画面サイズ N は、
eqとlteでは N+1 までを含みます(eq 13は13.6インチを受け入れ、lte 15は15.6インチを受け入れます。gteは変更ありません)。メモリを含むその他の仕様は完全一致です。 query内の仕様: 何の仕様か明示されたものだけが対象です(「24GB RAM」、「1TB」、「512GB SSD」、「144Hz」、「55"」)。「24GB」のような単独の表記は検索語として扱われます。メモリ、ストレージ、解像度、リフレッシュレート、電力、Wi-Fi は指定値以上を意味し、画面サイズはそのサイズを意味します。- 仕様のみの場合: カテゴリ、ブランド、検索語を含まない検索は、任意の2,000商品を調べる代わりに拒否されます。要件が曖昧な場合(単独の「16GB」は RAM とストレージのどちらとも解釈できます)は、ユーザーに確認するか、その制約なしで検索してください。
total: 制約がある場合は、すべての制約に一致する商品数です。unverified_totalは、ほかのフィルターを通過した未確認の商品数です(その一部のみがproductsに含まれる場合があります)。制約がない場合、totalはフィルターに一致するすべての商品数です。- 候補の範囲: 制約は、選択した並べ替え順の最初の2,000候補に対して確認されます。それを超える場合、レスポンスには
candidates_truncated: trueが含まれます。brandまたはcategoryを追加するか、より絞り込んだqueryで再検索してから、一致するものがないと結論づけてください。すでに検索範囲を絞り込んでいる場合、結果が不完全なことがあります。
対応小売業者
AOを含む英国の大手小売業者から、26,000点以上の電子機器製品を検索できます。新しい小売業者も定期的に追加されます。
使用例
予算重視のショッピング:
"Find laptops with at least 16GB RAM under £800"
→ category='Laptops', constraints={"memory_gb": {"gte": 16}}, max_price=800, sort='price_asc', lite=true
ブランド検索:
"I need Sony headphones under £200"
→ brand='Sony', category='Headphones', max_price=200, sort='price_asc', lite=true
カテゴリーの閲覧:
"Show me cheap monitors"
→ category='Monitors', max_price=200, lite=true
仕様の条件:
"A 15 inch laptop with at least 24GB RAM and 1TB storage"
→ category='Laptops', constraints={"memory_gb":{"gte":24},"storage_gb":{"gte":1000},"screen_in":{"eq":15}}, lite=true
詳細な仕様:
"Tell me the specs of this laptop"
→ compare specs from search; get_product(product_id) only for description-only details or every offer
価格帯:
"Apple products between £500 and £1000"
→ brand='Apple', min_price=500, max_price=1000, lite=true
レート制限
- IP アドレスごとに1時間あたり50リクエスト
- レート制限の情報はレスポンスヘッダーに含まれます
- 制限は1時間ごとにリセットされます
環境変数
TRUSTRAILS_API_KEY- API キー(共有パブリックアクセスにはmcp-public-2026を使用)TRUSTRAILS_BASE_URL- API エンドポイント(省略可。デフォルトはhttps://trustrails.app)
TrustRails を選ぶ理由
- ✅ リアルタイムデータ - 製品フィードは1日に2回更新されます
- ✅ 複数の小売業者 - 1回の検索で価格を比較できます
- ✅ 在庫情報 - 実際に購入可能な商品を確認できます
- ✅ 購入リンク - 小売業者のサイトに移動して購入できます(アフィリエイトリンク)
- ✅ セットアップ不要 - 共有パブリックキーですぐに利用できます
- ✅ 英国に特化 - 英国での電子機器の購入に最適化されています
トラブルシューティング
「コマンドが見つからない」またはサーバーが起動しない
- Node.js がインストールされ、
npxが利用可能であることを確認してください:npx --version - 手動で実行してみてください:
npx -y @trustrails/mcp-server - nvm を使用していますか? Claude Desktop はシェルの PATH を引き継ぎません。代わりに node のフルパスを使用してください:
まず{ "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"] }npm install -g @trustrails/mcp-serverを実行し、次にwhich nodeで node のパスを確認してください。
「レート制限を超過しました」
- 制限がリセットされるまで1時間お待ちください
- 正確なリセット時刻は
X-RateLimit-Resetヘッダーで確認してください - 通常の利用であれば、1時間あたり50リクエストで十分です
「結果が見つかりません」
- より広い検索語を試してください(例:「特定のモデル」ではなく「ノートパソコン」)
- ブランド名のスペルを確認してください
- まずフィルターを使わずに検索してみてください
開発
ローカルセットアップ
# 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 dev
テスト
# Run the MCP inspector to test tools
npx @modelcontextprotocol/inspector npm run dev
サポートとリンク
- ウェブサイト: trustrails.app
- 問題の報告: GitHub Issues
- NPM: @trustrails/mcp-server
- MCP レジストリ: modelcontextprotocol.io/servers
ライセンス
MIT © TrustRails
MCP について
このサーバーは、AI アシスタントを外部ツールやデータソースに接続するための標準規格である Model Context Protocol を実装しています。modelcontextprotocol.io で MCP サーバーの構築について詳しく学べます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。