Bunjang MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bunjang MCPfind used Nintendo Switch listings on Bunjang under 200,000 won"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bunjang MCP
An MCP server for searching public listings on Bunjang, running as a Cloudflare Worker behind the Common Auth gateway.
Tools
bunjang_search: returns matching listings and an average, highest, and lowest asking price for the returned listings.
The tool returns listing URLs, prices, sale status, seller and engagement metadata, seller descriptions, and original-size product image URLs. Set include_details=false to skip one detail request per returned listing when speed matters more than descriptions and full images.
Results default to 20 listings. To continue, pass the returned next_offset as the next call's offset. has_more says whether more listings are available. The service handles Bunjang's internal cursor pagination, crosses its 60-entry upstream page boundaries, and removes repeated promoted products. Since marketplace results change over time, consecutive pages are not a permanent snapshot.
The summary describes current asking prices among the listings returned by that call. It is not a sold-price history. External shopping ads are excluded from listings and price calculations. max_listings is limited to 60 per call.
There is no cache. Module-level state does not reliably persist between Worker requests, so every call fetches fresh data from Bunjang.
Detail-enriched calls (include_details=true) make one upstream request per
listing, up to eight at a time. Any of those can fail (a Bunjang error, a
timeout, or a Workers subrequest limit); the listing is still returned with
its search-page fields only, and detail_failures in the result counts how
many came back that way. A partial result is reported, never hidden.
Related MCP server: Mercari MCP Server
Usage
{
"mcpServers": {
"bunjang": {
"type": "remote",
"url": "https://bunjang.lost.plus/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Send a Common Auth token as Authorization: Bearer <token> or
X-API-Key: <token> (scope bunjang). Machine tokens and OAuth access
tokens are both accepted. Clients speaking MCP 2026-07-28, 2025-06-18
and 2025-03-26 are all served; 2026-07-28 clients are told to cache the
tool list for five minutes.
How it is reached
client -> bunjang.lost.plus/mcp -> auth-gateway Worker -> [BUNJANG service binding] -> this WorkerRoutes. This Worker holds none (
wrangler.tomlhas noroutes,workers_dev = false).bunjang.lost.plus/mcp,/mcp/*,/healthzand/.well-known/oauth-protected-resource*are zone routes on theauth-gatewayWorker (auth/gateway/wrangler.toml).Auth. The gateway's route table (
auth/gateway/config/cloudflare.gateway.json) has{"host": "bunjang.lost.plus", "policy": "mcp", "token_scope": "bunjang", "binding": "BUNJANG"}. The gateway validates the credential with the hub, strips it, and forwards over theBUNJANGservice binding with the caller inx-lost-plus-{sub,email,name,role,encoding}headers. This Worker reads those with the shared@lpfchan/gateway-identitypackage and never sees a token. A request without a complete identity is refused with 500, because nothing but the gateway can reach this Worker and such a request means the deployment is wrong.Gateway-answered paths.
/healthzreturnsokastext/plain;/.well-known/oauth-protected-resource/mcpis the OAuth metadata document; a bad or missing token gets a 401 with aWWW-Authenticatechallenge. None of those reach this Worker, which serves/mcp(and/mcp/) only.State. None. No D1, KV or R2; everything is plain
[vars].
Deploy
npm install
npm run typecheck # tsc --noEmit
npm test # vitest
npm run deploy # passage run --env CLOUDFLARE_API_TOKEN=infra/CF_MASTER_TOKEN -- wrangler deployThe deploy token comes from passage at deploy time (infra /
CF_MASTER_TOKEN, through the passage setup module); an already-exported
CLOUDFLARE_API_TOKEN wins if one is set.
Deploying only replaces this Worker's code; routes live on the gateway and
are untouched. To roll back, git revert (or check out the previous commit)
and npm run deploy again. Adding a route to this Worker's wrangler.toml
would steal it from the gateway and expose an unauthenticated entrance; see
the comment there.
No secrets are required. Configuration:
Variable | Default | Purpose |
|
| Public listing-page base URL |
|
| Public JSON API base URL |
|
| Upstream request timeout |
| Safari-compatible value | Upstream HTTP user agent |
History
Until 2026-09-18 this ran as a Python container (python/, FastMCP, port
8004 on oci-ubuntu behind the Cloudflare tunnel and the local Rust
gateway). The Worker port replaced it; python/ was removed on 2026-09-19
once its tests were ported to test/. The Python server's in-memory cache,
force_refresh argument and from_cache field did not survive the port.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search and browse global classifieds across 80 markets. No auth required for read-only access.
Search bounded public Bluesky keywords, handles, mentions, and hashtags.
Search Japan's M&A marketplace MANDA - public business-for-sale listings (read-only, no auth)
Amazon search and product extraction: titles, prices, ASINs, and listings as clean JSON.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables AI agents to search and retrieve listings from Sweden's largest second-hand marketplaces, Blocket and Tradera. Returns unified data including prices, images, seller information, and direct links to listings.8-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables users to search for products on the Mercari marketplace using keywords, categories, and specific filters like price and condition. It provides comprehensive tools for retrieving item details and browsing search results via standard or SSE protocols.-
- AlicenseNot gradedqualityBmaintenanceEnables searching Mercari Japan products with keyword, price range, condition, and status filters, and supports bulk searches from files with automatic translation to English.MIT
- AlicenseAqualityBmaintenanceRead-only eBay search and listing lookup via the official Browse API, with filters for price, condition, buying format, shipping, and deals.4MIT