Japan Used Camera Market

io.github.Enu27Published by GitHub account Enu27v0.2.0Updated Nov 4, 2026

Search, price stats, price history and change alerts for Japan's used camera shops via Apify.

Overview

AI-generated overview

Searches, prices and tracks used camera and lens listings at Japanese shops through an Apify Actor, using your own Apify token.

What you can do
  • Search current used camera and lens listings across Fujiya, Sanpou, Naniwa and Hard Off, filtered by keywords, brands, grades and price range
  • Summarize in-stock prices per model with count, min, median and max in JPY and USD, broken down by shop and normalized condition grade
  • Read daily price history per model from stored snapshots, by shop and grade, over a chosen number of days
  • Create an Apify Task and hourly Schedule that reports only new, price-dropped, price-raised or sold-out listings, optionally posting to a webhook
When to use it
Useful when shopping for or comparing used cameras and lenses sold in Japan, checking whether a price is fair, or following how a model's median price moves over time. Also fits setting up recurring alerts for new listings or price drops.
Requirements
Node.js 20+ and a local stdio client such as Claude Desktop, Claude Code or Cursor; an optional HTTP mode on a local port. Requires an Apify API token supplied as the APIFY_TOKEN environment variable (or a Bearer token per request in HTTP mode), and network access to Apify and the shops' public pages.
Before you install
Runs execute an Apify Actor billed to your own Apify account on a pay-per-result basis, so searches and stats consume credit. start_monitor creates a Task and Schedule in your Apify account and starts a run; remove them in Apify Console when done. A webhook URL you provide receives alert posts. Prices are tax-included asking prices, not sold prices, and the server is not affiliated with the shops.

Installation

In SourceWeft

  1. Open Japan Used Camera Market in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Japan Used Camera Market — MCP server

[CI] [npm]

An MCP server that lets Claude and other MCP clients search, price and watch Japan's used camera shops:

  • Fujiya Camera (Nakano): full used stock, ~3,500 listings
  • Sanpou Camera (Jiyugaoka): full used stock, ~1,300 listings
  • Naniwa / Lemon-sha / Takachiho: new arrivals only, ~200–300
  • Hard Off Off Mall (nationwide): cameras and lenses on sale, ~16,000

Condition grades are normalized across shops (NEW > A > AB+ > AB > AB- > B > ASIS > PARTS), and every shop's own label is kept as well. Prices come in JPY and USD.

It runs the Japan Used Camera Market Actor 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.

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
json
{  "mcpServers": {    "japan-used-camera": {      "command": "npx",      "args": ["-y", "@keiya-dev/japan-used-camera-mcp"],      "env": { "APIFY_TOKEN": "apify_api_..." }    }  }}

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

Claude Code

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

Cursor / other stdio clients

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

Streamable HTTP

bash
APIFY_TOKEN=apify_api_... npx -y @keiya-dev/japan-used-camera-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).

Tools

ToolWhat it doesTypical time
search_listingsCurrent 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. maxItems 1–200 (default 20).15–60 s
price_statsPer-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_historyDaily min / median / max / count per model, by shop, grade and shop × grade, for the last days (default 90). Reads stored daily snapshots (Fujiya, Sanpou, Naniwa; since 2026-11-05), so there is no crawling. Needs keywords, brands or models (model keys from price_stats).seconds
start_monitorCreates, 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 (all tools): fujiya, sanpou, naniwa, hardoff. All four by default.

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/…"

Develop

bash
npm installnpm test            # tsc build + end-to-end tests (stdio, HTTP, missing token) against a fake Apify APInpm run start       # stdionpm run start:http  # HTTP on :3000

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

Notes

  • Not affiliated with any of the shops. Prices are the shops' tax-included asking prices, not sold prices.
  • Data comes from the shops' public listing pages only. Product pages, serial numbers and condition notes are not read.
  • The Actor's README covers coverage, limits and pricing: https://apify.com/keiya_dev/japan-used-camera-market

License

MIT

Source: README.md at commit 2dbc05e

Tools

4

search_listings

Search used camera listings in Japan

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.

ParametersbrandsgradessourceskeywordsmaxItemsmaxPriceJpyminPriceJpyincludeSoldOut

price_stats

Current price stats per model

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).

ParametersbrandsgradessourceskeywordsmaxItemsmaxPriceJpyminPriceJpy

price_history

Daily price history per model

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.

ParametersdaysbrandsgradesmodelssourceskeywordsmaxPriceJpyminPriceJpy

start_monitor

Start a change monitor (scheduled)

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.

ParameterscronnamerequiredbrandsgradessourceskeywordstimezonealertEventsmaxPriceJpyminPriceJpyalertWebhookUrl

Version history

1
  1. v0.2.0LatestNov 4, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts