Store Builder

io.github.vuluu2kPublished by GitHub account vuluu2kv0.104.0Updated Oct 31, 2026

Design, fill with real store data, render and publish Store Builder pages from an AI agent.

Overview

AI-generated overview

Lets an assistant design, fill with real store data, render and publish Store Builder site pages through a store's API key.

What you can do
  • Open pages and read their outline, nodes, element catalog and inspector traits
  • Add, style, move, remove and duplicate elements or whole nested sections, and apply templates
  • Bind nodes to store data, add click actions, and run fixed store flows such as checkout, menus and cart
  • Manage pages, media, theme tokens, custom code, backend functions and translations
  • Render screenshots with measured layout defects, review visitor-facing issues, and publish drafts
  • Find and call any of the platform's API operations, with dry runs by default
When to use it
Useful when you want an agent to build or edit a Store Builder storefront end to end — laying out pages, wiring real products and checkout, checking the rendered result and publishing — without clicking through the editor yourself.
Requirements
Runs locally via npx and needs Node 22 or newer; sb_look also needs system Google Chrome. Requires SB_TOKEN, an API key created in the store's Apps → AI agent screen, and SB_API for the API base URL (defaults to localhost:8080). SB_EMAIL and SB_PASSWORD are optional and only for account-level calls such as listing sites and managing members.
Before you install
The key reaches both the partner API and the private site API for one store, so treat it as a secret; secrets are read from the environment only. Writes and API calls default to dry_run:true, but passing dry_run:false edits, publishes or deletes real store content. Publishing cascades to pages sharing a global section, and editing a shared global changes every page carrying it. sb_function test runs count toward a monthly quota, and sb_import_site patches the site's theme.

Installation

In SourceWeft

  1. Open Store Builder 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

sbuilder-mcp

An MCP stdio server that lets an AI agent operate a Store Builder site end to end — design its pages, fill them with real data, look at the result, and publish it — with no human clicking anything.

Tiếng Việt

Install

One command writes this server into every agent client on your machine:

bash
npx -y sbuilder-mcp install --token wbk_… --api https://your-host --site site_…

It knows Claude Code, Claude Desktop, Cursor, Windsurf, VS Code and Codex, and installs into the ones it finds. Name them with --client cursor,codex, or rehearse with --dry-run. An option it does not know is refused, not ignored — a flag that silently does nothing is worse than one that does not exist.

--site is optional and worth passing: a key belongs to exactly one site, so it is written as SB_SITE and every tool then defaults to it. Without it the model has to carry the id through the session, which it can only get by listing pages and reading one back.

--site-name "Your Store" rides alongside it as SB_SITE_NAME. It is a label, never an address — nothing resolves by it — but it lets the agent say the store's name back to you instead of a 32-character id you did not choose. The Apps → AI agent screen appends it whenever the store has a name.

It merges: the servers already in those files stay, whatever it replaces is copied to <file>.sbuilder-backup, and a config it cannot parse is refused rather than overwritten — a file with a trailing comma is far likelier than one worth discarding, and it is what you need to fix it.

The store's Apps → AI agent screen hands you this command with the key already in it.

Or configure a client by hand
json
{  "mcpServers": {    "sbuilder": {      "command": "npx",      "args": ["-y", "sbuilder-mcp"],      "env": { "SB_API": "https://api.your-host", "SB_TOKEN": "wbk_…", "SB_SITE": "site_…" }    }  }}

Getting the key

Open your store, go to Apps → AI agent, and press Create key. That screen hands you the config block for your client with the key already in it — this whole section is what it saves you reading.

One key is all you need. It reaches both the partner surface (/api/v1) and the private site API, including the page document and the live-edit socket, and it is bounded three ways on every request: its own scopes, the live role of the member who created it, and the single store it belongs to.

SB_EMAIL + SB_PASSWORD remain optional, and buy exactly one thing: account-level calls — listing your sites, managing members and roles — which a key deliberately cannot make, because those mean "this person's account".

SB_API defaults to http://localhost:8080. Secrets are read from the environment only.

