{"name":"io.github.aiscimi-code/botkelp","slug":"aiscimi-code-botkelp","title":"BotKelp","description":"Verified component catalog over remote MCP: agents pick ids and get a project that builds.","url":"https://mcp.market/server/aiscimi-code-botkelp","rating":null,"grade":"B","score":76,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-22T11:53:18.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:35:46.211Z","last_ok_at":"2026-11-04T05:35:46.211Z","latency_ms":624},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/botkelp/components","website":"https://www.botkelp.com","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://www.botkelp.com/mcp"}],"packages":[],"tools":[{"name":"get_account_status","description":"No params. Says whether you are signed in (authenticated) and account tools work (accountToolsReady). Never returns a key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_adminpageset","description":"Lists this account's admin page set names (omit name), or returns one set's exact files (pass name). These are the file trees purchase_scaffold's admin_page_set param bakes into a dedicated forked repo. Requires a linked account (transport auth).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"description":"The set to fetch. Omit to list this account's set names instead.","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_component","description":"One component's source files, UNRENDERED (EJS markers, not build-ready): inspect only; use purchase_scaffold for real files. Free, 32/day, signed-in account.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"component":{"type":"string","description":"Component id, or id@version, e.g. \"supabase-client@2.0.0\"."}},"required":["component"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_github","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"path":{"description":"Folder or file in the connected repo to list. Omit for connection status.","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_help","description":"Free. Short usage index. Then search_components to pick ids.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_projects","description":"Lists this account's saved scaffold projects (id, name, 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_scaffold","description":"Refetches a scaffold you purchased (fresh clone command), no extra credits. Credit-flow projects need Maintain on. Same site_profile/delivery options as purchase_scaffold.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"projectid":{"type":"string","description":"The project id from a previous purchase_scaffold result. Required — your project is resolved from your authenticated account."},"site_profile":{"description":"false/omit: skip. true: attach this account's one site profile (errors if 0 or >1). A string: attach that named profile.","type":["boolean","string"]},"delivery":{"description":"\"clone\" (default) or \"inline\".","type":"string","enum":["clone","inline"]}},"required":["projectid"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_siteprofile","description":"Your site profiles (privacy, terms, cookies, licence, custom_field) as JSON. list: true for names, or siteprofilename for one; field filters. Use next.arguments when a purchase reply says incomplete: true.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"list":{"description":"If true, return this account's profile names instead of a profile's content.","type":"boolean"},"siteprofilename":{"description":"The profile to fetch. Required unless list: true.","type":"string"},"field":{"description":"\"all\" (default), or an array from: privacy, terms, cookies, license, custom_field.","anyOf":[{"type":"string","const":"all"},{"type":"array","items":{"type":"string","enum":["privacy","terms","cookies","license","custom_field"]}}]},"cursor":{"description":"Resume token from a previous incomplete result, e.g. \"doc:terms\".","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"purchase_scaffold","description":"Buys a CI-green starter repo for component ids (credits via your signed-in account, or x402). Returns a git clone command and projectid. Red builds are refused and not charged. delivery \"inline\" returns files instead (more tokens).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"components":{"minItems":1,"type":"array","items":{"type":"string"},"description":"Component ids, e.g. [\"nextjs-base\",\"tailwind\"]."},"site_profile":{"description":"true or a profile name: bake legal pages in.","type":["boolean","string"]},"template_files":{"description":"Extra files: true, or [{name}|{source,dest}].","anyOf":[{"type":"boolean","const":true},{"type":"array","items":{"type":"object","properties":{"name":{"description":"Saved file name.","type":"string"},"source":{"description":"Path in connected repo.","type":"string"},"dest":{"description":"Destination path.","type":"string"}}}}]},"project":{"description":"Saved project metadata.","type":"object","properties":{"name":{"description":"Your label.","type":"string"},"description":{"description":"Notes.","type":"string"}}},"maintain":{"description":"Renewable repeat access (default true).","type":"boolean"},"delivery":{"description":"\"clone\" (default) or \"inline\".","type":"string","enum":["clone","inline"]},"admin_page_set":{"description":"Extra file-set name.","type":"string"}},"required":["components"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"report_issue","description":"Report a catalog/code bug or request a component (files an issue on botkelp/components). Signed-in account, 10/day. No secrets.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"description":{"type":"string","description":"What is wrong or what you want. Include enough detail to reproduce. No secrets."},"projectid":{"description":"Optional project id this report relates to.","type":"string"}},"required":["description"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"search_components","description":"Free. Compact catalog TSV: id, provides, requires, conflictsWith. Omit args for all.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Words to match, e.g. \"auth stripe\".","type":"string"},"provides":{"description":"Required capability tags.","type":"array","items":{"type":"string"}},"detail":{"description":"Add short descriptions.","type":"boolean"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"set_adminpageset","description":"Creates or fully replaces one named admin page set for this account — real file source (React/Next.js), not text config. purchase_scaffold's admin_page_set param bakes a chosen set into a brand-new, dedicated repo. An account may keep more than one named set.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for this set, e.g. \"default\" or \"acme-admin\"."},"files":{"minItems":1,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Relative file path, e.g. \"app/layout.tsx\"."},"content":{"type":"string"}},"required":["path","content"]},"description":"The full set of files, e.g. [{ path: \"app/admin/page.tsx\", content: \"...\" }]."}},"required":["name","files"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"set_github","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"disconnect":{"description":"true: drop the connected repo. Omit to mint a fresh install URL.","type":"boolean"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"set_projects","description":"Turn Maintain on/off for a project and/or rotate its project key. Off keeps existing clones; it stops future get_scaffold access.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"projectid":{"type":"string","description":"The project id to change (from get_projects). Required — scoped to your authenticated account."},"maintain":{"type":"boolean"},"rotate":{"description":"If true, mints a new project key and invalidates the old one.","type":"boolean"}},"required":["projectid"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"set_siteprofile","description":"Creates or updates one named site profile for this account. Fields omitted from `field` keep their current saved value (or blank, if the profile is new); pass only what changed. custom_field entries are merged key-by-key. An account may keep more than one named profile (e.g. one per brand/site).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"siteprofilename":{"type":"string","description":"Name for this profile, e.g. \"default\" or \"acme-co\"."},"field":{"type":"object","properties":{"privacy":{"type":"string"},"terms":{"type":"string"},"cookies":{"type":"string"},"license":{"type":"string"},"custom_field":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"description":"Fields to change. Omitted fields keep their current value."}},"required":["siteprofilename","field"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"verify_scaffold","description":"Remote `npm install && npm run build` of your edited files (send every file). Call with files -> WAIT + jobId; call again with jobId -> OK or FAIL with the error tail. Needs a purchased projectid.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"projectid":{"type":"string","description":"The project id from a previous purchase_scaffold result — must be owned by this account. Required."},"files":{"description":"The full project to verify — a scaffold's files with your edits applied. Omit when polling with jobId.","minItems":1,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Relative file path, e.g. \"app/layout.tsx\"."},"content":{"type":"string"}},"required":["path","content"]}},"envVariables":{"description":"Env var names to write placeholder values for before building (typically get_component's `envVariables` output) — needed for components that read process.env at build time (e.g. a Supabase client).","type":"array","items":{"type":"string"}},"jobId":{"description":"Poll a previously started verification. Omit on the first call (pass files), pass the returned jobId on subsequent calls.","type":"string"}},"required":["projectid"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":76,"grade":"B","scanned_at":"2026-10-26T04:58:12.470Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-26T04:58:12.416Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 900ms"]},"poisoning":{"score":15,"max":15,"notes":["16 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 3 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":4,"max":10,"notes":["namespace and repository owner differ"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://www.botkelp.com/mcp","reachable":true,"authRequired":false,"latencyMs":900,"serverInfo":{"name":"botkelp","version":"0.2.0"}}],"packages":[],"repo":{"found":true,"owner":"botkelp","repo":"components","archived":false,"pushedAt":"2026-10-22T11:53:18Z","stars":0,"forks":0,"openIssues":4,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/323124109?v=4","ownerCreatedAt":"2026-08-31T10:37:35Z","license":"NOASSERTION"},"icon":{"url":"https://www.botkelp.com/favicon.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-10-22T11:53:18.000Z","score":23}}}},"grade_history":[{"kind":"restore","fromGrade":"F","toGrade":"B","reason":"score 76: Write-action tools reachable without authentication","createdAt":"2026-10-26T04:58:14.812Z"}],"reviews":[]}