# proxy-shopping: buy anywhere with crypto through a proxy shopper (oci · ghcr.io/pad01g/proxy-shopping-mcp)

Buy at cash-only or unsupported shops with BTC via a proxy shopper and 2-of-3 escrow, or earn as one

- Trust score: 44/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-08

## Components

- oci · `ghcr.io/pad01g/proxy-shopping-mcp`: 44/100 (this document), [markdown](https://verifymcp.io/servers/pad01g-proxy-shopping/ghcr-io-pad01g-proxy-shopping-mcp.md), [page](https://verifymcp.io/servers/pad01g-proxy-shopping/ghcr-io-pad01g-proxy-shopping-mcp)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/pad01g/proxy-shopping-mcp`
- Version: `0.1.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-08.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3173 tokens (~167/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the proxy-shopping: buy anywhere with crypto through a proxy… MCP server?

proxy-shopping: buy anywhere with crypto through a proxy… runs locally as a container image, launched with docker run --rm -i -e PS_NETWORK -e PS_DATA_DIR -e PS_LAB_URL -e PS_CONFIG_URL ghcr.io/pad01g/proxy-shopping-mcp:0.1.2. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pad01g-proxy-shopping -- docker run --rm -i -e PS_NETWORK -e PS_DATA_DIR -e PS_LAB_URL -e PS_CONFIG_URL ghcr.io/pad01g/proxy-shopping-mcp:0.1.2
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Cursor

```json
{
  "mcpServers": {
    "pad01g-proxy-shopping": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "PS_NETWORK",
        "-e",
        "PS_DATA_DIR",
        "-e",
        "PS_LAB_URL",
        "-e",
        "PS_CONFIG_URL",
        "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"
      ]
    }
  }
}
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### VS Code

```json
{
  "servers": {
    "pad01g-proxy-shopping": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "PS_NETWORK",
        "-e",
        "PS_DATA_DIR",
        "-e",
        "PS_LAB_URL",
        "-e",
        "PS_CONFIG_URL",
        "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"
      ]
    }
  }
}
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Codex

```bash
codex mcp add pad01g-proxy-shopping -- docker run --rm -i -e PS_NETWORK -e PS_DATA_DIR -e PS_LAB_URL -e PS_CONFIG_URL ghcr.io/pad01g/proxy-shopping-mcp:0.1.2
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pad01g-proxy-shopping": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "-e",
        "PS_NETWORK",
        "-e",
        "PS_DATA_DIR",
        "-e",
        "PS_LAB_URL",
        "-e",
        "PS_CONFIG_URL",
        "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"
      ],
      "enabled": true
    }
  }
}
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Hermes

```yaml
mcp_servers:
  pad01g-proxy-shopping:
    command: "docker"
    args: ["run", "--rm", "-i", "-e", "PS_NETWORK", "-e", "PS_DATA_DIR", "-e", "PS_LAB_URL", "-e", "PS_CONFIG_URL", "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"]
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Netclaw

```json
{
  "McpServers": {
    "pad01g-proxy-shopping": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "-e",
        "PS_NETWORK",
        "-e",
        "PS_DATA_DIR",
        "-e",
        "PS_LAB_URL",
        "-e",
        "PS_CONFIG_URL",
        "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"
      ]
    }
  }
}
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Other

```json
{
  "mcpServers": {
    "pad01g-proxy-shopping": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "PS_NETWORK",
        "-e",
        "PS_DATA_DIR",
        "-e",
        "PS_LAB_URL",
        "-e",
        "PS_CONFIG_URL",
        "ghcr.io/pad01g/proxy-shopping-mcp:0.1.2"
      ]
    }
  }
}
```