sb_media_upload's photo search needs no key here: it calls the platform's own GET /api/sites/{siteId}/images/search, which runs a rotated pool of provider keys behind the credential this server already holds. An operator enables it by setting PEXELS_API_KEYS on the SERVER (comma separated; free keys at https://www.pexels.com/api/). With none configured the search answers "unavailable" and tells the caller to find a photograph by its own means and pass the URL — which the platform then fetches server-side. There is deliberately no fallback provider in this client: one would put the very key the platform exists to hold back into every install.

Tools

ToolWhat it does
sb_connectLog in, list the sites this account can operate, report which credentials are present
sb_site_listList the sites this account can operate
sb_api_findFind API operations by intent — one line per match — then read one operation's call sheet by id: real parameter schemas, the credential it needs, and the body's fields read off the handler that decodes them, each carrying the trap its own doc comment records
sb_api_callExecute an operation, or any route by method+path; dry run by default. Field selection (dotted paths, on lists and single-object write answers) and local result pagination; merge for whole-record PUTs, If-Match, multipart file
sb_page_openOpen a page for editing and return its outline — or, with form_id, a form's field document (fields, defaults, dependent-field rules)
sb_outlineThe open page as a compressed tree — never a raw document dump; shared header/footer and overlays one line each unless chrome: true
sb_node_readOne node in full, with a warning if it is a shared global
sb_catalog_searchFind an element by what it should do, using the platform's own AI hints
sb_traits_forAn element's inspector — tabs, groups, controls and what each declared one writes — plus its AI hints, defaults and containment rules
sb_addAdd an element — or a whole nested subtree — in one call; a filter arrives with its option rows read from the catalogue
sb_setWrite style/config/specials. Per breakpoint by default
sb_moveMove a node to another parent
sb_removeRemove a node and its subtree
sb_duplicateCopy a node and its subtree under fresh ids, right after the original — or onto another page or site, as the editor's copy/paste does (assets copied, references that cannot travel listed)
sb_templatesThe store's saved section templates, plus the BUILT-IN layouts — hero, feature trio, stats, FAQ, CTA band, product shelf, category strip, brand wall, trust band — composed against the page's own tokens
sb_template_useAdd a section template to a page
sb_page_listEvery page on the site
sb_page_createCreate a page — a store type arrives with the editor's own starting document; type is the route for checkout, product, category, post, course
sb_page_updateEdit a page's name, slug, home flag, order, SEO (title, description, Open Graph, robots, meta tags, JSON-LD) and members-only flag — merged into settings, so the keys it does not name survive. On a template page: make it the type's default, or choose which products/categories/posts render through it
sb_page_versionA page's platform recovery points — list named versions and autosave history, snapshot the draft, restore one
sb_codeThe site's custom code files (tracking pixels, analytics, chat widgets, site CSS; html/css/js/scss/ts injected, json/text served at /_wb/code/<name>) for every page or one — list, create, merge-update, remove; scss/ts compile on write and report compile_error
sb_functionThe site's backend functions — server-side TypeScript/JavaScript served at /_wb/fn/<slug> with the site's sealed secrets, collections and fetch (a _ slug is an importable module) — list, read, create, merge-update, remove, test-run (counts toward the monthly quota), the run log, this month's usage, and write-only secrets; a failed build reports compile_error
sb_publishCompile the draft into the live page (cascades to shared globals), report which revision went live, and with verify check the origin is serving it; lists other pages with unpublished drafts and never-published pages (publish_drafts publishes both)
sb_page_stateWhich of a page's three copies is which — the DRAFT the editor canvas shows, the PUBLISHED row the storefront serves, and this session's — plus whether the editor will render the canvas BLANK, and where the recovery points are
sb_page_repairRename a page root that is not ROOT (left by older seeds) so every editor build draws it — one page or the whole site
sb_reviewEvery defect a visitor would see, each with its fix, plus the five gaps between this store and a paid order
sb_media_listThe site's media library
sb_media_uploadAdd an image and get its URL — a local path, a URL the platform fetches, or a SEARCH for real photographs you read and pick from, one or several at a time; paths uploads many local files in one call
sb_live_joinJoin the editor's live-edit room as a visible peer — edits then appear live
sb_lookSave, render, and return screenshots plus measured node boxes and layout defects measured on the render
sb_eventGive a node a click action — open the cart, go to a page, open a pop-up
sb_bindBind a node's content to real store data, or make a button add to the cart
sb_importRead a page from any public URL and add its structure and content to the open page as real elements, styled with THIS page's own tokens — a translation, not a clone
sb_import_siteRead a WHOLE site from one URL — its sitemap, or the links on that page — and give each page found its own draft page here, built from this site's tokens; the entry page's own colours and type scale also patch into this SITE'S theme, so it stops being purely a read
sb_themeRead or patch the site's palette and type scale — the layer every style preset resolves from, so one token repaints every page; per-breakpoint text-style overrides and element style presets; locale sets the site's language
sb_translateTranslate a site the way the editor's Multilingual panel does — enable languages, list a page's strings as missing / done / outdated, write or machine-fill them, approve machine rows
sb_storeRun a store flow that must happen in a fixed order — checkout (the four writes that make a working one), checkout_sync (the store's current payment and delivery methods into every existing order form, checkout page republished), form (any of the platform's 17 templates with its own field document), chrome (one shared header or footer on a real site menu — site name linked home, desktop menu, mobile drawer, search, cart and account icons), menu (a menu node bound to the site's menu, its links resolved), overlay_attach (a pop-up or quick view on the open page), cart (the site's cart drawer, when it has none; relocalize puts an existing one in the site's language) and app (a built-in app plus the pages it needs), global_attach / global_detach (put an EXISTING shared section on the open page, or take it off), global_promote (make a section on the page a NEW shared section) and template_save (save a section as a reusable template)
sb_undoUndo / redo this session's writes — page and form edits and sb_api_call PUTs, each named by tool and target, the open page's by default (all: true for every page); a page is refused if someone else saved it since. The platform's versions and history (sb_page_version) outlive this process

Thirty-eight tools, 949 API operations (354 of the 441 writes carrying a body shape read off the handler), 124 elements, 96 binding sources. sb_api_find is an index rather than a tool per endpoint, so the tool list stays short while everything the platform can do stays reachable — and operations added to the platform arrive with the next npm run codegen.

Every result is compact JSON, every directive is said once per process, and every tool carries MCP annotations — a client that honours them stops asking a person to confirm a read.

Full reference: docs/tools.md. What the builder supports natively, and where it stops: docs/capabilities.md.

How it stays in sync

The platform publishes two generated, committed artifacts. A build step reads them out of a checkout and emits the catalog:

bash
WB_REPO=/path/to/web_builder npm run codegen

So this repository vendors no platform code — it depends on two data files with a maintained contract. src/catalog/api.generated.ts is committed, so npm install needs no checkout at all.

Development

bash
npm run build     # tsc -> dist/npm test          # vitestnpm run smoke     # offline self-test; must print ALL GOOD

Contributor guide: CLAUDE.md. Design rationale: docs/superpowers/specs/.

Release

A push to main that touches src/** releases on its own (.github/workflows/auto-release.yml): the gate runs (build, test, smoke), the version bump is read off the commit subject — feat is minor, BREAKING CHANGE or ! is major, anything else is patch — Claude writes the changelog entry in both languages, server.json is synced, the release is committed as chore(release): vX.Y.Z and tagged, then published to npm, as a GitHub Release, and to the MCP Registry through GitHub OIDC. workflow_dispatch runs the same flow with a bump you choose. A commit whose subject contains chore(release): or release: v is skipped, so a release never triggers another.

The workflow needs two repository secrets in the prod environment: NPM_ACCESS_TOKEN and CLAUDE_CODE_OAUTH_TOKEN. The registry step needs none.

npm run release (scripts/release.mjs) is the offline path — a machine with no CI, or a release cut while a secret is being rotated. It runs the same gate and writes the same ## [x.y.z] - date changelog heading, so the two never disagree.

Designing safely

Five platform rules fail silently if a client does not know them, so they are encoded here as tested code rather than advice:

  • Band order — ROOT's children must read [header][middle][footer], or the platform refuses every save.
  • Site overlays (the cart drawer, pop-ups) are composed onto ROOT on read and stripped on write; they are excluded from every ROOT-level rule and cannot be edited through the page tools.
  • Global sections are shared masters — editing one changes every page carrying it, and publishing cascades. Any result touching one says so.
  • Responsive by default — sb_set writes per breakpoint, because a design should respond. Base is the cascade's fallback layer, not a trap.
  • App blocks — a marketplace app's subtree is composed onto the page on read and reduced back to one reference node on save, so an edit inside it is lost without a word. Every write refuses the interior; the outline flags the block root app: true.

Status

All three phases shipped: authentication and full API reach; the page document, patch protocol, builder and the five traps; the live-edit socket, the yield rule, and the vision loop. Since then: a token diet across every result, and releases that cut themselves.

Requires Node ≥22 (the global WebSocket) and, for sb_look only, system Google Chrome — playwright-core bundles no browser, so installing downloads nothing.

MIT.

Source: README.md at commit 0d06612

Tools

38

sb_connect

Log in and list the sites this account can operate. Call this first. Reads SB_EMAIL and SB_PASSWORD from the environment unless you pass them.

Parametersemailpassword

sb_site_list

List the sites this account can operate.

Takes no parameters.

sb_api_find

Find API operations by intent (query), or get a call sheet (id): parameters, credential, body fields and handler caveats. Reaches all 949 operations.

Parametersidtaglimitquery

sb_api_call

Call an operation from sb_api_find (id), or a route the catalog lacks (method+path); dry run by default. pick selects fields, max_items caps lists, item_offset skips items. Lists over 60 KB say so.

Parametersidbodyfilepathpickmergequerymethoddry_runsite_idif_matchmax_items+2 more

sb_page_open

Open a page for editing and return its outline. Call before any sb_add / sb_set / sb_move / sb_remove. Find page ids with sb_api_find "list pages". Or form_id: edit that form's field document (fields, specials.formRules on its root).

Parametersform_idpage_idsite_id

sb_page_repair

Rename a page root that is not "ROOT" (sppro_1, rt_<hex> — left by older seeds) to ROOT, for one page or, without page_id, every page on the site. Draft only; a published page is listed for re-publishing. dry_run (default true) lists what would change.

Parametersdry_runpage_idsite_id

sb_outline

The open page as a compressed tree — id, type, name, child count, band, and whether a node is a shared global or a site overlay. Never the raw document: a real page is hundreds of KB of JSON.

Parametersdepthchrome

sb_node_read

One node in full — style, config, specials, per-breakpoint overrides, bindings.

Parametersidrequired

sb_traits_for

This element's INSPECTOR, as a person sees it: tabs, groups, and every control name — with what each DECLARED control writes, and the AI hints for using the element. Read this before styling an element; pass control to read one control in full.

Parameterstyperequiredcontrol

sb_add

Add an element — or a whole NESTED subtree — under a parent. One call builds a complete section: pass children rather than calling this once per node.

Parametersspecrequiredforceindexdry_runparent_idrequired

sb_set

Write style, config or specials keys on one node, or on many through edits (one save, one live frame). Per BREAKPOINT by default; base:true writes the fallback layer, right for a value that should not vary.

Parametersidbasekeyseditsforcestateunsetdry_runnamespacebreakpoint

sb_move

Move a node to another parent at an index.

Parametersidrequiredforceindexrequireddry_runparent_idrequired

sb_remove

Remove a node and its whole subtree.

Parametersidrequiredforcedry_run

sb_review

What a VISITOR would meet on the open page (blank band, placeholder, dead binding) AND what stands between this store and a paid order (checkout page, gateway, delivery, a cart link). Run it before calling a page done; page_id: only that page.

Parameterspage_id

sb_duplicate

Copy a node and everything under it, under fresh ids, right after the original. The move a designer makes constantly — build one card, duplicate it twice. to_page_id (and to_site_id) pastes the copy onto another page instead, as the editor's copy/paste does: a cross-site copy has its images copied into the target library and references that cannot travel blanked and listed; the open page becomes the target.

Parametersidrequiredforceindexdry_runparent_idto_page_idto_site_id

sb_templates

The store's saved section templates — designed sections a person starts from rather than assembling one. Use sb_template_use to drop one into the open page.

Parameterssite_id

sb_template_use

Add a section template to a page, above the footer — a sb_templates row (another site's is copied in first) or one of the BUILT-IN layouts sb_templates lists, which are composed against this page's own tokens rather than copied.

Parametersdry_runpage_idrequiredsite_idtemplate_idrequired

sb_page_list

Every page on the site, with its slug and whether it is live.

Parameterssite_id

sb_page_create

A store type (product, category, search, blog, post, complete, account) arrives with the document the editor gives a merchant — product carries the whole bound buy box; seed:false for blank. Any other type is empty and sb_page_open seeds its ROOT. TYPE is the route: /checkout and /products/{slug} need a PUBLISHED page of that type or they 404.

Parametersnamerequiredseedslugtypechromelocaledry_runsite_idheadlinesettingsis_homepage

sb_publish

Compile the draft into the live page, and report which revision went live (id, publishedAt, fromVersionId). PUBLISH CASCADES to every page sharing a changed global section or overlay; the dry run lists them (would_cascade) and warns FIRST when it would ship shared edits nobody published. verify:true then fetches the live page and says whether the origin is serving that revision yet — the storefront caches for 60s, so a reload showing the old page is that, not a failed publish.

Parametersverifydry_runpage_idrequiredsite_idpublish_drafts

sb_page_state

Which of this page's three copies is which: the DRAFT the editor canvas shows, the PUBLISHED row the storefront serves, and what this session holds. Says whether the editor will render the canvas BLANK (its hydrate gate discards a document whose root is missing and shows an empty ROOT, silently — the Go renderer has no such gate, which is how "the live page has data but the canvas is empty" happens), whether the draft has changes the live page does not, and where the recovery points are.

Parameterspage_idsite_id

sb_page_update

Edit a page's name, slug, home flag, order, SEO (merged key by key) or members_only. Reads the page first and merges `settings`, so keys it does not name survive. On a template page (product, category, post, blog, course, brand): default_template makes it the type's default, render_for/render_default move entities onto it or back to the default.

Parametersseonameslugdry_runpage_idrequiredsite_idrender_forsort_orderis_homepagemembers_onlyrender_defaultdefault_template

sb_page_version

A page's platform recovery points, everyone's edits included (sb_undo covers this process only). action:"list" — named versions and autosave history; "save" {label} — snapshot the current draft; "restore" {version_id | history_id} — put the draft back. Writes are dry runs by default.

Parameterslabelactionrequireddry_runpage_idsite_idhistory_idversion_id

sb_code

The site's custom code files — tracking pixels, analytics, chat widgets, site-wide CSS — injected at head, body_start or body_end of every page (no page_id) or one page. Create infers language from the extension, placement from the language. scss/typescript compile on write (compile_error). json/text: placement "none" only; an enabled site-wide "none" file is served at its url. action:"list" | "set" (no id creates; with id merges the named fields over the stored row) | "remove". Not the custom-code element.

Parametersidnameactionrequiredcontentdry_runenabledpage_idsite_idlanguagepositionplacement

sb_function

Backend functions: server-side TS/JS at /_wb/fn/<slug> with the site's secrets, collections and fetch ("_" slug = importable module). Not sb_code. action: list | get | set (no id creates; id merges) | remove (id, or secret key) | test (method/path/query/headers/cookies/body) | logs | usage | secret (no key lists; key+value sets). Owner/admin only.

Parametersidkeybodypathsluglimitqueryvalueactionrequiredmethodcontentcookies+5 more

sb_live_join

Join the site's live-edit room as a visible peer: every write then appears in any open editor as it happens, with the agent shown by the API key's own name rather than a person's. Always yields, so it is safe beside a human. Works with SB_TOKEN or with SB_EMAIL / SB_PASSWORD.

Parameterssite_id

sb_look

Save, render through the platform's own renderer, and return screenshots at desktop, tablet and mobile widths, measured boxes for the bands and their children, and any layout defect measured on the render (overflow, overlap, unreadable text). node_id frames one element. Judge your work from these, not from memory.

Parametersurlformatwidthsnode_idbox_depthwith_boxes

sb_media_list

The site's media library. Reuse an image before adding another; search by name, filter by type, page with limit/offset.

Parameterslimitoffsetsearchsite_idmedia_type

sb_media_upload

Put an image into the media library and get its URL back, ready for sb_set. Takes a local path, a URL, or a SEARCH — `query` returns real photographs with their own descriptions, and `pick` uploads the one you chose, or several at once to stock a site you just built. The only way to add an image.

Parametersurlnamepathpickpathsquerydry_runsite_idfolder_idorientation

sb_event

Give a node a click action — open the cart, go to a page, open a pop-up. A purchase is not one: use sb_bind action.

Parametersidrequiredforceactionrequireddry_runpayloadtrigger

sb_bind

Bind a node to real store data so the page shows actual products, not placeholder text. action makes a button a purchase control.

Parametersidrequiredfieldrequiredforceactionsourcerequireddry_run

sb_store

Run a store flow that must happen in a fixed order. action:"checkout" makes the order form, configures it, saves its fields with this store's real payment and delivery options, then creates and PUBLISHES the checkout page — /checkout 404s without all four. action:"checkout_sync" re-reads the store's payment and delivery methods into every existing order form and republishes the checkout page — run it after adding a shipping method or switching on a gateway, since the form keeps the options it was saved with. action:"form" seeds any of the platform's other form templates (login, contact, booking, stay and more — settings merge into the record) with its own field document, which is the part that cannot be guessed. action:"chrome" gives every page ONE shared header (footer:true — footer) built on a real site menu of page/category/product references: site name, desktop menu, mobile drawer, search, cart and account icons — the gap sb_review reports as siteChrome. action:"menu" binds a menu node on the open page to the site's menu and resolves its links, the way the editor does. action:"overlay_attach" puts a pop-up on the open page (kind:"popup") or points a list-dataset at a quick-view panel (kind:"quickview", list_id), creating either from the platform's own seed when overlay_id is omitted, and re-reads the page afterwards as the editor must. action:"cart" creates the site's cart drawer from the editor's seed when it has none — without it every open_cart control opens nothing. action:"app" installs one of the platform's built-in apps (app_key) and creates the pages it needs that installing it does not — today only "courses" has any, from the platform's own scaffold; every other key installs with nothing further to build. action:"global_attach" puts an EXISTING shared section (global_id) on the open page and action:"global_detach" takes it off, writing the reference the platform reads and placing it in the band ROOT's child order demands — the answer for a page that is

Parameterskindnameactionrequiredfooterapp_keydry_runlist_idmenu_idnode_idsite_idheadlinelanguage+8 more

sb_theme

The site's palette and type scale — the layer every element's style preset resolves from, so one token repaints every page at once. Call it with nothing to read what the site actually has. `colors` and `text_styles` PATCH the saved document: what you do not name is kept, and so does `presets` (a preset's own literal outranks the text style). A mobile/tablet/laptop object writes that breakpoint. `locale` sets the site's language (settings.locale, what <html lang> is served from) — site-wide, every other setting kept.

Parameterscolorslocaledry_runpresetssite_idtext_styles

sb_translate

Multilingual, as the editor does it. status | locales (add/remove) | page (rows: missing, done, outdated) | write (node id+field+value; registry fields only) | auto (machine-fill missing) | review (approve).

Parametersaddallfromactionrequiredlocaleoffsetremovesourcedry_runentriespage_idsite_id

sb_import

Read a page from any public URL and add its structure and content to the OPEN page as real elements, styled with this page's own tokens. Not a clone: the source's layout and CSS are not copied. Dry run returns what was found.

Parametersurlrequireddry_runsite_idmax_nodesmax_imagesmax_sectionsupload_imagesnav_timeout_ms

sb_import_site

Read a WHOLE site from one URL — its sitemap, or the links on that page — and give each page found its own DRAFT page here, built from this site's tokens. Not a clone. Dry run returns the page list before anything is created.

Parametersnavurlrequireddepththemedry_runexcludeincludesite_idhomepagemax_nodesmax_pagesmax_images+2 more

sb_undo

Put back what a write replaced — a page or form edit made here (sb_add, sb_set, sb_duplicate …), or a PUT through sb_api_call. An undo records what IT replaced, so the newest entry right after one is its redo. A page is refused if anyone else saved it since. IN THIS PROCESS ONLY, capped; the platform's own page history (GET .../pages/{pageId}/history) survives a restart. No argument lists what is undoable.

Parametersallindexdry_run

Version history

33
  1. v0.104.0LatestOct 30, 2026
  2. v0.103.0Oct 30, 2026
  3. v0.102.1Oct 30, 2026
  4. v0.102.0Oct 30, 2026
  5. v0.101.3Oct 29, 2026
  6. v0.93.0Oct 26, 2026
  7. v0.92.0Oct 26, 2026
  8. v0.91.0Oct 23, 2026
  9. v0.90.0Oct 22, 2026
  10. v0.89.0Oct 14, 2026
  11. v0.88.1Oct 12, 2026
  12. v0.87.0Oct 12, 2026
  13. v0.85.0Oct 11, 2026
  14. v0.83.3Oct 11, 2026
  15. v0.83.2Oct 11, 2026
  16. v0.83.0Oct 11, 2026
  17. v0.82.7Oct 11, 2026
  18. v0.82.6Oct 10, 2026
  19. v0.82.4Oct 10, 2026
  20. v0.79.0Oct 8, 2026
  21. v0.77.0Oct 8, 2026
  22. v0.76.3Sep 29, 2026
  23. v0.74.1Sep 28, 2026
  24. v0.70.0Sep 26, 2026
  25. v0.69.0Sep 26, 2026
  26. v0.68.0Sep 26, 2026
  27. v0.67.0Sep 25, 2026
  28. v0.64.0Sep 24, 2026
  29. v0.63.0Sep 21, 2026
  30. v0.62.0Sep 20, 2026
  31. v0.61.1Sep 17, 2026
  32. v0.61.0Sep 16, 2026
  33. v0.60.2Sep 16, 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