feat(provider-nailbook): keyless Japanese nail-art image provider (nailbook.jp)#24
Merged
Merged
Conversation
Add @refkit/provider-nailbook — image references from Nailbook (nailbook.jp). Calls the site's own JSON endpoint (POST /api/web/photo/search) rather than scraping the client-rendered list HTML, whose embedded bootstrap carries photo IDs but no image URLs. One request per search, no fan-out. Discovery-class rights: no per-item license metadata, so every result is license: 'unknown' + rehostPolicy: 'thumbnail-only' (gates to needs-review; mirrors the Brave discovery moat). Japanese tag words recall best. Wired into @refkit/mcp's zero-config keyless default set (hard dependency), README, and the keyless-set test; registered in the root vitest projects list. Verified: typecheck, lint, full vitest (369 passed), package build, and a live smoke against the real API (non-empty results, canonicalUrl = /design/<id>/, thumbnail HEAD 200 image/*).
MyPrototypeWhat
force-pushed
the
feat/provider-nailbook
branch
from
July 24, 2026 15:55
ea2a3bf to
17469ad
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
New satellite
@refkit/provider-nailbook— keyless image provider over nailbook.jp, Japan's nail-design catalog (8.9M+ salon photos, same-day fresh, tag-structured). Registered in the MCP zero-config default set (keyless).How it talks to the upstream
POST /api/web/photo/search(the one its frontend XHR uses) — the list HTML's embedded bootstrap carries no image URLs, so HTML parsing was a dead end.Content-Type: application/jsonis the one proven-required header; the rest mirror the site's XHR (documented inline).search()— interactive retrieval, no multi-page fan-out (robots.txt is open to general agents; AI-training crawlers are the ones it blocks).pageparam is a no-op (verified 57/60 overlap); real paging is a statefulsearch_aftercursor that doesn't map onto statelesscontrols.page.capabilities: { controls: [] }.Mapping
canonicalUrl= design detail page;thumbnail=cnv.nailbook.jp/photo/<id>/320_lc,preview=1280_lc; title = caption with tag fallback; rights =license:'unknown'+rehostPolicy:'thumbnail-only'(discovery moat, same stance as brave).Verification (post-rebase onto d27619d)
pnpm typecheckexit 0 ·pnpm vitest run385 passed / 23 skipped / 0 failed · lint clean · tsup build OKREFKIT_LIVE=1): non-empty results for マグネット, canonicalUrl shape asserted, thumbnail HEAD 200.Caveats