# `com.techpartprices/catalogue` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/com.techpartprices/catalogue
- JSON: https://anlyon.dev/api/v1/servers/com.techpartprices/catalogue
- Version: 1.0.0 (active)
- Publisher: com.techpartprices (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-31T22:17:41.096Z

Title and description, as the publisher wrote them:

```untrusted-server-text
TechPartPrices
UK PC component prices: search parts, look one up, and read price history.
```

Scanned 2026-10-31T22:18:17.453Z over streamable-http.

**7 tools: 7 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 0 | ask |
| Only reads | read | 7 | allow |

## Exfil surface

No private-data -> untrusted-input -> outbound path in this server alone: no tool is tagged private-data or untrusted-input or outbound.

| Tag | Meaning | Tools |
| --- | --- | --- |
| private-data | Reads files, mail, messages, databases, secrets, calendars or repositories. | none |
| untrusted-input | Brings in text someone else can write: web pages, inbound email, messages, issues and comments. | none |
| outbound | Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL. | none |

## Findings

No check matched anything in these tool definitions.


## Only reads (7)

Looks things up and changes nothing. Claude Code: allow.

### `get_best_value`

- The name "get_best_value" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Rank tracked storage by price per terabyte (unit "tb") or memory by price per gigabyte (unit "gb"), cheapest first. Unit prices are in pence. Each row carries its 90-day low, the number of recorded prices behind it, and an at-low or near-low verdict. The unit is required because the two scales cannot be compared.
```

### `get_price_history`

- The name "get_price_history" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Recorded price points for a product over a trailing window, with minimum, maximum, average and the direction of travel. Use this to answer "is now a good time to buy" and "has this got cheaper".
```

### `get_price_index`

- The name "get_price_index" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Month-by-month price movement for a category of UK components, base 100 at the start of the series. Use to answer whether prices in a category are rising or falling. This describes a category, not an individual product: for one product use get_price_verdict. lastComputedAt says how fresh the answer is.
```

### `get_price_verdict`

- The name "get_price_verdict" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Answer whether a tracked product is cheap right now, by its own recorded history rather than against other products. Returns the window low, high and mean in pence, how far above its low the current price sits, and an at-low or near-low verdict, plus buyUrl for a user who decides to buy. Below ten recorded prices no verdict is given and verdictAvailable is false: do not present the numbers as a judgement in that case. IDs come from search_products.
```

### `get_product`

- The name "get_product" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch one tracked product by its numeric ID: name, brand, current price in pence, stock state and rating. buyUrl is the link to give a user who wants to buy it; never rebuild an Amazon link from the ASIN. IDs come from search_products.
```

### `list_articles`

- The name "list_articles" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Index of published articles on UK component pricing and buying advice, most recent first.
```

### `search_products`

- The name "search_products" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Search tracked Amazon UK listings for CPUs, GPUs, RAM, motherboards and storage. Prices are in pence. Returns up to 10 results with current price, stock state, a product URL and buyUrl. Use this to answer "what does X cost" and "what is the cheapest Y". Give the user buyUrl when they want to buy: never rebuild an Amazon link from the ASIN.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `catalogue`:

```json
{
  "permissions": {
    "allow": [
      "mcp__catalogue__search_products",
      "mcp__catalogue__get_product",
      "mcp__catalogue__get_price_history",
      "mcp__catalogue__list_articles",
      "mcp__catalogue__get_price_verdict",
      "mcp__catalogue__get_best_value",
      "mcp__catalogue__get_price_index"
    ],
    "ask": [],
    "deny": []
  }
}
```

## Remote posture

What an anonymous client saw at the remote endpoint, last 2026-10-31T23:19:02.051Z, unchanged since 2026-10-31T23:19:02.051Z. No credentials were sent and no tool was called. Values are shown as the endpoint returned them. Method: https://anlyon.dev/methodology#remote-posture

| Fact | Observed |
| --- | --- |
| Reachable | `yes` |
| HTTP status of an anonymous initialize | `200` |
| tools/list served without credentials | `yes` |
| Tools that change things, listed without credentials | `0` |
| Protocol version | `2025-06-18` |
| WWW-Authenticate on 401 | `not observed` |
| resource_metadata in WWW-Authenticate | `none` |
| RFC 9728 protected resource metadata | `none` |
| Authorization servers | `none` |
| Legacy HTTP+SSE transport | `no` |
| Dynamic client registration | `not observed` |
| Client ID metadata documents | `not observed` |
