Skip to main content
Glama
Japan Used Camera Market MCP Server

Japan Used Camera Market MCP Server

by Enu27

Japan Used Market — MCP server (cameras, watches, guitars, model trains)

CI npm

An MCP server that lets Claude and other MCP clients search, price and watch Japan's used camera, watch, musical-instrument and model-train shops. Every tool takes a market: "camera" (default), "watch", "instrument" or "model-train".

Market

Shop (sources id)

Coverage

Grades, best → worst

camera

Fujiya Camera, Nakano (fujiya)

full used stock, ~3,500

NEW > A > AB+ > AB > AB- > B > ASIS > PARTS

Sanpou Camera, Jiyugaoka (sanpou)

full used stock, ~1,300

Naniwa / Lemon-sha / Takachiho (naniwa)

new arrivals only, ~200–300

Hard Off Off Mall (hardoff)

cameras and lenses on sale, ~16,000

watch

WATCHNIAN (watchnian)

full used stock, ~3,900; box / warranty card

NEW > UNUSED > SA > A > AB > B > C > JUNK, plus ANTIQUE

GINZA RASIN (rasin)

used luxury watches of 21 brands, ~4,000; not graded

Jackroad (jackroad)

new arrivals only, ~800

Hard Off Off Mall (offmall)

wristwatches on sale, ~24,000

instrument

Shimokura Gakki (shimokura)

full used stock, ~1,400 guitars, basses, wind instruments, effects; not graded

Reverb scale: BRAND_NEW > MINT > EXCELLENT > VERY_GOOD > GOOD > FAIR > POOR > NON_FUNCTIONING

J-Guitar (jguitar)

marketplace listing shops across Japan, ~11,000 used; one 9-step scale; listing shop in store

Ishibashi Music (ishibashi)

full used stock, ~8,500

Shimamura Music (shimamura)

full used stock, ~5,500; not graded

Ikebe Music (ikebe)

used and vintage, ~1,400; not graded

Hard Off Off Mall (offmall)

guitars, basses, woodwinds, brass on sale, ~13,000

model-train

Hobbyland Pochi (pochi)

full used stock, ~12,000 N / HO trains; maker code + JAN

NEW > MINT > EXCELLENT > VERY_GOOD > GOOD > FAIR > JUNK, plus CUSTOM

Hard Off Off Mall (offmall)

model trains on sale, ~9,600; motor + case

Grades are normalized across shops, and every shop's own label is kept as well. Prices come in JPY and USD. Watches also carry the reference number (e.g. SBGA211, 16233). Instruments carry the model code (ST57-70TX, JB62-58), country of manufacture (madeIn; Fender is split into Fender Japan / USA / Mexico), production year / era, case and the Reverb condition name. Model trains carry the maker's product code (KATO 10-1332, TOMIX 98313, MicroAce A-6590), scale (N / HO / Z), set type (set / add-on / single), whether a powered car is included, case / manual / sleeve and the lot year.

It runs the Japan Used Camera Market and Japan Used Watch Market, Japan Used Guitar & Instrument Market and Japan Used Model Train Market Actors on Apify with your own Apify token, so runs are billed to your Apify account. That is pay per result, and the free plan's monthly credit covers light use.

Renamed from @keiya-dev/japan-used-camera-mcp. The old package still works (it now just starts this one), and calls without market behave exactly as in 0.2.0. Switch the package name in your config when convenient.

Install

You need Node.js 20+ and an Apify API token: Apify Console → Settings → API & Integrations.

Claude Desktop

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "japan-used-market": {
      "command": "npx",
      "args": ["-y", "@keiya-dev/japan-used-market-mcp"],
      "env": { "APIFY_TOKEN": "apify_api_..." }
    }
  }
}

Restart Claude Desktop. The five tools appear under the 🔨 icon.

Claude Code

claude mcp add japan-used-market -e APIFY_TOKEN=apify_api_... -- npx -y @keiya-dev/japan-used-market-mcp

Cursor / other stdio clients

Command npx, args ["-y", "@keiya-dev/japan-used-market-mcp"], env APIFY_TOKEN.

Streamable HTTP

APIFY_TOKEN=apify_api_... npx -y @keiya-dev/japan-used-market-mcp --http --port 3000
  • Endpoint http://localhost:3000/mcp; health check /health.

  • Each request may send its own token as Authorization: Bearer <APIFY_TOKEN>; otherwise the server's APIFY_TOKEN is used.

  • The server is stateless (POST only, JSON responses).

Related MCP server: ec-mcp

Tools

Tool

What it does

Typical time

list_markets

The markets, their shop ids, grades, price-history coverage and example keywords. No Apify run.

instant

search_listings

Current listings matching keywords / brands / grades / minPriceJpy / maxPriceJpy from the selected sources. Returns shop, title, brand, model key, normalized + raw grade, JPY, USD, stock flag and URL; watches add ref, gender and accessories (e.g. box + warranty card; WATCHNIAN, GINZA RASIN and Jackroad); instruments add ref, type, madeIn, year, era, case, reverbCondition and store; model trains add productCode, scale, setType, motorized, accessories, lotYear and store. maxItems 1–200 (default 20).

15–60 s

price_stats

Per-model summary of in-stock listings right now: count, min / median / max (JPY and USD) by shop and by grade, cheapest listing. maxItems = listings read first (default 300; 0 = everything, ~25 min with all shops).

1–4 min

price_history

