# Merchgraph

> Anime & game merch catalog: identify listings, release prices, official status, how to buy.

- name: io.github.marleyhereicome-cpu/merchgraph
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.marleyhereicome-cpu%2Fmerchgraph
- tools: https://api.protogrid.dev/v1/servers/io.github.marleyhereicome-cpu%2Fmerchgraph/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "merchgraph": {
      "type": "http",
      "url": "https://mcp.merchgraph.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-1d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,579 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 1 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 2,579 tokens to load them all
- tool set hash: b1c4579b820df3f8ffd167aca8163ab9
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.marleyhereicome-cpu/merchgraph.svg)](https://protogrid.dev/servers/io.github.marleyhereicome-cpu/merchgraph)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.merchgraph.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)
- https://kh-merch-graph.fandex.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `discover`: Browse the merchandise catalog (Kingdom Hearts, Demon Slayer and One Piece) by series, character, budget and purpose. Use it to answer "what merch exists for X?" or "gift ideas under ¥5,000". Example: {ip: "kingdom-hearts", character: "Sora", budget_jpy: 5000, purpose: "display"}. Omit ip to search every series. Returns items[] (sku_id, name_en/name_ja, official, original price msrp_jpy plus price_local/currency, price_basis, price_note_en for per-draw prices, region, availability_hint, typical_channels, source_url, page_url = the item's page on merchgraph.app) and total_matches. For a series that is not covered, items is empty and supported_series lists the covered ones. If a character has no solo merch (e.g. Xigbar), the result also has suggested_character_group and suggested_items for their group (e.g. Organization XIII). Lists catalog entries only; it does not mean anything is for sale right now. Use explain_product with a sku_id for full details.
- `estimate_landed_cost`: Estimate the total cost of buying an item in Japan and having it forwarded abroad. Example: {price_jpy: 4500, sku_id: "ichiban-kuji-kh-2018-a", dest_country: "US"}. Returns routes[] (forwarding service × shipping method, with fees and total_jpy, cheapest first) and cheapest. Rough figures only: fee and shipping tables currently cover US, GB, DE and FR (other countries return no routes), come from third-party comparison guides (mid-2026) and exclude duties. Not a quote; we are not affiliated with any forwarding service.
- `explain_product`: Get the full record for one catalog item (Kingdom Hearts, Demon Slayer and One Piece). Pass a sku_id from discover/resolve_listing (e.g. {sku_id: "ichiban-kuji-kh-2018-a"}), or a free-text query such as {query: "Sora Bring Arts Halloween Town"} to get the best match. Returns names (en/ja), product line (maker, line type, release date), characters, original price (msrp_jpy, price_local, currency, price_basis), acquisition_type (retail, kuji, prize, …), availability (hint + confidence), typical_channels, shipping (whether it is only sold at shops that ship within Japan, so a shipping-forwarding service is needed from abroad; costs are not calculated; for Mercari/Suruga-ya items a note that Mercari's global app may allow direct purchase in some countries), size/weight, re-release dates, official (licensed or fan-made), verified (checked against the source), source_url (primary source) and page_url (the item's page on merchgraph.app; cite both).
- `report_correction`: Report a mistake or missing item in the catalog (reviewed by hand before anything changes). Example: {sku_id: "ichiban-kuji-kh-2018-a", field: "msrp_jpy", proposed_value: "750", source_url: "https://…"}. Please include a primary source (maker, official shop or reliable press) when you can. Returns {accepted, correction_id}.
- `resolve_listing`: Identify a Kingdom Hearts, Demon Slayer and One Piece item from a marketplace listing (Mercari, Yahoo! Auctions, Suruga-ya, Mandarake, eBay…). Paste the listing title as-is (Japanese or English), e.g. {title: "一番くじ キングダムハーツ A賞 ソラ フィギュア 箱なし", price_jpy: 4500}. Returns candidates[] (sku_id, name_en, confidence 0-1, why, source_url, page_url = the item's page on merchgraph.app; several when the title is ambiguous), weak_matches[] when unsure, conditions[] (Japanese condition words such as 未使用/箱なし explained), flags[] (bootleg caution notes, not a verdict), price (original price and listing-to-original ratio when price_jpy is given), shipping (whether a shipping-forwarding service is needed from abroad; set platform for a precise answer; for Mercari/Suruga-ya a note that Mercari's global app may allow direct purchase in some countries), acquisition notes and next_checks_en (what to ask the seller). Listing text is not stored. For many listings at once use resolve_listings_batch.
- `resolve_listings_batch`: Run resolve_listing on up to 5 listings in one call, e.g. when comparing search results from a marketplace. Example: {listings: [{title: "…", price_jpy: 3000}, {title: "…"}]}. Returns an array in the same order; each element has the same shape as a resolve_listing result (or {error} for that one listing only). For more than 5, split into several calls. For a single listing use resolve_listing.