This image reads PS_NETWORK, PS_DATA_DIR, PS_LAB_URL and PS_CONFIG_URL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-08 (score 44, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 30. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-04 (score 43, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-02 (score 42, +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.

### 2026-09-30 (score 41, +1)

- [functional regression] Schema quality: 106 → 167
- [functional improvement] Tool coverage: 64% → 100%
- [functional improvement] Stability: unverified → 0.03
- [functional] Schema quality: good → excellent
- [functional] Package version: 0.1.0 → 0.1.2
- [functional] Package version: 0.1.0 → 0.1.1

### 2026-09-29 (score 40)

First indexed and scored.

## MCP tools (19)

### `network_info` (~158 tokens)

Network status

Show which proxy-shopping network this server is on (ps-main = public Nostr relays + BTC signet, or the local lab), its relays, trusted coordinators, chains, timelock policy, and how many shopper × escrow combinations are trusted right now (with their regions and operator lists). Call it first in a session: on a new network there may be no shoppers yet, and then find_offers will return nothing. Read-only; re-reads the trust lists from the relays and the registry unless refresh is false. Returns a summary and the details as JSON.

Input parameters:

- `refresh` (boolean): re-read the trust lists from the relays and the registry (default true); false uses the last snapshot and is faster

### `wallet` (~107 tokens)

Wallet and identity

Show this agent's identity (Nostr pubkey), its BTC signet address and balance, and where the network has USDC its EVM address with USDC and ETH balances. Use it before fund_order to check that the wallet can pay the quote, and to get the address to fund (signet faucet; on the lab: lab_faucet). Read-only: queries the chain, never signs. The key is created on first run in the data dir; export_backup shows it.

### `find_offers` (~208 tokens)

Find proxy shoppers for a shop

Step 1 of buying from a cash-only or crypto-unsupported shop: list the trusted proxy shopper × escrow combinations that serve this shop, region and payment method. Each offer has an index, the shopper's fee, delivery days, cash regions and order limit, the escrow's fees and dispute SLA, and which operator list (under which coordinator) vouches for it. Pass the index to request_quote with the same shop_url, region and payment. Read-only; an empty list means nobody serves that shop/region yet (network_info shows what exists).

Input parameters:

- `payment` (string): how you pay: btc-signet (default; the only one on ps-main) or usdc-evm
- `region` (string, required): the shop's region code, prefix-matched: country 'JP', prefecture 'JP-13', Japanese municipality 'JP-13-13104'
- `shop_url` (string, required): the shop's URL, e.g. https://shop.example/

### `request_quote` (~382 tokens)

Request a quote from a proxy shopper

Step 2: create an order with one shopper × escrow combination (offer_index from the last find_offers with the same shop_url, region and payment, or both shopper and escrow pubkeys) and wait up to wait_seconds for the quote. Sends a signed, encrypted order request over Nostr; the delivery address is encrypted for the shopper (the escrow can read it only in a dispute). Nothing is paid. Returns the order id, the price breakdown, and our validation of the quote: rate deviation from our own rate sources, the recomputed 2-of-3 escrow address, the timelocks T1/T2. If no quote arrives in time the order stays open; follow it with get_order. Next: accept_quote or cancel_order.

Input parameters:

- `address` (object, required): delivery address; encrypted end to end for the shopper
- `escrow` (string): escrow's pubkey (64 hex), instead of offer_index; needs shopper too
- `items` (array, required): items to buy at the shop (1–20 lines)
- `offer_index` (integer): index of the offer in the last find_offers result (same shop_url, region, payment)
- `payment` (string): btc-signet (default) or usdc-evm; must match the find_offers call
- `region` (string, required): the shop's region code, prefix-matched: country 'JP', prefecture 'JP-13', Japanese municipality 'JP-13-13104'
- `shop_url` (string, required): the shop's URL, e.g. https://shop.example/
- `shopper` (string): shopper's pubkey (64 hex), instead of offer_index; needs escrow too
- `wait_seconds` (integer): how long to wait for the quote, in seconds (default 60; 0 = do not wait)

### `get_order` (~164 tokens)

Order status

Show one order: status, quote and its validation, funding, purchase, tracking, dispute, ruling, refund offer and settlement, the recent timeline, and next_steps telling which tool to call next. Optionally waits (bounded) until the order reaches one of wait_for, e.g. ["quoted","rejected"] after request_quote. Read-only (local order state, kept up to date by the running session).

Input parameters:

- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders
- `wait_for` (array): return as soon as the status is one of these (e.g. ["quoted","rejected"] or ["completed"])
- `wait_seconds` (integer): upper bound for wait_for, in seconds (default 30)

### `list_orders` (~87 tokens)

List orders

List this agent's orders (from its data dir), newest first, with status, shop, items, lock amount and next steps. Use it to find an order id or to see what needs attention; get_order shows one order in full. Read-only.

Input parameters:

- `limit` (integer): most orders to return (default 20)
- `status` (array): only orders in these statuses

### `accept_quote` (~138 tokens)

Accept a quote

Step 3: accept a quoted order (sends a signed acceptance to the shopper; nothing is paid yet — fund_order pays). Only for status quoted. A quote that failed validation is refused. A quote whose rate deviates strongly (> 10 %) from our sources, or could not be checked, is not accepted until you call again with acknowledge_rate_deviation: true — ask your human first.

Input parameters:

- `acknowledge_rate_deviation` (boolean): true to accept although the quote needs an acknowledgement (strong rate deviation or rate not checkable)
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders

### `fund_order` (~175 tokens)

Pay into the escrow

Step 4, moves money: pay the quoted lock amount into the per-order 2-of-3 escrow (BTC P2WSH address or USDC Safe) plus the escrow upfront fee, from this wallet. Only for status accepted/funding. Without confirm: true it only returns the recipients, amounts and network fee (a preview; call it first). With confirm: true it signs and broadcasts. The funds can then leave only with 2 of 3 signatures, by the shopper alone after T1, or by you alone after T2. Ask your human before confirming.

Input parameters:

- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders

### `confirm_receipt` (~179 tokens)

Confirm receipt and pay the shopper

Step 5, moves money: the items arrived and are right, so sign the escrow payout to the shopper (release); the shopper co-signs and broadcasts it. Irreversible. Without confirm: true it only returns the payout (amount, recipient) and a warning if the shopper has not reported delivery. With confirm: true it signs and waits up to wait_seconds for the payout on chain. If the items did not arrive or are wrong, use open_dispute instead.

Input parameters:

- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders
- `wait_seconds` (integer): how long to wait for the on-chain completion, in seconds (default 20)

### `open_dispute` (~204 tokens)

Open a dispute

Ask the escrow to decide a funded order: items not delivered, wrong item, or the shopper not releasing. Sends the claim with all signed order messages as evidence (copy to the shopper) and the key that lets the escrow decrypt the delivery address. No funds move now; the escrow later rules a split, which you check with review_ruling and execute with countersign_ruling. Without confirm: true it only shows what would be sent.

Input parameters:

- `claim` (string, required): what went wrong
- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders
- `requested_split` (object): the split you ask for, as integers in sats (BTC) or USDC base units (6 decimals)
- `text` (string, required): your explanation for the escrow (facts, dates, tracking)

### `review_ruling` (~93 tokens)

Review the escrow's ruling

Show the escrow's ruling for a disputed order — the split between you, the shopper and the escrow fee, and its reason — and whether the escrow's transaction really pays exactly that split. Read-only. If it matches, countersign_ruling executes it; if not, do not countersign and consider report.

Input parameters:

- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders

### `countersign_ruling` (~117 tokens)

Countersign the ruling

Moves money: add your signature to the escrow's ruling transaction (2 of 3) and broadcast it, settling the dispute. Refused if the transaction does not pay the ruled split. Without confirm: true it returns the same review as review_ruling. Ask your human before confirming.

Input parameters:

- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders

### `accept_refund_offer` (~132 tokens)

Accept the shopper's refund

Moves money: co-sign and broadcast a cooperative refund the shopper offered (e.g. the item was sold out or delivery failed), returning the funds to your wallet. Refused if the offer does not pay you as the refund template requires. Without confirm: true it shows the offer and its check. Errors if there is no offer (get_order shows refund_offer).

Input parameters:

- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders

### `refund_after_timelock` (~141 tokens)

Take the funds back after T2

Moves money, last resort: after the T2 timelock you alone can take the locked funds back to your wallet (e.g. the shopper disappeared). Without confirm: true it shows T2, the current block height or chain time, whether T2 is reached, and the amount. Before T2 the chain rejects it; prefer accept_refund_offer or open_dispute while the shopper responds.

Input parameters:

- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens
- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders

### `cancel_order` (~101 tokens)

Cancel an order before funding

Cancel an order that is not funded yet (requested, quoted or accepted) and tell the shopper (best effort). Refused once funding has started — then use open_dispute, accept_refund_offer or refund_after_timelock. Nothing is paid or refunded.

Input parameters:

- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders
- `reason` (string): reason sent to the shopper (default "cancelled by user")

### `report` (~111 tokens)

Report a shopper or escrow

Report the order's shopper or escrow to the operator that listed them, attaching the order's signed messages as evidence (e.g. a dishonest ruling, a quote that failed validation, no delivery). Sends one signed message; no funds move and the order is not changed otherwise. The operator may remove them from its list.

Input parameters:

- `order_id` (string, required): order id (32 hex characters) from request_quote or list_orders
- `subject` (string, required): whom to report
- `text` (string, required): what happened

### `export_backup` (~102 tokens)

Export the recovery words

Show this agent's 12-word BIP39 mnemonic, which controls the identity and every order's escrow key, with restore instructions. Only with confirm: true — the words then stay in the conversation, and anyone who sees them can take the funds; use only when your human asks for a backup. Local, no network.

Input parameters:

- `confirm` (boolean): true to really do it (sign / send / broadcast); omitted or false = preview only, nothing happens

### `become_shopper` (~179 tokens)

Earn as a proxy shopper

Return a step-by-step plan to earn fees as a proxy shopper (buying at local shops for remote users who pay into the escrow): requirements (always-online host, Docker, the Go node and shopper-bot images, card or cash regions), fees and risks, an honest status of the network, a ps-main node config and compose file, and how to get listed through the registry (then registry_entry). Local, no network, nothing is started.

Input parameters:

- `cash_regions` (array): regions where you can pay cash in person (e.g. JP-13-13104)
- `fee_bps` (integer): your fee in basis points (100 = 1 %)
- `name` (string): your shopper display name
- `regions` (array): regions you serve, as region codes (e.g. JP-13)

### `registry_entry` (~395 tokens)

Registry entry for getting listed

Return the exact JSON file and path to add in a pull request to github.com/pad01g/proxy-shopping-registry, so a shopper, escrow, operator or coordinator gets listed once the maintainer merges it: shoppers/<name>.json {pk, contact, description, regions (cash regions), payments, escrows}; escrows/<name>.json {pk, contact, description, sla_days}; operators/<name>.json {pk, contact, description, regions}; coordinators/<name>.json {pk, contact, description, url?, bundle?}. Uses this data dir's identity pubkey unless pubkey is given (a shopper entry must carry the shopper node's key). Local; opens no pull request itself.

Input parameters:

- `bundle` (string): coordinator: https URL of your signed events.json
- `contact` (string, required): how reviewers and users reach you, e.g. "github:<user>" or "nostr:npub1…"
- `description` (string, required): one or two sentences: what you do, where, how
- `escrows` (array): shopper (required): names of the escrows/<name>.json you work with
- `name` (string, required): file name: a-z, 0-9 and - (other characters are turned into -)
- `payments` (array): shopper: default ["btc-signet"] (the only payment on ps-main)
- `pubkey` (string): 64 hex Nostr public key (psctl keys: nostr_pubkey)
- `regions` (array): shopper: your cash regions; operator: where you list (JP, JP-13, JP-13-13104)
- `role` (string, required): which list to join
- `sla_days` (integer): escrow: most days from a dispute to your ruling (default 14)
- `url` (string): coordinator: https URL of your page

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/pad01g-proxy-shopping/ghcr-io-pad01g-proxy-shopping-mcp#diagnostics

## Score history

- 2026-10-08: 44
- 2026-10-06: 43
- 2026-10-04: 43
- 2026-10-03: 42
- 2026-10-02: 42
- 2026-10-01: 41
- 2026-09-30: 41
- 2026-09-29: 40

## Common questions

### What is the proxy-shopping: buy anywhere with crypto through a proxy… MCP server?

proxy-shopping: buy anywhere with crypto through a proxy… is an MCP server listed in the public MCP registry as io.github.pad01g/proxy-shopping. Buy at cash-only or unsupported shops with BTC via a proxy shopper and 2-of-3 escrow, or earn as one. This page covers its container image (ghcr.io/pad01g/proxy-shopping-mcp).

### Is the proxy-shopping: buy anywhere with crypto through a proxy… MCP server safe to use?

proxy-shopping: buy anywhere with crypto through a proxy… scores 44 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the proxy-shopping: buy anywhere with crypto through a proxy… MCP server expose?

proxy-shopping: buy anywhere with crypto through a proxy… exposes 19 tools: network_info, wallet, find_offers, request_quote, get_order, and 14 more. Their descriptions and schemas cost roughly 3,173 tokens of context every time the server is loaded.

### Is the proxy-shopping: buy anywhere with crypto through a proxy… MCP server still maintained?

proxy-shopping: buy anywhere with crypto through a proxy… is still listed as active in the MCP registry. We last reached this channel on 8 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the proxy-shopping: buy anywhere with crypto through a proxy… MCP server under?

proxy-shopping: buy anywhere with crypto through a proxy… declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- GitHub Container Registry: https://ghcr.io/pad01g/proxy-shopping-mcp
- Repository: https://github.com/pad01g/proxy-shopping-web
- Website: https://pad01g.github.io/proxy-shopping-docs/
- Changelog RSS feed: https://verifymcp.io/servers/pad01g-proxy-shopping/ghcr-io-pad01g-proxy-shopping-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/pad01g-proxy-shopping/ghcr-io-pad01g-proxy-shopping-mcp.json
- HTML version of this page: https://verifymcp.io/servers/pad01g-proxy-shopping/ghcr-io-pad01g-proxy-shopping-mcp
