WEM Price Compare
REMOTE · WEM3.AI · SCANNED AUG 17
Price comparison across partner retailers. Read-only, 90-day history, disclosed affiliate.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 913 tokens (~130/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · wem3.ai
claude mcp add --transport http ai-wem3-wem-price-compare https://wem3.ai/api/mcp
[mcp_servers.ai-wem3-wem-price-compare] url = "https://wem3.ai/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-wem3-wem-price-compare": {
"type": "remote",
"url": "https://wem3.ai/api/mcp",
"enabled": true
}
}
} openclaw mcp add ai-wem3-wem-price-compare --url https://wem3.ai/api/mcp --transport streamable-http
mcp_servers:
ai-wem3-wem-price-compare:
url: "https://wem3.ai/api/mcp" {
"mcpServers": {
"ai-wem3-wem-price-compare": {
"type": "http",
"url": "https://wem3.ai/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 17 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Aug 26 +1
- Stability: unverified → 0.03 ▲ functional
- 14 Aug 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 17 Aug 2026 · Probed https://wem3.ai/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=wem3.ai | CN=YE2,O=Let's Encrypt,C=US | 25 Jun 2026 | 23 Sept 2026 | ECDSA 256 | ECDSA-SHA384 | 5463beb9011361abf90ebd457588499f52d |
| SANs: *.wem3.ai, wem3.ai | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of wem3.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| wem3.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: blob: https:; font-src 'self' data: https:; connect-src 'self' https: wss: ws:; frame-src 'self' https:; worker-src 'self' blob:; media-src 'self' https: data:; manifest-src 'self'; form-action 'self' https:; upgrade-insecure-requests |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), interest-cohort=() |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://wem3.ai/api/mcp | Verified | 200 | |
| http (plaintext) | http://wem3.ai/api/mcp | HTTPS enforced | 301 | https://wem3.ai/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
compare_offers ~159
Exact multi-retailer offers for one product from WEM's own catalogue, cheapest first, with a 90-day price-history low. Identity is resolved by barcode or catalogue slug — no text matching — so every offer IS the product, and the lookup spends no retailer API quota. Use this FIRST when you have a barcode (EAN/UPC/GTIN) or a wem3.ai/pl/{slug} URL; fall back to search_products when the product is not in the catalogue yet.
| Name | Type | Req | Description |
|---|---|---|---|
| gtin | string | – | Product barcode: EAN-13, UPC-A, EAN-8 or GTIN-14. Preferred key. |
| slug | string | – | WEM canonical product slug, as in wem3.ai/pl/{slug}. |
No output schema declared.
No examples provided.
compare_products ~59
Compare 2-5 products side by side. Returns a structured comparison of price, rating, shipping, and key features. Use when the user is deciding between options.
| Name | Type | Req | Description |
|---|---|---|---|
| products | array | yes | List of products to compare (2-5 items) |
No output schema declared.
No examples provided.
find_best_deal ~159
Find the single best product matching constraints. Ranks by value (price vs rating vs shipping). Use when the user wants a recommendation rather than a list. Candidates are filtered to plausible matches for the query first, so a cheap accessory cannot be returned as the cheapest way to buy the product itself; `recommendation` may be null with a reason when nothing matched confidently, and that must be reported as "no confident match" rather than softened into a suggestion. `recommendation.verified` marks an offer whose identity WEM has resolved rather than inferred.
| Name | Type | Req | Description |
|---|---|---|---|
| max_price | number | – | Budget cap (GBP) |
| priorities | array | – | What matters most (in order of importance) |
| query | string | yes | What to search for |
No output schema declared.
No examples provided.
get_categories ~31
Get available product categories and the approximate price range for each. Use to guide the user when their request is vague.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_product ~64
Get full details for a specific product by its provider and ID. Use after search results to get more info before recommending.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | string | yes | Product ID from search results |
| provider | string | yes | Provider name (e.g. "ebay", "awin") |
No output schema declared.
No examples provided.
search_products ~249
Search for products across all connected marketplaces (eBay, Amazon, Awin merchants, etc.) using keywords. Returns a list of matching products with prices, images, and affiliate links. Best for specific keyword searches like "airpods pro" or "nike running shoes". When the query names a product in WEM's own catalogue, a `catalogMatch` block is also returned: its offers are identity-resolved rather than title-matched, so prefer them and cite its prices over anything in `products`. Weak matches are withheld and tallied by reason in `filtered` — report that count rather than implying the search was exhaustive.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category (electronics, fashion, beauty, home, sports, collectibles) |
| limit | number | – | Max results to return (default 10, max 30) |
| max_price | number | – | Maximum price filter (GBP) |
| min_price | number | – | Minimum price filter (GBP) |
| providers | array | – | Limit to specific providers (e.g. ["ebay", "awin"]). Omit for all. |
| query | string | yes | Search keywords |
| sort_by | string | – | Sort order for results |
No output schema declared.
No examples provided.
semantic_search ~127
Search for products using natural language descriptions. Uses AI embeddings for semantic understanding — handles vague requests like "comfortable shoes for standing all day" or "gift for a 10 year old who likes science". Falls back to keyword search when vector data is unavailable.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional category filter |
| description | string | yes | Natural language description of what the user is looking for |
| limit | number | – | Max results (default 10, max 20) |
| max_price | number | – | Maximum price (GBP) |
| min_price | number | – | Minimum price (GBP) |
No output schema declared.
No examples provided.