Repository navigation
Releases: PyModel/niblet-skill-mcp
Release list
v0.4.6
Claude Desktop and claude.ai can now connect to hosted MCP by signing in (OAuth, no key): Settings → Connectors → Add custom connector → https://api.niblet.com/mcp. Step-by-step guide: https://www.niblet.com/docs#claude. The skill gains a Components section: use a library component only when the product lacks one, pick the leanest (fewest new packages, no duplicate icon/motion/form library), and settle behavior with a screen reference first. npm: @pymodel/niblet@0.4.6, contract 0.1.5.
v0.4.5
Fetches catalogue images from the gated https://www.niblet.com/media path with the account key; the legacy media host still gets no credentials, and no other origin or path is fetched. npm: @pymodel/niblet@0.4.5, contract 0.1.4.
v0.4.4
v0.4.1
v0.4.0
v0.3.2
Shared contract schemas and structuredContent on every catalogue tool; get_design_reference sections; niblet- MCP prompts; parallel image fetches and a 5-minute response cache; Retry-After on 429; strict origin validation; bounded shutdown. Docs: the local adapter is token-free, public catalogue access uses the hosted MCP with an account key from niblet.com/account.
v0.3.1 — actionable 401
A 401 from the API now tells the agent what to relay: which origin rejected the token, its length (never the value), that a shell NIBLET_TOKEN export overrides the MCP .env file, and to restart the server after fixing it. niblet_status reports the same.
v0.3.0 — get_design_reference
A web screen belongs to a design pack whose colours, typography, and components are already recorded, but an agent that picked a reference had no way to read them.
get_design_reference takes the screenId a search just returned, or a pack slug, and returns the style reference as markdown.
Discovery is the harder half: a tool nothing mentions goes uncalled. A search that returned any web screen now says the reference exists and how to fetch it, and the server instructions name the follow-up. iOS searches stay silent, because only web screens have a pack. A screen without one is a plain answer rather than an error — continue with the local design system.
claude mcp add niblet --env NIBLET_TOKEN=$NIBLET_TOKEN -- npx -y @pymodel/nibletv0.2.1
Documentation-only release. Refreshes the README on npm, which freezes it at publish time: 0.2.0 shipped a malformed tools table and a redundant title above the logo.
No code changes. niblet_help, niblet_status, and the five niblet://skill resources behave exactly as in 0.2.0.
v0.2.0
Every bundled document is now reachable over MCP
SKILL.md directs the agent to the command playbook, the evidence policy, the connection guide, and the native guidance using relative filesystem paths. Only niblet://skill was registered, so a client reading it over stdio received four links it had no way to resolve — the entire 26-command playbook was unreachable.
All five documents are served as resources:
niblet://skillniblet://skill/commandsniblet://skill/connectionniblet://skill/evidenceniblet://skill/native
Their cross-links are rewritten to niblet:// URIs in the resource handler rather than in the files, because the same directory is also loaded as a filesystem skill where the relative paths are correct.
New tools
niblet_help — lists the four surface modes and all 26 commands with their purpose, or resolves a single command with command: "polish". Parsed from the documents at runtime, so the menu cannot drift from the playbook.
niblet_status — implements the doctor entry the playbook specifies but never shipped: configured origins, whether a usable token is present (length only, never the value), which bundled documents are readable, the tool inventory, and whether the API answers.
Both read bundled files, require no token, and are local-only. The find_ui_references and find_ui_materials contracts are unchanged and remain identical to the hosted service.
Notes
- Status treats any HTTP status as reachable.
/v1/statsis not part of the hosted contract, so probing it as a health check would have reported a failure to every default-configured user on a healthy connection. - No retries were added; "no retry was attempted" remains a deliberate stance.
- 62 tests pass, including live
resources/listcoverage — a resource that registers but never lists is the failure unit tests cannot catch.