Daily min / median / max / count per model, by shop, grade and shop × grade, for the last days (default 90). Reads stored snapshots (since 2026-11-05: daily for Fujiya, Sanpou, Naniwa, WATCHNIAN, GINZA RASIN, Jackroad, Shimokura, Ishibashi, Shimamura, Ikebe and Hobbyland Pochi; weekly on Sundays for J-Guitar and Hard Off), so there is no crawling. Needs keywords, brands or models (model keys from price_stats).

seconds

start_monitor

Creates, in your Apify account, a saved Task in monitor mode plus a Schedule (default hourly, cron, timezone) and starts the first run (baseline). Later runs emit only NEW / PRICE_DROP / PRICE_UP / SOLD_OUT, optionally POSTed to alertWebhookUrl (Slack, Discord, n8n…). Your client should confirm with you first; delete the Task/Schedule in Apify Console when done.

~1 min to set up

sources and grades must belong to the chosen market (default: all of its shops). A mismatch, e.g. market: "watch" with sources: ["fujiya"], returns an error naming the valid values without starting a run. Monitors are named jucm-monitor-<name> (camera), juwm-monitor-<name> (watch), juim-monitor-<name> (instrument) or jutm-monitor-<name> (model-train) in your Apify account.

Example prompts

  • "What's the cheapest AB-or-better Leica M6 in Japanese shops right now?"

  • "Compare Nikon Zf prices by shop and grade."

  • "How has the median Fujifilm X100VI price moved over the last 30 days?"

  • "Watch for new Voigtländer lenses under ¥80,000 and post them to my Slack webhook https://hooks.slack.com/services/…"

  • "Find a Grand Seiko SBGA211 in SA or better with box and papers, and give me the USD price."

  • "What's the median price of a Rolex 16233 in Japan, by shop?"

  • "Alert me on Discord when a new King Seiko appears."

  • "Find a Made in Japan Fender Jazz Bass from the 80s or 90s with a hard case, with the USD price."

  • "What do Fender Japan ST57s sell for in Japan, by shop and condition?"

  • "Alert me when a new Tokai or Greco Les Paul appears in Japan."

  • "Find a KATO 0-series Shinkansen set that includes the motor car, under $150."

  • "What does TOMIX 98313 sell for in Japan, by shop and condition?"

  • "Alert me when a MicroAce Odakyu set appears in Japan."

Develop

npm install
npm test            # tsc build + end-to-end tests (stdio, HTTP, missing token; camera + watch + instrument + model-train, market validation) against a fake Apify API
npm run start       # stdio
npm run start:http  # HTTP on :3000

APIFY_API_BASE_URL overrides the Apify API base URL (used by the tests).

Notes

License

MIT

Available Tools

4 tools
price_historyDaily price history per modelA

Daily min / median / max / count per model, by shop and condition grade, from stored daily snapshots of the shops (Fujiya, Sanpou and Naniwa; collected since 2026-11-05, so the first month is short). No crawling — returns in seconds. Needs keywords, brands or models.

Inputs: days, brands, grades, models, +4 more.

price_statsCurrent price stats per modelA

Per-model price summary of in-stock listings right now: count and min / median / max (JPY and USD), broken down by shop and by normalized condition grade, plus the cheapest listing. Use keywords to stay fast (~1–4 min).

Inputs: brands, grades, sources, keywords, +3 more.

search_listingsSearch used camera listings in JapanA

Search current used camera / lens listings at Japanese shops (Fujiya Camera, Sanpou Camera, Naniwa new arrivals, Hard Off Off Mall). Returns title, brand, normalized condition grade, price in JPY and USD, stock status and URL. Takes ~15–60 s.

Inputs: brands, grades, sources, keywords, +4 more.

start_monitorStart a change monitor (scheduled)A

Creates, in the user's own Apify account, a saved Task running this Actor in monitor mode and a Schedule for it (hourly by default), then starts the first run to record the baseline. Later runs emit only changes (NEW / PRICE_DROP / PRICE_UP / SOLD_OUT) and can POST them to a Slack / Discord / n8n webhook. This creates resources and recurring runs that use the user's Apify credit — confirm with the user first.

Inputs: name (required), cron, brands, grades, +7 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool targets a distinct mode of access: live search, current aggregate stats, stored historical snapshots, and automated monitoring setup. The only potential overlap is price_stats vs price_history, but the descriptions cleanly separate 'in-stock right now' from 'stored daily snapshots over time'. No two tools appear interchangeable.

    Naming Consistency4/5

    All names use snake_case, which is consistent, but the verb pattern is mixed: search_listings and start_monitor are verb_noun while price_stats and price_history are noun-only. Still highly readable and predictable enough for an agent to infer purpose.

    Tool Count4/5

    Four tools is on the lean side but each maps to a genuinely different capability (search, aggregate, history, monitoring), so nothing feels redundant. Marginal thinness aside, the surface is well-scoped for a niche market-data server.

    Completeness4/5

    The find-analyze-track lifecycle is covered: search live listings, summarize current prices, query historical trends, and set up ongoing monitoring. Minor gaps exist (no single-listing detail fetch, no way to enumerate supported shops/brands/models, no monitor management/edit), but agents can work around these via keyword search and start_monitor's parameters.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to search and compare prices across Japanese used camera, watch, luxury brand, and instrument marketplaces from multiple stores, returning price, brand, condition, and source store information.
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables searching products, fetching item details, listing categories, and viewing seller profiles for Japanese marketplaces Mercari and Yahoo! Flea Market via MCP tools.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to query live pricing, resale, company KYC, SEC filings, patents, trademarks, public tenders, auctions and related market intelligence through MCP, returning clean typed JSON from primary sources on a pay-per-result basis.
      MIT