Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Recently observed → Unavailable
Live → Recently observed
Added "get_account_status" and "verify_scaffold"; changed the definition of "get_adminpageset", "get_component", "get_github" and 9 more (13 tools before, 15 now)
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"name":{"description":"The set to fetch. ⟨5 unchanged words⟩ set names instead.","type":"string"}},"required":["account_api_key"],"type":"object"}
⟨43 unchanged words⟩ registered account key (no credits are spent). IMPORTANT: files contain raw EJS template markers (e.g. <%= projectName %>, <% ... %>) and are NOT build-ready. Do not copy get_component output directly into a project. Use purchase_scaffold or generate_scaffold for rendered, build-ready files.
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"component":{"description":"Component id, or ⟨5 unchanged words⟩ ,"type":"string"}},"required":["account_api_key","component"],"type":"object"}
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\").","type":"string"},"path":{"description":"Folder or file in ⟨6 unchanged words⟩ for connection status.","type":"string"}},"required":["account_api_key"],"type":"object"}
⟨8 unchanged words⟩ , description, repo, components, maintain state). Use the projectid with get_scaffold to re-fetch a scaffold — no project_api_key is needed as a tool argument.
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"}},"required":["account_api_key"],"type":"object"}
⟨18 unchanged words⟩ no additional credit cost. Identify the project withproject_api_keyprojectid (projectidresolvedisfromoptionalyourextraauthenticatedconfirmationaccount). For a credit-flow project, this always ⟨74 unchanged words⟩
⟨25 unchanged words⟩ ,"inline"],"type":"string"},"project_api_keyprojectid":{"description":"The projectAPIidkey
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"cursor":{"description":"Resume token from a ⟨64 unchanged words⟩ list: true.","type":"string"}},"required":["account_api_key"],"type":"object"}
⟨32 unchanged words⟩ short-lived single-repo-scoped clone credential, and a persistentproject_api_key +projectid for later use with get_scaffold/get_projects/set_projects. Repeat requests ⟨196 unchanged words⟩
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Omit to pay via x402 instead.","type":"string"},"admin_page_set":{"description":"Optional extra file-tree name ⟨224 unchanged words⟩
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"description":{"description":"What is wrong or what ⟨20 unchanged words⟩ ,"type":"string"}},"required":["account_api_key","description"],"type":"object"}
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"files":{"description":"The full set of ⟨47 unchanged words⟩ ,"type":"string"}},"required":["account_api_key","name","files"],"type":"object"}
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\").","type":"string"},"disconnect":{"description":"true: drop the ⟨6 unchanged words⟩ fresh install URL.","type":"boolean"}},"required":["account_api_key"],"type":"object"}
Turns Maintain on/off for one of this account's projects and/or rotates itsproject_api_key.project key. Identify the project with projectidor project_api_key(atscopedleasttooneyourisauthenticatedrequiredaccount). Turning maintain off does not delete or ⟨16 unchanged words⟩
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"maintain":{"type":"boolean"},"project_api_key
{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"account_api_key":{"description":"BotKelp account key (starts with \"bk_live_\"). Required.","type":"string"},"field":{"description":"Fields to change. Omitted ⟨42 unchanged words⟩ ,"type":"string"}},"required":["account_api_key","siteprofilename","field"],"type":"object"}
Get account status — Reports whether your authenticated account has a BotKelp account_api_key linked (yes/no) and when it was last linked/rotated. Never returns the key itself. Use this to check whether key-gated tools will work before calling them. Takes no parameters — your identity comes from the MCP transport, not the call.
Verify scaffold — Runs a real `npm install && npm run build` against the given files on an isolated GitHub Actions runner and reports whether the project builds. Two-call protocol: pass files to start (returns WAIT + a jobId), then call again with that jobId to get the verdict (OK or FAIL). A full install and build usually takes one to two minutes. Requires the projectid of a project this account purchased via purchase_scaffold — attributes every build to a real customer. Use this after editing a get_scaffold result to check the edited project still builds, before handing it to the user. Send the full project …
Added "get_github" and "set_github"; changed the definition of "purchase_scaffold" (11 tools before, 13 now)
⟨191 unchanged words⟩ , use only when a shell isn't available.admin_page_set:ExtrabakepagesonelandofINthistheaccount'sclonenamed(uniqueadminpersonalpagebk-*
Certificate recorded, valid to 2026-11-27
Authorization not required
First tool surface recorded: 11 tools (server version 0.2.0)
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨21 unchanged words⟩ :"string"},"admin_page_set":{"description":"Name of this account'sOptionaladminextrapagefile-treesetname (see set_adminpageset) to bake into a dedicated forkedsamerepo.overlayOmitasfortemplate_files).thePreferordinarysite_profileshared/repo.template_files.","type":"string"},"components":{ ⟨99 unchanged words⟩ ":{"description":"false/omit: skip. true:attachbake this account's one site profile into the clone (errors if 0 or >1). A string:attachbake that namedprofile.profile (privacy, terms, cookies, …).","type":["boolean","string"]},"template_files":{"anyOf":[{"const":true,"type":"boolean"},{"items":{"properties":{"dest":{"description":"Destination in the generated project. Defaults to the file's stored path / source path.","type":"string"},"name":{"description":"Saved dashboard template file name.","type":"string"},"source":{"description":"Path in the connected GitHub repo, e.g. \"legal/gdpr.md\" or \"app/rules/page.tsx\".","type":"string"}},"type":"object"},"type":"array"}],"description":"true: every saved dashboard template file. Or a list of {name} and/or {source, dest} from the connected GitHub repo."}},"required":["components"],"type":"object"}
Get GitHub connection — Shows whether this account has a GitHub repo connected, or lists files under a path in that repo. If not connected, the result includes installUrl — open it (GitHub App) to grant read access to one repo. Sign in on botkelp.com with GitHub first so the install is tied to your account.
Connect or disconnect GitHub — Returns a GitHub App install URL so the user can grant BotKelp read access to one of their repos. Open the URL, pick a single repo, approve. Then purchase_scaffold template_files: [{ source: "app/legal/" }] copies those pages into the clone. disconnect: true drops the connection. Prefer signing in with GitHub on botkelp.com first.